From e865cab48ec25c2fff958b23d89b1f86755d445c Mon Sep 17 00:00:00 2001 From: Eric Gebhart Date: Thu, 13 Jan 2022 23:40:41 -0500 Subject: [Keymap] ericgebhart keymap and userspace updates (#15727) Co-authored-by: Drashna Jaelre Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> Co-authored-by: Drashna Jael're --- keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c | 378 ++------------------- keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h | 139 ++++++++ 2 files changed, 160 insertions(+), 357 deletions(-) create mode 100644 keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h (limited to 'keyboards/ergodox_ez/keymaps/ericgebhart') diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c b/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c index 55bf4209fd..e76e3296bf 100644 --- a/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c +++ b/keyboards/ergodox_ez/keymaps/ericgebhart/keymap.c @@ -16,369 +16,33 @@ */ #include "keymap_bepo.h" #include "ericgebhart.h" - +#include "layouts.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [DVORAK] = LAYOUT_ergodox_wrapper( - // left hand - KC_GRV, ___NUMBER_L___, OSL(LAYERS), - KC_LOCK, ___DVORAK_L1___, LCTL(KC_C), - TAB_BKTAB, ___DVORAK_L2___, - KC_LSFT, ___DVORAK_L3___, TO(MDIA), - - ___BOTTOM_LEFT___, - ___ERGODOX_THUMB_LEFT___, - - // right hand - MDIA_SYMB_KP_LAYERS, ___NUMBER_R___, KC_EQL, - LCTL(KC_V), ___DVORAK_R1___, KC_SLASH, - /* */ ___DVORAK_R2___, KC_MINUS, - TO(KEYPAD), ___DVORAK_R3___, KC_RSFT, - - ___BOTTOM_RIGHT___, - ___ERGODOX_THUMB_RIGHT___ - ), - - [XMONAD] = LAYOUT_ergodox_wrapper( - // left hand - ___, ___FUNC_L___, ___, - ___, ___DVORAK_L1___, ___, - ___, ___DVORAK_L2___, - ___, ___DVORAK_L3___, ___, - - ___BOTTOM_LEFT___, - ___ERGODOX_THUMB_LEFT___, - - // right hand - ___, ___FUNC_R___, ___, - ___, ___DVORAK_R1___, ___, - /**/ ___DVORAK_R2___, ___, - ___, ___DVORAK_R3___, ___, - - ___BOTTOM_RIGHT___, - ___ERGODOX_THUMB_RIGHT___ - ), - - [QWERTY] = LAYOUT_ergodox_wrapper( - // left hand - KC_GRV, ___NUMBER_L___, OSL(LAYERS), - KC_LOCK, ___QWERTY_L1___, LCTL(KC_C), - TAB_BKTAB, ___QWERTY_L2___, - KC_LSFT, ___QWERTY_L3___, TO(MDIA), - - ___BOTTOM_LEFT___, - ___ERGODOX_THUMB_LEFT___, - - // right hand - MDIA_SYMB_KP_LAYERS, ___NUMBER_R___, KC_EQL, - LCTL(KC_V), ___QWERTY_R1___, KC_SLASH, - /* */ ___QWERTY_R2___, KC_MINUS, - TO(KEYPAD), ___QWERTY_R3___, KC_RSFT, - - ___BOTTOM_RIGHT___, - ___ERGODOX_THUMB_RIGHT___ - ), - - [COLEMAK] = LAYOUT_ergodox_wrapper( - // left hand - KC_GRV, ___NUMBER_L___, OSL(LAYERS), - KC_LOCK, ___COLEMAK_L1___, LCTL(KC_C), - TAB_BKTAB, ___COLEMAK_L2___, - KC_LSFT, ___COLEMAK_L3___, TO(MDIA), - - ___BOTTOM_LEFT___, - ___ERGODOX_THUMB_LEFT___, - - // right hand - MDIA_SYMB_KP_LAYERS, ___NUMBER_R___, KC_EQL, - LCTL(KC_V), ___COLEMAK_R1___, KC_SLASH, - /* */ ___COLEMAK_R2___, KC_MINUS, - TO(KEYPAD), ___COLEMAK_R3___, KC_RSFT, - - ___BOTTOM_RIGHT___, - ___ERGODOX_THUMB_RIGHT___ - ), - - [WORKMAN] = LAYOUT_ergodox_wrapper( - // left hand - KC_GRV, ___NUMBER_L___, OSL(LAYERS), - KC_LOCK, ___WORKMAN_L1___, LCTL(KC_C), - TAB_BKTAB, ___WORKMAN_L2___, - KC_LSFT, ___WORKMAN_L3___, TO(MDIA), - - ___BOTTOM_LEFT___, - ___ERGODOX_THUMB_LEFT___, - - // right hand - MDIA_SYMB_KP_LAYERS, ___NUMBER_R___, KC_EQL, - LCTL(KC_V), ___WORKMAN_R1___, KC_SLASH, - /* */ ___WORKMAN_R2___, KC_MINUS, - TO(KEYPAD), ___WORKMAN_R3___, KC_RSFT, - - ___BOTTOM_RIGHT___, - ___ERGODOX_THUMB_RIGHT___ - ), - - [NORMAN] = LAYOUT_ergodox_wrapper( - // left hand - KC_GRV, ___NUMBER_L___, OSL(LAYERS), - KC_LOCK, ___NORMAN_L1___, LCTL(KC_C), - TAB_BKTAB, ___NORMAN_L2___, - KC_LSFT, ___NORMAN_L3___, TO(MDIA), - - ___BOTTOM_LEFT___, - ___ERGODOX_THUMB_LEFT___, - - // right hand - MDIA_SYMB_KP_LAYERS, ___NUMBER_R___, KC_EQL, - LCTL(KC_V), ___NORMAN_R1___, KC_SLASH, - /* */ ___NORMAN_R2___, KC_MINUS, - TO(KEYPAD), ___NORMAN_R3___, KC_RSFT, - - ___BOTTOM_RIGHT___, - ___ERGODOX_THUMB_RIGHT___ - ), - - [DVORAK_ON_BEPO] = LAYOUT_ergodox_wrapper( - // left hand - DB_GRV, ___NUMBER_BEPO_L___, OSL(LAYERS), - KC_LOCK, ___DVORAK_FR_L1___, DB_LBRC, - TAB_BKTAB, ___DVORAK_FR_L2___, - KC_LSFT, ___DVORAK_FR_L3___, DB_LPRN, - - ___BOTTOM_LEFT_FR___, - ___ERGODOX_THUMB_LEFT_BP___, - - - // right hand - MDIA_SYMB_KP_LAYERS, ___NUMBER_BEPO_R___, DB_EQL, - DB_RBRC, ___DVORAK_FR_R1___, DB_SLASH, - - /* */ ___DVORAK_FR_R2___, DB_MINUS, - DB_RPRN, ___DVORAK_FR_R3___, KC_RSFT, - - ___BOTTOM_RIGHT_FR___, - ___ERGODOX_THUMB_RIGHT_BP___ - ), - - [BEPO] = LAYOUT_ergodox_wrapper( - // Left hand - BP_DLR, ___SYMBOL_BEPO_L___, OSL(LAYERS), - KC_LOCK, ___BEPO_FR_L1___, DB_LBRC, - TAB_BKTAB, ___BEPO_FR_L2___, - BP_SFT_T_ECRC, ___BEPO_FR_L3___, DB_RBRC, - - ___5___, - ___6___, + // Qwerty Base layers + [_DVORAK] = Dox_base(___NUMS___, ___DVORAK___), + [_QWERTY] = Dox_base(___NUMS___, ___QWERTY___), + [_COLEMAK] = Dox_base(___NUMS___, ___COLEMAK_DH___), + [_BEAKL] = Dox_base(___NUMS___, ___BEAKL15___), + // Bepo Base layers + [_DVORAK_BP] = Dox_bepo_base(___NUMS_BP___, ___DVORAK_FR___), + [_BEAKL_BP] = Dox_bepo_base(___BKLNUMS_BP___, ___BEAKL15_FR___), + [_BEPO] = Dox_bepo_base6(___BEPO6___), - // Right hand - MDIA_SYMB_KP_LAYERS, ___SYMBOL_BEPO_R___, BP_EQL, - BP_DCIR, ___BEPO_FR_R1___, BP_W, - /* */ ___BEPO_FR_R2___, BP_CCED, - BP_C, ___BEPO_FR_R3___, KC_RSFT, + // transient layers. + // Switch to using a transient layer macro + [_SYMB] = Dox_transient(___12_FUNC___, ___SYMB_BEAKLA_3x12___), + [_SYMB_BP] = Dox_transient(___12_FUNC___, ___SYMB_BEAKLA_BP_3x12___), - ___5___, - ___6___ - ), + [_TOPROWS] = Dox_transient(___12___, ___TOPROWS_3x12___), + [_TOPROWS_BP] = Dox_transient(___12___, ___TOPROWS_BP_3x12___), - [XMONAD_FR] = LAYOUT_ergodox_wrapper( - // left hand - ___, ___FUNC_L___, ___, - ___, ___DVORAK_FR_L1___, ___, - ___, ___DVORAK_FR_L2___, - ___, ___DVORAK_FR_L3___, ___, + [_KEYPAD] = Dox_transient(___KEYPAD_BKL_FUNC_4x12___), + [_KEYPAD_BP] = Dox_transient(___KEYPAD_BKL_FUNC_BP_4x12___), - ___BOTTOM_LEFT_FR___, - ___ERGODOX_THUMB_LEFT_BP___, - - - // right hand - ___, ___FUNC_R___, ___, - ___, ___DVORAK_FR_R1___, ___, - /**/ ___DVORAK_FR_R2___, ___, - ___, ___DVORAK_FR_R3___, ___, - - ___BOTTOM_RIGHT_FR___, - ___ERGODOX_THUMB_RIGHT_BP___ - ), - - // SYMBOLS - [SYMB] = LAYOUT_ergodox_wrapper( - // left hand - ___FUNC_1_6___, ___, - ___SYMBOLS6_1___, ___, - ___SYMBOLS6_2___, - ___SYMBOLS6_3___, ___, - ___SYMBOLS5_4___, - ___6___, - - - // right hand - ___, ___FUNC_7_12___, - ___, ___SYMPAD_1___, - /**/ ___SYMPAD_2___, - ___, ___SYMPAD_3___, - /**/ ___5_SYMPAD_4___, - ___6___ - ), - - [SYMB_ON_BEPO] = LAYOUT_ergodox_wrapper( - // left hand - ___FUNC_1_6___, ___, - ___SYMBOLS6_1_BP___, ___, - ___SYMBOLS6_2_BP___, - ___SYMBOLS6_3_BP___, ___, - ___SYMBOLS5_4_BP___, - ___6___, - - - // right hand - ___, ___FUNC_7_12___, - ___, ___SYMPAD_1_BP___, - /**/ ___SYMPAD_2_BP___, - ___, ___SYMPAD_3_BP___, - /**/ ___5_SYMPAD_4_BP___, - ___6___ - ), - - [KEYPAD] = LAYOUT_ergodox_wrapper( - ___FUNC_1_6___, ___, - ___2___, ___FUNCPAD_T___, ___, ___, - ___2___, ___FUNCPAD_1___, ___, - ___2___, ___FUNCPAD_2___, ___, ___, - ___2___, ___FUNCPAD_3___, - ___6___, - - // right hand - ___, ___FUNC_7_12___, - ___, ___, ___KEYPAD_1___, ___, - /**/ ___, ___KEYPAD_2___, ___, - ___, ___, ___KEYPAD_3___, ___, - /* */ ___KEYPAD_4___, ___, - ___6___ - ), - - [KEYPAD_ON_BEPO] = LAYOUT_ergodox_wrapper( - ___FUNC_1_6___, ___, - ___2___, ___FUNCPAD_T___, ___, ___, - ___2___, ___FUNCPAD_1___, ___, - ___2___, ___FUNCPAD_2___, ___, ___, - ___2___, ___FUNCPAD_3___, - ___6___, - - // right hand - ___, ___FUNC_7_12___, - ___, ___, ___KEYPAD_1_BP___, ___, - /**/ ___, ___KEYPAD_2_BP___, ___, - ___, ___, ___KEYPAD_3_BP___, ___, - /* */ ___KEYPAD_4_BP___, ___, - ___6___ - ), - - // MEDIA AND MOUSE - [MDIA] = LAYOUT_ergodox_wrapper( - // left hand - ___FUNC_1_6___, ___, - ___MOUSE_BTNS_L___, ___, ___, - ___, ___MOUSE_LDUR___, ___, - ___, ___MWHEEL_LDUR___, XXX, ___, - ___, ___, ___MOUSE_ACCL_012___, - ___6___, - - // right hand - ___, ___FUNC_7_12___, - ___, KC_VOLU, ___MUTE_PRV_PLAY_NXT_STOP___, - /**/ KC_VOLD, ___VI_ARROWS___, ___, - ___, ___, ___MOUSE_BTNS_R___, - /* */ KC_PGDN, KC_PGUP, ___3___, - ___6___ - ), - - [LAYERS] = LAYOUT_ergodox_wrapper( - // left hand - ___FUNC_1_6___, ___, - XXX, XXX, XXX, ___2_LAYERS_B1___, XXX, ___, - XXX, XXX, XXX, ___2_LAYERS_B2___, XXX, - XXX, XXX, ___3_LAYERS_B3___, XXX, ___, - ___5___, - ___6___, - - // right hand - ___, ___FUNC_7_12___, - ___, XXX, ___3_LAYERS_T_BP___, ___2___, - /**/ XXX, ___3_LAYERS_T___, ___2___, - ___, XXX, ___3_LAYERS_T_CTL___, ___2___, - ___5___, - ___6___ - ), + [_NAV] = Dox_transient(___12___, ___NAV_3x12___), + [_LAYERS] = Dox_transient(___12___, ___LAYERS_3x12___), + [_RGB] = Dox_transient(___12___, ___RGB_3x12___), }; - - - -// Runs constantly in the background, in a loop. -void matrix_scan_user(void) { - - uint8_t layer = biton32(layer_state); - - ergodox_board_led_off(); - ergodox_right_led_1_off(); - ergodox_right_led_2_off(); - ergodox_right_led_3_off(); - if(!on_qwerty()) - ergodox_right_led_1_on(); - switch (layer) { - //case DVORAK: - //ergodox_right_led_1_off(); - //break; - // first led on for a bepo software keyboard layer - case DVORAK_ON_BEPO: - ergodox_right_led_2_on(); - break; - case BEPO: - ergodox_right_led_1_on(); - ergodox_right_led_1_off(); - ergodox_right_led_1_on(); - ergodox_right_led_1_off(); - ergodox_right_led_1_on(); - break; - case SYMB: - ergodox_right_led_3_on(); - break; - case MDIA: - ergodox_right_led_3_on(); - break; - case LAYERS: - ergodox_right_led_1_on(); - ergodox_right_led_2_on(); - ergodox_right_led_3_on(); - break; - default: - ergodox_board_led_off(); - break; - - /* default: */ - /* // none */ - /* break; */ - - } -} - - -/* - clear_oneshot_mods(); - set_oneshot_locked_mods(mods); - register_mods(mods); - - register_code(action.key.code); - unregister_code(action.key.code); - - layer_on(action.layer_tap.val); - layer_off(action.layer_tap.val); - - clear_oneshot_locked_mods(); - clear_oneshot_mods(); - unregister_mods(mods); - -*/ diff --git a/keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h b/keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h new file mode 100644 index 0000000000..dd8f193dfc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/ericgebhart/layouts.h @@ -0,0 +1,139 @@ +/* + Copyright 2018 Eric Gebhart + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/********************************************************************/ +/* Ergodox EZ */ +/********************************************************************/ +// This one is is set up to pass in the number row. +// Beakl and bepo both change the number row. +// Left, middle, right, bottom, and thumbs all stay the same. +#define Base_dox( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A \ + ) \ + LVARG_edox( \ + ROW0_LEFT(K01, K02, K03, K04, K05), \ + ___2_MIDDLE_1___, \ + ROW0_RIGHT(K06, K07, K08, K09, K0A), \ + \ + ROW1_LEFT(K11, K12, K13, K14, K15), \ + ___2_MIDDLE_2___, \ + ROW1_RIGHT(K16, K17, K18, K19, K1A), \ + \ + ROW2_LEFT(K21, K22, K23, K24, K25), \ + ROW2_RIGHT(K26, K27, K28, K29, K2A), \ + \ + ROW3_LEFT(K31, K32, K33, K34, K35), \ + ___2_MIDDLE_3___, \ + ROW3_RIGHT(K36, K37, K38, K39, K3A), \ + ___5_BOTTOM_LEFT___, ___5_BOTTOM_RIGHT___, \ + ___12_DOX_ALL_THUMBS___ \ + ) + +#define Base_dox_bepo( \ + K01, K02, K03, K04, K05, \ + K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, \ + K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, \ + K26, K27, K28, K29, K2A, \ + K31, K32, K33, K34, K35, \ + K36, K37, K38, K39, K3A \ + ) \ + LVARG_edox( \ + ROW0_LEFT(K01, K02, K03, K04, K05), \ + ___2_MIDDLE_1___, \ + ROW0_RIGHT(K06, K07, K08, K09, K0A), \ + \ + ROW1_LEFT(K11, K12, K13, K14, K15), \ + ___2_MIDDLE_2___, \ + ROW1_RIGHT(K16, K17, K18, K19, K1A), \ + \ + ROW2_LEFT(K21, K22, K23, K24, K25), \ + ROW2_RIGHT(K26, K27, K28, K29, K2A), \ + \ + ROW3_LEFT(K31, K32, K33, K34, K35), \ + ___2_MIDDLE_3___, \ + ROW3_RIGHT(K36, K37, K38, K39, K3A), \ + ___5_BOTTOM_LEFT___, ___5_BOTTOM_RIGHT___, \ + ___12_DOX_ALL_THUMBS_BP___ \ + ) + + +#define Base_dox_bepo6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C \ + ) \ + LVARG_edox( \ + ___6SYMBOL_BEPO_L___, \ + ___2_MIDDLE_T_BP___, \ + ___6SYMBOL_BEPO_R___, \ + ROW1_LEFT_BP6(K01, K02, K03, K04, K05, K06), \ + ___2_MIDDLE_2_BP___, \ + ROW1_RIGHT_BP6(K07, K08, K09, K0A, K0B, K0C), \ + \ + ROW2_LEFT_BP6(K11, K12, K13, K14, K15, K16), \ + ROW2_RIGHT_BP6(K17, K18, K19, K1A, K1B, K1C), \ + \ + ROW3_LEFT_BP6(K21, K22, K23, K24, K25, K26), \ + ___2_MIDDLE_3_BP___, \ + ROW3_RIGHT_BP6(K27, K28, K29, K2A, K2B, K2C), \ + \ + ___5_BOTTOM_LEFT_BP___, ___5_BOTTOM_RIGHT_BP___, \ + ___12_DOX_ALL_THUMBS_BP___ \ + ) + +#define Transient_dox6( \ + K01, K02, K03, K04, K05, K06, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + K37, K38, K39, K3A, K3B, K3C \ + ) \ + LVARG_edox( \ + K01, K02, K03, K04, K05, K06, \ + ___2___, \ + K07, K08, K09, K0A, K0B, K0C, \ + K11, K12, K13, K14, K15, K16, \ + ___2___, \ + K17, K18, K19, K1A, K1B, K1C, \ + K21, K22, K23, K24, K25, K26, \ + K27, K28, K29, K2A, K2B, K2C, \ + K31, K32, K33, K34, K35, K36, \ + ___2___, \ + K37, K38, K39, K3A, K3B, K3C, \ + ___5___, ___5___, \ + ___12___ \ + ) + +#define Dox_base(...) Base_dox(__VA_ARGS__) +#define Dox_bepo_base(...) Base_dox_bepo(__VA_ARGS__) +#define Dox_bepo_base6(...) Base_dox_bepo6(__VA_ARGS__) +#define Dox_transient(...) Transient_dox6(__VA_ARGS__) -- cgit v1.2.1