aboutsummaryrefslogtreecommitdiff
path: root/todo.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-19 23:45:24 -0500
committerCraig Jennings <c@cjennings.net>2026-07-19 23:45:24 -0500
commit0468fedb23ae34a140b6a5a903adedb4e9873ca5 (patch)
tree188151ac2e0e9a27b205cd523c7872028795e5ca /todo.org
parentc4b3710b14a47d4c8297322297f217be264349ea (diff)
downloadarchsetup-0468fedb23ae34a140b6a5a903adedb4e9873ca5.tar.gz
archsetup-0468fedb23ae34a140b6a5a903adedb4e9873ca5.zip
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.
Diffstat (limited to 'todo.org')
-rw-r--r--todo.org65
1 files changed, 48 insertions, 17 deletions
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