Initial: modular per-key RGB layer effect for ZMK

ZMK module providing per-key per-layer RGB effects via the modular
effect API (zmk_rgb_effect). Extracted from darknao's fork patches.

Contents:
- Layer effect: registers via ZMK_RGB_EFFECT_DEFINE, renders per-key
  colors based on active keymap layer
- Behaviors: underglow_color, underglow_battery, underglow_indicators
- DTS bindings: zmk,underglow-layer + behavior bindings
- Event: underglow_color_changed for reactive refresh

Requires: ZMK core with rgb-modular branch (effect registration API)
This commit is contained in:
afiqzudinhadi 2026-07-01 08:46:43 +08:00
commit 569dc85e0c
15 changed files with 557 additions and 0 deletions

9
CMakeLists.txt Normal file
View file

@ -0,0 +1,9 @@
if(CONFIG_ZMK_RGB_EFFECT_LAYER)
target_sources(app PRIVATE src/rgb_underglow_layer.c)
target_sources(app PRIVATE src/effects/layer_effect.c)
target_sources(app PRIVATE src/behaviors/behavior_underglow_color.c)
target_sources(app PRIVATE src/behaviors/behavior_underglow_battery.c)
target_sources(app PRIVATE src/behaviors/behavior_underglow_indicators.c)
target_sources(app PRIVATE src/events/underglow_color_changed.c)
target_include_directories(app PRIVATE include)
endif()