diff options
Diffstat (limited to 'docs/superpowers/specs/2026-10-13-controls-panel-design.md')
| -rw-r--r-- | docs/superpowers/specs/2026-10-13-controls-panel-design.md | 19 |
1 files changed, 15 insertions, 4 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 57ecd68..582ffbe 100644 --- a/docs/superpowers/specs/2026-10-13-controls-panel-design.md +++ b/docs/superpowers/specs/2026-10-13-controls-panel-design.md @@ -95,7 +95,16 @@ Presentation reads as on while a game holds it (`Status.gaming`); clicking then clears only the manual half, so the tile stays lit until the game ends. That is the registry's existing rule and the tile does not hide it. -Glyphs must exist in Inconsolata Nerd Font and be checked in its cmap. +Icons are freedesktop names through `Quickshell.iconPath(name, true)`, the +island's rule, so an icon theme switch reaches the panel. Every name was +checked to resolve in candy-icons (which inherits breeze-dark): wifi +`network-wireless` / `network-wireless-disconnected`, bluetooth +`preferences-system-bluetooth`, DND `notifications` / +`notifications-disabled`, presentation `video-display`, auto-lock +`system-lock-screen`, output `Logic.volumeIcon`, mic +`audio-input-microphone` / `microphone-sensitivity-muted`, the opener +`preferences-system`, edit `document-edit`, hide `window-close`, show +`list-add`. ## Panel @@ -107,8 +116,9 @@ The grid is four columns, so seven tiles make two rows. A pencil glyph in a corner enters edit mode, where: - each visible tile carries a small × that hides it; -- a tile dragged onto another moves to that position (`DragHandler` on the - tile, `DropArea` on each slot); +- a tile dragged onto another moves to that position: one `MouseArea` per + tile offsets it while pressed, and on release the slot under its centre + (`slotAt()` in `Controls.js`) is where it lands; - hidden tiles appear in a strip under the grid, each with a + that appends it to the visible list; - clicks do not toggle and right-click does not open the drawer. @@ -118,7 +128,8 @@ is allowed; the panel then shows only the strip. The order helpers in `Controls.js` are pure: `known()`, `normalize(list)` (drop unknown ids and duplicates), `hidden(list)`, `move(list, from, to)`, -`hide(list, id)`, `show(list, id)`, `fill(volume)`. `test_controls.js` runs +`hide(list, id)`, `show(list, id)`, `fill(volume)`, `step(volume, delta, +max)`, `slotAt(x, y, pitch, cols, count)`. `test_controls.js` runs them under `node`, the same way `test_logic.js` does. ## Opening |
