diff options
author | Drashna Jaelre <drashna@live.com> | 2018-05-15 19:34:34 -0700 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2018-05-15 22:34:34 -0400 |
commit | 53a6501d71cabbe4c5c41652cf24fdc059609e5d (patch) | |
tree | 4662908d245fe7176307f99a994d1f8d8ef12158 | |
parent | a572323f94b533582edab4402867dc994cc8c75f (diff) | |
download | qmk_firmware-53a6501d71cabbe4c5c41652cf24fdc059609e5d.tar.gz qmk_firmware-53a6501d71cabbe4c5c41652cf24fdc059609e5d.zip |
Yet another update to drashna keymaps and userspace (EEPROM, RGB indicators) (#2959)
* More Iris Tweaks
* Mess with iris arrow keys
* Massive layout overhaul to make everything more OLKB
* Additional tweaks
* Cleanup Userspace
Remove unused layer code, and properly set userspace eeprom structure.
* EEPROM stuff
* Only use indicators if layer indication is enabled
* Iris and Orthodox Tweaks (Status Indicators)
* Additional tweaks to finish tri layer conversion
* Disable ProMicro ligths globally
* Add Pro Micro hacking info
* Successfully get mod indication working on thumb clusters
* Enable printing when console is enabled
* Make Modifier Indicator lights more modular
* Keymap cleanup
* Tapping test changes
* Cleanup and minor tweaks
-rw-r--r-- | keyboards/iris/keymaps/drashna/config.h | 2 | ||||
-rw-r--r-- | keyboards/iris/keymaps/drashna/keymap.c | 130 | ||||
-rw-r--r-- | keyboards/iris/keymaps/drashna/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/orthodox/keymaps/drashna/keymap.c | 73 | ||||
-rw-r--r-- | keyboards/orthodox/keymaps/drashna/rules.mk | 1 | ||||
-rw-r--r-- | keyboards/viterbi/keymaps/drashna/keymap.c | 16 | ||||
-rw-r--r-- | layouts/community/ergodox/drashna/keymap.c | 114 | ||||
-rw-r--r-- | users/drashna/config.h | 7 | ||||
-rw-r--r-- | users/drashna/drashna.c | 132 | ||||
-rw-r--r-- | users/drashna/drashna.h | 24 | ||||
-rw-r--r-- | users/drashna/readme.md | 22 | ||||
-rw-r--r-- | users/drashna/rules.mk | 4 |
12 files changed, 275 insertions, 251 deletions
diff --git a/keyboards/iris/keymaps/drashna/config.h b/keyboards/iris/keymaps/drashna/config.h index 2a451e7c77..bfdd0022be 100644 --- a/keyboards/iris/keymaps/drashna/config.h +++ b/keyboards/iris/keymaps/drashna/config.h @@ -41,6 +41,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2 #define RGBLIGHT_EFFECT_SNAKE_LENGTH 2 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 + +#define RGBLIGHT_LIMIT_VAL 225 #endif // RGBLIGHT_ENABLE #ifdef AUDIO_ENABLE diff --git a/keyboards/iris/keymaps/drashna/keymap.c b/keyboards/iris/keymaps/drashna/keymap.c index 64d074fc9f..b24e5fe533 100644 --- a/keyboards/iris/keymaps/drashna/keymap.c +++ b/keyboards/iris/keymaps/drashna/keymap.c @@ -2,79 +2,94 @@ #include QMK_KEYBOARD_H #include "drashna.h" +#ifdef INDICATOR_LIGHTS +extern userspace_config_t userspace_config; -#define KC_ALAP ALT_T(KC_APP) +uint8_t last_mod; +uint8_t last_led; +uint8_t last_osm; +bool has_mods_changed = false; +#endif +#define KC_ALAP ALT_T(KC_APP) +#define KC_OSLG OSM(MOD_LGUI) const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_wrapper( - KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_TAB , _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, KC_BSLS, - KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, - KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_LGUI, _________________QWERTY_R3_________________, KC_MRSF, - LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + KC_CCCV, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, + KC_MLSF, _________________QWERTY_L3_________________, KC_ALAP, KC_OSLG, _________________QWERTY_R3_________________, KC_MRSF, + LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE ), [_COLEMAK] = LAYOUT_wrapper( - KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_ESC , ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_TAB , _________________COLEMAK_L1________________, _________________COLEMAK_R1________________, KC_BSLS, - KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, - KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_LGUI, _________________COLEMAK_R3________________, KC_MRSF, - LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + KC_CCCV, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, + KC_MLSF, _________________COLEMAK_L3________________, KC_ALAP, KC_OSLG, _________________COLEMAK_R3________________, KC_MRSF, + LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE ), [_DVORAK] = LAYOUT_wrapper( - KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_TAB , _________________DVORAK_L1_________________, _________________DVORAK_R1_________________, KC_BSLS, - KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT, - KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_LGUI, _________________DVORAK_R3_________________, KC_MRSF, - LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + KC_CCCV, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_QUOT, + KC_MLSF, _________________DVORAK_L3_________________, KC_ALAP, KC_OSLG, _________________DVORAK_R3_________________, KC_MRSF, + LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE ), [_WORKMAN] = LAYOUT_wrapper( - KC_GESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, + KC_ESC, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_MINS, KC_TAB , _________________WORKMAN_L1________________, _________________WORKMAN_R1________________, KC_BSLS, - KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, - KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_LGUI, _________________WORKMAN_R3________________, KC_MRSF, - LOWER, KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE + KC_CCCV, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, + KC_MLSF, _________________WORKMAN_L3________________, KC_ALAP, KC_OSLG, _________________WORKMAN_R3________________, KC_MRSF, + LT(_LOWER,KC_GRV), KC_SPC, KC_BSPC, KC_DEL, KC_ENT, RAISE ), - [_MODS] = LAYOUT( + [_MODS] = LAYOUT_wrapper( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, _______, _______, _______, _______, _______, _______ ), - [_LOWER] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + [_LOWER] = LAYOUT_wrapper( + _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_RBRC, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_LPRN, KC_RPRN, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, - _______, _______, KC_DEL, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, + _______, _______, _______, _______, _______, _______ ), - [_RAISE] = LAYOUT( - KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_UNDS, KC_EQL , KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, _______, _______, _______, _______, _______, _______, _______, KC_PLUS, KC_END, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______ + [_RAISE] = LAYOUT_wrapper( + _______, _________________FUNC_LEFT_________________, _________________FUNC_RIGHT________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, + _______, _______, _______, _______, _______, _______ ), - [_ADJUST] = LAYOUT( - KC_MAKE, KC_RST, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, - RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), - KC_RGB_T,RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, - _______, _______, _______, _______, _______, _______ + [_ADJUST] = LAYOUT_wrapper( + KC_MAKE, _______, _______, _______, _______, _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RST, + VRSN, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, EPRM, + _______, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, _______, + TG(_MODS),RGB_SMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, + _______, _______, _______, _______, _______, _______ ) }; +void matrix_init_keymap(void) { +#ifdef INDICATOR_LIGHTS + last_mod = get_mods(); + last_led = host_keyboard_leds(); + last_osm =get_oneshot_mods(); +#endif +} -#ifdef INDICATOR_LIGHT uint32_t layer_state_set_keymap (uint32_t state) { +#ifdef INDICATOR_LIGHTS uint8_t modifiders = get_mods(); uint8_t led_usb_state = host_keyboard_leds(); uint8_t one_shot = get_oneshot_mods(); @@ -92,41 +107,49 @@ uint32_t layer_state_set_keymap (uint32_t state) { rgblight_sethsv_at(120, 255, 255, 7); rgblight_sethsv_at(120, 255, 255, 8); } +#endif return state; } void matrix_scan_keymap (void) { - static uint8_t current_mods; - static uint8_t current_host_leds; - static uint8_t current_oneshot_mods; - static bool has_status_changed = true; - - if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) { - has_status_changed = true; - current_mods = get_mods(); - current_host_leds = host_keyboard_leds(); - current_oneshot_mods = get_oneshot_mods(); + +#ifdef INDICATOR_LIGHTS + uint8_t current_mod = get_mods(); + uint8_t current_led = host_keyboard_leds(); + uint8_t current_osm =get_oneshot_mods(); + + if (last_mod == current_mod) { + last_mod = current_mod; + has_mods_changed = true; + } + if (last_led == current_led) { + last_led = current_led; + has_mods_changed = true; } - if (has_status_changed) { - has_status_changed = false; + if (last_osm == current_osm) { + last_osm = current_osm; + has_mods_changed = true; + } + - if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) { + if (userspace_config.rgb_layer_change && has_mods_changed && biton32(layer_state) == 0) { + if (current_mod & MODS_SHIFT_MASK || current_led & (1<<USB_LED_CAPS_LOCK) || current_osm & MODS_SHIFT_MASK) { rgblight_sethsv_at(0, 255, 255, 5); rgblight_sethsv_at(0, 255, 255, 10); } else { rgblight_sethsv_default_helper(5); rgblight_sethsv_default_helper(10); } - if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) { + if (current_mod & MODS_CTRL_MASK || current_osm & MODS_CTRL_MASK) { rgblight_sethsv_at(51, 255, 255, 6); rgblight_sethsv_at(51, 255, 255, 9); } else { rgblight_sethsv_default_helper(6); rgblight_sethsv_default_helper(9); } - if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) { + if (current_mod & MODS_GUI_MASK || current_osm & MODS_GUI_MASK) { rgblight_sethsv_at(120, 255, 255, 7); rgblight_sethsv_at(120, 255, 255, 8); } else { @@ -135,7 +158,6 @@ void matrix_scan_keymap (void) { } } -} #endif - +} diff --git a/keyboards/iris/keymaps/drashna/rules.mk b/keyboards/iris/keymaps/drashna/rules.mk index 8f19384f62..2608985c6f 100644 --- a/keyboards/iris/keymaps/drashna/rules.mk +++ b/keyboards/iris/keymaps/drashna/rules.mk @@ -9,3 +9,4 @@ AUDIO_ENABLE = yes NKRO_ENABLE = yes BACKLIGHT_ENABLE = no SWAP_HANDS_ENABLE = yes +INDICATOR_LIGHTS = yes diff --git a/keyboards/orthodox/keymaps/drashna/keymap.c b/keyboards/orthodox/keymaps/drashna/keymap.c index 3c99e9cb8a..bcc59268c0 100644 --- a/keyboards/orthodox/keymaps/drashna/keymap.c +++ b/keyboards/orthodox/keymaps/drashna/keymap.c @@ -22,6 +22,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #include QMK_KEYBOARD_H #include "drashna.h" +#ifdef INDICATOR_LIGHTS +extern userspace_config_t userspace_config; + +uint8_t last_mod; +uint8_t last_led; +uint8_t last_osm; +bool has_mods_changed = false; +#endif // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. @@ -33,6 +41,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define XXXXXXX KC_NO + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_QWERTY] = LAYOUT_wrapper(\ @@ -65,27 +74,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LOWER] = LAYOUT_wrapper(\ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ + _______, _________________FUNC_LEFT_________________, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _________________FUNC_RIGHT________________, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______ ), [_RAISE] = LAYOUT_wrapper(\ KC_GRV, ________________NUMBER_LEFT________________, ________________NUMBER_RIGHT_______________, KC_BSPC, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, KC_HOME, KC_END, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______ ), [_ADJUST] = LAYOUT_wrapper(\ - KC_MAKE,KC_RESET, EPRM, _______, _______, _______, _______, _______, _______, _______, _______, _______, - RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), - KC_RGB_T,RGB_HUD, MU_ON, MU_OFF, MU_TOG, MU_MOD, _______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY + KC_MAKE, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RESET, + VRSN, _______, CK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, EPRM, + TG(_MODS),RGB_RMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, _______, _______, _______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY ) }; -#ifdef RGBLIGHT_ENABLE +void matrix_init_keymap(void) { +#ifdef INDICATOR_LIGHTS + last_mod = get_mods(); + last_led = host_keyboard_leds(); + last_osm =get_oneshot_mods(); +#endif +} + uint32_t layer_state_set_keymap (uint32_t state) { +#ifdef INDICATOR_LIGHTS uint8_t modifiders = get_mods(); uint8_t led_usb_state = host_keyboard_leds(); uint8_t one_shot = get_oneshot_mods(); @@ -103,41 +120,49 @@ uint32_t layer_state_set_keymap (uint32_t state) { rgblight_sethsv_at(120, 255, 255, 7); rgblight_sethsv_at(120, 255, 255, 8); } +#endif return state; } void matrix_scan_keymap (void) { - static uint8_t current_mods; - static uint8_t current_host_leds; - static uint8_t current_oneshot_mods; - static bool has_status_changed = true; - - if ( current_mods != get_mods() || current_host_leds != host_keyboard_leds() || current_oneshot_mods != get_oneshot_mods()) { - has_status_changed = true; - current_mods = get_mods(); - current_host_leds = host_keyboard_leds(); - current_oneshot_mods = get_oneshot_mods(); + +#ifdef INDICATOR_LIGHTS + uint8_t current_mod = get_mods(); + uint8_t current_led = host_keyboard_leds(); + uint8_t current_osm =get_oneshot_mods(); + + if (last_mod == current_mod) { + last_mod = current_mod; + has_mods_changed = true; + } + if (last_led == current_led) { + last_led = current_led; + has_mods_changed = true; } - if (has_status_changed) { - has_status_changed = false; + if (last_osm == current_osm) { + last_osm = current_osm; + has_mods_changed = true; + } + - if (current_mods & MODS_SHIFT_MASK || current_host_leds & (1<<USB_LED_CAPS_LOCK) || current_oneshot_mods & MODS_SHIFT_MASK) { + if (userspace_config.rgb_layer_change && has_mods_changed && biton32(layer_state) == 0) { + if (current_mod & MODS_SHIFT_MASK || current_led & (1<<USB_LED_CAPS_LOCK) || current_osm & MODS_SHIFT_MASK) { rgblight_sethsv_at(0, 255, 255, 5); rgblight_sethsv_at(0, 255, 255, 10); } else { rgblight_sethsv_default_helper(5); rgblight_sethsv_default_helper(10); } - if (current_mods & MODS_CTRL_MASK || current_oneshot_mods & MODS_CTRL_MASK) { + if (current_mod & MODS_CTRL_MASK || current_osm & MODS_CTRL_MASK) { rgblight_sethsv_at(51, 255, 255, 6); rgblight_sethsv_at(51, 255, 255, 9); } else { rgblight_sethsv_default_helper(6); rgblight_sethsv_default_helper(9); } - if (current_mods & MODS_GUI_MASK || current_oneshot_mods & MODS_GUI_MASK) { + if (current_mod & MODS_GUI_MASK || current_osm & MODS_GUI_MASK) { rgblight_sethsv_at(120, 255, 255, 7); rgblight_sethsv_at(120, 255, 255, 8); } else { @@ -146,5 +171,7 @@ void matrix_scan_keymap (void) { } } -} #endif + +} + diff --git a/keyboards/orthodox/keymaps/drashna/rules.mk b/keyboards/orthodox/keymaps/drashna/rules.mk index 222a43640e..7ea609ede6 100644 --- a/keyboards/orthodox/keymaps/drashna/rules.mk +++ b/keyboards/orthodox/keymaps/drashna/rules.mk @@ -7,3 +7,4 @@ TAP_DANCE_ENABLE = no RGBLIGHT_ENABLE = yes AUDIO_ENABLE = yes NKRO_ENABLE = yes +INDICATOR_LIGHTS = yes diff --git a/keyboards/viterbi/keymaps/drashna/keymap.c b/keyboards/viterbi/keymaps/drashna/keymap.c index 09e8bc5998..11ffe6ebda 100644 --- a/keyboards/viterbi/keymaps/drashna/keymap.c +++ b/keyboards/viterbi/keymaps/drashna/keymap.c @@ -17,7 +17,6 @@ extern keymap_config_t keymap_config; #define DIABLO TG(_DIABLO) #define GAMEPAD TG(_GAMEPAD) #define MEDIA TT(_MEDIA) -#define COVECUBE TG(_COVECUBE) //enum more_custom_keycodes { @@ -28,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_NUMLOCK] = LAYOUT_ortho_5x7( LMACRO, DIABLO, GAMEPAD, KC_NLCK, KC_SLCK, KC_COLN, KC_PSLS, - MEDIA, KC_CALC, COVECUBE,KC_P7, KC_P8, KC_P9, KC_PAST, + MEDIA, KC_CALC, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PAST, KC_HOME, KC_DEL, KC_PGUP, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_END, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_PPLS, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_COLN, KC_PENT @@ -58,13 +57,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_SALT, KC_MORESALT, KC_SALTHARD, KC_JUSTGAME, KC_AIM, XXXXXXX, KC_PENT ), - [_COVECUBE] = LAYOUT_ortho_5x7( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, COVECUBE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), [_MEDIA] = LAYOUT_ortho_5x7( KC_MAKE, KC_RESET,MU_TOG, AU_ON, AU_OFF, CK_TOGG, RGB_SAD, @@ -77,13 +69,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -void matrix_init_keymap(void) { - DDRD &= ~(1<<5); - PORTD &= ~(1<<5); - DDRB &= ~(1<<0); - PORTB &= ~(1<<0); -} bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { diff --git a/layouts/community/ergodox/drashna/keymap.c b/layouts/community/ergodox/drashna/keymap.c index 03fa67a7d0..b3fe274a5b 100644 --- a/layouts/community/ergodox/drashna/keymap.c +++ b/layouts/community/ergodox/drashna/keymap.c @@ -57,11 +57,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_QWERTY] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand - KC_EQL, ________________NUMBER_LEFT________________, OSL(_MOUS), OSL(_MOUS), ________________NUMBER_RIGHT_______________, KC_MINS, + KC_EQL, ________________NUMBER_LEFT________________, _______, _______, ________________NUMBER_RIGHT_______________, KC_MINS, KC_TAB, _________________QWERTY_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________QWERTY_R1_________________, KC_BSLS, KC_C1R3, _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, KC_QUOT, KC_MLSF, _________________QWERTY_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________QWERTY_R3_________________, KC_MRSF, - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV, __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: COLEMAK layer @@ -89,11 +89,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_COLEMAK] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________COLEMAK_L1________________, TG(_DIABLO), TG(_DIABLO), _________________COLEMAK_R1________________, KC_BSLS, KC_C1R3, _________________COLEMAK_L2________________, _________________COLEMAK_R2________________, KC_QUOT, KC_MLSF, _________________COLEMAK_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________COLEMAK_R3________________, KC_MRSF, - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV, __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: DVORAK Layout @@ -121,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_DVORAK] = LAYOUT_ergodox_pretty_wrapper( // left hand // right hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, KC_TAB, _________________DVORAK_L1_________________, TG(_DIABLO), TG(_DIABLO), _________________DVORAK_R1_________________, KC_SLSH, KC_C1R3, _________________DVORAK_L2_________________, _________________DVORAK_R2_________________, KC_MINS, KC_MLSF, _________________DVORAK_L3_________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________DVORAK_R3_________________, KC_MRSF, - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV, __________________ERGODOX_THUMB_CLUSTER_____________________ ), /* Keymap 0: WORKMAN layer @@ -153,16 +153,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Otherwise, it needs KC_* [_WORKMAN] = LAYOUT_ergodox_pretty_wrapper( // left hand - KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, OSL(_MOUS), OSL(_MOUS), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TAB, _________________WORKMAN_L1________________, TG(_DIABLO), TG(_DIABLO), _________________WORKMAN_R1________________, KC_BSLS, KC_C1R3, _________________WORKMAN_L2________________, _________________WORKMAN_R2________________, KC_QUOT, KC_MLSF, _________________WORKMAN_L3________________, TG(_GAMEPAD), TG(_GAMEPAD), _________________WORKMAN_R3________________, KC_MRSF, - LT(_SYMB,KC_GRV), ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, TT(_SYMB), + KC_GRV, ___________ERGODOX_BOTTOM_LEFT_____________, ___________ERGODOX_BOTTOM_RIGHT____________, KC_CCCV, __________________ERGODOX_THUMB_CLUSTER_____________________ ), // Reverts OSM(Shift) to normal Shifts. However, may not need since we fixed the issue with RDP (LOCAL RESOURCES) - [_MODS] = LAYOUT_ergodox_pretty( + [_MODS] = LAYOUT_ergodox_pretty_wrapper( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -173,37 +173,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______ ), - /* Keymap 3: Symbol Layer -* -* ,--------------------------------------------------. ,--------------------------------------------------. -* | ESC | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | -* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| -* | RESET | ! | @ | { | } | | | | | | + | 7 | 8 | 9 | * | F12 | -* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -* | MAKE | # | $ | ( | ) | ` |------| |------| - | 4 | 5 | 6 | / | PrtSc | -* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| -* | VRSN | % | ^ | [ | ] | ~ | | | | NUM | 1 | 2 | 3 | = | PAUSE | -* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' -* | LT0 | & | * | : | ; | | | 0 | NUM. | ENT | ENT | -* `----------------------------------' `----------------------------------' -* ,-------------. ,-------------. -* | RGBM | RED | | OFF | SOLID| -* ,------|------|------| |------+------+------. -* | | | GREEN| | | | | -* | RGB | RGB |------| |------| NUM0 | NUME | -* | DARK |BRITE | BLUE | | | | | -* `--------------------' `--------------------' -*/ - [_SYMB] = LAYOUT_ergodox_pretty( - EPRM, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_QWERTY, KC_QWERTY, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, - KC_RST, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_COLEMAK, KC_WORKMAN, KC_PPLS, KC_KP_7, KC_KP_8, KC_KP_9, KC_PAST, KC_F12, - KC_MAKE, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, KC_PSLS, KC_PSCREEN, - VRSN, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_DVORAK, TG(_MODS), KC_NLCK, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, KC_PAUSE, - KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCLN, KC_KP_0, KC_KP_0, KC_PDOT, KC_PENT, KC_TRNS, - RGB_SMOD, KC_RGB_T, KC_TRNS, KC_TRNS, - RGB_HUI, KC_TRNS, - RGB_M_R, RGB_M_SW, RGB_HUD, KC_PDOT, KC_KP_0, KC_PENT - ), /* Keymap 4: Customized Overwatch Layout * @@ -226,7 +195,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | | | H | | | | | * `--------------------' `--------------------' */ - [_GAMEPAD] = LAYOUT_ergodox_pretty( + [_GAMEPAD] = LAYOUT_ergodox_pretty_wrapper( KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, HYPR(KC_D), HYPR(KC_Q), HYPR(KC_GRV), KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_F1, KC_K, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TAB, KC_G, KC_A, KC_S, KC_D, KC_F, KC_I, KC_O, KC_NO, KC_NO, KC_NO, KC_NO, @@ -258,7 +227,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * | SHIFT| ALT | 0MAC | | | | | * `--------------------' `--------------------' */ - [_DIABLO] = LAYOUT_ergodox_pretty( + [_DIABLO] = LAYOUT_ergodox_pretty_wrapper( KC_ESC, KC_V, KC_D, KC_LALT, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_TAB, KC_S, KC_I, KC_F, KC_M, KC_T, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_Q, KC_1, KC_2, KC_3, KC_4, KC_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, @@ -269,36 +238,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { SFT_T(KC_SPACE), ALT_T(KC_Q), KC_DIABLO_CLEAR, KC_PGDN, KC_DEL, KC_ENT ), -/* Keymap 4: Media and mouse keys - * - * ,--------------------------------------------------. ,--------------------------------------------------. - * | | | | | | | | | | | | | | | | - * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| - * | | | MsUp | | | | | | | | | | | | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | |MsLeft|MsDown|MsRght| | |------| |------| | | Acc0 | Acc1 | Acc2 | | - * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| - * | | Acc0 | Acc1 | Acc2 | | | | | | | Mute |VolDn |VolUp | | | - * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' - * | | | | | | | Play | Stop | | | | - * `----------------------------------' `----------------------------------' - * ,-------------. ,-------------. - * | | | | | | - * ,------|------|------| |------+------+------. - * | | | MWUp | | | | | - * | Lclk | Rclk |------| |------| MBn4 | MBn5 | - * | | | MWDn | | Mclk | | | - * `--------------------' `--------------------' - */ - [_MOUS] = LAYOUT_ergodox_pretty( - KC_NO, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_MS_U, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_NO, KC_NO, KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, - KC_NO, KC_ACL0, KC_ACL1, KC_ACL2, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, - KC_NO, KC_NO, KC_NO, KC_NO, - KC_WH_U, KC_NO, - KC_BTN1, KC_BTN2, KC_WH_D, KC_BTN3, KC_BTN4, KC_BTN5 + [_LOWER] = LAYOUT_ergodox_pretty_wrapper( + _______, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, KC_F11, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + [_RAISE] = LAYOUT_ergodox_pretty_wrapper( + _______, _________________FUNC_LEFT_________________, _______, _______, _________________FUNC_RIGHT________________, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ + ), + + [_ADJUST] = LAYOUT_ergodox_pretty_wrapper( + KC_MAKE, _______, _______, _______, _______, _______, _______, _______, KC_SEC1, KC_SEC2, KC_SEC3, KC_SEC4, KC_SEC5, KC_RST, + VRSN, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, EPRM, + RGB_SMOD,RGB_HUI, CK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, KC_QWERTY, KC_COLEMAK, KC_DVORAK, KC_WORKMAN, TG(_MODS), + TG(_MODS),RGB_SMOD,RGB_HUD,RGB_SAD, RGB_VAD, KC_RGB_T,_______, _______, MG_NKRO, KC_MUTE, KC_VOLD, KC_VOLU, KC_MNXT, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, + _______, _______, + _______, _______, _______, _______, _______, _______ ), }; diff --git a/users/drashna/config.h b/users/drashna/config.h index 0a59ad0261..ef1860778e 100644 --- a/users/drashna/config.h +++ b/users/drashna/config.h @@ -4,7 +4,6 @@ #ifdef AUDIO_ENABLE #define AUDIO_CLICKY -#define AUDIO_CLICKY_ON #define STARTUP_SONG SONG(E1M1_DOOM) #define GOODBYE_SONG SONG(SONIC_RING) #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ @@ -43,6 +42,8 @@ #define IGNORE_MOD_TAP_INTERRUPT #undef PERMISSIVE_HOLD #undef PREVENT_STUCK_MODIFIERS +#define TAPPING_FORCE_HOLD +//#define RETRO_TAPPING #define FORCE_NKRO @@ -53,7 +54,7 @@ #ifdef TAPPING_TERM #undef TAPPING_TERM #endif // TAPPING_TERM -#define TAPPING_TERM 176 +#define TAPPING_TERM 200 // Disable action_get_macro and fn_actions, since we don't use these @@ -61,7 +62,7 @@ #ifndef NO_DEBUG #define NO_DEBUG #endif // !NO_DEBUG -#ifndef NO_PRINT +#if !defined(NO_PRINT) && !defined(CONSOLE_ENABLE) #define NO_PRINT #endif // !NO_PRINT #define NO_ACTION_MACRO diff --git a/users/drashna/drashna.c b/users/drashna/drashna.c index 86c16b826d..6ce541bfbc 100644 --- a/users/drashna/drashna.c +++ b/users/drashna/drashna.c @@ -38,10 +38,6 @@ float tone_paste[][2] = SONG(SCROLL_LOCK_OFF_SOUND); static uint16_t copy_paste_timer; -#ifdef RGBLIGHT_ENABLE -bool rgb_layer_change = true; -#endif - userspace_config_t userspace_config; // Helper Functions @@ -164,31 +160,42 @@ void led_set_keymap(uint8_t usb_led) {} // call the keymap's init function void matrix_init_user(void) { uint8_t default_layer = eeconfig_read_default_layer(); + userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE); -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); -#endif // RGBLIGHT_ENABLE +#ifdef BOOTLOADER_CATERINA + DDRD &= ~(1<<5); + PORTD &= ~(1<<5); - if (default_layer & (1UL << _COLEMAK)) { -#ifdef RGBLIGHT_ENABLE - rgblight_sethsv_magenta(); -#endif // RGBLIGHT_ENABLE - } else if (default_layer & (1UL << _DVORAK)) { -#ifdef RGBLIGHT_ENABLE - rgblight_sethsv_green(); -#endif // RGBLIGHT_ENABLE - } else if (default_layer & (1UL << _WORKMAN)) { -#ifdef RGBLIGHT_ENABLE - rgblight_sethsv_goldenrod(); -#endif // RGBLIGHT_ENABLE - } else { + DDRB &= ~(1<<0); + PORTB &= ~(1<<0); +#endif + + if (userspace_config.rgb_layer_change) { #ifdef RGBLIGHT_ENABLE - rgblight_sethsv_teal(); + rgblight_enable(); #endif // RGBLIGHT_ENABLE + if (default_layer & (1UL << _COLEMAK)) { + #ifdef RGBLIGHT_ENABLE + rgblight_sethsv_magenta(); + #endif // RGBLIGHT_ENABLE + } else if (default_layer & (1UL << _DVORAK)) { + #ifdef RGBLIGHT_ENABLE + rgblight_sethsv_green(); + #endif // RGBLIGHT_ENABLE + } else if (default_layer & (1UL << _WORKMAN)) { + #ifdef RGBLIGHT_ENABLE + rgblight_sethsv_goldenrod(); + #endif // RGBLIGHT_ENABLE + } else { + #ifdef RGBLIGHT_ENABLE + rgblight_sethsv_teal(); + #endif // RGBLIGHT_ENABLE + } } - userspace_config.raw = eeprom_read_byte(EECONFIG_USERSPACE); +#ifdef AUDIO_CLICKY clicky_enable = userspace_config.clicky_enable; +#endif #if ( defined(UNICODE_ENABLE) || defined(UNICODEMAP_ENABLE) || defined(UCIS_ENABLE) ) set_unicode_input_mode(UC_WINC); @@ -364,8 +371,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { case KC_RGB_T: // This allows me to use underglow as layer indication, or as normal #ifdef RGBLIGHT_ENABLE if (record->event.pressed) { - rgb_layer_change = !rgb_layer_change; - if (rgb_layer_change) { + userspace_config.rgb_layer_change ^= 1; + eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw); + if (userspace_config.rgb_layer_change) { layer_state_set(layer_state); // This is needed to immediately set the layer color (looks better) } } @@ -374,7 +382,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { #ifdef RGBLIGHT_ENABLE case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // quantum_keycodes.h L400 for definitions if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled - rgb_layer_change = false; + userspace_config.rgb_layer_change = false; + eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw); } return true; break; #endif // RGBLIGHT_ENABLE @@ -403,8 +412,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; break; case CLICKY_TOGGLE: +#ifdef AUDIO_CLICKY userspace_config.clicky_enable = clicky_enable; eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw); +#endif break; #ifdef UNICODE_ENABLE case UC_FLIP: // (╯°□°)╯ ︵ ┻━┻ @@ -445,123 +456,104 @@ uint32_t layer_state_set_user(uint32_t state) { state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST); switch (biton32(state)) { - case _NAV: -#ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { - rgblight_sethsv_blue(); - rgblight_mode(1); - } -#endif // RGBLIGHT_ENABLE - break; - case _SYMB: -#ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { - rgblight_sethsv_blue(); - rgblight_mode(2); - } -#endif // RGBLIGHT_ENABLE - break; - case _MOUS: -#ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { - rgblight_sethsv_yellow(); - rgblight_mode(1); - } -#endif // RGBLIGHT_ENABLE - break; case _MACROS: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_orange(); userspace_config.is_overwatch ? rgblight_mode(17) : rgblight_mode(18); } #endif // RGBLIGHT_ENABLE + break; case _MEDIA: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_chartreuse(); rgblight_mode(22); } #endif // RGBLIGHT_ENABLE + break; case _GAMEPAD: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_orange(); rgblight_mode(17); } #endif // RGBLIGHT_ENABLE + break; case _DIABLO: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_red(); rgblight_mode(5); } #endif // RGBLIGHT_ENABLE + break; case _RAISE: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_yellow(); rgblight_mode(5); } #endif // RGBLIGHT_ENABLE + break; case _LOWER: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_orange(); rgblight_mode(5); } #endif // RGBLIGHT_ENABLE + break; case _ADJUST: #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { + if (userspace_config.rgb_layer_change) { rgblight_sethsv_red(); rgblight_mode(23); } #endif // RGBLIGHT_ENABLE - break; - case _COVECUBE: -#ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { - rgblight_sethsv_green(); - rgblight_mode(2); - } -#endif // RGBLIGHT_ENABLE + break; default: // for any other layers, or the default layer if (default_layer & (1UL << _COLEMAK)) { #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { rgblight_sethsv_magenta(); } + if (userspace_config.rgb_layer_change) { rgblight_sethsv_magenta(); } #endif // RGBLIGHT_ENABLE + } else if (default_layer & (1UL << _DVORAK)) { #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { rgblight_sethsv_green(); } + if (userspace_config.rgb_layer_change) { rgblight_sethsv_green(); } #endif // RGBLIGHT_ENABLE + } else if (default_layer & (1UL << _WORKMAN)) { #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { rgblight_sethsv_goldenrod(); } + if (userspace_config.rgb_layer_change) { rgblight_sethsv_goldenrod(); } #endif // RGBLIGHT_ENABLE + } else { #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { rgblight_sethsv_teal(); } + if (userspace_config.rgb_layer_change) { rgblight_sethsv_teal(); } #endif // RGBLIGHT_ENABLE + } if (biton32(state) == _MODS) { // If the non-OSM layer is enabled, then breathe #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { rgblight_mode(2); } + if (userspace_config.rgb_layer_change) { rgblight_mode(2); } #endif // RGBLIGHT_ENABLE + } else { // otherwise, stay solid #ifdef RGBLIGHT_ENABLE - if (rgb_layer_change) { rgblight_mode(1); } + if (userspace_config.rgb_layer_change) { rgblight_mode(1); } #endif // RGBLIGHT_ENABLE + } break; } diff --git a/users/drashna/drashna.h b/users/drashna/drashna.h index 5ef25333b1..87a72f5280 100644 --- a/users/drashna/drashna.h +++ b/users/drashna/drashna.h @@ -27,12 +27,8 @@ enum userspace_layers { _DVORAK, _WORKMAN, _MODS, - _NAV, - _COVECUBE, - _SYMB, _GAMEPAD, _DIABLO, - _MOUS, _MACROS, _MEDIA, _LOWER, @@ -49,7 +45,6 @@ enum userspace_layers { // RGB color codes are no longer located here anymore. Instead, you will want to // head to https://github.com/qmk/qmk_firmware/blob/master/quantum/rgblight_list.h -extern bool rgb_layer_change; extern bool clicky_enable; #ifdef RGBLIGHT_ENABLE @@ -59,10 +54,11 @@ void rgblight_sethsv_default_helper(uint8_t index); #define EECONFIG_USERSPACE (uint8_t *)20 typedef union { - uint32_t raw; + uint8_t raw; struct { - bool clicky_enable :1; - bool is_overwatch :1; + bool clicky_enable :1; + bool rgb_layer_change :1; + bool is_overwatch :1; }; } userspace_config_t; @@ -166,10 +162,10 @@ enum { #define LAYOUT KEYMAP #endif -#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) +#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__) #define LAYOUT_ergodox_pretty_wrapper(...) LAYOUT_ergodox_pretty(__VA_ARGS__) -#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) -#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) +#define KEYMAP_wrapper(...) LAYOUT(__VA_ARGS__) +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) // Blocks for each of the four major keyboard layouts @@ -236,6 +232,8 @@ enum { #define ________________NUMBER_LEFT________________ KC_1, KC_2, KC_3, KC_4, KC_5 #define ________________NUMBER_RIGHT_______________ KC_6, KC_7, KC_8, KC_9, KC_0 +#define _________________FUNC_LEFT_________________ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5 +#define _________________FUNC_RIGHT________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10 // Since we have 4 default layouts (QWERTY, DVORAK, COLEMAK and WORKMAN), // this allows us to quickly modify the bottom row for all of the layouts @@ -245,9 +243,9 @@ enum { #define ___________ERGODOX_BOTTOM_RIGHT____________ KC_LEFT, KC_DOWN, KC_UP, KC_RGHT -#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \ +#define __________________ERGODOX_THUMB_CLUSTER_____________________ ALT_T(KC_APP), KC_LGUI, KC_RGUI, CTL_T(KC_ESCAPE), \ KC_HOME, KC_PGUP, \ - KC_SPACE,KC_BSPC, KC_END, KC_PGDN, KC_DEL, KC_ENTER + LT(_LOWER, KC_SPACE),KC_BSPC, KC_END, KC_PGDN, KC_DEL, LT(_RAISE, KC_ENTER) #endif // !USERSPACE diff --git a/users/drashna/readme.md b/users/drashna/readme.md index 79758e7e56..ddf24b24f7 100644 --- a/users/drashna/readme.md +++ b/users/drashna/readme.md @@ -162,7 +162,7 @@ This tells us where in the EEPROM that the data structure is located, and this s ```c typedef union { - uint32_t raw; + uint8_t raw; struct { bool clicky_enable :1; bool is_overwatch :1; @@ -174,3 +174,23 @@ Then, in your C file, you want to add: `userspace_config_t userspace_config;`, a From there, you'd want to use the data structure (such as `userspace_config.is_overwatch`) when you want to check this value. And if you want to update it, update directly and then use `eeprom_update_byte(EECONFIG_USERSPACE, userspace_config.raw);` to write the value back to the EEPROM. + + +Pro Micro Hacking +----------------- + +Well, you can get the QMK DFU bootloader working on the ProMicro. But you need to change fuses. + +What worked to get into the firmware properly was: + +``` +Low: 0x5E High: 0x99 Extended: 0xF3 Lock: 0xFF +``` + +But some of the columns and rows didn't work, like the pin mapping was wrong. Even when setting the bootloader settings. + + This is here for future reference. And the default fuse settings I believe were: + +``` +Low: 0xFF High: 0xD8 Extended: 0xC3 Lock: 0x3F +``` diff --git a/users/drashna/rules.mk b/users/drashna/rules.mk index 123c0cc70a..e2c5a2995b 100644 --- a/users/drashna/rules.mk +++ b/users/drashna/rules.mk @@ -5,3 +5,7 @@ EXTRAFLAGS += -flto ifeq ($(strip $(NO_SECRETS)), yes) OPT_DEFS += -DNO_SECRETS endif + +ifeq ($(strip $(INDICATOR_LIGHTS)), yes) + OPT_DEFS += -DINDICATOR_LIGHTS +endif |