diff --git a/keyboards/preonic/keymaps/sadekbaroudi/config.h b/keyboards/preonic/keymaps/sadekbaroudi/config.h index 76ecd6141d..a3dcb2d2a0 100755 --- a/keyboards/preonic/keymaps/sadekbaroudi/config.h +++ b/keyboards/preonic/keymaps/sadekbaroudi/config.h @@ -31,6 +31,10 @@ #undef RGBLED_NUM #define RGBLED_NUM 16 // Number of LEDs +// See rgb_stuff.c for how these are applied - I wanted to flip these for my red themed keycaps +#define BASE_LAYER_RGB_HUE 0 +#define CAPS_LOCK_RGB_HUE 167 + /* enable advanced MIDI features: - MIDI notes can be added to the keymap - Octave shift and transpose diff --git a/users/sadekbaroudi/rgb_stuff.c b/users/sadekbaroudi/rgb_stuff.c index d7b1dc8e5f..0eedecff7e 100755 --- a/users/sadekbaroudi/rgb_stuff.c +++ b/users/sadekbaroudi/rgb_stuff.c @@ -76,16 +76,28 @@ layer_state_t layer_state_set_rgb_light(layer_state_t state) { uint8_t mode = RGBLIGHT_MODE_STATIC_LIGHT; switch (get_highest_layer(state|default_layer_state)) { case _COLEMAK: - if (is_caps_lock_on) { - rgblight_set_hsv_and_mode(HSV_RED, mode); - } else if (userspace_config.rgb_base_layer_override) { - xprintf("layer set: userspace_config.hue [EEPROM]: %u\n", userspace_config.hue); - xprintf("layer set: userspace_config.sat [EEPROM]: %u\n", userspace_config.sat); - xprintf("layer set: userspace_config.val [EEPROM]: %u\n", userspace_config.val); - xprintf("layer set: userspace_config.mode [EEPROM]: %u\n", userspace_config.mode); + if (is_caps_lock_on) { // If caps lock is enabled, force this setting + uint8_t caps_lock_rgb_hue = 0; // RED + uint8_t caps_lock_rgb_mode = mode; + #ifdef CAPS_LOCK_RGB_HUE + caps_lock_rgb_hue = CAPS_LOCK_RGB_HUE; + #endif + #ifdef CAPS_LOCK_RGB_MODE + caps_lock_rgb_mode = CAPS_LOCK_RGB_MODE; + #endif + rgblight_set_hsv_and_mode(caps_lock_rgb_hue, 255, 255, caps_lock_rgb_mode); + } else if (userspace_config.rgb_base_layer_override) { // If the base layer override is enabled, use that rgblight_set_hsv_and_mode(userspace_config.hue, userspace_config.sat, userspace_config.val, userspace_config.mode); - } else { - rgblight_set_hsv_and_mode(HSV_BLUE, mode); + } else { // if base layer override is disabled, always show the base setting + uint8_t base_layer_rgb_hue = 167; // BLUE + uint8_t base_layer_rgb_mode = mode; + #ifdef BASE_LAYER_RGB_HUE + base_layer_rgb_hue = BASE_LAYER_RGB_HUE; + #endif + #ifdef BASE_LAYER_RGB_MODE + base_layer_rgb_mode = BASE_LAYER_RGB_MODE; + #endif + rgblight_set_hsv_and_mode(base_layer_rgb_hue, 255, 255, base_layer_rgb_mode); } break; case _QWERTY: diff --git a/users/sadekbaroudi/sadekbaroudi.h b/users/sadekbaroudi/sadekbaroudi.h index 6913785847..7814ccdb56 100755 --- a/users/sadekbaroudi/sadekbaroudi.h +++ b/users/sadekbaroudi/sadekbaroudi.h @@ -63,6 +63,7 @@ typedef union { uint8_t sat; uint8_t val; uint8_t speed; + uint8_t caps_lock_hue; }; } userspace_config_t; // clang-format on