diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-24 16:49:39 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-24 16:49:39 -0500 |
| commit | 082d870d6c4c3a3cce85506505582b17ef19487b (patch) | |
| tree | a0e3c4a8284659e434ef3a7ec9bcb73cebf348f9 | |
| parent | aec3b94c5b8fb1fe980d4ea670cf66fc3063a62a (diff) | |
| download | archsetup-082d870d6c4c3a3cce85506505582b17ef19487b.tar.gz archsetup-082d870d6c4c3a3cce85506505582b17ef19487b.zip | |
docs(todo): close seven speedrun tasks and record the two research assessments
Timer hero hierarchy + RING removal, video fit, PTT glow, world-face bold, calc-toggle, and the floating-clock keychord all shipped in dotfiles. The floating-layout and window-config research each produced an assessment doc with a build recommendation.
| -rw-r--r-- | todo.org | 50 |
1 files changed, 41 insertions, 9 deletions
@@ -629,12 +629,24 @@ The unintuitive part, worth stating plainly because both sessions built habits o Craig's call: whether this becomes a durable rule in the shared rules layer (it's cross-project — any repo two sessions touch), which shape, and which session implements it. Both sessions have offered to own it. -** TODO [#C] Timer module hero hierarchy :feature:waybar:timer:quick:solo: +** DONE [#C] Timer module hero hierarchy :feature:waybar:timer:quick:solo: +CLOSED: [2026-07-24 Fri] From the roam inbox (Craig, claimed 2026-07-22). Which display ("hero") wins the waybar timer module when several timer modes run simultaneously: pomodoro wins over everything (the user is actively working; it's likely their main focus). The rest rank in chronological order of when they would ring. Worked example: with a just-started 15-min timer, a 1-hr timer at 10 minutes left, a pomodoro, and an alarm ringing in 12 minutes — show the pomodoro; when it completes, the 1-hr timer (rings first), then the alarm, then the 15-min timer. Feeds the timer-panel spec (docs/specs/2026-07-02-timer-panel-spec.org). -** TODO [#C] Timer module: drop RING message, persistent notifications :bug:waybar:timer:quick:solo: + +Shipped as dotfiles =9eedb39=. Pomodoro wins the hero, then soonest-to-ring, in both selectors (=engine.select_primary= for the bar, =panel.primary_id= for the GTK hero). Craig's worked example is a test. FLAGGED FOR CRAIG: the two selectors diverge on a *ringing* alarm (the bar excludes it, the panel gives it the hero) and I left that as-is rather than reverse a deliberate choice. Whether to unify them is your call. + +** DONE [#C] Timer module: drop RING message, persistent notifications :bug:waybar:timer:quick:solo: +CLOSED: [2026-07-24 Fri] From the roam inbox (Craig, claimed 2026-07-22). Remove the RING message from the timer module display; verify all timer and alarm notifications are persistent; the icon returns to normal once the notification has fired. Rationale: keeps timers and pomodoros from interfering with one another's displays (pairs with the hero-hierarchy task above). -** TODO [#C] PTT icon outline removal :bug:waybar:quick:solo: + +Shipped as dotfiles =9eedb39=. The tooltip no longer prints RING or a (ringing) suffix; a fired alarm shows its clock time and its persistent notification carries the alert. Verified the timer and alarm completion notes already set persist=True. + +** DONE [#C] PTT icon outline removal :bug:waybar:quick:solo: +CLOSED: [2026-07-24 Fri] From the roam inbox (Craig, claimed 2026-07-22): the waybar PTT icon should not have an outline. Cosmetic × every-glance = P3 = [#C]. + +Shipped as dotfiles =e63c0cf= (live style.css + dupre theme source). Removed the amber/green text-shadow glow from the armed/talk states, the only outline-like effect on the icon. FLAGGED FOR CRAIG: this is my read of "outline" (the glow). If you meant the glyph shape itself, it's a one-line revert. Confirm live by pressing PTT. + ** TODO [#B] Weather tooltip caching :feature:waybar:weather:solo: From the roam inbox (Craig, claimed 2026-07-22): retrieve the weather tooltip data once per hour and cache it. If the network is unavailable, display the cached tooltip with explanatory text saying so. Dotfiles-side work (archsetup owns the lifecycle); touches common/.local/bin/weather. ** DONE [#B] Dotfiles tests leak state across files :bug:test:dotfiles:solo: @@ -689,8 +701,12 @@ Shipped 2026-07-23 as dotfiles =0d64837= (22px scrollbar, 16px trough, 14px slid Follow-on, and my own regression: enlarging the bar to 22px is what made it start covering the thumbnails, because nothing grew the tray to match. Craig reported it the same day ("scrollbars that obscure the images") and it's fixed in =c0ddf57= — the tray now reserves a 22px lane for the bar as a margin on the scrolled box, so the bar sits below the images instead of across them. Measured before: tray 68px, content 68px, a visible 14px bar inside the same 68px. After: tray 90, content 68, bar clear. The lane is a constant under the scrollbar CSS with a note to keep the two in step, since the coupling between bar thickness and tray height is exactly what broke. From the roam inbox (Craig, claimed 2026-07-23): all scrollbars need to be much taller than before. The always-visible scrollbars shipped in 7e8eb4a set =min-height: 10px; min-width: 10px= on the slider (=settings/src/settings/gui.py=, the =.dupre-panel scrollbar slider= rule) — that's the floor for a short slider, and the trough itself is thin. Raise both the slider floor and the trough thickness so the bar is comfortably grabbable. Cosmetic × every glance at the wallpaper trays = P3 = [#C]. -** TODO [#C] Video wallpapers don't fit the desktop :bug:dotfiles:solo: +** DONE [#C] Video wallpapers don't fit the desktop :bug:dotfiles:solo: +CLOSED: [2026-07-24 Fri] From the roam inbox (Craig, claimed 2026-07-23): videos don't fit the desktop in desktop-settings. The video channel drives mpvpaper (=settings/src/settings/wallpaper.py=); mpvpaper passes options through to mpv, so the fit is a =--panscan=/=--video-unscaled=/keepaspect question rather than a layout one. Reproduce with a video whose aspect differs from the output, pick the mode that fills without distorting (cover, matching how the image channels behave), and cover it in the wallpaper tests. Minor severity × whenever the video channel is selected = P3 = [#C]. + +Shipped as dotfiles =04d1489=. =set_video= now passes =panscan=1.0=, so mpvpaper fills the output and crops the overflow instead of letterboxing; keepaspect stays on so nothing stretches. Tested against the mpvpaper arg log. + ** DONE [#C] World-clock wallpaper arrangement :feature:dotfiles: CLOSED: [2026-07-24 Fri] Shipped 2026-07-24 as dotfiles =6afbe09=, iterated live with Craig. The grid of boxed mini-clocks became a centered vertical clock line: cities down a spine, west (Honolulu) top to east (Wellington) bottom, labels alternating both sides, no boxes. Each shows city / time (12h) / day+date / timezone region name ("US Central"). Day/night dimming + amber home carried over, title dropped, cursor restored over the desktop. Prototypes archived in archsetup 40216e7. The face is parameterized (=?layout=vertical|horizontal=, =?hour12=1|0=) so the panel pickers below can drive it. @@ -701,7 +717,8 @@ 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] Floating layout — should we? :feature:hyprland: +** DONE [#C] Floating layout — should we? :feature:hyprland: +CLOSED: [2026-07-24 Fri] :PROPERTIES: :LAST_REVIEWED: 2026-07-24 :END: @@ -713,13 +730,20 @@ CONCRETE PROPOSAL from a second roam item (Craig, 2026-07-24 via work) — "floa - During floating, drag windows with mod+mouse-drag. - Exiting floating switches to tiling or monocle and lets that layout take over. Craig's note: "simple, could be useful for different reasons." This is the design the brainstorm should evaluate first — assess feasibility against Hyprland's actual float/tile transitions (does freezing current geometry survive the tiling↔floating switch, does re-tiling on exit reflow cleanly) before recommending. -** TODO [#C] World clock wallpaper: bold the city names :feature:dotfiles:quick:solo: + +ASSESSED, dotfiles =8cf4728=: =docs/2026-07-24-floating-layout-assessment.org=. Verdict: buildable and worth building on a capture-then-restore of window geometry (=hyprctl clients -j= gives at/size), which is a real gesture plain =togglefloating= can't express. Craig's four-rule proposal is folded in and each rule assessed. One taste call flagged (exit to previous layout vs always monocle). Ready to file a build task on Craig's go. + +** DONE [#C] World clock wallpaper: bold the city names :feature:dotfiles:quick:solo: +CLOSED: [2026-07-24 Fri] :PROPERTIES: :LAST_REVIEWED: 2026-07-24 :END: From the roam inbox (Craig, 2026-07-24 via work): bold the city names on the world-clock wallpaper face (=settings/faces/world.html=, shipped =6afbe09=). Cosmetic × every glance at the world face = P3 = [#C]. Solo — a CSS weight change, screenshot-verifiable — but it's a visual call, so build it and show the render rather than close off a green suite. Pairs with the open world-face picker task. -** TODO [#C] Floating clock toggles on control+mod+c :feature:dotfiles:hyprland:solo: +Shipped as dotfiles =e63c0cf=. =.lbl .city= is now =font-weight:700=. Rendered offscreen and confirmed the bold reads well over the time/zone lines; home city stays amber. Comparison render was on ws5 for Craig. + +** DONE [#C] Floating clock toggles on control+mod+c :feature:dotfiles:hyprland:solo: +CLOSED: [2026-07-24 Fri] :PROPERTIES: :LAST_REVIEWED: 2026-07-24 :END: @@ -727,18 +751,26 @@ From the roam inbox (Craig, 2026-07-24 via work): a control+mod+c keychord shoul This answers the design question the round-6 clock-toggle fix deliberately left open (see the =clock toggle listener= DONE task above): =do_activate= calls =show_clock()= rather than =toggle()=, and the note there flagged "worth raising if he ever wants the spawn path to toggle too." He does. Build: a hyprland keybind bound to =clock toggle=, and confirm the toggle path (not show-only) fires whether the service is cold or warm. Solo — buildable and locally verifiable. -** TODO [#C] Calculator scratchpad won't toggle closed on mod+x :bug:hyprland:solo: +Shipped as dotfiles =e73a70e=. =bind = $mod CONTROL, C, exec, clock-panel toggle= reuses the exact command the time module's click runs, so it toggles identically. Registered clean on reload. Live keypress is Craig's to confirm. + +** DONE [#C] Calculator scratchpad won't toggle closed on mod+x :bug:hyprland:solo: +CLOSED: [2026-07-24 Fri] :PROPERTIES: :LAST_REVIEWED: 2026-07-24 :END: From the roam inbox (Craig, 2026-07-24 via work): =mod+x= opens the calculator scratchpad but doesn't close it — Craig has to kill the window by hand. A second =mod+x= should toggle it shut. Almost certainly a =togglespecialworkspace= vs plain =exec= binding in the hyprland config, or a scratchpad window-rule mismatch. Minor severity (a workaround exists: kill the window) × every time the calc scratchpad is used = P3 = [#C]. Solo — a keybind/window-rule fix, locally verifiable. -** TODO [#C] Saving and recalling window configurations :feature:hyprland: +Shipped as dotfiles =e73a70e=. New =calc-toggle= script (mirrors fuzzel-toggle: pgrep -x, pkill or launch), and =mod+X= now points at it, so a second press closes the calculator. 3 tests in tests/calc-toggle. + +** DONE [#C] Saving and recalling window configurations :feature:hyprland: +CLOSED: [2026-07-24 Fri] :PROPERTIES: :LAST_REVIEWED: 2026-07-24 :END: From the roam inbox (Craig, 2026-07-24 via work), a research idea: Craig wants to save a specific window+app arrangement and have it reappear on demand. What has to be known and built to make that happen — is there prior art (another WM or OS that does session/layout save-restore), what information do those need (app identity, geometry, workspace, launch command), and what are their rules. Explore how far Hyprland can get (hyprctl clients + dispatch, exec rules, window rules by class/title), document thoroughly, and review with Craig next time. Not :solo: — the deliverable is an assessment he reads and decides on, and it may spawn a build task once the shape is clear. Offer to file the build separately if part of it turns out urgent. +RESEARCHED, dotfiles =8cf4728=: =docs/2026-07-24-window-config-save-recall-assessment.org=. Prior art surveyed (i3/sway =append_layout= swallow, KDE window rules, macOS Moom). Three tiers from cheapest: (1) reposition open windows — buildable + testable now; (2) relaunch + place by class rule; (3) full swallow-by-title, which hits the same-class ambiguity every tool hands back to the user. Recommends shipping tier 1; tiers 2-3 need Craig's call on how much manual disambiguation he'll accept. + ** TODO [#B] Panel family: unify the look across net/bt/maint/audio and desktop-settings :feature:design:dotfiles: From the roam inbox (Craig, claimed 2026-07-24): the network, bt, maint, and audio waybar panels look alike, but the desktop-settings panel looks quite different. He wants them to read as one family. Deliverable: enumerate every difference (chrome, header layout, typography, spacing, control styling, color roles, close-button placement, section dividers) between the two groups and a plan to converge them on one look. Not :solo: — it needs a design pass and Craig's taste calls on which direction each group moves. When picked up, catalogue the deltas from live captures of all five, propose the shared design language (likely the Dupre instrument-console the settings panel uses, since that's the newest and most deliberate), then bring Craig the change list before touching code. ** TODO [#C] Panel text cut off — needs a few px more space :bug:dotfiles:solo: |
