diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-13 09:59:53 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-13 09:59:53 +0200 |
| commit | de8294eab208b95cef9bd376d98fb232e3a4c4c4 (patch) | |
| tree | 9b6e11acacf9353308c46b405f7b75532d3eb827 /docs | |
| parent | 9de89ae1512928283c1de7360e0313e1e2975b47 (diff) | |
| download | quickshell-de8294eab208b95cef9bd376d98fb232e3a4c4c4.tar.gz quickshell-de8294eab208b95cef9bd376d98fb232e3a4c4c4.zip | |
fix(island): review findings in the controls panel
Edit mode let a right-click and the wheel through to the tile, so a
right-click opened the drawer and scroll changed volume, against the
spec. The drag area now takes both buttons and the wheel.
A scroll up on a level already above the cap, such as a mic set to 120%
elsewhere, snapped it down to the cap. The cap now only stops a step up.
Prefs logs a failed write, which printErrors off had silenced: the new
order would otherwise vanish at the next restart with no trace. Its
parsed object is renamed from data to doc, so it cannot shadow a base
property of that name.
The spec now says what was built: JSON.parse rather than a JsonAdapter,
and the helper list as it is.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/superpowers/specs/2026-10-13-controls-panel-design.md | 5 |
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 |
