diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-02 14:57:38 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-02 14:57:38 -0400 |
| commit | e80df2bcf74bcac2e858fd6b3ffa137871a1d5d1 (patch) | |
| tree | 2417f0ae676fd7621992408431931d70cd9932ce | |
| parent | 33c89b1154360cb2ed9733465c1931521cdee136 (diff) | |
| download | archsetup-e80df2bcf74bcac2e858fd6b3ffa137871a1d5d1.tar.gz archsetup-e80df2bcf74bcac2e858fd6b3ffa137871a1d5d1.zip | |
docs(spec): net-panel keyboard claims verified live, false ones struck
| -rw-r--r-- | docs/design/2026-06-29-waybar-network-module-spec.org | 9 | ||||
| -rw-r--r-- | todo.org | 6 |
2 files changed, 12 insertions, 3 deletions
diff --git a/docs/design/2026-06-29-waybar-network-module-spec.org b/docs/design/2026-06-29-waybar-network-module-spec.org index 0af9342..3a1260c 100644 --- a/docs/design/2026-06-29-waybar-network-module-spec.org +++ b/docs/design/2026-06-29-waybar-network-module-spec.org @@ -830,8 +830,13 @@ The concrete interaction defaults, so the GTK build isn't inventing them: - *After close*: the bar reflects the new state immediately (signal/refresh on next poll); a running speedtest/diagnose keeps running and notifies on finish (panel close doesn't cancel it). -- *Keyboard*: Esc closes; Tab moves between sections; arrows move rows; Enter - fires the section primary; the connection list is type-to-filter. +- *Keyboard*: Esc closes (wired); arrows move row focus and Enter activates a + row (GTK ListBox defaults — row-activate connects, never disconnects); Tab is + the plain GTK focus chain, widget by widget (inside a list it crawls row by + row — no section jumps); there is NO type-to-filter. Verified live via + targeted-key AT-SPI probe 2026-07-02; the earlier tab-between-sections and + type-to-filter claims were aspirational and are struck. If section-jump Tab + or filtering is ever wanted, it's a new task, not an existing behavior. * Connection management (nmcli) @@ -902,12 +902,16 @@ Shipped 2026-07-02 (dotfiles 775771b). Keybind now calls a =wlogout-menu= wrappe CLOSED: [2026-07-02 Thu] Fixed in dotfiles 0f017d4: viewmodel.toast_plan owns the toast policy — errors show sticky and ignore the post-op refresh's empty clear (worst case: a forget failure's error was wiped within ~2s by its own refresh), and the next real status replaces them. Successes keep the 4s fade. 7 policy tests added; 41 suites green. -** DOING [#C] Net panel: verify claimed keyboard navigation :test:network:waybar: +** DONE [#C] Net panel: verify claimed keyboard navigation :test:network:waybar: +CLOSED: [2026-07-02 Thu] Found during the bluetooth-panel UX pass (2026-07-02). The V2 spec claims tab-between-sections, arrow-key row navigation, and type-to-filter, but no custom keyboard code exists in the panel — arrows and type-ahead may ride GTK ListBox defaults, tab-between-sections likely doesn't. Verify each claim against the live panel (AT-SPI smoke can assert focus order); implement or strike the claims from the spec so spec and panel agree. *** 2026-07-02 Thu @ 13:05:00 -0400 Code-level pass done; live probe deferred (Craig in a Zoom meeting) Code reality (dotfiles net/src/net): Esc close is wired (gui EventControllerKey); row-activated -> primary is wired for both connection lists (pages.py:122,126), so Enter-on-row rides the GTK ListBox activate binding; arrows ride ListBox defaults; NOTHING implements type-to-filter (no search/filter code exists — that claim is false as written); Tab is the plain GTK focus chain, widget by widget, not section jumps. Live AT-SPI probe plan: launch panel in test mode, drive keys via hyprctl dispatch sendshortcut targeted AT THE PANEL WINDOW (never the focused surface — wtype/ydotool absent anyway), gate every key on the panel holding focus, never send Enter on the available list (real connect risk). BLOCKED at 13:05: active window is zoom (meeting) — no test windows, no synthetic input until clear. Then: verify focus order + arrows + no-filter live, strike/reword the spec's keyboard bullet to match. +*** 2026-07-02 Thu @ 14:57:18 -0400 Ran the live probe; spec bullet reworded to match reality +Zoom ended ~14:45; probe ran per plan (panel in test mode, hyprctl dispatch sendshortcut targeted at the panel address, every key gated on panel focus, Enter never sent). Verdicts: arrows move row focus and Enter rides the ListBox activate binding (TRUE — kept); Esc closes (TRUE — kept); Tab is the plain GTK widget-by-widget chain and inside a list crawls row by row, no section jumps (claim FALSE — struck); type-to-filter does not exist (claim FALSE — struck; typing into the 24-row Saved list filtered nothing). Spec's Keyboard bullet reworded with the live evidence and a note that section-jump Tab or filtering would be new work. Probe gotchas for reuse: AT-SPI list items have empty accessible names, so row identity needs get_index_in_parent(); a killed test panel can leave a windowless single-instance process that eats the next launch via D-Bus activation — pkill -9 -f 'net panel$' and wait before relaunching. + ** TODO [#C] Window focus lost when unhiding stashed windows :bug:hyprland: :PROPERTIES: :LAST_REVIEWED: 2026-06-24 |
