From 0468fedb23ae34a140b6a5a903adedb4e9873ca5 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 19 Jul 2026 23:45:24 -0500 Subject: docs: expand desktop-settings spec and add panel prototypes I folded the home-handoff control-set decisions into the desktop-settings panel spec. The controls table gains night-light, Do Not Disturb, power profile, lock/suspend actions, scenes, and a wallpaper sub-view. Volume and theme are out of scope, with reasons, and the format pickers move to their own display-format sibling spec (stubbed). The scenes and wallpaper-shape decisions close. The spec stays DRAFT pending UI prototyping. I added five direction prototypes over a shared engine (tile grid, sectioned rack, scenes-first, instrument cluster, expandable rows) so the layout gets picked against working behavior. I closed the shipped Next Session Focus work in todo.org: notification loudness, clock right-click dismiss, date-only scrolling, the wired-interface indicator, and best-saved WiFi connect, plus velox boot recovery. The three design-blocked network and audio items stay TODO with their open question recorded. --- todo.org | 65 +++++++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 17 deletions(-) (limited to 'todo.org') diff --git a/todo.org b/todo.org index a0b19fb..ed535e7 100644 --- a/todo.org +++ b/todo.org @@ -23,20 +23,31 @@ The vocabulary is open — topic tags are coined as needed — so these are conv * Next Session Focus -On 2026-07-19, Craig selected the following autonomous work for the next -session. Complete implementation and automated verification independently; -bring only the final live/manual checks back for review. - -- Waybar and panels: restore date-format scrolling; dismiss the clock panel on - right click; show the active wired interface; order network connections by - availability; indicate hotspot/metered WiFi in amber; and connect the best - available saved WiFi profile when WiFi is enabled. -- Audio: reduce notification playback loudness by 40%; and make the audio - doctor assess microphone/input health as well as output health. +On 2026-07-19, Craig selected the following autonomous work. Status after the +2026-07-19 evening session: 5 shipped (dotfiles, pushed), 3 held for a design +decision. Each shipped item has its own DONE task below. + +Shipped: notification loudness -40% (808ca23); clock panel right-click dismiss +(fc9a2b7, live-verified); date-format scrolling as a date-only ring (9dfe082); +show the active wired interface (22867f9); connect the best saved WiFi profile +on enable (9105361). + +Held for a design decision (not solo — each needs Craig's call, kept as TODO +below): +- Order network connections by availability — the task wants one tiered list + (available saved -> available unsaved -> unavailable saved), but the panel + spec says "three labelled groups, never one merged list" with Saved MRU-first. + Reorder within Saved only, or merge into one list (overriding the spec)? +- Indicate hotspot/metered WiFi in amber — "hotspot" is ambiguous (connected-to + a phone hotspot vs the machine running an AP), and metered detection needs new + nmcli reads on the status fast path (contract is "one nmcli call"). +- Audio doctor mic/input health — points at docs/specs/2026-07-10-audio-doctor- + input-side-spec.org (DRAFT, four decisions open). * Archsetup Open Work -** TODO [#A] Velox boot recovery — no kernel in BE :bug:velox:zfs: -SCHEDULED: <2026-07-16> +** DONE [#A] Velox boot recovery — no kernel in BE :bug:velox:zfs: +CLOSED: [2026-07-19 Sun] +Recovered. Velox boots linux-lts 6.18.38 and is back on the tailnet (up 1d+, /boot holds initramfs-linux-lts.img). The pre-pacman ZFS snapshot rollback restored the kernel from the ZBM recovery shell. Velox won't boot: ZBM prompts for the passphrase, unlocks, then reports no bootable environment with a kernel. Cause: an interrupted kernel =-Syu= removed the old kernel and never installed the new one — /mnt/be/boot (from zroot/ROOT/default) holds ONLY intel-ucode.img; vmlinuz-linux + both initramfs are gone. /boot lives inside zroot/ROOT/default (no separate boot dataset), so root-dataset snapshots capture it. Status 2026-07-15: a first rollback attempt did NOT fix it (square zero after reboot) — suspected typo in the snapshot name, so the rollback likely errored and did nothing. NOT verified. Next session: verify state in the ZBM recovery shell BEFORE any reboot. @@ -83,7 +94,9 @@ Post-mortem for the 2026-07-15 velox no-kernel boot failure, from the archsetup/ ** TODO [#C] Add inetutils to install base :feature:solo:quick:network: TRAMP's /ftp: method (ange-ftp) shells out to a command-line ftp client; Arch ships none by default. GNU inetutils provides =/usr/bin/ftp=. Craig's dirvish config has an FTP quick-access entry (phone FTP server), so it's a config dependency. Installed manually on ratio 2026-07-14; velox needs it once it boots. Add to the install base so future machines get it for free; verify via VM test. From .emacs.d handoff 2026-07-14-1751. -** TODO [#C] Restore date-format scrolling on the waybar date module :feature:waybar:dotfiles:quick: +** DONE [#C] Restore date-format scrolling on the waybar date module :feature:waybar:dotfiles:quick: +CLOSED: [2026-07-19 Sun] +Shipped dotfiles 9dfe082: date-only ring (ordinal/full/longdate), on-scroll rewired, layout guard flipped. UTC/time stay on the time module. Date and time are separate fixed-position controls. The time display cycles its own formats, including UTC; the date/calendar control cycles date-only formats and never displays a second time. Implement the dedicated format rings, @@ -96,11 +109,17 @@ The clock-panel handoff settled the prior open question: UTC belongs only to the time ring, while the date ring is date-only. The existing task is therefore a focused follow-up, not a two-line restoration of the old combined ring. -** TODO [#C] Notification sound loudness :chore:audio:quick:solo: +** DONE [#C] Notification sound loudness :chore:audio:quick:solo: +CLOSED: [2026-07-19 Sun] +Shipped dotfiles 808ca23: NOTIFY_VOLUME default 65536->39322 (0.6 gain) in both notify copies. Reduce notification-sound playback loudness by 40% (0.6 gain, approximately -4.4 dB). Change the =NOTIFY_VOLUME= playback control rather than re-encoding the normalized sound files; verify each notification type still plays clearly. +** TODO [#C] Dupre theme waybar.css drifted from live style.css :bug:dotfiles:waybar: +Grading: Minor severity (cosmetic, reverts only on a theme switch) × rare edge case (dupre is already the active theme) = P4 = [#D] on user impact, bumped to [#C] because the dotfiles =make test= stays RED until synced, poisoning the green baseline for every future commit. +The weather-kit work added =#custom-weather= selectors to =hyprland/.config/waybar/style.css= but never mirrored them into =hyprland/.config/themes/dupre/waybar.css=. =tests/theme-css= asserts the two files are identical (set-theme copies the theme file over the live one), so switching to dupre would silently revert the weather chip styling. Fix: sync the theme file to live. Pre-existing; found 2026-07-19 during an unrelated commit's green-baseline run. + ** TODO [#B] Assess a Hyprland left-drag window gesture :feature:hyprland: Evaluate whether a global left-click drag can move ordinary windows without breaking application selection, text interaction, or Wayland security @@ -111,7 +130,9 @@ any binding. Offer a period-appropriate selector for timer duration, likely drawing on the tape-counter idiom, while preserving the existing direct-entry path. -** TODO [#C] Show the active wired interface in the Waybar network module :feature:waybar:network: +** DONE [#C] Show the active wired interface in the Waybar network module :feature:waybar:network: +CLOSED: [2026-07-19 Sun] +Shipped dotfiles 22867f9: select_device prefers connected wifi -> connected ethernet -> wifi fallback, so a live cable shows the wired glyph+iface instead of Offline. When Ethernet is active, replace the offline-WiFi presentation with the wired interface glyph and interface name. @@ -119,7 +140,9 @@ interface glyph and interface name. Present saved and currently available networks in this order: available saved profiles, available unsaved networks, then saved profiles that are unavailable. -** TODO [#C] Let the clock panel dismiss itself on right click :feature:clock:waybar: +** DONE [#C] Let the clock panel dismiss itself on right click :feature:clock:waybar: +CLOSED: [2026-07-19 Sun] +Shipped dotfiles fc9a2b7: secondary-button gesture -> ClockApplication._dismiss hides the open panel. Live-verified with Craig 2026-07-19. Make a right click inside the open clock panel toggle it closed. Preserve left click for its established interaction; the Waybar time module remains the explicit way to reopen the panel. @@ -128,7 +151,9 @@ explicit way to reopen the panel. Detect hotspot/metered connectivity and render the WiFi icon plus SSID amber, while ordinary WiFi stays white. -** TODO [#C] Make the WiFi toggle connect the best available profile :feature:network: +** DONE [#C] Make the WiFi toggle connect the best available profile :feature:network: +CLOSED: [2026-07-19 Sun] +Shipped dotfiles 9105361: manage.wifi_radio -> _connect_best_saved activates the strongest in-range saved profile on enable; nothing in range falls back to NM autoconnect. When enabling WiFi, automatically connect to the highest-priority available saved network instead of requiring a panel selection first. @@ -666,6 +691,12 @@ Design / open questions (propose before building): Implementation notes: a small GTK layer-shell app (mirror pocketbook's structure: src-layout Python package, pytest, Makefile) talking to brightnessctl / hyprctl / the touchpad + airplane helpers. Lives in the dotfiles repo or in-tree like pocketbook. TDD the backing toggle/slider logic. Sizable — worth a design doc first. +Home handoff 2026-07-19 (inbox, resolving the open "few other things" decision — fold into the spec, close the open decision, extend the controls table, then run spec-review, may flip DRAFT→READY). Ownership: home drives the build (dotfiles settings/), archsetup keeps the canonical spec. Full reconciliation in home docs/design/2026-07-19-desktop-settings-module-brainstorm.org. +- ADD controls: night-light / color temperature; Do Not Disturb / notifications (dunst); lock / suspend quick actions; power profile (performance/balanced/saver); scenes/profiles — one control flipping several toggles at once (Focus, Presentation, Battery-saver, Night). Scenes are the payoff of consolidating everything. +- OUT (record reasons): volume / master-mute stays with the audio panel (no mirror here); theme light/dark goes to the theme-studio task. +- FORMAT PICKERS pulled to their own future sibling spec — time/date/weather format is out of THIS panel. Rationale: format settings live in many programs, so the design problem is a single source of truth for the canonical format. Track a future sibling-spec stub in docs/specs (time/date/weather format single-source-of-truth); Craig thinking it through separately, not started. +- STILL OPEN (spec already flags): wallpaper manager confirmed in scope, but row-that-opens-a-sub-view vs its own sub-spec undecided — resolve at spec-review. + ** TODO [#B] Local offline LLM runtime + per-host model cache :tooling:llm: :PROPERTIES: :LAST_REVIEWED: 2026-07-06 -- cgit v1.2.3