aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-14 18:36:27 +0200
committerDanilo M. <danix@danix.xyz>2026-09-14 18:36:27 +0200
commit15707ecbc83d23cc0cae96f308359bb671ff93ad (patch)
treec924fd39361a152513426423af060566542ccdf4 /AGENTS.md
parent9bf4ce6fcb43dd3f0da7d90827d397fe63e8bfe0 (diff)
downloadquickshell-15707ecbc83d23cc0cae96f308359bb671ff93ad.tar.gz
quickshell-15707ecbc83d23cc0cae96f308359bb671ff93ad.zip
docs: hot reload does not pick up a new component file
Adding desktop/Switch.qml while only editing files under modules/ left it out of the running shell's generated qmldir, so the two pages that use Switch could not resolve it and their tiles dropped from the grid. The code was correct; a fresh process rendered it. The directory's qmldir is regenerated only when a file that imports the directory reloads.
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md10
1 files changed, 10 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index cd9de42..82a2b2e 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -227,6 +227,16 @@ the whole screen use `ExclusionMode.Ignore`.
Hot reload covers adding and removing windows too: the keepalive window above
was added to a running shell and took effect on save.
+Hot reload does **not** pick up a new component *file*. A directory's generated
+`qmldir` is its import index, and it is only regenerated when a file that
+imports that directory reloads, not when a file appears in it. Adding
+`desktop/Switch.qml` while only editing files under `modules/` left it
+invisible to the running shell, so `NetworkPage` and `BluetoothPage` could not
+resolve `Switch` and the two modules dropped from the grid; the code was
+correct and a fresh `qs` process rendered it. Force the rescan by changing a
+file that imports the directory (`desktop/shell.qml`), or restart the shell.
+Touch alone does not reload: the content must change.
+
`qs -p <dir>` runs one directly. `qs -p <dir> ipc call <target> <fn>` reaches a
running one, which is how `SUPER+v` opens the VM drawer.