void reset_keyboard(void) {
clear_keyboard();
-#if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_ENABLE_BASIC))
+#if defined(AUDIO_ENABLE) || (defined(MIDI_ENABLE) && defined(MIDI_BASIC))
music_all_notes_off();
uint16_t timer_start = timer_read();
PLAY_SONG(goodbye_song);
#else
wait_ms(250);
#endif
-#ifdef CATERINA_BOOTLOADER
+// this is also done later in bootloader.c - not sure if it's neccesary here
+#ifdef BOOTLOADER_CATERINA
*(uint16_t *)0x0800 = 0x7777; // these two are a-star-specific
#endif
bootloader_jump();
rgblight_toggle();
}
return false;
- case RGB_MOD:
+ case RGB_MODE_FORWARD:
if (record->event.pressed) {
- rgblight_step();
+ uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT));
+ if(shifted) {
+ rgblight_step_reverse();
+ }
+ else {
+ rgblight_step();
+ }
+ }
+ return false;
+ case RGB_MODE_REVERSE:
+ if (record->event.pressed) {
+ uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT));
+ if(shifted) {
+ rgblight_step();
+ }
+ else {
+ rgblight_step_reverse();
+ }
}
return false;
case RGB_HUI:
uint8_t shifted = get_mods() & ((MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)
|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)));
+#ifdef GRAVE_ESC_ALT_OVERRIDE
+ // if ALT is pressed, ESC is always sent
+ // this is handy for the cmd+opt+esc shortcut on macOS, among other things.
+ if (get_mods() & (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT))) {
+ shifted = 0;
+ }
+#endif
+
#ifdef GRAVE_ESC_CTRL_OVERRIDE
- // if CTRL is pressed, ESC is always read as ESC, even if SHIFT or GUI is pressed.
+ // if CTRL is pressed, ESC is always sent
// this is handy for the ctrl+shift+esc shortcut on windows, among other things.
- if (get_mods() & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)))
+ if (get_mods() & (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL))) {
+ shifted = 0;
+ }
+#endif
+
+#ifdef GRAVE_ESC_GUI_OVERRIDE
+ // if GUI is pressed, ESC is always sent
+ if (get_mods() & (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI))) {
+ shifted = 0;
+ }
+#endif
+
+#ifdef GRAVE_ESC_SHIFT_OVERRIDE
+ // if SHIFT is pressed, ESC is always sent
+ if (get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) {
shifted = 0;
+ }
#endif
if (record->event.pressed) {
#ifdef BACKLIGHT_BREATHING
+#ifdef NO_BACKLIGHT_CLOCK
+void breathing_defaults(void) {}
+void breathing_intensity_default(void) {}
+#else
+
#define BREATHING_NO_HALT 0
#define BREATHING_HALT_OFF 1
#define BREATHING_HALT_ON 2
}
-
-
+#endif // NO_BACKLIGHT_CLOCK
#endif // breathing
#else // backlight
__attribute__((weak))
uint16_t hex_to_keycode(uint8_t hex)
{
+ hex = hex & 0xF;
if (hex == 0x0) {
return KC_0;
} else if (hex < 0xA) {