|
@@ -147,6 +147,7 @@ bool rgblight_twinkle_is_led_used(uint8_t index) {
|
|
|
/* Handler for fading/twinkling effect */
|
|
|
void scan_rgblight_fadeout(void) { // Don't effing change this function .... rgblight_sethsv is supppppper intensive
|
|
|
bool litup = false;
|
|
|
+
|
|
|
for (uint8_t light_index = 0; light_index < RGBLED_NUM; ++light_index) {
|
|
|
if (lights[light_index].enabled && timer_elapsed(lights[light_index].timer) > 10) {
|
|
|
rgblight_fadeout *light = &lights[light_index];
|
|
@@ -179,6 +180,7 @@ void start_rgb_light(void) {
|
|
|
uint8_t indices_count = 0;
|
|
|
uint8_t min_life = 0xFF;
|
|
|
uint8_t min_life_index = -1;
|
|
|
+
|
|
|
for (uint8_t index = 0; index < RGBLED_NUM; ++index) {
|
|
|
if (rgblight_twinkle_is_led_used(index)) {
|
|
|
continue;
|
|
@@ -248,7 +250,14 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
|
|
|
dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
|
|
|
eeconfig_update_user(userspace_config.raw);
|
|
|
if (userspace_config.rgb_layer_change) {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
|
|
|
+ rgblight_enable_noeeprom();
|
|
|
+# endif
|
|
|
layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better)
|
|
|
+# if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
|
|
|
+ } else {
|
|
|
+ rgblight_disable_noeeprom();
|
|
|
+# endif
|
|
|
}
|
|
|
}
|
|
|
#endif // RGBLIGHT_ENABLE
|
|
@@ -265,28 +274,182 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {
|
|
|
}
|
|
|
#endif
|
|
|
break;
|
|
|
+#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
|
|
|
+ case RGB_TOG:
|
|
|
+ // Split keyboards need to trigger on key-up for edge-case issue
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_toggle();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_toggle();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ break;
|
|
|
case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions
|
|
|
if (record->event.pressed) {
|
|
|
- bool is_eeprom_updated = false;
|
|
|
-#ifdef RGBLIGHT_ENABLE
|
|
|
+ bool is_eeprom_updated;
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
// This disables layer indication, as it's assumed that if you're changing this ... you want that disabled
|
|
|
if (userspace_config.rgb_layer_change) {
|
|
|
userspace_config.rgb_layer_change = false;
|
|
|
dprintf("rgblight layer change [EEPROM]: %u\n", userspace_config.rgb_layer_change);
|
|
|
is_eeprom_updated = true;
|
|
|
}
|
|
|
-#endif
|
|
|
-#if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && defined(RGB_MATRIX_FRAMEBUFFER_EFFECTS)
|
|
|
if (userspace_config.rgb_matrix_idle_anim) {
|
|
|
userspace_config.rgb_matrix_idle_anim = false;
|
|
|
dprintf("RGB Matrix Idle Animation [EEPROM]: %u\n", userspace_config.rgb_matrix_idle_anim);
|
|
|
is_eeprom_updated = true;
|
|
|
}
|
|
|
-#endif
|
|
|
+# endif
|
|
|
if (is_eeprom_updated) {
|
|
|
eeconfig_update_user(userspace_config.raw);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+# if defined(RGBLIGHT_DISABLE_KEYCODES) || defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ if (keycode == RGB_MODE_FORWARD && record->event.pressed) {
|
|
|
+ uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
|
|
|
+ if (shifted) {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_step_reverse();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_step_reverse();
|
|
|
+# endif
|
|
|
+ } else {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_step();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_step();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_MODE_REVERSE && record->event.pressed) {
|
|
|
+ uint8_t shifted = get_mods() & (MOD_MASK_SHIFT);
|
|
|
+ if (shifted) {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_step();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_step();
|
|
|
+# endif
|
|
|
+ } else {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_step_reverse();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_step_reverse();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_HUI) {
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_increase_hue();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_increase_hue();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_HUD) {
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_decrease_hue();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_decrease_hue();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_SAI) {
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_increase_sat();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_increase_sat();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_SAD) {
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_decrease_sat();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_decrease_sat();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_VAI) {
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_increase_val();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_increase_val();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_VAD) {
|
|
|
+# ifndef SPLIT_KEYBOARD
|
|
|
+ if (record->event.pressed) {
|
|
|
+# else
|
|
|
+ if (!record->event.pressed) {
|
|
|
+# endif
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_decrease_val();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_decrease_val();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_SPI) {
|
|
|
+ if (record->event.pressed) {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_increase_speed();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_increase_speed();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ } else if (keycode == RGB_SPD) {
|
|
|
+ if (record->event.pressed) {
|
|
|
+# if defined(RGBLIGHT_ENABLE) && !defined(RGBLIGHT_DISABLE_KEYCODES)
|
|
|
+ rgblight_decrease_speed();
|
|
|
+# endif
|
|
|
+# if defined(RGB_MATRIX_ENABLE) && !defined(RGB_MATRIX_DISABLE_KEYCODES)
|
|
|
+ rgb_matrix_decrease_speed();
|
|
|
+# endif
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+# endif
|
|
|
+#endif
|
|
|
+
|
|
|
break;
|
|
|
}
|
|
|
return true;
|