qmk

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

commit 493fbb3dc1423e0d42e57a6dc7ba38b880b37eb5
parent e0a03bfa6c148da2936b27a2285f1928c5574ac0
Author: Drashna Jaelre <drashna@live.com>
Date:   Fri, 15 Mar 2019 08:57:44 -0700

[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

Diffstat:
keyboards/crkbd/keymaps/drashna/keymap.c | 10+++++-----
keyboards/crkbd/keymaps/drashna/rules.mk | 2+-
layouts/community/ergodox/drashna/keymap.c | 16++++++++--------
layouts/community/ergodox/drashna_glow/config.h | 11+++++++++++
layouts/community/ergodox/drashna_glow/keymap.c | 3+++
layouts/community/numpad_5x6/bjohnson/config.h | 25+++++++++++++++++++++++++
layouts/community/numpad_5x6/bjohnson/keymap.c | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
layouts/community/numpad_5x6/bjohnson/rules.mk | 5+++++
layouts/community/numpad_5x6/drashna/config.h | 18++++++++++++++++++
layouts/community/numpad_5x6/drashna/keymap.c | 22++++++++++++++++++++++
layouts/community/numpad_5x6/drashna/rules.mk | 9+++++++++
layouts/community/numpad_5x6/layout.json | 6++++++
layouts/community/numpad_5x6/readme.md | 3+++
layouts/community/ortho_4x12/drashna/config.h | 10+++++-----
layouts/community/ortho_4x12/drashna/keymap.c | 39++++++++++++++++++++++++---------------
layouts/community/ortho_4x12/drashna/rules.mk | 2+-
users/drashna/config.h | 8++++----
users/drashna/drashna.c | 6+++---
users/drashna/drashna.h | 5-----
users/drashna/process_records.c | 45+++++++++++++++++++++------------------------
users/drashna/rgb_stuff.c | 37+++++++++++++++++--------------------
users/drashna/rules.mk | 4++++
22 files changed, 246 insertions(+), 91 deletions(-)

diff --git a/keyboards/crkbd/keymaps/drashna/keymap.c b/keyboards/crkbd/keymaps/drashna/keymap.c @@ -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()); diff --git a/keyboards/crkbd/keymaps/drashna/rules.mk b/keyboards/crkbd/keymaps/drashna/rules.mk @@ -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 \ diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c @@ -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 diff --git a/layouts/community/ergodox/drashna_glow/config.h b/layouts/community/ergodox/drashna_glow/config.h @@ -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 diff --git a/layouts/community/ergodox/drashna_glow/keymap.c b/layouts/community/ergodox/drashna_glow/keymap.c @@ -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 diff --git a/layouts/community/numpad_5x6/bjohnson/config.h b/layouts/community/numpad_5x6/bjohnson/config.h @@ -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 diff --git a/layouts/community/numpad_5x6/bjohnson/keymap.c b/layouts/community/numpad_5x6/bjohnson/keymap.c @@ -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 +} diff --git a/layouts/community/numpad_5x6/bjohnson/rules.mk b/layouts/community/numpad_5x6/bjohnson/rules.mk @@ -0,0 +1,5 @@ +AUDIO_ENABLE = no +RGBLIGHT_ENABLE = yes +BACKLIGHT_ENABLE = no +NO_SECRETS = yes +BOOTMAGIC_ENABLE = lite diff --git a/layouts/community/numpad_5x6/drashna/config.h b/layouts/community/numpad_5x6/drashna/config.h @@ -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 diff --git a/layouts/community/numpad_5x6/drashna/keymap.c b/layouts/community/numpad_5x6/drashna/keymap.c @@ -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, _______, _______, _______ + ), +}; diff --git a/layouts/community/numpad_5x6/drashna/rules.mk b/layouts/community/numpad_5x6/drashna/rules.mk @@ -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 diff --git a/layouts/community/numpad_5x6/layout.json b/layouts/community/numpad_5x6/layout.json @@ -0,0 +1,6 @@ +["","","",""], +[{y:0.5},"","","",""], +["","","",{h:2},""], +["","",""], +["","","",{h:2},""], +[{w:2},"",""] diff --git a/layouts/community/numpad_5x6/readme.md b/layouts/community/numpad_5x6/readme.md @@ -0,0 +1,3 @@ +# numpad_5x6 + + LAYOUT_numpad_5x6 diff --git a/layouts/community/ortho_4x12/drashna/config.h b/layouts/community/ortho_4x12/drashna/config.h @@ -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) diff --git a/layouts/community/ortho_4x12/drashna/keymap.c b/layouts/community/ortho_4x12/drashna/keymap.c @@ -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; diff --git a/layouts/community/ortho_4x12/drashna/rules.mk b/layouts/community/ortho_4x12/drashna/rules.mk @@ -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) diff --git a/users/drashna/config.h b/users/drashna/config.h @@ -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) diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c @@ -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(); } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h @@ -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); diff --git a/users/drashna/process_records.c b/users/drashna/process_records.c @@ -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; diff --git a/users/drashna/rgb_stuff.c b/users/drashna/rgb_stuff.c @@ -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 } diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk @@ -42,3 +42,7 @@ ifdef CONSOLE_ENABLE OPT_DEFS += -DKEYLOGGER_ENABLE endif endif + +ifeq ($(strip $(MAKE_BOOTLOADER)), yes) + OPT_DEFS += -DMAKE_BOOTLOADER +endif