~ruther/qmk_firmware

6b8be985551efc5a5f95dfea6dc1554352bc46e0 — Drashna Jaelre 6 years ago 2a8fd58 + 89e9785
[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
M keyboards/crkbd/keymaps/drashna/config.h => keyboards/crkbd/keymaps/drashna/config.h +13 -3
@@ 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

M keyboards/crkbd/keymaps/drashna/keymap.c => keyboards/crkbd/keymaps/drashna/keymap.c +63 -3
@@ 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

M keyboards/keebio/iris/keymaps/drashna/keymap.c => keyboards/keebio/iris/keymaps/drashna/keymap.c +1 -1
@@ 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__)


M keyboards/keebio/iris/keymaps/drashna/rules.mk => keyboards/keebio/iris/keymaps/drashna/rules.mk +1 -1
@@ 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

M layouts/community/ergodox/drashna/config.h => layouts/community/ergodox/drashna/config.h +1 -0
@@ 13,3 13,4 @@
#define PRODUCT         DrashnaDox - Hacked ErgoDox EZ Shine

#undef DEBOUNCE
#define DEBOUNCE 15

M layouts/community/ergodox/drashna/keymap.c => layouts/community/ergodox/drashna/keymap.c +16 -24
@@ 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;
                }
        }
    }

M layouts/community/ergodox/drashna_glow/config.h => layouts/community/ergodox/drashna_glow/config.h +2 -0
@@ 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

M layouts/community/ortho_4x12/drashna/keymap.c => layouts/community/ortho_4x12/drashna/keymap.c +12 -20
@@ 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);

M users/drashna/drashna.c => users/drashna/drashna.c +4 -4
@@ 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

M users/drashna/drashna.h => users/drashna/drashna.h +2 -2
@@ 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);


M users/drashna/process_records.c => users/drashna/process_records.c +17 -13
@@ 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

M users/drashna/rgb_stuff.c => users/drashna/rgb_stuff.c +12 -1
@@ 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

M users/drashna/rgb_stuff.h => users/drashna/rgb_stuff.h +4 -2
@@ 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);

M users/drashna/rules.mk => users/drashna/rules.mk +1 -0
@@ 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

M users/drashna/template.c => users/drashna/template.c +2 -2
@@ 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);
}