docs(roadmap): interactive new-keyboard layout prompt + persist

A runtime-remember complement to the declarative nomarchy.keyboard.devices:
a daemon watches Hyprland's socket, pops a rofi layout picker when an unknown
keyboard connects, applies it, and persists per-device so it re-applies on
reconnect — optionally writing the choice back into nomarchy.keyboard.devices.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-06-15 17:32:05 +01:00
parent aef45b3c8d
commit 69f959365e

View File

@@ -293,6 +293,17 @@ how to override it. Items marked ✓ are shipped.
declarative way). A Waybar `hyprland/language` indicator shows the active
layout, gated on more than one layout being in play (comma in the session
layout, or any per-device override) so single-layout bars stay clean.
- **Interactive new-keyboard prompt (runtime + persist):** a small daemon
listening to Hyprland's socket for keyboard hotplug — when an *unknown*
keyboard connects, pop a rofi layout picker, apply the choice
(`hyprctl switchxkblayout` among a configured candidate set, or reload the
device config), and persist it per-device to a state file so it re-applies
automatically on every later reconnect. The runtime-remember complement to
the declarative `nomarchy.keyboard.devices` above (set it once, on the fly,
no config editing). Nice bridge: offer to also write the choice into
`nomarchy.keyboard.devices` so it graduates into the reproducible config.
Note: a stateful runtime piece (like the wallpaper) — it sits outside the
pure-declarative model by design.
- Remaining: a multi-layout cycle bind (`hyprctl switchxkblayout` / xkb
`grp:` options) for switching layouts on one keyboard; add the
`hyprland/language` module to the summer whole-swap themes for parity