aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org22
1 files changed, 22 insertions, 0 deletions
diff --git a/todo.org b/todo.org
index 4c8559e..5070759 100644
--- a/todo.org
+++ b/todo.org
@@ -742,6 +742,15 @@ The world face (=settings/faces/world.html=, shipped 6afbe09) already supports b
From the roam inbox (Craig, claimed 2026-07-23): the wallpaper channel switches on sunrise/sunset today (the sun-pair mode, =settings/src/settings/wallpaper.py=, location read live via whereami with a state.json cache). Add a timed-schedule mode as an alternative: fixed clock times drive the transitions rather than the solar calc.
Not :solo: — the capture itself flags the missing inputs ("we'll need to know the transition times, and how many of them there are"). The count and the times are a design decision Craig owes: is it a two-image day/night flip at fixed hours, an N-way ring across the day, per-image dwell vs shared interval? The =set= channel already does fixed-interval cycling through a set, so the new part is specifically clock-anchored transition points, not just "a timer". Ask for the schedule shape at pickup, then build against the existing wallpaper.apply presenter vocabulary.
+** TODO [#C] Wallpaper panel selection and scroll state :feature:dotfiles:solo:
+:PROPERTIES:
+:LAST_REVIEWED: 2026-07-25
+:END:
+From the roam inbox (Craig, 2026-07-25). Screenshot: =~/pictures/screenshots/2026-07-25_013041.png=. Three related behaviors in the settings wallpaper panel (=settings/src/settings/wallpaper.py=):
+1. Open at the wallpaper currently displayed, not the top of the list.
+2. Highlight that wallpaper as selected in the scrollable pane while it shows in the preview.
+3. Keep the scroll position when a picture is selected. Today selecting a picture snaps the scroll back to the top, which is the bug half of this.
+Grade: minor scroll-reset defect x every panel selection = P3 = [#C]; the open-at-current and select-current behaviors are enhancements at the same level. One type tag, so filed =:feature:= with the scroll-reset called out as the bug. Solo: buildable in the settings GTK panel, agent-verifiable via headless capture plus the wallpaper.py tests, no design call — swww query gives the current wallpaper, and scroll-position preservation and row selection are standard GTK.
** DONE [#C] Floating layout — should we? :feature:hyprland:
CLOSED: [2026-07-24 Fri]
:PROPERTIES:
@@ -1644,6 +1653,19 @@ Craig's standing checklist of everything that isn't agent-verifiable. Each child
Priority and type tag added by that audit: the task carried neither, which kept the project's largest live container out of the agenda entirely.
+*** Floating layout: freeze positions, border flash, exit to master
+What we're verifying: cycle-layout's new floating mode freezes each window's tiled position (capture-then-restore), flashes the border bright gold on entry and exit, exits to master, and refuses an empty workspace. The dispatch logic is unit-tested against a fake hyprctl (tests/cycle-layout); this is the live geometry + timing + visual check that can't be agent-verified, since running it drives the real compositor's global layout.
+- Go to a workspace holding 2-3 tiled windows in master layout.
+- Cycle the layout into floating: click the waybar layout glyph (or Super+Shift+arrow) to step master -> monocle -> floating. Watch the window borders on the step into floating.
+- Drag a window with Super+left-mouse.
+- Cycle once more to exit floating; watch the borders again.
+- Switch to an empty workspace and try to cycle into floating.
+#+begin_src sh :results output
+echo "state file:"; cat "${XDG_RUNTIME_DIR:-/tmp}/hypr-layout-cycle.state" 2>/dev/null || echo "(none — not floating)"
+echo "windows on active workspace:"; ws=$(hyprctl activeworkspace -j | jq .id); hyprctl clients -j | jq -r --argjson ws "$ws" '.[] | select(.workspace.id==$ws) | "\(.address) floating=\(.floating) at=\(.at) size=\(.size)"'
+#+end_src
+Expected: entering floating flashes the border bright gold (a few blinks); every window stays exactly where master placed it, now floating and drag-able with Super+mouse; exiting flashes again and re-tiles to master (the state file is gone). On the empty workspace nothing happens — no float, no flash, no state file written.
+
*** Settings panel: brightness drum drags
What we're verifying: the paper drums' drag gesture (a Cairo hit-test the e2e suite can't drive) maps drag distance to backing percent with the floor rules. On ratio (no backlight) the drums render dimmed and refuse the drag — that's expected, so the drag half of this test needs velox.
- Open the settings panel (Super+Shift+G).