aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-11 18:30:58 +0200
committerDanilo M. <danix@danix.xyz>2026-09-11 18:30:58 +0200
commit1b252e32d93e1e0207d2a69ee3445e1dbf6505ae (patch)
treed4280dae5cab886898e7e5e674508728e2d5150a /AGENTS.md
parent43c31deaa313a8e471ecc3b5a55411a3b93b6f08 (diff)
downloadquickshell-1b252e32d93e1e0207d2a69ee3445e1dbf6505ae.tar.gz
quickshell-1b252e32d93e1e0207d2a69ee3445e1dbf6505ae.zip
feat(appearance): wallpaper picker and scheme switcher
One drawer for how the desktop looks, on SUPER+Return, replacing the qarma file dialog that key used to open. wallp is untouched and still does the work: the panel calls it with H= and V= and it still runs from a terminal. Clicking a thumbnail stages it rather than setting it, so both screens can be composed before anything changes and Apply is a single wallp call. The mock screens show the result: the staged pick where there is one, what is set where there is not, and the hovered thumbnail on the targeted screen. They are drawn at the real proportions from hyprctl monitors, DP-3 upright because it has transform=1, centred against each other as Hyprland has them. The scheme tab reads the palette pair unified-desktop-theme keeps for each scheme, so the swatches are that scheme's real colours and the list needs no edit when a scheme is added. Applying writes roles.conf and runs install.sh, and reloads nothing, because install.sh reloads nothing: the panel says what is still showing the old scheme rather than pretending the switch is done. Two QML traps are documented in AGENTS.md because neither announces itself: there is no String.matchAll, which threw inside a try and left every swatch empty, and assigning running = true to an already-running Process does nothing, which stopped the scheme loader after the first file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G7NRsGyF9jGfPYS4zPqpN7
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md6
1 files changed, 6 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index e7e7f65..c3cf2ef 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -10,6 +10,7 @@ them runs alone, and running one does not require the others.
volume-osd/ volume for output and input, plus what is playing
vm-manager/ libvirt drawer: state, live stats, snapshots
+ appearance/ wallpaper picker and colour scheme switcher
Both are started from `~/.config/hypr/sections/autostart.lua` and keep running
for the whole session.
@@ -62,6 +63,11 @@ changing that component. The ones that generalise:
`Keys.onEscapePressed` on a `PanelWindow` never fires.
- **A `Row` sizes to its children, not its parent.** Fixed child widths inside
one overflowed the panel and pushed a button past its edge.
+- **QML's JS engine has no `String.matchAll`.** It throws, and inside a `try`
+ that looks like a parser quietly returning nothing. Use an `exec` loop.
+- **Assigning `running = true` to a `Process` that is already running does
+ nothing.** Reusing one `Process` for a sequence of commands needs
+ `running = false` immediately before each start.
- **libvirt's own memory and disk figures are not what they look like.**
`balloon.current` is memory allocated to the VM and reads full forever;
`block.allocation` is qcow2 growth on the host, not usage inside the guest.