aboutsummaryrefslogtreecommitdiffstats
path: root/docs/superpowers
diff options
context:
space:
mode:
Diffstat (limited to 'docs/superpowers')
-rw-r--r--docs/superpowers/specs/2026-10-13-controls-panel-design.md5
1 files changed, 3 insertions, 2 deletions
diff --git a/docs/superpowers/specs/2026-10-13-controls-panel-design.md b/docs/superpowers/specs/2026-10-13-controls-panel-design.md
index 582ffbe..627fd28 100644
--- a/docs/superpowers/specs/2026-10-13-controls-panel-design.md
+++ b/docs/superpowers/specs/2026-10-13-controls-panel-design.md
@@ -37,7 +37,8 @@ read), breaktimer and KDE Connect tiles (status displays, the drawer has them).
## Preferences store
-`Prefs.qml` is a `FileView` with a `JsonAdapter` on
+`Prefs.qml` is a `FileView`, parsed with `JSON.parse` rather than a
+`JsonAdapter` so unknown keys and a broken file survive, on
`$XDG_STATE_HOME/quickshell/desktop.json`, falling back to
`~/.local/state/quickshell/desktop.json` when the variable is unset. State
home rather than the runtime directory, because preferences must survive a
@@ -126,7 +127,7 @@ corner enters edit mode, where:
Edit mode ends on the pencil, Escape, or the panel closing. Hiding every tile
is allowed; the panel then shows only the strip.
-The order helpers in `Controls.js` are pure: `known()`, `normalize(list)` (drop
+The order helpers in `Controls.js` are pure: `defaults()`, `tile(id)`, `icon(id, on)`, `normalize(list)` (drop
unknown ids and duplicates), `hidden(list)`, `move(list, from, to)`,
`hide(list, id)`, `show(list, id)`, `fill(volume)`, `step(volume, delta,
max)`, `slotAt(x, y, pitch, cols, count)`. `test_controls.js` runs