diff options
Diffstat (limited to 'keyboards/ergodox_ez')
4 files changed, 147 insertions, 135 deletions
diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h index 5fef1e0d8c..c1ebf174a3 100644 --- a/keyboards/ergodox_ez/keymaps/drashna-custom/config.h +++ b/keyboards/ergodox_ez/keymaps/drashna-custom/config.h @@ -13,6 +13,4 @@ #define RGBLIGHT_EFFECT_BREATHE_CENTER 1 #endif // RGBLIGHT_ENABLE -#define FORCE_NKRO - #endif
\ No newline at end of file diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c index 5440c33460..bdc4eed486 100644 --- a/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c +++ b/keyboards/ergodox_ez/keymaps/drashna-custom/keymap.c @@ -48,17 +48,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. //define layer change stuff for underglow indicator bool skip_leds = false; -#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF); -#define rgblight_set_red rgblight_sethsv(0x00, 0xFF, 0xFF); -#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF); -#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF); -#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF); -#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); -#define rgblight_set_urine rgblight_sethsv (0x3C, 0xFF, 0xFF); -#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); -//This is both for underglow, and Diablo 3 macros - -static uint8_t current_layer = 0; +#ifdef RGBLIGHT_ENABLE +#define rgblight_set_blue rgblight_sethsv (0xFF, 0xFF, 0xFF); +#define rgblight_set_red rgblight_sethsv (0x00, 0xFF, 0xFF); +#define rgblight_set_green rgblight_sethsv (0x78, 0xFF, 0xFF); +#define rgblight_set_orange rgblight_sethsv (0x1E, 0xFF, 0xFF); +#define rgblight_set_teal rgblight_sethsv (0xC3, 0xFF, 0xFF); +#define rgblight_set_magenta rgblight_sethsv (0x12C, 0xFF, 0xFF); +#define rgblight_set_yellow rgblight_sethsv (0x3C, 0xFF, 0xFF); +#define rgblight_set_purple rgblight_sethsv (0x10E, 0xFF, 0xFF); +#endif //define diablo macro timer variables static uint16_t diablo_timer[4]; @@ -136,11 +135,13 @@ void dance_flsh_each(qk_tap_dance_state_t *state, void *user_data) { // and set the underglow to red, because red == bad void dance_flsh_finished(qk_tap_dance_state_t *state, void *user_data) { if (state->count >= 4) { +#ifdef RGBLIGHT_ENABLE rgblight_enable(); rgblight_mode(1); rgblight_setrgb(0xff,0x00,0x00); - reset_keyboard(); +#endif reset_tap_dance(state); + reset_keyboard(); } } @@ -229,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSHIFT, LCTL_T(KC_Z),KC_X, KC_C, KC_V, KC_B, TG(OVERWATCH), LT(SYMB,KC_GRAVE),KC_QUOTE, KC_LGUI, KC_LBRACKET,KC_RBRACKET, - ALT_T(KC_APPLICATION), KC_LEAD, + ALT_T(KC_APPLICATION), KC_LGUI, KC_HOME, KC_SPACE, KC_BSPACE, KC_END, @@ -237,8 +238,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(DIABLO), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLASH, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, GUI_T(KC_QUOTE), TG(OVERWATCH), KC_N, KC_M, KC_COMMA, KC_DOT, RCTL_T(KC_SLASH),KC_RSHIFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1, - KC_LALT, CTL_T(KC_ESCAPE), + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB), + KC_LEAD, CTL_T(KC_ESCAPE), KC_PGUP, KC_PGDOWN, KC_DELETE, KC_ENTER ), @@ -280,7 +281,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(DIABLO), KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, KC_H, KC_N, KC_E, KC_I, KC_O, GUI_T(KC_QUOTE), TG(OVERWATCH),KC_K, KC_M, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB), KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,KC_DELETE, KC_ENT @@ -323,7 +324,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(DIABLO), KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, TG(OVERWATCH),KC_B, KC_M, KC_W, KC_V, RCTL_T(KC_Z), KC_RSHIFT, - KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_FN1, + KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, TT(SYMB), KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,KC_DELETE, KC_ENT @@ -366,7 +367,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { TG(DIABLO), KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE, TG(OVERWATCH),KC_K, KC_L, KC_COMM,KC_DOT, RCTL_T(KC_SLASH), KC_RSHIFT, - KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_FN1, + KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, TT(SYMB), KC_LALT, CTL_T(KC_ESC), KC_PGUP, KC_PGDN,KC_DELETE, KC_ENT @@ -398,7 +399,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { VRSN, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_DVORAK, KC_MAKEQMK, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRAVE, TD(TD_FLSH), KC_PERC, KC_CIRC, KC_LBRACKET,KC_RBRACKET,KC_TILD, KC_COLEMAK, - KC_NO, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, + KC_TRNS, KC_AMPR, KC_ASTR, KC_COLN, KC_SCOLON, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -540,16 +541,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; -const uint16_t PROGMEM fn_actions[] = { - [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), - // FN1 - Momentary Layer 1 (Symbols) -}; - -void action_function(keyrecord_t *event, uint8_t id, uint8_t opt) -{ - -} - void persistent_default_layer_set(uint16_t default_layer) { eeconfig_update_default_layer(default_layer); @@ -558,6 +549,9 @@ void persistent_default_layer_set(uint16_t default_layer) { bool process_record_user(uint16_t keycode, keyrecord_t *record) { +#ifdef CONSOLE_ENABLE + xprintf("KL: row: %u, column: %u, pressed: %u\n", record->event.key.col, record->event.key.row, record->event.pressed); +#endif switch (keycode) { // dynamically generate these. case EPRM: @@ -574,7 +568,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { break; case RGB_SLD: if (record->event.pressed) { +#ifdef RGBLIGHT_ENABLE rgblight_mode(1); +#endif } return false; break; @@ -668,8 +664,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return false; break; case KC_MAKEQMK: - if (record->event.pressed) { - SEND_STRING("make ergodox_ez:drashna-custom:teensy"SS_TAP(X_ENTER)); + if (!record->event.pressed) { + SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP ":teensy"SS_TAP(X_ENTER)); } return false; break; @@ -678,10 +674,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +#ifdef TAP_DANCE_ENABLE // Sends the key press to system, but only if on the Diablo layer void send_diablo_keystroke (uint8_t diablo_key) { - if (current_layer == DIABLO) { + if (biton32(layer_state) == DIABLO) { switch (diablo_key) { case 0: SEND_STRING("1"); @@ -713,16 +710,33 @@ void run_diablo_macro_check(void) { } +#endif + + void matrix_init_user(void) { // Runs boot tasks for keyboard +#ifdef RGBLIGHT_ENABLE + uint8_t default_layer = eeconfig_read_default_layer(); + rgblight_enable(); + if (default_layer & (1UL << COLEMAK)) { + rgblight_set_magenta; + } + else if (default_layer & (1UL << DVORAK)) { + rgblight_set_green; + } + else if (default_layer & (1UL << WORKMAN)) { + rgblight_set_purple; + } + else { + rgblight_set_teal; + } +#endif }; LEADER_EXTERNS(); void matrix_scan_user(void) { // runs frequently to update info uint8_t modifiders = get_mods(); - uint8_t layer = biton32(layer_state); - static bool has_layer_changed = true; if (!skip_leds) { ergodox_board_led_off(); @@ -744,70 +758,29 @@ void matrix_scan_user(void) { // runs frequently to update info } } - if (layer != current_layer) { - has_layer_changed = true; - current_layer = layer; - } - // Check layer, and apply color if its changed since last check - if (has_layer_changed) { - uint8_t default_layer = 0; - default_layer = eeconfig_read_default_layer(); - - switch (layer) { - case SYMB: - rgblight_set_blue; - rgblight_mode(2); - break; - case OVERWATCH: - rgblight_set_orange; - rgblight_mode(17); - break; - case DIABLO: - rgblight_set_red; - rgblight_mode(5); - break; - case MOUS: - rgblight_set_urine; - rgblight_mode(1); - break; - case 7: - rgblight_sethsv (255,255,255); - rgblight_mode(1); - break; - default: - if (default_layer & (1UL << COLEMAK)) { - rgblight_set_green; - } - else if (default_layer & (1UL << DVORAK)) { - rgblight_set_magenta; - } - else if (default_layer & (1UL << WORKMAN)) { - rgblight_set_purple; - } - else { - rgblight_set_teal; - } - rgblight_mode(1); - break; - } - has_layer_changed = false; - } // Run Diablo 3 macro checking code. +#ifdef TAP_DANCE_ENABLE run_diablo_macro_check(); -#ifdef LEADER_KEYS +#endif LEADER_DICTIONARY() { leading = false; leader_end(); SEQ_ONE_KEY(KC_C) { SEND_STRING("Covecube"); } + SEQ_ONE_KEY(KC_D) { + SEND_STRING("StableBit CloudDrive"); + } + SEQ_ONE_KEY(KC_L) { + register_code(KC_LGUI); + register_code(KC_L); + unregister_code(KC_L); + unregister_code(KC_LGUI); + } SEQ_TWO_KEYS(KC_S, KC_D) { SEND_STRING("StableBit DrivePool"); } - SEQ_TWO_KEYS(KC_C, KC_D) { - SEND_STRING("StableBit CloudDrive"); - } SEQ_TWO_KEYS(KC_S, KC_C) { SEND_STRING("StableBit Scanner"); } @@ -815,6 +788,45 @@ void matrix_scan_user(void) { // runs frequently to update info SEND_STRING("StableBit Troubleshooter"); } } -#endif }; +uint32_t layer_state_set_kb(uint32_t state) { +#ifdef RGBLIGHT_ENABLE + uint8_t default_layer = eeconfig_read_default_layer(); + + switch (biton32(state)) { + case SYMB: + rgblight_set_blue; + rgblight_mode(2); + break; + case OVERWATCH: + rgblight_set_orange; + rgblight_mode(17); + break; + case DIABLO: + rgblight_set_red; + rgblight_mode(5); + break; + case MOUS: + rgblight_set_yellow; + rgblight_mode(1); + break; + default: + if (default_layer & (1UL << COLEMAK)) { + rgblight_set_green; + } + else if (default_layer & (1UL << DVORAK)) { + rgblight_set_magenta; + } + else if (default_layer & (1UL << WORKMAN)) { + rgblight_set_purple; + } + else { + rgblight_set_teal; + } + rgblight_mode(1); + break; + } +#endif + return state; +} diff --git a/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk b/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk index 5ab769c688..0fa7cd2277 100644 --- a/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk +++ b/keyboards/ergodox_ez/keymaps/drashna-custom/rules.mk @@ -1,10 +1,13 @@ TAP_DANCE_ENABLE = yes -SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend -COMMAND_ENABLE = no # Commands for debug and configuration +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +COMMAND_ENABLE = yes # Commands for debug and configuration RGBLIGHT_ENABLE = yes MIDI_ENABLE = no CONSOLE_ENABLE = no LEADER_KEYS = no + +EXTRAFLAGS = -flto + ifndef QUANTUM_DIR include ../../../../Makefile endif diff --git a/keyboards/ergodox_ez/keymaps/drashna/keymap.c b/keyboards/ergodox_ez/keymaps/drashna/keymap.c index cef0e9c39f..97ede94318 100644 --- a/keyboards/ergodox_ez/keymaps/drashna/keymap.c +++ b/keyboards/ergodox_ez/keymaps/drashna/keymap.c @@ -17,8 +17,6 @@ #define MOUS 2 #ifdef LAYER_UNDERGLOW_LIGHTING -bool has_layer_changed = true; - #define rgblight_set_teal rgblight_setrgb(0x00, 0xFF, 0xFF) #define rgblight_set_red rgblight_setrgb(0xFF, 0x00, 0x00) #define rgblight_set_blue rgblight_setrgb(0x00, 0xFF, 0x00); @@ -100,20 +98,23 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } +void matrix_init_user(void) { +#ifdef LAYER_UNDERGLOW_LIGHTING + rgblight_enable(); + rgblight_set_teal; + rgblight_mode(1); +#endif - +} void matrix_scan_user(void) { - uint8_t new_layer = biton32(layer_state); - ergodox_board_led_off(); ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); #ifdef LAYER_UNDERGLOW_LIGHTING - static uint8_t old_layer = 0; uint8_t modifiders = get_mods(); if ( modifiders & MODS_SHIFT_MASK) { @@ -124,44 +125,10 @@ void matrix_scan_user(void) { } if ( modifiders & MODS_ALT_MASK) { ergodox_right_led_3_on(); - } - - if (old_layer != new_layer) { - has_layer_changed = true; - old_layer = new_layer; - } - if (has_layer_changed) { - switch (new_layer) { - case 1: - rgblight_set_red; - break; - case 2: - rgblight_set_blue; - break; - case 3: - rgblight_set_green; - break; - case 4: - rgblight_set_yellow; - break; - case 5: - rgblight_setrgb(0xFF, 0xFF, 0x00); - break; - case 6: - rgblight_setrgb(0xFF, 0xFF, 0x00); - break; - case 7: - rgblight_setrgb(0xFF, 0xFF, 0xFF); - break; - default: - rgblight_set_teal; - break; - } - has_layer_changed = false; - } - -#else - switch (new_layer) { + } +#else + uint8_t layer = biton32(layer_state); + switch (layer) { case 1: ergodox_right_led_1_on(); break; @@ -193,3 +160,35 @@ void matrix_scan_user(void) { } #endif }; + +uint32_t layer_state_set_kb(uint32_t state) { +#ifdef LAYER_UNDERGLOW_LIGHTING + switch (biton32(state)) { + case 1: + rgblight_set_red; + break; + case 2: + rgblight_set_blue; + break; + case 3: + rgblight_set_green; + break; + case 4: + rgblight_set_yellow; + break; + case 5: + rgblight_setrgb(0xFF, 0xFF, 0x00); + break; + case 6: + rgblight_setrgb(0xFF, 0xFF, 0x00); + break; + case 7: + rgblight_setrgb(0xFF, 0xFF, 0xFF); + break; + default: + rgblight_set_teal; + break; + } +#endif + return state; +} |