~ruther/qmk_firmware

493fbb3dc1423e0d42e57a6dc7ba38b880b37eb5 — Drashna Jaelre 6 years ago e0a03bf
[Keymap] Update to drashna keymaps: Conform to QMK Standards Edition (#5377)

* Use correct functions for dip switch code

* Some planck cleanup

* Hopefully fix RGB Sleeping with RGB Matrix

* Add rgbmatrix extern

* Add numpad 5x6 layout

* RGB Tweaks

* Add RGB startup animation

* Minor RGB Fixes

* Turn off RBG on planck

* Enable separate storage of EEPROM

* Update Macro pad

* Add BJohnson Keymap and minor darshna tweaks

* Clean up rgb and other code for new numpad

* Remove clicky hachy thing

* Update my code to use built in MOD_MASK defines

* Fix up modifier calls

* Tweak to KC_MAKE

* Tweak to KC_MAKE

* Add Semi-colon to numpad

* Preprocess out rgb matrix stuff if not enabled

* Formatting of KC_MAKE

* Add stuff for matrix and light rgb coexistance

* Fix bad spelling

* Change where layer indication shows based on rgblight status

* Force set mods in KC_MAKE

* Optimize CRKBD
M keyboards/crkbd/keymaps/drashna/keymap.c => keyboards/crkbd/keymaps/drashna/keymap.c +5 -5
@@ 187,10 187,10 @@ const char* read_modifier_state(void) {
  uint8_t one_shot = get_oneshot_mods();

  snprintf(modifier_state_str, sizeof(modifier_state_str), "Mods:%s %s %s %s",
    (modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) ? "CTL" : "   ",
    (modifiers & MODS_GUI_MASK || one_shot & MODS_GUI_MASK) ? "GUI" : "   ",
    (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) ? "ALT" : "   ",
    (modifiers & MODS_SHIFT_MASK || one_shot & MODS_SHIFT_MASK) ? "SFT" : "   "
    (modifiers & MOD_MASK_CTRL || one_shot & MOD_MASK_CTRL) ? "CTL" : "   ",
    (modifiers & MOD_MASK_GUI || one_shot & MOD_MASK_GUI) ? "GUI" : "   ",
    (modifiers & MOD_MASK_ALT || one_shot & MOD_MASK_ALT) ? "ALT" : "   ",
    (modifiers & MOD_MASK_SHIFT || one_shot & MOD_MASK_SHIFT) ? "SFT" : "   "
  );

  return modifier_state_str;


@@ 252,7 252,7 @@ void matrix_render_user(struct CharacterMatrix *matrix) {
    // matrix_write_ln(matrix, read_keylog());
    matrix_write_ln(matrix, read_keylogs());
    // matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
    matrix_write(matrix, read_host_led_state());
    // matrix_write(matrix, read_host_led_state());
    //matrix_write_ln(matrix, read_timelog());
  } else {
    matrix_write(matrix, read_logo());

M keyboards/crkbd/keymaps/drashna/rules.mk => keyboards/crkbd/keymaps/drashna/rules.mk +1 -1
@@ 24,8 24,8 @@ BOOTLOADER = qmk-dfu

# If you want to change the display of OLED, you need to change here
SRC +=  ./lib/glcdfont.c \
        ./lib/rgb_state_reader.c \
        ./lib/logo_reader.c \
        # ./lib/rgb_state_reader.c \
        # ./lib/keylogger.c \
        # ./lib/host_led_state_reader.c \
        # ./lib/mode_icon_reader.c \

M layouts/community/ergodox/drashna/keymap.c => layouts/community/ergodox/drashna/keymap.c +8 -8
@@ 360,15 360,15 @@ void matrix_scan_keymap(void) {  // runs frequently to update info
    // Since we're not using the LEDs here for layer indication anymore,
    // then lets use them for modifier indicators.  Shame we don't have 4...
    // Also, no "else", since we want to know each, independently.
    if (modifiers & MODS_SHIFT_MASK || led_usb_state & (1<<USB_LED_CAPS_LOCK) || one_shot & MODS_SHIFT_MASK) {
    if ( ( modifiers | one_shot ) & MOD_MASK_SHIFT || led_usb_state & (1<<USB_LED_CAPS_LOCK) ) {
      ergodox_right_led_2_on();
      ergodox_right_led_2_set( 50 );
    }
    if (modifiers & MODS_CTRL_MASK || one_shot & MODS_CTRL_MASK) {
    if ( ( modifiers | one_shot ) & MOD_MASK_CTRL) {
      ergodox_right_led_1_on();
      ergodox_right_led_1_set( 10 );
    }
    if (modifiers & MODS_ALT_MASK || one_shot & MODS_ALT_MASK) {
    if ( ( modifiers | one_shot ) & MOD_MASK_ALT) {
      ergodox_right_led_3_on();
      ergodox_right_led_3_set( 10 );
    }


@@ 414,7 414,7 @@ void rgb_matrix_layer_helper (uint8_t red, uint8_t green, uint8_t blue) {
}

void rgb_matrix_indicators_user(void) {
  if (g_suspend_state || !rgb_matrix_config.enable || !userspace_config.rgb_layer_change) return;
  if (g_suspend_state || !rgb_matrix_config.enable || !userspace_config.rgb_layer_change) { return; }

  switch (biton32(layer_state)) {
    case _MODS:


@@ 464,20 464,20 @@ void rgb_matrix_indicators_user(void) {
      }
  }
#if 0
  if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
  if (this_mod & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MOD_MASK_SHIFT) {
    rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
    rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
  }
  if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
  if (this_mod & MOD_MASK_CTRL || this_osm & MOD_MASK_CTRL) {
    rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
    rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
    rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);

  }
  if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
  if (this_mod & MOD_MASK_GUI || this_osm & MOD_MASK_GUI) {
    rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
  }
  if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
  if (this_mod & MOD_MASK_ALT || this_osm & MOD_MASK_ALT) {
    rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
  }
#endif

M layouts/community/ergodox/drashna_glow/config.h => layouts/community/ergodox/drashna_glow/config.h +11 -0
@@ 8,4 8,15 @@
#undef DEBOUNCE
#define DEBOUNCE 5

#ifdef RGB_MATRIX_ENABLE
// #define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
#define RGB_DISABLE_WHEN_USB_SUSPENDED  true// turn off effects when suspended
// #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
// #define EECONFIG_RGB_MATRIX (uint32_t *)16
#endif

#undef DEBOUNCE
#define DEBOUNCE 1

M layouts/community/ergodox/drashna_glow/keymap.c => layouts/community/ergodox/drashna_glow/keymap.c +3 -0
@@ 1,6 1,7 @@
/* placeholder file */
#include QMK_KEYBOARD_H

#ifdef RGB_MATRIX_ENABLE
const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {

    /*{row | col << 4}


@@ 65,3 66,5 @@ const rgb_led g_rgb_leds[DRIVER_LED_TOTAL] = {
    {{4|(8<<4)},   {24.9*1, 16*2}, 1}, // LED 23
    {{4|(9<<4)},   {24.9*0, 16*2}, 1}, // LED 24
};

#endif

A layouts/community/numpad_5x6/bjohnson/config.h => layouts/community/numpad_5x6/bjohnson/config.h +25 -0
@@ 0,0 1,25 @@
#pragma once

// #define B6_AUDIO

#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN B7
#define RGBLED_NUM 16     // Number of LEDs
#define RGBLIGHT_ANIMATIONS

#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1

#define RGBLIGHT_SLEEP
#endif // RGBLIGHT_ENABLE

#ifdef AUDIO_ENABLE
#ifdef RGBLIGHT_ENABLE
#define NO_MUSIC_MODE
#endif // RGBLIGHT_ENABLE
#endif // AUDIO_ENABLE
#define TAP_CODE_DELAY 10

A layouts/community/numpad_5x6/bjohnson/keymap.c => layouts/community/numpad_5x6/bjohnson/keymap.c +51 -0
@@ 0,0 1,51 @@
#include QMK_KEYBOARD_H

extern rgblight_config_t rgblight_config;

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	[0] = LAYOUT_numpad_5x6(
		KC_F1,   LT(1,KC_F2),    KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
		KC_F3,   KC_F4,    KC_P7,   KC_P8,   KC_P9,
		KC_F5,   KC_F6,    KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
		KC_F7,   KC_F8,    KC_P1,   KC_P2,   KC_P3,
		KC_F9,   KC_F10,        KC_P0,       KC_PDOT, KC_PENT
  ),
	[1] = LAYOUT_numpad_5x6(
		RGB_TOG, _______,  _______, _______, _______, RESET,
		RGB_MOD, RGB_RMOD, _______, _______, _______,
		RGB_HUI, RGB_HUD,  _______, _______, _______, _______,
		RGB_SAI, RGB_SAD,  _______, _______, _______,
		RGB_VAI, RGB_VAD,       _______,     _______, _______
  ),
};


void keyboard_post_init_user(void) {
#ifdef RGBLIGHT_ENABLE
  uint8_t temp_mode = rgblight_config.mode;
	rgblight_enable_noeeprom();
	rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
	for (uint16_t i = 360; i > 0; i--) {
		rgblight_sethsv_noeeprom( ( i + 180) % 360, 255, 255);
    wait_ms(8);
	}
	led_set_user(host_keyboard_leds());
  rgblight_mode_noeeprom(temp_mode);
#endif
}

void led_set_user(uint8_t usb_led) {
  if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
    rgblight_sethsv_noeeprom_cyan();
  } else {
    rgblight_sethsv_noeeprom_magenta();
  }
}

void shutdown_user (void) {
  #ifdef RGBLIGHT_ENABLE
    rgblight_enable_noeeprom();
    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
    rgblight_setrgb_red();
  #endif // RGBLIGHT_ENABLE
}

A layouts/community/numpad_5x6/bjohnson/rules.mk => layouts/community/numpad_5x6/bjohnson/rules.mk +5 -0
@@ 0,0 1,5 @@
AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes
BACKLIGHT_ENABLE = no
NO_SECRETS = yes
BOOTMAGIC_ENABLE = lite

A layouts/community/numpad_5x6/drashna/config.h => layouts/community/numpad_5x6/drashna/config.h +18 -0
@@ 0,0 1,18 @@
#pragma once

// #define B6_AUDIO

#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN B1
#define RGBLED_NUM 16     // Number of LEDs

#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_SNAKE_LENGTH 2
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1
#endif // RGBLIGHT_ENABLE


#define TAP_CODE_DELAY 10

A layouts/community/numpad_5x6/drashna/keymap.c => layouts/community/numpad_5x6/drashna/keymap.c +22 -0
@@ 0,0 1,22 @@
#include QMK_KEYBOARD_H
#include "drashna.h"

#define F2_MCRO LT(_GAMEPAD, KC_F2)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
	[_NUMLOCK] = LAYOUT_numpad_5x6(
		KC_F1,   F2_MCRO,  KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
		KC_F3,   KC_F4,    KC_P7,   KC_P8,   KC_P9,
		KC_F5,   KC_F6,    KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
		KC_F7,   KC_F8,    KC_P1,   KC_P2,   KC_P3,
		KC_F9,   KC_COLN,       KC_P0,       KC_PDOT, KC_PENT
  ),

  [_GAMEPAD] = LAYOUT_numpad_5x6(
		RGB_TOG, _______,  _______, EEP_RST, KC_MAKE, RESET,
		RGB_MOD, RGB_RMOD, _______, _______, _______,
		RGB_HUI, RGB_HUD,  _______, _______, _______, _______,
		RGB_SAI, RGB_SAD,  _______, _______, _______,
		RGB_VAI, RGB_VAD,       _______,     _______, _______
  ),
};

A layouts/community/numpad_5x6/drashna/rules.mk => layouts/community/numpad_5x6/drashna/rules.mk +9 -0
@@ 0,0 1,9 @@
AUDIO_ENABLE      = no
RGBLIGHT_ENABLE   = yes
BACKLIGHT_ENABLE  = no
NO_SECRETS        = yes
BOOTMAGIC_ENABLE  = lite
INDICATOR_LIGHTS  = no
RGBLIGHT_TWINKLE  = yes
MACROS_ENABLED    = no
MAKE_BOOTLOADER   = yes

A layouts/community/numpad_5x6/layout.json => layouts/community/numpad_5x6/layout.json +6 -0
@@ 0,0 1,6 @@
["","","",""],
[{y:0.5},"","","",""],
["","","",{h:2},""],
["","",""],
["","","",{h:2},""],
[{w:2},"",""]

A layouts/community/numpad_5x6/readme.md => layouts/community/numpad_5x6/readme.md +3 -0
@@ 0,0 1,3 @@
# numpad_5x6

    LAYOUT_numpad_5x6

M layouts/community/ortho_4x12/drashna/config.h => layouts/community/ortho_4x12/drashna/config.h +5 -5
@@ 2,9 2,9 @@


#if defined(RGBLIGHT_ENABLE) && !defined(RGBLED_NUM)
#define RGB_DI_PIN D3
#define RGBLED_NUM 16     // Number of LEDs

#define RGB_DI_PIN B3
#define RGBLED_NUM 13     // Number of LEDs
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 12
#define RGBLIGHT_SAT_STEP 12
#define RGBLIGHT_VAL_STEP 12


@@ 17,10 17,10 @@
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses (will slow down matrix scan by a lot)
// #define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (not recommened)
// #define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
// #define RGB_DISABLE_WHEN_USB_SUSPENDED false // turn off effects when suspended
#define RGB_DISABLE_WHEN_USB_SUSPENDED true// turn off effects when suspended
// #define RGB_MATRIX_SKIP_FRAMES 1 // number of frames to skip when displaying animations (0 is full effect) if not defined defaults to 1
// #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 // limits maximum brightness of LEDs to 200 out of 255. If not defined maximum brightness is set to 255
// #define EECONFIG_RGB_MATRIX (uint32_t *)16
#define EECONFIG_RGB_MATRIX (uint32_t *)15
#endif

#if defined(KEYBOARD_lets_split_rev2)

M layouts/community/ortho_4x12/drashna/keymap.c => layouts/community/ortho_4x12/drashna/keymap.c +24 -15
@@ 19,7 19,12 @@

#ifdef RGB_MATRIX_ENABLE
extern bool g_suspend_state;
extern rgb_config_t rgb_matrix_config;
#endif
#ifdef RGBLIGHT_ENABLE
extern rgblight_config_t rgblight_config;
#endif


#ifdef BACKLIGHT_ENABLE
enum planck_keycodes {


@@ 162,13 167,13 @@ bool music_mask_user(uint16_t keycode) {

#ifdef RGB_MATRIX_ENABLE

void suspend_power_down_keymap(void)
{
void suspend_power_down_keymap(void) {
    rgb_matrix_set_suspend_state(true);
    rgb_matrix_config.enable = false;
}

void suspend_wakeup_init_keymap(void)
{
void suspend_wakeup_init_keymap(void) {
    rgb_matrix_config.enable = true;
    rgb_matrix_set_suspend_state(false);
}



@@ 188,7 193,14 @@ void rgb_matrix_indicators_user(void) {
  uint8_t this_mod = get_mods();
  uint8_t this_led = host_keyboard_leds();
  uint8_t this_osm = get_oneshot_mods();
  if (!g_suspend_state) {

  if (!g_suspend_state && userspace_config.rgb_layer_change &&
#if defined(RGBLIGHT_ENABLE) && defined(RGB_MATRIX_ENABLE)
    (!rgblight_config.enable && rgb_matrix_config.enable)
#else
    rgb_matrix_config.enable
#endif
    ) {
    switch (biton32(layer_state)) {
      case _RAISE:
        rgb_matrix_layer_helper(0xFF, 0xFF, 0x00, false); break;


@@ 228,27 240,26 @@ void rgb_matrix_indicators_user(void) {
    case _WORKMAN:
      rgb_matrix_set_color(42, 0xD9, 0xA5, 0x21); break;
  }

  if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
  if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK)) {
    rgb_matrix_set_color(24, 0x00, 0xFF, 0x00);
    rgb_matrix_set_color(36, 0x00, 0xFF, 0x00);
  }
  if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
  if ( (this_mod | this_osm) & MOD_MASK_CTRL) {
    rgb_matrix_set_color(25, 0xFF, 0x00, 0x00);
    rgb_matrix_set_color(34, 0xFF, 0x00, 0x00);
    rgb_matrix_set_color(37, 0xFF, 0x00, 0x00);

  }
  if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
  if ( (this_mod | this_osm) & MOD_MASK_GUI) {
    rgb_matrix_set_color(39, 0xFF, 0xD9, 0x00);
  }
  if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
  if ( (this_mod | this_osm) & MOD_MASK_ALT) {
    rgb_matrix_set_color(38, 0x00, 0x00, 0xFF);
  }
}

void matrix_init_keymap(void) {
  rgblight_mode(RGB_MATRIX_MULTISPLASH);
  // rgblight_mode(RGB_MATRIX_MULTISPLASH);
}
#else //RGB_MATRIX_INIT



@@ 290,15 301,13 @@ void encoder_update(bool clockwise) {
#endif // ENCODER_ENABLE

#ifdef KEYBOARD_planck_rev6
extern audio_config_t audio_config;

void dip_update(uint8_t index, bool active) {
  switch (index) {
    case 0:
      audio_config.enable = active;
      if(active) { audio_on(); } else { audio_off(); }
      break;
    case 1:
      audio_config.clicky_enable = active;
      if(active) { clicky_on(); } else { clicky_off(); }
      break;
    case 2:
      keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = active;

M layouts/community/ortho_4x12/drashna/rules.mk => layouts/community/ortho_4x12/drashna/rules.mk +1 -1
@@ 12,7 12,7 @@ ifeq (,$(findstring planck/rev6,$(KEYBOARD))) # Make sure it's NOT the Planck Re
endif
ifneq (,$(findstring planck/light,$(KEYBOARD))) # Make sure it IS the Planck Light
  RGB_MATRIX_ENABLE   = yes
  RGBLIGHT_ENABLE     = no
  RGBLIGHT_ENABLE     = yes
endif

ifeq ($(strip $(PROTOCOL)), VUSB)

M users/drashna/config.h => users/drashna/config.h +4 -4
@@ 15,10 15,10 @@
  // #ifdef RGBLIGHT_ENABLE
  // #define NO_MUSIC_MODE
  // #endif //RGBLIGHT_ENABLE/
  #ifndef __arm__
    #undef  NOTE_REST
    #define NOTE_REST         1.00f
  #endif // !__arm__
  // #ifndef __arm__
  //   #undef  NOTE_REST
  //   #define NOTE_REST         1.00f
  // #endif // !__arm__

#define UNICODE_SONG_OSX SONG(RICK_ROLL)
#define UNICODE_SONG_LNX SONG(RICK_ROLL)

M users/drashna/drashna.c => users/drashna/drashna.c +3 -3
@@ 144,9 144,9 @@ void shutdown_user (void) {
    rgblight_setrgb_red();
  #endif // RGBLIGHT_ENABLE
  #ifdef RGB_MATRIX_ENABLE
    uint16_t timer_start = timer_read();
    rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 );
    while(timer_elapsed(timer_start) < 250) { wait_ms(1); }
    // uint16_t timer_start = timer_read();
    // rgb_matrix_set_color_all( 0xFF, 0x00, 0x00 );
    // while(timer_elapsed(timer_start) < 250) { wait_ms(1); }
  #endif //RGB_MATRIX_ENABLE
  shutdown_keymap();
}

M users/drashna/drashna.h => users/drashna/drashna.h +0 -5
@@ 53,11 53,6 @@ enum userspace_layers {
/*
define modifiers here, since MOD_* doesn't seem to work for these
 */
#define MODS_SHIFT_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
#define MODS_CTRL_MASK  (MOD_BIT(KC_LCTL)|MOD_BIT(KC_RCTRL))
#define MODS_ALT_MASK  (MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
#define MODS_GUI_MASK  (MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI))



bool mod_key_press_timer (uint16_t code, uint16_t mod_code, bool pressed);

M users/drashna/process_records.c => users/drashna/process_records.c +21 -24
@@ 12,7 12,6 @@ bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
  return true;
}


// Defines actions tor my global custom keycodes. Defined in drashna.h file
// Then runs the _keymap's record handier if not processed here
bool process_record_user(uint16_t keycode, keyrecord_t *record) {


@@ 35,30 34,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {

  case KC_MAKE:  // Compiles the firmware, and adds the flash command based on keyboard bootloader
    if (!record->event.pressed) {
      #if !defined(KEYBOARD_viterbi)
        uint8_t temp_mod = get_mods();
        uint8_t temp_osm = get_oneshot_mods();
        clear_mods(); clear_oneshot_mods();
      #endif
      uint8_t temp_mod = get_mods();
      uint8_t temp_osm = get_oneshot_mods();
      clear_mods(); clear_oneshot_mods();
      send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), MACRO_TIMER);
      #if defined(KEYBOARD_viterbi)
        send_string_with_delay_P(PSTR(":dfu" SS_TAP(X_ENTER)), MACRO_TIMER);
      #else
        if (temp_mod & MODS_SHIFT_MASK || temp_osm & MODS_SHIFT_MASK) {
          #if defined(__arm__)
            send_string_with_delay_P(PSTR(":dfu-util"), MACRO_TIMER);
          #elif defined(BOOTLOADER_DFU)
            send_string_with_delay_P(PSTR(":dfu"), MACRO_TIMER);
          #elif defined(BOOTLOADER_HALFKAY)
            send_string_with_delay_P(PSTR(":teensy"), MACRO_TIMER);
          #elif defined(BOOTLOADER_CATERINA)
            send_string_with_delay_P(PSTR(":avrdude"), MACRO_TIMER);
          #endif // bootloader options
        }
        if (temp_mod & MODS_CTRL_MASK || temp_osm & MODS_CTRL_MASK) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), MACRO_TIMER); }
        send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), MACRO_TIMER);
        set_mods(temp_mod);
      #endif
#ifndef MAKE_BOOTLOADER
      if ( ( temp_mod | temp_osm ) & MOD_MASK_SHIFT )
#endif
      {
        #if defined(__arm__)
          send_string_with_delay_P(PSTR(":dfu-util"), MACRO_TIMER);
        #elif defined(BOOTLOADER_DFU)
          send_string_with_delay_P(PSTR(":dfu"), MACRO_TIMER);
        #elif defined(BOOTLOADER_HALFKAY)
          send_string_with_delay_P(PSTR(":teensy"), MACRO_TIMER);
        #elif defined(BOOTLOADER_CATERINA)
          send_string_with_delay_P(PSTR(":avrdude"), MACRO_TIMER);
        #endif // bootloader options
       }
      if ( ( temp_mod | temp_osm ) & MOD_MASK_CTRL) { send_string_with_delay_P(PSTR(" -j8 --output-sync"), MACRO_TIMER); }
      send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), MACRO_TIMER);
      set_mods(temp_mod);
      set_oneshot_mods(temp_osm);
    }
    break;


M users/drashna/rgb_stuff.c => users/drashna/rgb_stuff.c +17 -20
@@ 4,6 4,7 @@

#if defined(RGBLIGHT_ENABLE)
extern rgblight_config_t rgblight_config;
bool has_initialized;
#elif defined(RGB_MATRIX_ENABLE)
extern rgb_config_t rgb_matrix_config;
#endif


@@ 17,7 18,7 @@ void rgblight_sethsv_default_helper(uint8_t index) {
#ifdef INDICATOR_LIGHTS
void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) {
  if (userspace_config.rgb_layer_change && biton32(layer_state) == 0) {
    if (this_mod & MODS_SHIFT_MASK || this_led & (1<<USB_LED_CAPS_LOCK) || this_osm & MODS_SHIFT_MASK) {
    if ( (this_mod | this_osm) & MOD_MASK_SHIFT || this_led & (1<<USB_LED_CAPS_LOCK) ) {
      #ifdef SHFT_LED1
        rgblight_sethsv_at(120, 255, 255, SHFT_LED1);
      #endif // SHFT_LED1


@@ 32,7 33,7 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) {
        rgblight_sethsv_default_helper(SHFT_LED2);
      #endif // SHFT_LED2
    }
    if (this_mod & MODS_CTRL_MASK || this_osm & MODS_CTRL_MASK) {
    if ( (this_mod | this_osm) & MOD_MASK_CTRL) {
      #ifdef CTRL_LED1
        rgblight_sethsv_at(0, 255, 255, CTRL_LED1);
      #endif // CTRL_LED1


@@ 47,7 48,7 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) {
        rgblight_sethsv_default_helper(CTRL_LED2);
      #endif // CTRL_LED2
    }
    if (this_mod & MODS_GUI_MASK || this_osm & MODS_GUI_MASK) {
    if ( (this_mod | this_osm) & MOD_MASK_GUI) {
      #ifdef GUI_LED1
        rgblight_sethsv_at(51, 255, 255, GUI_LED1);
      #endif // GUI_LED1


@@ 62,7 63,7 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) {
        rgblight_sethsv_default_helper(GUI_LED2);
      #endif // GUI_LED2
    }
    if (this_mod & MODS_ALT_MASK || this_osm & MODS_ALT_MASK) {
    if ( (this_mod | this_osm) & MOD_MASK_ALT) {
      #ifdef ALT_LED1
        rgblight_sethsv_at(240, 255, 255, ALT_LED1);
      #endif // ALT_LED1


@@ 81,7 82,9 @@ void set_rgb_indicators(uint8_t this_mod, uint8_t this_led, uint8_t this_osm) {
}

void matrix_scan_indicator(void) {
  set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods());
  if (has_initialized) {
    set_rgb_indicators(get_mods(), host_keyboard_leds(), get_oneshot_mods());
  }
}
#endif //INDICATOR_LIGHTS



@@ 244,22 247,16 @@ bool process_record_user_rgb(uint16_t keycode, keyrecord_t *record) {


void keyboard_post_init_rgb(void) {

#ifdef RGBLIGHT_ENABLE
  if (userspace_config.rgb_layer_change) {
    rgblight_enable_noeeprom();
    switch (biton32(eeconfig_read_default_layer())) {
      case _COLEMAK:
        rgblight_sethsv_noeeprom_magenta(); break;
      case _DVORAK:
        rgblight_sethsv_noeeprom_springgreen(); break;
      case _WORKMAN:
        rgblight_sethsv_noeeprom_goldenrod(); break;
      default:
        rgblight_sethsv_noeeprom_cyan(); break;
    }
    rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
  }
	rgblight_enable_noeeprom();
	layer_state_set_user(layer_state);
  uint16_t old_hue = rgblight_config.hue;
	rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
	for (uint16_t i = 360; i > 0; i--) {
		rgblight_sethsv_noeeprom( ( i + old_hue) % 360, 255, 255);
    wait_ms(10);
	}
	layer_state_set_user(layer_state);
#endif
}


M users/drashna/rules.mk => users/drashna/rules.mk +4 -0
@@ 42,3 42,7 @@ ifdef CONSOLE_ENABLE
    OPT_DEFS += -DKEYLOGGER_ENABLE
  endif
endif

ifeq ($(strip $(MAKE_BOOTLOADER)), yes)
    OPT_DEFS += -DMAKE_BOOTLOADER
endif