aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-02 14:57:38 -0400
committerCraig Jennings <c@cjennings.net>2026-07-02 14:57:38 -0400
commite80df2bcf74bcac2e858fd6b3ffa137871a1d5d1 (patch)
tree2417f0ae676fd7621992408431931d70cd9932ce
parent33c89b1154360cb2ed9733465c1931521cdee136 (diff)
downloadarchsetup-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.org9
-rw-r--r--todo.org6
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)
diff --git a/todo.org b/todo.org
index fb20f5d..3a364fc 100644
--- a/todo.org
+++ b/todo.org
@@ -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