allow for overriding the base layer hue and the caps lock layer hue, per keyboard, demonstrated on the preonic

This commit is contained in:
Sadek Baroudi 2021-03-29 00:39:25 -07:00
parent 70ec78a609
commit 77869a7d37
3 changed files with 26 additions and 9 deletions

View File

@ -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

View File

@ -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:

View File

@ -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