Repository navigation
v2.7.0 — RGB layer module: moods, master brightness, persistence
The macro-based per-layer underglow from v2.6.0 is replaced by an event-driven firmware module (zmk-rgb-layer/). Lower latency, switchable resting "moods", a brightness that every colour respects, and settings that survive a reboot.
Highlights
- Per-layer colour — the underglow shows the highest active layer (NAV indigo, CODE magenta, MEDIA amber, SYS red, gaming green/blue). A diff-cache emits a single
&rgb_ugcall per change, so it's noticeably snappier than the old macros. - Three base moods — on the SYS layer,
Z= dark (off),X= dim teal (default),C= cycle effects (breathe → spectrum → swirl). Live preview while you hold SYS. - Master brightness (day/night) — SYS
Q/Abrighten/dim everything; the level is applied to every layer colour. - Persists across reboots — your mood + brightness are saved and restored on boot, so a power-cycle or soft-off comes back the way you left it instead of resetting to the default teal.
- Both halves stay in sync — if one half powers on later than the other, the central re-asserts the correct colour once they reconnect.
Under the hood
- Central-only Zephyr module; the peripheral strip updates via the forwarded global
&rgb_ugbehaviour. - Now built in CI (the in-repo module is wired into
build.yamlviaZMK_EXTRA_MODULES). - Keymap cleanup: CODE is a plain
&mo 2(no hold-tap), and DEL moved to the MEDIA layer.
Not included (tracked separately)
- A reactive "typed-column lights up" effect — the underglow is per-column-addressable, but it needs a custom strip-driving engine. Follow-up issue filed.
Flashing
mise run flash-release # double-tap reset: left, then rightIf a previous ZMK Studio edit is stuck, run mise run flash-release-reset first. See the README for details.
Closes #33.