Эх сурвалжийг харах

[Keymap] Drashna Corne Keyboard updates (#5903)

* Re-enable Audio

And there was much rejoicingmake keebio/iris/rev2:drashna AUDIO_ENABLE=yes!

* Re-add debounce to ergodox EZ

* Fix rgb matrix helper function

* Make sure that RGM Matrix is checked properly

* Fix merge commit?

* Disable more RGB matrix modes

* Increase Debounce for Ergodox EZ

The performance improvements have made it necessary, actually

* Consolidate RGB Matrix layer indication function

And changes to iris

* Fix lighting issue for gamepad

* Update Corne Keyboard configuration

* Update Corne Keyboard layout

* Update KC_MAKE macro to better handle crkbd split

* Tweaks to Corne Keyboard Layout

* Enable RGB Matrix Sleep

* Update my code to use layer_state_t typedef
Drashna Jaelre 6 жил өмнө
parent
commit
6b8be98555

+ 13 - 3
keyboards/crkbd/keymaps/drashna/config.h

@@ -48,17 +48,24 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifdef RGB_MATRIX_ENABLE
 #   define RGB_MATRIX_KEYPRESSES // reacts to keypresses
 #   define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended
+#   define RGB_MATRIX_FRAMEBUFFER_EFFECTS
 
+// #   define DISABLE_RGB_MATRIX_ALPHAS_MODS
 #   define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+#   define DISABLE_RGB_MATRIX_BREATHING
 #   define DISABLE_RGB_MATRIX_CYCLE_ALL
+#   define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
 #   define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN
+// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN
+// #   define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
 #   define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
 #   define DISABLE_RGB_MATRIX_DUAL_BEACON
 #   define DISABLE_RGB_MATRIX_RAINBOW_BEACON
 #   define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
-// #define DISABLE_RGB_MATRIX_RAINDROPS
-// #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
-#   define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+// #   define DISABLE_RGB_MATRIX_RAINDROPS
+// #   define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+// #   define DISABLE_RGB_MATRIX_TYPING_HEATMAP
+// #   define DISABLE_RGB_MATRIX_DIGITAL_RAIN
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
@@ -67,8 +74,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+#   define DISABLE_RGB_MATRIX_SPLASH
+// #   define DISABLE_RGB_MATRIX_MULTISPLASH
 #   define DISABLE_RGB_MATRIX_SOLID_SPLASH
 #   define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH
+#endif
 
 #ifdef AUDIO_ENABLE
 #   define B6_AUDIO

+ 63 - 3
keyboards/crkbd/keymaps/drashna/keymap.c

@@ -20,9 +20,9 @@ enum crkbd_keycodes {
   ) \
   LAYOUT_wrapper( \
     KC_ESC,  K01,    K02,     K03,      K04,     K05,                        K06,     K07,     K08,     K09,     K0A,     KC_MINS, \
-    KC_TAB, ALT_T(K11),  K12, K13,      K14,     K15,                        K16,     K17,     K18,     K19,     K1A, RGUI_T(KC_QUOT), \
+    KC_TAB, ALT_T(K11),  K12, K13,      K14,     K15,                        K16,     K17,     K18,     K19,     K1A,     KC_QUOT, \
     OS_LSFT, CTL_T(K21), K22, K23,      K24,     K25,                        K26,     K27,     K28,     K29, RCTL_T(K2A), OS_RSFT, \
-                           LT(_LOWER,KC_GRV), KC_SPC,  KC_BSPC,     KC_DEL,  KC_ENT,  RAISE                                        \
+                                        KC_GRV,  KC_SPC,  BK_LWER, DL_RAIS,  KC_ENT,  OS_RGUI                                      \
   )
 #define LAYOUT_crkbd_base_wrapper(...)       LAYOUT_crkbd_base(__VA_ARGS__)
 
@@ -100,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_MAKE, _________________ADJUST_L1_________________,                    _________________ADJUST_R1_________________, KC_RESET,
     VRSN,    _________________ADJUST_L2_________________,                    _________________ADJUST_R2_________________, EEP_RST,
     _______, _________________ADJUST_L3_________________,                    _________________ADJUST_R3_________________, KC_MPLY,
-                                     _______, _______, _______,        KC_NUKE, TG_MODS, _______
+                                     _______, KC_NUKE, _______,        _______, TG_MODS, _______
   )
 };
 
@@ -156,6 +156,8 @@ void add_keylog(uint16_t keycode) {
     if (keycode < 60) {
         keylog_str[0] = code_to_name[keycode];
     }
+    keylog_str[KEYLOG_LEN] = 0;
+
     log_timer = timer_read();
 }
 
@@ -267,3 +269,61 @@ uint16_t get_tapping_term(uint16_t keycode) {
             return TAPPING_TERM;
     }
 }
+
+#ifdef RGB_MATRIX_ENABLE
+
+void suspend_power_down_keymap(void) {
+    rgb_matrix_set_suspend_state(true);
+}
+
+void suspend_wakeup_init_keymap(void) {
+    rgb_matrix_set_suspend_state(false);
+}
+
+void rgb_matrix_indicators_user(void) {
+    if ( userspace_config.rgb_layer_change &&
+#ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
+        !g_suspend_state &&
+#endif
+#if defined(RGBLIGHT_ENABLE)
+        (!rgblight_config.enable && rgb_matrix_config.enable)
+#else
+        rgb_matrix_config.enable
+#endif
+    ) {
+        switch (biton32(layer_state)) {
+            case _MODS:
+                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
+            case _GAMEPAD:
+                rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_UNDERGLOW); break;
+            case _DIABLO:
+                rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_UNDERGLOW); break;
+            case _RAISE:
+                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
+            case _LOWER:
+                rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
+            case _ADJUST:
+                rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_UNDERGLOW); break;
+            default:
+                switch (biton32(default_layer_state)) {
+                    case _QWERTY:
+                        rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_UNDERGLOW); break;
+                    case _COLEMAK:
+                        rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_UNDERGLOW); break;
+                    case _DVORAK:
+                        rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
+                    case _WORKMAN:
+                        rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_UNDERGLOW); break;
+                    case _NORMAN:
+                        rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_UNDERGLOW); break;
+                    case _MALTRON:
+                        rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_UNDERGLOW); break;
+                    case _EUCALYN:
+                        rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_UNDERGLOW); break;
+                    case _CARPLAX:
+                        rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_UNDERGLOW); break;
+                }
+        }
+    }
+}
+#endif

+ 1 - 1
keyboards/keebio/iris/keymaps/drashna/keymap.c

@@ -13,7 +13,7 @@
      KC_TAB , K01,    K02,     K03,      K04,     K05,                           K06,     K07,     K08,     K09,     K0A,     KC_BSLS, \
      KC_C1R3, K11,    K12,     K13,      K14,     K15,                           K16,     K17,     K18,     K19,     K1A,     KC_QUOT, \
      OS_LSFT, CTL_T(K21), K22, K23,      K24,     K25,     OS_LALT,     OS_RGUI, K26,     K27,     K28,     K29, RCTL_T(K2A), OS_RSFT, \
-                             LT(_LOWER,KC_GRV), KC_SPC,  KC_BSPC,         KC_DEL,  KC_ENT,  RAISE                                      \
+                             KC_GRV, KC_SPC,  LT(_LOWER,KC_BSPC),         LT(_RAISE,KC_DEL),  KC_ENT,  RAISE                           \
   )
 #define LAYOUT_iris_base_wrapper(...)       LAYOUT_iris_base(__VA_ARGS__)
 

+ 1 - 1
keyboards/keebio/iris/keymaps/drashna/rules.mk

@@ -5,7 +5,7 @@ CONSOLE_ENABLE    = no         # Console for debug(+400)
 COMMAND_ENABLE    = no        # Commands for debug and configuration
 TAP_DANCE_ENABLE  = no
 RGBLIGHT_ENABLE   = yes
-AUDIO_ENABLE      = no
+AUDIO_ENABLE      = yes
 NKRO_ENABLE       = yes
 BACKLIGHT_ENABLE  = no
 SWAP_HANDS_ENABLE = no

+ 1 - 0
layouts/community/ergodox/drashna/config.h

@@ -13,3 +13,4 @@
 #define PRODUCT         DrashnaDox - Hacked ErgoDox EZ Shine
 
 #undef DEBOUNCE
+#define DEBOUNCE 15

+ 16 - 24
layouts/community/ergodox/drashna/keymap.c

@@ -399,14 +399,6 @@ void suspend_wakeup_init_keymap(void) {
     rgb_matrix_set_suspend_state(false);
 }
 
-void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, bool default_layer) {
-    for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
-        if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
-            rgb_matrix_set_color( i, red, green, blue );
-        }
-    }
-}
-
 void rgb_matrix_indicators_user(void) {
     if ( userspace_config.rgb_layer_change &&
 #ifdef RGB_DISABLE_WHEN_USB_SUSPENDED
@@ -420,9 +412,9 @@ void rgb_matrix_indicators_user(void) {
     ) {
         switch (biton32(layer_state)) {
             case _MODS:
-                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
             case _GAMEPAD:
-                rgb_matrix_layer_helper(0xFF, 0x80, 0x00);
+                rgb_matrix_layer_helper(0xFF, 0x80, 0x00, LED_FLAG_MODIFIER);
                 rgb_matrix_set_color(32, 0x00, 0xFF, 0x00); // Q
                 rgb_matrix_set_color(31, 0x00, 0xFF, 0xFF); // W
                 rgb_matrix_set_color(30, 0xFF, 0x00, 0x00); // E
@@ -432,37 +424,37 @@ void rgb_matrix_indicators_user(void) {
                 rgb_matrix_set_color(35, 0x00, 0xFF, 0xFF); // D
                 rgb_matrix_set_color(34, 0x7A, 0x00, 0xFF); // F
 
-                rgb_matrix_set_color(27, 0xFF, 0xFF, 0xFF); // 1
-                rgb_matrix_set_color(26, 0x00, 0xFF, 0x00); // 2
+                rgb_matrix_set_color(userspace_config.swapped_numbers ? 27 : 26, 0xFF, 0xFF, 0xFF); // 1
+                rgb_matrix_set_color(userspace_config.swapped_numbers ? 26 : 27, 0x00, 0xFF, 0x00); // 2
                 rgb_matrix_set_color(25, 0x7A, 0x00, 0xFF); // 3
 
                 break;
             case _DIABLO:
-                rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+                rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
             case _RAISE:
-                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
             case _LOWER:
-                rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+                rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
             case _ADJUST:
-                rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+                rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
             default:
                 switch (biton32(default_layer_state)) {
                     case _QWERTY:
-                        rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
+                        rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
                     case _COLEMAK:
-                        rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
+                        rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
                     case _DVORAK:
-                        rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+                        rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
                     case _WORKMAN:
-                        rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
+                        rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
                     case _NORMAN:
-                        rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break;
+                        rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
                     case _MALTRON:
-                        rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+                        rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
                     case _EUCALYN:
-                        rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break;
+                        rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
                     case _CARPLAX:
-                        rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break;
+                        rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
                 }
         }
     }

+ 2 - 0
layouts/community/ergodox/drashna_glow/config.h

@@ -18,7 +18,9 @@
 #   define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
 #   define DISABLE_RGB_MATRIX_DUAL_BEACON
 #   define DISABLE_RGB_MATRIX_RAINBOW_BEACON
+#   define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
 #   define DISABLE_RGB_MATRIX_DIGITAL_RAIN
+#   define DISABLE_RGB_MATRIX_SOLID_REACTIVE
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
 #   define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS

+ 12 - 20
layouts/community/ortho_4x12/drashna/keymap.c

@@ -180,14 +180,6 @@ void suspend_wakeup_init_keymap(void) {
     rgb_matrix_set_suspend_state(false);
 }
 
-void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
-    for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
-        if (HAS_FLAGS(g_led_config.flags[i], LED_FLAG_MODIFIER)) {
-            rgb_matrix_set_color( i, red, green, blue );
-        }
-    }
-}
-
 void rgb_matrix_indicators_user(void) {
     uint8_t this_mod = get_mods();
     uint8_t this_led = host_keyboard_leds();
@@ -209,29 +201,29 @@ void rgb_matrix_indicators_user(void) {
         ) {
         switch (biton32(layer_state)) {
             case _RAISE:
-                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+                rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
             case _LOWER:
-                rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+                rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
             case _ADJUST:
-                rgb_matrix_layer_helper(0xFF, 0x00, 0x00); break;
+                rgb_matrix_layer_helper(0xFF, 0x00, 0x00, LED_FLAG_MODIFIER); break;
             default:
                 switch (biton32(default_layer_state)) {
                 case _QWERTY:
-                    rgb_matrix_layer_helper(0x00, 0xFF, 0xFF); break;
+                    rgb_matrix_layer_helper(0x00, 0xFF, 0xFF, LED_FLAG_MODIFIER); break;
                 case _COLEMAK:
-                    rgb_matrix_layer_helper(0xFF, 0x00, 0xFF); break;
+                    rgb_matrix_layer_helper(0xFF, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
                 case _DVORAK:
-                    rgb_matrix_layer_helper(0x00, 0xFF, 0x00); break;
+                    rgb_matrix_layer_helper(0x00, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
                 case _WORKMAN:
-                    rgb_matrix_layer_helper(0xD9, 0xA5, 0x21); break;
+                    rgb_matrix_layer_helper(0xD9, 0xA5, 0x21, LED_FLAG_MODIFIER); break;
                 case _NORMAN:
-                    rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D); break;
+                    rgb_matrix_layer_helper(0xFF, 0x7C, 0x4D, LED_FLAG_MODIFIER); break;
                 case _MALTRON:
-                    rgb_matrix_layer_helper(0xFF, 0xFF, 0x00); break;
+                    rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, LED_FLAG_MODIFIER); break;
                 case _EUCALYN:
-                    rgb_matrix_layer_helper(0xFF, 0x80, 0xBF); break;
+                    rgb_matrix_layer_helper(0xFF, 0x80, 0xBF, LED_FLAG_MODIFIER); break;
                 case _CARPLAX:
-                    rgb_matrix_layer_helper(0x00, 0x00, 0xFF); break;
+                    rgb_matrix_layer_helper(0x00, 0x00, 0xFF, LED_FLAG_MODIFIER); break;
                 }
         }
     }
@@ -327,7 +319,7 @@ void dip_update(uint8_t index, bool active) {
 #endif // KEYBOARD_planck_rev6
 
 #ifdef KEYBOARD_planck_ez
-uint32_t layer_state_set_keymap(uint32_t state) {
+layer_state_t layer_state_set_keymap(layer_state_t state) {
 
     palClearPad(GPIOB, 8);
     palClearPad(GPIOB, 9);

+ 4 - 4
users/drashna/drashna.c

@@ -187,13 +187,13 @@ void matrix_scan_user(void) {
 
 
 __attribute__ ((weak))
-uint32_t layer_state_set_keymap (uint32_t state) {
+layer_state_t layer_state_set_keymap (layer_state_t state) {
     return state;
 }
 
 // on layer change, no matter where the change was initiated
 // Then runs keymap's layer change check
-uint32_t layer_state_set_user(uint32_t state) {
+layer_state_t layer_state_set_user(layer_state_t state) {
     state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
 #ifdef RGBLIGHT_ENABLE
     state = layer_state_set_rgb(state);
@@ -203,12 +203,12 @@ uint32_t layer_state_set_user(uint32_t state) {
 
 
 __attribute__ ((weak))
-uint32_t default_layer_state_set_keymap (uint32_t state) {
+layer_state_t default_layer_state_set_keymap (layer_state_t state) {
     return state;
 }
 
 // Runs state check and changes underglow color and animation
-uint32_t default_layer_state_set_user(uint32_t state) {
+layer_state_t default_layer_state_set_user(layer_state_t state) {
     state = default_layer_state_set_keymap(state);
 #if 0
 #ifdef RGBLIGHT_ENABLE

+ 2 - 2
users/drashna/drashna.h

@@ -67,8 +67,8 @@ void shutdown_keymap(void);
 void suspend_power_down_keymap(void);
 void suspend_wakeup_init_keymap(void);
 void matrix_scan_keymap(void);
-uint32_t layer_state_set_keymap (uint32_t state);
-uint32_t default_layer_state_set_keymap (uint32_t state);
+layer_state_t layer_state_set_keymap (layer_state_t state);
+layer_state_t default_layer_state_set_keymap (layer_state_t state);
 void led_set_keymap(uint8_t usb_led);
 void eeconfig_init_keymap(void);
 

+ 17 - 13
users/drashna/process_records.c

@@ -39,22 +39,26 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
             clear_mods(); clear_oneshot_mods();
             send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), TAP_CODE_DELAY);
 #ifndef MAKE_BOOTLOADER
-        if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT )
+            if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT )
+#endif
+            {
+                #if defined(__arm__)
+                send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY);
+                #elif defined(BOOTLOADER_DFU)
+                send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY);
+                #elif defined(BOOTLOADER_HALFKAY)
+                send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY);
+                #elif defined(BOOTLOADER_CATERINA)
+                send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY);
+                #endif // bootloader options
+            }
+            if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); }
+#ifdef RGB_MATRIX_SPLIT_RIGHT
+            send_string_with_delay_P(PSTR(" RGB_MATRIX_SPLIT_RIGHT=yes OLED_DRIVER_ENABLE=no"), TAP_CODE_DELAY);
 #endif
-        {
-            #if defined(__arm__)
-            send_string_with_delay_P(PSTR(":dfu-util"), TAP_CODE_DELAY);
-            #elif defined(BOOTLOADER_DFU)
-            send_string_with_delay_P(PSTR(":dfu"), TAP_CODE_DELAY);
-            #elif defined(BOOTLOADER_HALFKAY)
-            send_string_with_delay_P(PSTR(":teensy"), TAP_CODE_DELAY);
-            #elif defined(BOOTLOADER_CATERINA)
-            send_string_with_delay_P(PSTR(":avrdude"), TAP_CODE_DELAY);
-            #endif // bootloader options
-        }
-        if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), TAP_CODE_DELAY); }
             send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), TAP_CODE_DELAY);
         }
+
         break;
 
     case VRSN: // Prints firmware version

+ 12 - 1
users/drashna/rgb_stuff.c

@@ -275,7 +275,7 @@ void matrix_scan_rgb(void) {
 }
 
 
-uint32_t layer_state_set_rgb(uint32_t state) {
+layer_state_t layer_state_set_rgb(layer_state_t state) {
 #ifdef RGBLIGHT_ENABLE
     if (userspace_config.rgb_layer_change) {
         switch (biton32(state)) {
@@ -334,3 +334,14 @@ uint32_t layer_state_set_rgb(uint32_t state) {
 
     return state;
 }
+
+#ifdef RGB_MATRIX_ENABLE
+extern led_config_t g_led_config;
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type) {
+    for (int i = 0; i < DRIVER_LED_TOTAL; i++) {
+        if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
+            rgb_matrix_set_color( i, red, green, blue );
+        }
+    }
+}
+#endif

+ 4 - 2
users/drashna/rgb_stuff.h

@@ -15,7 +15,9 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record);
 void scan_rgblight_fadeout(void);
 void keyboard_post_init_rgb(void);
 void matrix_scan_rgb(void);
-uint32_t layer_state_set_rgb(uint32_t state);
-uint32_t default_layer_state_set_rgb(uint32_t state);
+layer_state_t layer_state_set_rgb(layer_state_t state);
+layer_state_t default_layer_state_set_rgb(layer_state_t state);
 void rgblight_sethsv_default_helper(uint8_t index);
 void rgb_matrix_set_color_all( uint8_t red, uint8_t green, uint8_t blue );
+
+void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue, uint8_t led_type);

+ 1 - 0
users/drashna/rules.mk

@@ -33,6 +33,7 @@ ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
     endif
 endif
 
+RGB_MATRIX_ENABLE ?= no
 ifneq ($(strip $(RGB_MATRIX_ENABLE)), no)
     SRC += rgb_stuff.c
 endif

+ 2 - 2
users/drashna/template.c

@@ -62,11 +62,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
 
 __attribute__ ((weak))
-uint32_t layer_state_set_keymap (uint32_t state) {
+layer_state_t layer_state_set_keymap (layer_state_t state) {
   return state;
 }
 
-uint32_t layer_state_set_user (uint32_t state) {
+layer_state_t layer_state_set_user (layer_state_t state) {
   return layer_state_set_keymap (state);
 }