aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md19
1 files changed, 19 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 76a7bb8..faf6b18 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -19,6 +19,7 @@ modules.
island/ top-centre pills on DP-1: clock, volume, tray, layout, privacy,
calendar, OBS
assistant/ the assistant canvas on SUPER+Home, a view over desktop-assistant
+ companion/ a chibi 2B, bottom-right of the focused monitor, on SUPER+\
window-switcher/ expose: open windows scattered as live previews, on ALT+TAB
or the top-right hot corner of DP-1
keybinds/ live keybind reminder, on SUPER+k
@@ -207,6 +208,12 @@ changing that component. The ones that generalise:
`Settings.qml`, which imports Controls, `Button { icon: ... }` became the
Controls button and logged `Unable to assign QString to QQuickIcon`. A file
that imports Controls builds its buttons from a `Rectangle` instead.
+- **Plain `import QtQuick` shadows a directory's own `Sprite.qml` too.**
+ QtQuick ships a `Sprite` type (for `AnimatedSprite`), and an explicit
+ import beats the implicit directory one, so the companion's `Sprite {
+ onSettled: ... }` failed with `Cannot assign to non-existent property
+ "onSettled"` and took the whole desktop shell down on restart. It is
+ `Figure.qml`. Before naming a component, check it is not a QtQuick type.
- **`FloatingWindow.maximized` works under Hyprland.** Setting it fills the
monitor and clearing it restores the old size, checked by eye; the settings
window's titlebar row uses it, since Hyprland draws no decorations.
@@ -358,6 +365,11 @@ changing that component. The ones that generalise:
- **The old waybar notification module shelled out to `dunstctl`.** It and its
`notifications.py` are archived under `~/bin/archive/`, with the rest of the
stock waybar theme; do not resurrect them.
+- **The shell's JS engine has no `Array.prototype.flatMap`.** A binding
+ using it throws `TypeError: Property 'flatMap' of object [object Object]
+ is not a function`, which shows only in `qs log`; a Repeater bound to it
+ simply builds nothing. Use `reduce((a, x) => a.concat(...), [])`. Seen
+ with the assistant page's cloud Prefer rows (2026-10-23).
- **A `Socket` whose connect failed never retries.** Quickshell 0.3.1 keeps
the failed `QLocalSocket`, so setting `connected = true` again (or toggling
it, or changing `path`) is a no-op: `setConnected` only connects when no
@@ -492,6 +504,13 @@ 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.
+Changing `desktop/shell.qml` can fail on a type it did not touch. Twice in
+one session, an edit adding an import to it hot-reloaded into `Failed to
+load configuration`, `UdtModule is not a type` and then `SunsetModule is
+not a type`, both existing modules in `modules/appearance/` that a fresh
+process resolved fine. The old config kept running; `./reload.sh desktop`
+loaded the new one cleanly. Expect a restart after any `shell.qml` edit.
+
Switching git branches under a running shell can drop a component until a
restart. Merging the island branch meant a moment on master without
`desktop/island/`; the shell hot-reloaded then, logged `Ignoring unresolvable