Skip to content

v2.6.0 — Per-layer underglow colour feedback (smart-off)

Choose a tag to compare

@rdlu rdlu released this 27 Jun 19:50
· 98 commits to main since this release
5d501fd

Per-layer underglow colour feedback (smart-off)

The base layer rests dark; holding a layer lights the underglow with that layer's colour, and releasing turns it off again — the strip glows only while you're in a non-base layer. Works the same on USB and Bluetooth.

Layer Colour
BASE (resting) off / dark
NAV indigo
CODE magenta
MEDIA amber
SYS|NUM red
MINECRFT / GAME green / blue (unchanged)

Implemented entirely in the keymap by wrapping each momentary-layer key in an &rgb_ug macro (RGB_ON + solid + colour on hold, RGB_OFF on release). CODE uses a custom &lt_code hold-tap so tap=DEL is preserved.

Also in this release

  • Corrected AUTO_OFF_USB handling — it's the battery-saver "off when USB disconnected" (not "off on USB"); now disabled so the base stays dark on USB.
  • Fixed a latent mise run draw bug (parse step was missing -c, silently dropping keymap-drawer icon/label maps).
  • KEYMAP.md underglow section + README memory-budget refresh.

Known issue

  • Colour-change lag on layer holds — structural to the stateless keymap approach (three sequential split-forwarded &rgb_ug calls + 50 ms render tick). A proper fix (event-driven listener, optional stateful base moods) is tracked in #33.

Not possible on this hardware

  • A QMK-style per-key reactive "ripple" effect — the board has only 7 sparse underglow LEDs per half (not per-key) and ZMK underglow has no keypress-reactive engine.

Full changelog: PR #32