mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-06 04:29:34 +02:00
The wifi panel was a bar-widget xdg-popup which Hyprland doesn't grant keyboard focus to until the user clicks or hovers it — keys typed after a SUPER+CTRL+W summon went to whatever previously had focus. New shared Common.KeyboardPanel scaffolding: layer-shell PanelWindow with WlrKeyboardFocus.Exclusive (granted at map time, the protocol-level equivalent of focus-on-launch for xdg-toplevels), full-screen anchored with a Region mask that subtracts the bar strip so bar widgets stay clickable, MouseArea for outside-click dismissal, TransformWatcher for reactive anchor-position tracking. API is a subset of Common.PopupCard (no centerOnBar / triggerMode / containsMouse yet — adding when the other bar popups migrate). networkPanel.qml uses it. Adds full keyboard navigation: j/k or Up/Down — move selection Return/Space — connect (or disconnect if already connected) x — forget the highlighted network r — refresh scan Esc — close ListView (with positionViewAtIndex on currentIndex) replaces the Repeater+Column inside Flickable so the selected row stays visible as j/k walks past the cap. A 1.5s Timer re-polls detailsProc while open so the connection details (IP, gateway, signal) populate when routing actually comes up after a connect rather than waiting for re-summon. Rows: lock glyph on the right for protected-and-not-connected, X (forget) for connected — aligned to the same 22-wide column. Connect glyph in the passphrase prompt switched to a check, no separate cancel (Esc handles it). SUPER+CTRL+W in utilities.lua now toggles this panel via omarchy-shell-ipc instead of launching Impala. Right-click on the bar icon still launches Impala as a fallback for hidden SSIDs / enterprise auth / iwd edge cases.