underglow-layer: enable with EXPERIMENTAL_RGB_LAYER Kconfig

This commit is contained in:
darknao 2024-05-23 16:09:11 +02:00 committed by afiqzudinhadi
parent a1d67a4e92
commit f20c011fc6
2 changed files with 12 additions and 5 deletions

View file

@ -335,6 +335,10 @@ config ZMK_RGB_UNDERGLOW_AUTO_OFF_USB
bool "Turn off RGB underglow when USB is disconnected" bool "Turn off RGB underglow when USB is disconnected"
depends on USB_DEVICE_STACK depends on USB_DEVICE_STACK
config EXPERIMENTAL_RGB_LAYER
bool "Experimental per-key per-layer RGB underglow"
default n
endif # ZMK_RGB_UNDERGLOW endif # ZMK_RGB_UNDERGLOW
menuconfig ZMK_BACKLIGHT menuconfig ZMK_BACKLIGHT

View file

@ -52,7 +52,7 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
#endif #endif
#if DT_HAS_COMPAT_STATUS_OKAY(zmk_underglow_layer) #if DT_HAS_COMPAT_STATUS_OKAY(zmk_underglow_layer) && IS_ENABLED(CONFIG_EXPERIMENTAL_RGB_LAYER)
#define UNDERGLOW_LAYER_ENABLED 1 #define UNDERGLOW_LAYER_ENABLED 1
#endif #endif
@ -71,7 +71,9 @@ enum rgb_underglow_effect {
UNDERGLOW_EFFECT_BREATHE, UNDERGLOW_EFFECT_BREATHE,
UNDERGLOW_EFFECT_SPECTRUM, UNDERGLOW_EFFECT_SPECTRUM,
UNDERGLOW_EFFECT_SWIRL, UNDERGLOW_EFFECT_SWIRL,
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
UNDERGLOW_EFFECT_LAYER_INDICATORS, UNDERGLOW_EFFECT_LAYER_INDICATORS,
#endif
UNDERGLOW_EFFECT_NUMBER // Used to track number of underglow effects UNDERGLOW_EFFECT_NUMBER // Used to track number of underglow effects
}; };
@ -504,9 +506,6 @@ static void zmk_rgb_underglow_tick(struct k_work *work) {
case UNDERGLOW_EFFECT_SWIRL: case UNDERGLOW_EFFECT_SWIRL:
zmk_rgb_underglow_effect_swirl(); zmk_rgb_underglow_effect_swirl();
break; break;
case UNDERGLOW_EFFECT_LAYER_INDICATORS:
// zmk_rgb_underglow_set_layer();
break;
} }
zmk_led_write_pixels(); zmk_led_write_pixels();
@ -515,7 +514,7 @@ static void zmk_rgb_underglow_tick(struct k_work *work) {
K_WORK_DEFINE(underglow_tick_work, zmk_rgb_underglow_tick); K_WORK_DEFINE(underglow_tick_work, zmk_rgb_underglow_tick);
static void zmk_rgb_underglow_tick_handler(struct k_timer *timer) { static void zmk_rgb_underglow_tick_handler(struct k_timer *timer) {
if (!state.on || state.current_effect == UNDERGLOW_EFFECT_LAYER_INDICATORS) { if (!state.on || state.layer_enabled) {
return; return;
} }
@ -648,9 +647,11 @@ void zmk_rgb_set_ext_power(void) {
int zmk_rgb_underglow_on(void) { int zmk_rgb_underglow_on(void) {
zmk_rgb_underglow_transient_on(); zmk_rgb_underglow_transient_on();
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
if (state.current_effect == UNDERGLOW_EFFECT_LAYER_INDICATORS) { if (state.current_effect == UNDERGLOW_EFFECT_LAYER_INDICATORS) {
state.layer_enabled = true; state.layer_enabled = true;
} }
#endif
return zmk_rgb_underglow_save_state(); return zmk_rgb_underglow_save_state();
} }
@ -709,7 +710,9 @@ int zmk_rgb_underglow_select_effect(int effect) {
state.current_effect = effect; state.current_effect = effect;
state.animation_step = 0; state.animation_step = 0;
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
state.layer_enabled = (effect == UNDERGLOW_EFFECT_LAYER_INDICATORS); state.layer_enabled = (effect == UNDERGLOW_EFFECT_LAYER_INDICATORS);
#endif
return zmk_rgb_underglow_save_state(); return zmk_rgb_underglow_save_state();
} }