fix(keyboard): isolate new-keyboard layout to its own device
The interactive new-keyboard picker applied the chosen layout with `hyprctl switchxkblayout <device> <index>`, which flips the *shared* layout for every keyboard without its own per-device config — so picking a layout for an external board dragged the built-in keyboard along, and the change stuck after unplug (it's global state, not device-bound). Compounding it, the candidate `keyboard.layouts` pool was merged into `input.kb_layout`, loading those layouts onto the session keyboard too. Apply the choice as a per-device `hyprctl keyword device[<name>]:kb_layout` instead — the runtime twin of the declarative `keyboard.devices` blocks — so it isolates that one keyboard and never touches the built-in board. Keep the candidate pool out of `input.kb_layout` (session keyboard carries only `keyboard.layout`); the pool is for external boards, applied per-device. Also put `nomarchy-keyboard-watch` on PATH when enabled (it was store-path only via exec-once, so undiscoverable) for debugging. Found on the Latitude 5410 hardware sweep; picker itself verified working. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -105,10 +105,11 @@ in
|
||||
picker. When non-empty, a small watcher runs in the session: when a
|
||||
keyboard connects that isn't covered by nomarchy.keyboard.devices and
|
||||
hasn't been chosen before, it pops a rofi picker (these layouts plus
|
||||
the primary nomarchy.keyboard.layout), applies the choice, and
|
||||
remembers it per-device (~/.local/state) — re-applying automatically
|
||||
on later reconnects. The runtime-remember complement to the
|
||||
declarative keyboard.devices; a stateful runtime piece by design.
|
||||
the primary nomarchy.keyboard.layout), applies the choice to that
|
||||
keyboard only (a per-device kb_layout, so the built-in board is left
|
||||
alone), and remembers it per-device (~/.local/state) — re-applying
|
||||
automatically on later reconnects. The runtime-remember complement to
|
||||
the declarative keyboard.devices; a stateful runtime piece by design.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user