feat(keyboard): multi-layout cycle bind + summer-bar language parity
All checks were successful
Check / eval (push) Successful in 2m59s

SUPER+SHIFT+K → hyprctl switchxkblayout current next, rendered only
when the session layout has a comma — the same gate as the Waybar
language indicator. Bind data is a separate multiLayoutBinds list in
keybinds.nix (still one source); hyprland.nix and the rofi cheatsheet
gate on the identical condition, so bind and cheatsheet cannot drift.
`current` targets the focused keyboard, so per-device-overridden
boards (single layout) are a no-op.

Parity: hyprland/language (with the keyboard glyph) added to both
summer waybar.jsonc whole-swaps + #language in their CSS. Static JSON
cannot eval-gate, so on summer themes the module shows even with one
layout — parity-over-minimalism, deliberate. Found en route:
summer-night has an idle_inhibitor the generated bar lacks (reverse
gap) — folded into backlog item 13.

Also — agent/BACKLOG.md gains items 21-24 from Bernardo's Latitude
5410 hardware QA (waybar crash on theme switch + no respawn; nameless
network-menu rows; a no-update sys-rebuild; Back-everywhere audit),
queued ahead of everything; HARDWARE-QUEUE's snapshot re-test now
carries the "update to >= a47aa3a + relogin" precondition, since
findings 5/6 match the pre-polkit-agent behavior exactly.

Verified: V0 (flake check, both summer JSONs parse) + V1 both
directions (default single-layout build renders no bind; us,de via
extendModules renders bind AND cheatsheet row). V3 cycle check queued.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-04 14:11:12 +01:00
parent 1e4427f6af
commit f70838c5b5
11 changed files with 130 additions and 21 deletions

View File

@@ -17,6 +17,26 @@ Template:
---
## 2026-07-04 — Keyboard cycle bind + parity (iteration #6) + Latitude triage
- **Task:** BACKLOG NOW#5; mid-iteration Bernardo delivered Latitude
5410 hardware-QA findings (the machine got a real session!).
- **Did:** `multiLayoutBinds` in keybinds.nix (SUPER+SHIFT+K →
`switchxkblayout current next`), gated in hyprland.nix AND the rofi
cheatsheet on the same comma-in-layout condition; `hyprland/language`
+ `#language` CSS added to both summer whole-swaps (shows even
single-layout there — static JSON can't gate; deliberate). Reverse
parity gap found (summer-night has idle_inhibitor, generated bar
doesn't) → folded into item 13. **Triage:** four new NOW items from
hardware: #21 Waybar crash on theme switch + no respawn (top),
#22 nameless network-menu entries, #23 `sys-rebuild` (no-update
rebuild), #24 Back-everywhere audit.
- **Verified:** V0 (JSON + flake check) + V1 both directions
(single-layout build: no bind; `us,de` via extendModules: bind + the
cheatsheet row render; summer JSONs parse).
- **Pending:** V3 cycle-bind check queued; items 21/22/24 carry V3
re-checks on the Latitude.
- **Next suggestion:** #21 (waybar crash — stability pillar, user-hit).
## 2026-07-04 — Webcam follow-ups (loop iteration #5, quick item)
- **Task:** BACKLOG NOW#7 (Bernardo asked for "a quick item").
- **Did:** template `home.packages` gains a commented "Webcam tuning"