diff options
22 files changed, 925 insertions, 826 deletions
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h index c6b86004c..e188d95d5 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h | |||
| @@ -5,26 +5,33 @@ | |||
| 5 | #pragma once | 5 | #pragma once |
| 6 | 6 | ||
| 7 | 7 | ||
| 8 | /* Keyboard Settings */ | ||
| 9 | #undef TAPPING_TERM | 8 | #undef TAPPING_TERM |
| 10 | #define TAPPING_TERM 150 | 9 | #define TAPPING_TERM 200 |
| 11 | 10 | ||
| 12 | #undef DEBOUNCE | 11 | #undef DEBOUNCE |
| 13 | #define DEBOUNCE 10 | 12 | #define DEBOUNCE 10 |
| 14 | 13 | ||
| 15 | #undef IGNORE_MOD_TAP_INTERRUPT | 14 | #undef IGNORE_MOD_TAP_INTERRUPT |
| 16 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 17 | 15 | ||
| 18 | #undef FORCE_NKRO | 16 | #undef FORCE_NKRO |
| 19 | #define FORCE_NKRO | 17 | #define FORCE_NKRO |
| 20 | 18 | ||
| 21 | /* This isn't defined by default, so there is no need to undefine it first. */ | 19 | #undef TAPPING_TOGGLE |
| 22 | #define LEADER_TIMEOUT 500 | 20 | #define TAPPING_TOGGLE 5 |
| 21 | |||
| 22 | #define LEADER_TIMEOUT 1000 | ||
| 23 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 23 | #define PERMISSIVE_HOLD | 24 | #define PERMISSIVE_HOLD |
| 24 | #define QMK_KEYS_PER_SCAN 4 | 25 | #define QMK_KEYS_PER_SCAN 4 |
| 26 | #define DANCING_TERM 175 | ||
| 27 | |||
| 28 | #define ONESHOT_TAP_TOGGLE 5 | ||
| 29 | #define ONESHOT_TIMEOUT 5000 | ||
| 30 | |||
| 31 | #define COMBO_COUNT 4 | ||
| 32 | #define COMBO_TERM 200 | ||
| 25 | 33 | ||
| 26 | 34 | ||
| 27 | // RGB Lights | ||
| 28 | #undef RGBLIGHT_HUE_STEP | 35 | #undef RGBLIGHT_HUE_STEP |
| 29 | #define RGBLIGHT_HUE_STEP 24 | 36 | #define RGBLIGHT_HUE_STEP 24 |
| 30 | 37 | ||
| @@ -40,11 +47,7 @@ | |||
| 40 | #undef RGBLIGHT_LIMIT_VAL | 47 | #undef RGBLIGHT_LIMIT_VAL |
| 41 | #define RGBLIGHT_LIMIT_VAL 255 | 48 | #define RGBLIGHT_LIMIT_VAL 255 |
| 42 | 49 | ||
| 43 | /* This isn't defined by default, so there is no need to undefine it first. */ | ||
| 44 | #define RGBLIGHT_SLEEP | ||
| 45 | |||
| 46 | 50 | ||
| 47 | // Mouse | ||
| 48 | #undef MOUSEKEY_INTERVAL | 51 | #undef MOUSEKEY_INTERVAL |
| 49 | #define MOUSEKEY_INTERVAL 10 | 52 | #define MOUSEKEY_INTERVAL 10 |
| 50 | 53 | ||
| @@ -52,31 +55,34 @@ | |||
| 52 | #define MOUSEKEY_DELAY 15 | 55 | #define MOUSEKEY_DELAY 15 |
| 53 | 56 | ||
| 54 | #undef MOUSEKEY_MAX_SPEED | 57 | #undef MOUSEKEY_MAX_SPEED |
| 55 | #define MOUSEKEY_MAX_SPEED 15 | 58 | #define MOUSEKEY_MAX_SPEED 20 |
| 56 | 59 | ||
| 57 | #undef MOUSEKEY_TIME_TO_MAX | 60 | #undef MOUSEKEY_TIME_TO_MAX |
| 58 | #define MOUSEKEY_TIME_TO_MAX 150 | 61 | #define MOUSEKEY_TIME_TO_MAX 200 |
| 59 | 62 | ||
| 60 | #undef MOUSEKEY_WHEEL_MAX_SPEED | 63 | #undef MOUSEKEY_WHEEL_MAX_SPEED |
| 61 | #define MOUSEKEY_WHEEL_MAX_SPEED 15 | 64 | #define MOUSEKEY_WHEEL_MAX_SPEED 20 |
| 62 | 65 | ||
| 63 | #undef MOUSEKEY_WHEEL_TIME_TO_MAX | 66 | #undef MOUSEKEY_WHEEL_TIME_TO_MAX |
| 64 | #define MOUSEKEY_WHEEL_TIME_TO_MAX 150 | 67 | #define MOUSEKEY_WHEEL_TIME_TO_MAX 200 |
| 65 | 68 | ||
| 66 | 69 | ||
| 67 | /* This is defined only if CONSOLE_ENABLE is set to "yes" */ | ||
| 68 | // #undef NO_DEBUG | 70 | // #undef NO_DEBUG |
| 69 | // #define NO_DEBUG | 71 | // #define NO_DEBUG |
| 70 | 72 | ||
| 71 | // #undef NO_PRINT | 73 | // #undef NO_PRINT |
| 72 | // #define NO_PRINT | 74 | // #define NO_PRINT |
| 73 | 75 | ||
| 74 | /* For COMBO only*/ | 76 | // #define RETRO_TAPPING |
| 75 | // #define COMBO_COUNT 1 | 77 | // #define TAPPING_FORCE_HOLD |
| 76 | // #define COMBO_TERM 200 | 78 | |
| 79 | // #define AUTO_SHIFT_TIMEOUT 150 | ||
| 80 | // #define NO_AUTO_SHIFT_SPECIAL | ||
| 81 | // #define NO_AUTO_SHIFT_NUMERIC | ||
| 82 | // #define NO_AUTO_SHIFT_ALPHA | ||
| 77 | 83 | ||
| 78 | /* For tap toggle */ | 84 | // #define EXTRA_LONG_COMBOS |
| 79 | // #define TAPPING_TOGGLE 2 | 85 | // #define EXTRA_EXTRA_LONG_COMBOS |
| 80 | // #define ONESHOT_TAP_TOGGLE 2 | 86 | // #define COMBO_ALLOW_ACTION_KEYS |
| 81 | // #define ONESHOT_TIMEOUT 300 | ||
| 82 | 87 | ||
| 88 | // #define RGBLIGHT_SLEEP | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/default.png.md b/keyboards/ergodox_ez/keymaps/hacker_dvorak/default.png.md deleted file mode 100644 index 744e7d172..000000000 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/default.png.md +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | https://i.imgur.com/fKX0Zbs.png | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/default_highres.png.md b/keyboards/ergodox_ez/keymaps/hacker_dvorak/default_highres.png.md deleted file mode 100644 index 074e0634d..000000000 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/default_highres.png.md +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | https://i.imgur.com/giAc3M9.jpg | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js b/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js index 338b0c6ba..23f19d18a 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/gulpfile.js | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | let gulp = require('gulp'); | 1 | let gulp = require('gulp'); |
| 2 | let run = require('gulp-run-command').default; | 2 | let run = require('gulp-run-command').default; |
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | gulp.task('clean', run('rm -rf ../../../../.build')); | 5 | gulp.task('clean', run('rm -rf ../../../../.build')); |
| 6 | 6 | ||
| 7 | gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak', { | 7 | gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak', { |
| @@ -9,5 +9,11 @@ gulp.task('build', ['clean'], run('make -C ../../../../ ergodox_ez:hacker_dvorak | |||
| 9 | })); | 9 | })); |
| 10 | 10 | ||
| 11 | gulp.task('watch', ['build'], () => { | 11 | gulp.task('watch', ['build'], () => { |
| 12 | gulp.watch(['keymap.c', 'config.h', 'rules.mk'], ['build']); | 12 | gulp.watch([ |
| 13 | 'keymap.c', | ||
| 14 | 'config.h', | ||
| 15 | 'rules.mk', | ||
| 16 | ], ['build']); | ||
| 13 | }); | 17 | }); |
| 18 | |||
| 19 | gulp.task('default', ['watch']); | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c new file mode 100644 index 000000000..65878a67c --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/hacker_dvorak.c | |||
| @@ -0,0 +1,353 @@ | |||
| 1 | // Keyboard keymap: | ||
| 2 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | [DVORAK] = LAYOUT_ergodox( | ||
| 4 | |||
| 5 | // HACKER DVORAK left hand | ||
| 6 | |||
| 7 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 8 | // ESCAPE | | | | | | START RECORDING // | ||
| 9 | // | | | | | | // | ||
| 10 | KC_ESC, TD(GRV_TILD), TD(AT_DLR), TD(LCBR_LABK), TD(LPRN_LBRC), TD(EXLM_QUES), DYN_REC_START1, // | ||
| 11 | // | ~ | $ | < | [ | ? | // | ||
| 12 | // | TAP DANCE: ` | TAP DANCE: @ TAP DANCE: { | TAP DANCE: ( | TAP DANCE: ! | DYNAMIC MARCO 1 // | ||
| 13 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 14 | // TAB | MOD TAP: ALT+SHIFT | MOD TAP: CTRL+ALT | MOD TAP: CTRL+SHIFT | P | Y | // | ||
| 15 | // | | | | | | // | ||
| 16 | KC_TAB, TD(NONE_LEAD), TD(QUOT_DQUO), TD(DOT_COMM), ALL_T(KC_P), MEH_T(KC_Y), DYN_MACRO_PLAY1, // | ||
| 17 | // | LEAD | " | , | | | // | ||
| 18 | // | TAP DANCE: NONE | TAP DANCE: ' | TAP DANCE: . | MOD TAP: HYPER | MOD TAP: MEH | // | ||
| 19 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| PLAY DYNAMIC MACRO 1 // | ||
| 20 | // | MOD TAP: ALT | MOD TAP: CTRL | LAYER TAP: SHIFT | LAYER TAP: ARROW KEYS | MOD TAP: GUI | // | ||
| 21 | // | | | | Ü | | // | ||
| 22 | TD(EQL_PLUS), ALT_T(KC_A), CTL_T(KC_O), SFT_T(KC_E), LT(ARROWS, KC_U), LGUI_T(KC_I), //-----------------------// | ||
| 23 | // + | Á | Ó | É | Ú | Í | // | ||
| 24 | // TAP DANCE: = | TAP DANCE: A | TAP DANCE: O | TAP DANCE: E | TAP DANCE: U | TAP DANCE: I | // | ||
| 25 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------| META // | ||
| 26 | // STOP RECORDING | MOD TAP: GUI+SHIFT+ALT | Q | J | K | X | // | ||
| 27 | // | | | | | | // | ||
| 28 | DYN_REC_STOP, TD(SCLN_COLN), SGUI_T(KC_Q), LT(MEDIA_FN, KC_J), LT(NUMPAD, KC_K), LCAG_T(KC_X), KC_LGUI, // | ||
| 29 | // | : | | | | | // | ||
| 30 | // DYNAMIC MACRO | TAP DANCE: ; | MOD TAP: SHIFT+GUI | LAYER TAP: MEDIA/F-KEYS | LAYER TAP: ATM NUMPAD | MOD TAP: CTL+ALT+GUI | // | ||
| 31 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 32 | // LAYERS SWITCHER | APPLICATION MENU | | | // | ||
| 33 | // | | | | SCROLL // | ||
| 34 | TG(LAYERS), KC_APP, KC_NLCK, KC_SLCK, KC_CAPS, // | ||
| 35 | // | | | | NUM // | ||
| 36 | // LAYER TOGGLE | | | | TAP DANCE: CAPS // | ||
| 37 | //------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 38 | |||
| 39 | // HACKER DVORAK left thumb | ||
| 40 | |||
| 41 | //------------------------+------------------------// | ||
| 42 | // MOUSE WHEEL LEFT | MOUSE WHEEL RIGHT // | ||
| 43 | // | // | ||
| 44 | KC_WH_L, KC_WH_R, // | ||
| 45 | // | // | ||
| 46 | // | // | ||
| 47 | //-------------------------+-------------------------+------------------------// | ||
| 48 | // | | HOME // | ||
| 49 | // | | // | ||
| 50 | /* SPACE | BACKSPACE */ KC_HOME, // | ||
| 51 | // | | // | ||
| 52 | // | | // | ||
| 53 | KC_SPC, KC_BSPC, //-----------------------// | ||
| 54 | // | | END // | ||
| 55 | // | | // | ||
| 56 | /* | */ KC_END, // | ||
| 57 | // | | // | ||
| 58 | // | | // | ||
| 59 | //-------------------------+-------------------------+------------------------// | ||
| 60 | |||
| 61 | // HACKER DVORAK right hand | ||
| 62 | |||
| 63 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 64 | // | | | | | | // | ||
| 65 | // | | | | | | // | ||
| 66 | DYN_REC_START2, TD(APMR_PIPE), TD(RPRN_RBRC), TD(RCBR_RABK), TD(HASH_PERC), TD(ASTR_CIRC), XXXXXXX, // | ||
| 67 | // | | | | | | // | ||
| 68 | // | | | | | | // | ||
| 69 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 70 | // | | | | | | // | ||
| 71 | // | | | | | | // | ||
| 72 | DYN_MACRO_PLAY2, MEH_T(KC_F), ALL_T(KC_G), C_S_T(KC_C), LCA_T(KC_R), LAS_T(KC_L), TD(SLSH_BSLS), // | ||
| 73 | // | | | | | | // | ||
| 74 | // | | | | | | // | ||
| 75 | // |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 76 | // | | | | | | // | ||
| 77 | // | | | | | | // | ||
| 78 | /*-----------------------*/ LGUI_T(KC_D), LT(MOUSE, KC_H), SFT_T(KC_T), CTL_T(KC_N), ALT_T(KC_S), TD(MINS_UNDS), // | ||
| 79 | // | | | | | | // | ||
| 80 | // | | | | | | // | ||
| 81 | // |-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 82 | // | | | | | | // | ||
| 83 | // | | | | | | // | ||
| 84 | KC_LGUI, LCAG_T(KC_B), LT(HYPER, KC_M), LT(MEDIA_FN, KC_W), SGUI_T(KC_V), LGAS_T(KC_Z), COMPOSE, // | ||
| 85 | // | | | | | | // | ||
| 86 | // | | | | | | ⎄ // | ||
| 87 | //------------------------+-------------------------+-------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 88 | // | | | | // | ||
| 89 | // | | | | // | ||
| 90 | KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_SYSREQ, // | ||
| 91 | // | | | | // | ||
| 92 | // | | | | // | ||
| 93 | //------------------------+-------------------------+-------------------------+-------------------------+------------------------// | ||
| 94 | |||
| 95 | // HACKER DVORAK right thumb | ||
| 96 | |||
| 97 | //------------------------+------------------------// | ||
| 98 | // | // | ||
| 99 | // | // | ||
| 100 | KC_WH_U, KC_WH_D, // | ||
| 101 | // | // | ||
| 102 | // | // | ||
| 103 | //------------------------+-------------------------+------------------------// | ||
| 104 | // | | // | ||
| 105 | // | | // | ||
| 106 | KC_PGUP, // | // | ||
| 107 | // | | // | ||
| 108 | // | | // | ||
| 109 | //------------------------| | // | ||
| 110 | // | | // | ||
| 111 | // | | // | ||
| 112 | KC_PGDN, KC_DEL, KC_ENT // | ||
| 113 | // | | // | ||
| 114 | // | | // | ||
| 115 | //------------------------+-------------------------+------------------------// | ||
| 116 | |||
| 117 | ), | ||
| 118 | |||
| 119 | [PLOVER] = LAYOUT_ergodox( | ||
| 120 | // left hand | ||
| 121 | XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_BTN3, GUI_T(KC_NO), | ||
| 122 | KC_ESC, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PV_NUM, | ||
| 123 | KC_TAB, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, | ||
| 124 | KC_CLCK, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, | ||
| 125 | XXXXXXX, TG(LAYERS), PV_NUM, PV_NUM, PV_NUM, | ||
| 126 | |||
| 127 | // left thumb | ||
| 128 | KC_SPACE, KC_BSPACE, | ||
| 129 | KC_HOME, | ||
| 130 | PV_A, PV_O, KC_END, | ||
| 131 | |||
| 132 | // right hand | ||
| 133 | KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, KC_UP, KC_APPLICATION, XXXXXXX, KC_MS_WH_UP, | ||
| 134 | PV_NUM, KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_MS_WH_DOWN, | ||
| 135 | PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, | ||
| 136 | PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, | ||
| 137 | PV_NUM, PV_NUM, PV_NUM, PV_NUM, XXXXXXX, | ||
| 138 | |||
| 139 | // right thumb | ||
| 140 | KC_DELETE, KC_ENTER, | ||
| 141 | KC_PGUP, | ||
| 142 | KC_PGDOWN, PV_E, PV_U | ||
| 143 | ), | ||
| 144 | |||
| 145 | [GAMING] = LAYOUT_ergodox( | ||
| 146 | // left hand | ||
| 147 | KC_ESCAPE, GUI_T(KC_MINS), KC_I, KC_O, KC_P, ALGR_T(KC_EQL), KC_T, | ||
| 148 | KC_TAB, KC_LALT, KC_Q, KC_W, KC_E, ALL_T(KC_R), KC_G, | ||
| 149 | LT(MOUSE, KC_GRV), KC_LCTRL, KC_A, KC_S, KC_D, MEH_T(KC_F), | ||
| 150 | KC_BSLS, KC_LSHIFT, KC_Z, KC_X, KC_C, SCMD_T(KC_V), KC_M, | ||
| 151 | XXXXXXX, TG(LAYERS), KC_COMM, KC_DOT, KC_LBRC, | ||
| 152 | |||
| 153 | // left thumb | ||
| 154 | MO(MEDIA_FN), KC_NLCK, | ||
| 155 | KC_SCLN, | ||
| 156 | KC_SPACE, KC_ENTER, KC_BSPACE, | ||
| 157 | |||
| 158 | // right hand | ||
| 159 | KC_QUOT, KC_Y, KC_K, KC_U, KC_KP_7, KC_KP_8, KC_KP_9, | ||
| 160 | KC_MS_WH_UP, KC_H, KC_J, KC_L, KC_KP_4, KC_KP_2, KC_KP_6, | ||
| 161 | KC_B, KC_MS_UP, KC_N, KC_KP_1, KC_KP_5, KC_KP_3, | ||
| 162 | KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_UP, KC_KP_0, KC_SLASH, | ||
| 163 | KC_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, | ||
| 164 | |||
| 165 | // right thumb | ||
| 166 | KC_MS_BTN5, MO(HYPER), | ||
| 167 | KC_MS_BTN4, | ||
| 168 | KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1 | ||
| 169 | ), | ||
| 170 | |||
| 171 | [ARROWS] = LAYOUT_ergodox( | ||
| 172 | // left hand | ||
| 173 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 174 | XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 175 | XXXXXXX, KC_LCTRL, KC_LSHIFT, XXXXXXX, _______, XXXXXXX, | ||
| 176 | XXXXXXX, KC_RALT, KC_LALT, GUI_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 177 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 178 | |||
| 179 | // left thumb | ||
| 180 | XXXXXXX, XXXXXXX, | ||
| 181 | KC_HOME, | ||
| 182 | KC_SPACE, KC_BSPACE, KC_END, | ||
| 183 | |||
| 184 | // right hand | ||
| 185 | LGUI(KC_X), XXXXXXX, LCTL(KC_X), KC_MS_WH_UP, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 186 | LGUI(KC_C), XXXXXXX, LCTL(KC_C), KC_UP, SCTL(KC_C), LCTL(KC_Z), LGUI(KC_Z), | ||
| 187 | KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_APPLICATION, | ||
| 188 | LGUI(KC_V), XXXXXXX, LCTL(KC_V), KC_MS_WH_DOWN, SCTL(KC_V), LCTL(KC_Y), SGUI(KC_Z), | ||
| 189 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, | ||
| 190 | |||
| 191 | // right thumb | ||
| 192 | XXXXXXX, XXXXXXX, | ||
| 193 | KC_PGUP, | ||
| 194 | KC_PGDOWN, KC_DELETE, KC_ENTER | ||
| 195 | ), | ||
| 196 | |||
| 197 | [MOUSE] = LAYOUT_ergodox( | ||
| 198 | // left hand | ||
| 199 | XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_UP, LCTL(KC_X), XXXXXXX, LGUI(KC_X), | ||
| 200 | LGUI(KC_Z), LCTL(KC_Z), SCTL(KC_C), KC_MS_UP, LCTL(KC_C), KC_MS_BTN4, LGUI(KC_C), | ||
| 201 | KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_RIGHT, | ||
| 202 | LGUI(KC_Z), LCTL(KC_Y), SCTL(KC_V), KC_MS_WH_DOWN, LCTL(KC_V), KC_MS_BTN5, LGUI(KC_V), | ||
| 203 | KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 204 | |||
| 205 | // left thumb | ||
| 206 | XXXXXXX, XXXXXXX, | ||
| 207 | XXXXXXX, | ||
| 208 | KC_MS_BTN1, KC_MS_BTN2, XXXXXXX, | ||
| 209 | |||
| 210 | // right hand | ||
| 211 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 212 | XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX, | ||
| 213 | XXXXXXX, _______, KC_MS_ACCEL1, KC_LSHIFT, KC_LCTRL, KC_MS_ACCEL2, | ||
| 214 | XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT, KC_RALT, XXXXXXX, | ||
| 215 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 216 | |||
| 217 | // right thumb | ||
| 218 | XXXXXXX, XXXXXXX, | ||
| 219 | XXXXXXX, | ||
| 220 | XXXXXXX, XXXXXXX, KC_MS_ACCEL0 | ||
| 221 | ), | ||
| 222 | |||
| 223 | [NUMPAD] = LAYOUT_ergodox( | ||
| 224 | // left hand | ||
| 225 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 226 | XXXXXXX, XXXXXXX, GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO), XXXXXXX, XXXXXXX, | ||
| 227 | _______, KC_LCTRL, KC_LSHIFT, _______, MEH_T(KC_NO), XXXXXXX, | ||
| 228 | XXXXXXX, KC_RALT, KC_LALT, XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX, | ||
| 229 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 230 | |||
| 231 | // left thumb | ||
| 232 | XXXXXXX, XXXXXXX, | ||
| 233 | KC_HOME, | ||
| 234 | KC_SPACE, KC_BSPACE, KC_END, | ||
| 235 | |||
| 236 | // right hand | ||
| 237 | KC_X, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, | ||
| 238 | KC_O, KC_I, KC_1, KC_2, KC_3, KC_SLSH, KC_PERC, | ||
| 239 | KC_M, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, | ||
| 240 | KC_L, KC_J, KC_7, KC_8, KC_9, KC_ASTR, KC_CIRC, | ||
| 241 | KC_DOT, KC_0, KC_COMM, KC_UNDS, KC_BSLS, | ||
| 242 | |||
| 243 | // right thumb | ||
| 244 | XXXXXXX, XXXXXXX, | ||
| 245 | KC_PGUP, | ||
| 246 | KC_PGDOWN, KC_DELETE, KC_ENTER | ||
| 247 | ), | ||
| 248 | |||
| 249 | [LAYERS] = LAYOUT_ergodox( | ||
| 250 | // left hand | ||
| 251 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 252 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 253 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 254 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 255 | XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 256 | |||
| 257 | // left thumb | ||
| 258 | XXXXXXX, XXXXXXX, | ||
| 259 | XXXXXXX, | ||
| 260 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 261 | |||
| 262 | // right hand | ||
| 263 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 264 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 265 | XXXXXXX, TO(DVORAK), TO(PLOVER), TO(GAMING), XXXXXXX, XXXXXXX, | ||
| 266 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 267 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 268 | |||
| 269 | // right thumb | ||
| 270 | XXXXXXX, XXXXXXX, | ||
| 271 | XXXXXXX, | ||
| 272 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 273 | ), | ||
| 274 | |||
| 275 | [MEDIA_FN] = LAYOUT_ergodox( | ||
| 276 | // left hand | ||
| 277 | KC_VOLD, KC_MUTE, RGB_TOG, XXXXXXX, KC_MAIL, KC_FIND, KC_WWW_REFRESH, | ||
| 278 | KC_MPRV, KC_F9, KC_F7, KC_F5, KC_F3, KC_F1, KC_WWW_HOME, | ||
| 279 | KC_PAUS, KC_F19, KC_F17, KC_F15, KC_F13, KC_F11, | ||
| 280 | RGB_HUD, XXXXXXX, XXXXXXX, _______, KC_F23, KC_F21, KC_WWW_BACK, | ||
| 281 | RGB_VAD, KC_CLCK, KC_PSCREEN, XXXXXXX, MO(FIRMWARE), | ||
| 282 | |||
| 283 | // left thumb | ||
| 284 | _______, XXXXXXX, | ||
| 285 | XXXXXXX, | ||
| 286 | XXXXXXX, XXXXXXX, KC_MEDIA_EJECT, | ||
| 287 | |||
| 288 | // right hand | ||
| 289 | KC_WWW_FAVORITES, KC_MYCM, KC_CALC, XXXXXXX, RGB_MOD, RGB_M_P, KC_VOLU, | ||
| 290 | KC_WWW_SEARCH, KC_F2, KC_F4, KC_F6, KC_F8, KC_F10, KC_MNXT, | ||
| 291 | KC_F12, KC_F14, KC_F16, KC_F18, KC_F20, KC_MPLY, | ||
| 292 | KC_WWW_FORWARD, KC_F22, KC_F24, _______, XXXXXXX, XXXXXXX, RGB_HUI, | ||
| 293 | KC_PWR, XXXXXXX, KC_SLEP, KC_WAKE, RGB_VAI, | ||
| 294 | |||
| 295 | // right thumb | ||
| 296 | XXXXXXX, XXXXXXX, | ||
| 297 | XXXXXXX, | ||
| 298 | RGB_GREEN, XXXXXXX, XXXXXXX | ||
| 299 | ), | ||
| 300 | |||
| 301 | [HYPER] = LAYOUT_ergodox( | ||
| 302 | // left hand | ||
| 303 | XXXXXXX, HYPR(KC_F1), HYPR(KC_F2), HYPR(KC_F3), HYPR(KC_F4), HYPR(KC_F5), XXXXXXX, | ||
| 304 | XXXXXXX, HYPR(KC_F6), HYPR(KC_F7), HYPR(KC_F8), HYPR(KC_F9), HYPR(KC_F10), XXXXXXX, | ||
| 305 | XXXXXXX, HYPR(KC_F11), HYPR(KC_F12), HYPR(KC_F13), HYPR(KC_F14), HYPR(KC_F15), | ||
| 306 | XXXXXXX, HYPR(KC_F16), HYPR(KC_F17), HYPR(KC_F18), HYPR(KC_F19), HYPR(KC_F20), XXXXXXX, | ||
| 307 | XXXXXXX, HYPR(KC_F21), HYPR(KC_F22), HYPR(KC_F23), HYPR(KC_F24), | ||
| 308 | |||
| 309 | // left thumb | ||
| 310 | XXXXXXX, XXXXXXX, | ||
| 311 | XXXXXXX, | ||
| 312 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 313 | |||
| 314 | // right hand | ||
| 315 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 316 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 317 | XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 318 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 319 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 320 | |||
| 321 | // right thumb | ||
| 322 | XXXXXXX, _______, | ||
| 323 | XXXXXXX, | ||
| 324 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 325 | ), | ||
| 326 | |||
| 327 | [FIRMWARE] = LAYOUT_ergodox( | ||
| 328 | |||
| 329 | // left hand | ||
| 330 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 331 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 332 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 333 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 334 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, | ||
| 335 | |||
| 336 | // left thumb | ||
| 337 | XXXXXXX, XXXXXXX, | ||
| 338 | XXXXXXX, | ||
| 339 | RESET, XXXXXXX, XXXXXXX, | ||
| 340 | |||
| 341 | // right hand | ||
| 342 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 343 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 344 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 345 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 346 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 347 | |||
| 348 | // right thumb | ||
| 349 | XXXXXXX, XXXXXXX, | ||
| 350 | XXXXXXX, | ||
| 351 | XXXXXXX, XXXXXXX, EEP_RST | ||
| 352 | ) | ||
| 353 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c new file mode 100644 index 000000000..e5eba1820 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/aliases_definitions.c | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | // Keycode aliases | ||
| 2 | #define SCTL(kc) LSFT(LCTL(kc)) // Modifier keys: SHIFT+CTRL+kc combination. | ||
| 3 | #define LGAS_T(kc) MT(MOD_LGUI | MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, GUI+ALT+SHIFT when held. | ||
| 4 | #define LAS_T(kc) MT(MOD_LALT | MOD_LSFT, kc) // Mod tap: kc when tapped, ALT+SHIFT whin held. | ||
| 5 | #define COMPOSE KC_RALT // Compose key (used to input characters like á, ñ, ü). | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c new file mode 100644 index 000000000..368062172 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keycodes/custom_keycodes.c | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | // Define custom user keycodes: | ||
| 2 | enum custom_keycodes { | ||
| 3 | PLACEHOLDER = SAFE_RANGE, // Can always be here. | ||
| 4 | RGB_GREEN, // To set default RGB layer as green once. | ||
| 5 | MY_CUSTOM_MACRO, // Custom macro example. | ||
| 6 | MY_OTHER_MACRO, // Custom macro example. | ||
| 7 | DYNAMIC_MACRO_RANGE // Should always be the last. | ||
| 8 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c index c42b55108..af06d2bd8 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/keymap.c | |||
| @@ -1,781 +1,19 @@ | |||
| 1 | #include QMK_KEYBOARD_H | 1 | #include QMK_KEYBOARD_H // Includes the QMK-verse. |
| 2 | #include "keymap_dvorak.h" | 2 | #include "keymap_plover.h" // Includes the Plover keymap for easier readability. |
| 3 | #include "sendstring_dvorak.h" | 3 | |
| 4 | #include "keymap_plover.h" | 4 | |
| 5 | #include "keymap_plover_dvorak.h" | 5 | // TODO: No eeprom changes unless needed, custom rgb settings for animations. |
| 6 | 6 | #include "keycodes/aliases_definitions.c" | |
| 7 | 7 | #include "layers/layers_definitions.c" | |
| 8 | #define SCTL(kc) LSFT(LCTL(kc)) | 8 | #include "tap_dance/tap_dance_setup.c" |
| 9 | 9 | #include "tap_dance/tap_dances.c" | |
| 10 | // Layers | 10 | #include "user/matrix_scan_user.c" |
| 11 | enum layers { | 11 | #include "tap_dance/mod_tap_layer_dances/none_lead.c" |
| 12 | DVORAK_US = 0, | 12 | #include "tap_dance/tap_dance_actions.c" |
| 13 | PLOVER_US, | 13 | #include "keycodes/custom_keycodes.c" |
| 14 | GAMING_US, | 14 | #include "dynamic_macro.h" // Includes dynamic macro definitions, needed *after* the custom keycodes. |
| 15 | ARROWS_US, | 15 | #include "hacker_dvorak.c" |
| 16 | MOUSE_US, | 16 | #include "user/eeconfig_init_user.c" |
| 17 | NUMPAD_US, | 17 | #include "user/process_record_user.c" |
| 18 | LAYERS_US, | 18 | #include "plover/plover_mode.c" |
| 19 | DVORAK_DV, | 19 | #include "user/layer_set_state_user.c" |
| 20 | PLOVER_DV, | ||
| 21 | GAMING_DV, | ||
| 22 | ARROWS_DV, | ||
| 23 | MOUSE_DV, | ||
| 24 | NUMPAD_DV, | ||
| 25 | LAYERS_DV, | ||
| 26 | MEDIA_FN, | ||
| 27 | HYPER_FN, | ||
| 28 | MEH_FN, | ||
| 29 | MEH_FN_PLUS, | ||
| 30 | FIRMWARE | ||
| 31 | }; | ||
| 32 | |||
| 33 | int CAPS_LOCK = 0; | ||
| 34 | int NUM_LOCK = 0; | ||
| 35 | int SCROLL_LOCK = 0; | ||
| 36 | |||
| 37 | enum tap_dances { | ||
| 38 | TD_ESC_CAPS = 0 | ||
| 39 | }; | ||
| 40 | |||
| 41 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 42 | [TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CLCK) | ||
| 43 | }; | ||
| 44 | |||
| 45 | |||
| 46 | enum custom_keycodes { | ||
| 47 | PLACEHOLDER = SAFE_RANGE, // can always be here | ||
| 48 | RGB_GREEN // to set default RGB layer as green once | ||
| 49 | }; | ||
| 50 | |||
| 51 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 52 | /* | ||
| 53 | * ,--------------------------------------------------. ,--------------------------------------------------. | ||
| 54 | * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | | 38 | 39 | 40 | 41 | 42 | 43 | 44 | | ||
| 55 | * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | ||
| 56 | * | 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 45 | 46 | 47 | 48 | 49 | 50 | 51 | | ||
| 57 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | ||
| 58 | * | 14 | 15 | 16 | 17 | 18 | 19 |------| |------| 52 | 53 | 54 | 55 | 56 | 57 | | ||
| 59 | * |--------+------+------+------+------+------| 26 | | 58 |------+------+------+------+------+--------| | ||
| 60 | * | 20 | 21 | 22 | 23 | 24 | 25 | | | | 59 | 60 | 61 | 62 | 63 | 64 | | ||
| 61 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | ||
| 62 | * | 27 | 28 | 29 | 30 | 31 | | 65 | 66 | 67 | 68 | 69 | | ||
| 63 | * `----------------------------------' `----------------------------------' | ||
| 64 | * ,-------------. ,-------------. | ||
| 65 | * | 32 | 33 | | 70 | 71 | | ||
| 66 | * ,------+------+------| |------+------+------. | ||
| 67 | * | | | 34 | | 72 | | | | ||
| 68 | * | 35 | 36 |------| |------| 74 | 75 | | ||
| 69 | * | | | 37 | | 73 | | | | ||
| 70 | * `--------------------' `--------------------' | ||
| 71 | */ | ||
| 72 | [DVORAK_US] = LAYOUT_ergodox( | ||
| 73 | // left hand | ||
| 74 | KC_ESC, KC_LABK, KC_LCBR, KC_LBRC, KC_LPRN, KC_EXLM, KC_AMPR, | ||
| 75 | KC_TAB, KC_QUOT, SCMD_T(KC_COMM), MEH_T(KC_DOT), ALL_T(KC_P), KC_Y, KC_AT, | ||
| 76 | KC_EQL, CTL_T(KC_A), SFT_T(KC_O), LT(NUMPAD_US, KC_E), LT(ARROWS_US, KC_U), KC_I, | ||
| 77 | KC_BSLS, ALGR_T(KC_SCLN), ALT_T(KC_Q), LT(MEDIA_FN, KC_J), GUI_T(KC_K), KC_X, KC_PERC, | ||
| 78 | MO(MEH_FN), TG(LAYERS_US), KC_CIRC, KC_PLUS, KC_COLN, | ||
| 79 | |||
| 80 | // left thumb | ||
| 81 | KC_LEFT, KC_RGHT, | ||
| 82 | KC_HOME, | ||
| 83 | KC_SPC, KC_BSPC, KC_END, | ||
| 84 | |||
| 85 | // right hand | ||
| 86 | KC_PIPE, KC_QUES, KC_RPRN, KC_RBRC, KC_RCBR, KC_RABK, KC_ASTR, | ||
| 87 | KC_HASH, KC_F, ALL_T(KC_G), MEH_T(KC_C), SCMD_T(KC_R), KC_L, KC_SLSH, | ||
| 88 | KC_D, LT(MOUSE_US, KC_H), LT(HYPER_FN, KC_T), SFT_T(KC_N), CTL_T(KC_S), KC_MINS, | ||
| 89 | KC_DLR, KC_B, GUI_T(KC_M), LT(MEDIA_FN, KC_W), ALT_T(KC_V), ALGR_T(KC_Z), KC_GRV, | ||
| 90 | KC_DQUO, KC_UNDS, KC_TILD, TG(DVORAK_DV), MO(MEH_FN_PLUS), | ||
| 91 | |||
| 92 | // right thumb | ||
| 93 | KC_UP, KC_DOWN, | ||
| 94 | KC_PGUP, | ||
| 95 | KC_PGDN, KC_DEL, KC_ENT | ||
| 96 | ), | ||
| 97 | |||
| 98 | [PLOVER_US] = LAYOUT_ergodox( | ||
| 99 | // left hand | ||
| 100 | XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_BTN3, GUI_T(KC_NO), | ||
| 101 | KC_ESC, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PV_NUM, | ||
| 102 | KC_TAB, PV_LS, PV_LT, PV_LP, PV_LH, PV_STAR, | ||
| 103 | KC_CLCK, PV_LS, PV_LK, PV_LW, PV_LR, PV_STAR, PV_STAR, | ||
| 104 | MO(MEH_FN), TG(LAYERS_US), PV_NUM, PV_NUM, PV_NUM, | ||
| 105 | |||
| 106 | // left thumb | ||
| 107 | KC_SPACE, KC_BSPACE, | ||
| 108 | KC_HOME, | ||
| 109 | PV_A, PV_O, KC_END, | ||
| 110 | |||
| 111 | // right hand | ||
| 112 | KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, KC_UP, KC_APPLICATION, XXXXXXX, KC_MS_WH_UP, | ||
| 113 | PV_NUM, KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_MS_WH_DOWN, | ||
| 114 | PV_STAR, PV_RF, PV_RP, PV_RL, PV_RT, PV_RD, | ||
| 115 | PV_STAR, PV_STAR, PV_RR, PV_RB, PV_RG, PV_RS, PV_RZ, | ||
| 116 | PV_NUM, PV_NUM, PV_NUM, PV_NUM, MO(MEH_FN_PLUS), | ||
| 117 | |||
| 118 | // right thumb | ||
| 119 | KC_DELETE, KC_ENTER, | ||
| 120 | KC_PGUP, | ||
| 121 | KC_PGDOWN, PV_E, PV_U | ||
| 122 | ), | ||
| 123 | |||
| 124 | [GAMING_US] = LAYOUT_ergodox( | ||
| 125 | // left hand | ||
| 126 | KC_ESCAPE, GUI_T(KC_MINS), KC_I, KC_O, KC_P, ALGR_T(KC_EQL), KC_T, | ||
| 127 | KC_TAB, KC_LALT, KC_Q, KC_W, KC_E, ALL_T(KC_R), KC_G, | ||
| 128 | LT(MOUSE_US, KC_GRV), KC_LCTRL, KC_A, KC_S, KC_D, MEH_T(KC_F), | ||
| 129 | KC_BSLS, KC_LSHIFT, KC_Z, KC_X, KC_C, SCMD_T(KC_V), KC_M, | ||
| 130 | MO(MEH_FN), TG(LAYERS_US), KC_COMM, KC_DOT, KC_LBRC, | ||
| 131 | |||
| 132 | // left thumb | ||
| 133 | MO(MEDIA_FN), KC_NLCK, | ||
| 134 | KC_SCLN, | ||
| 135 | KC_SPACE, KC_ENTER, KC_BSPACE, | ||
| 136 | |||
| 137 | // right hand | ||
| 138 | KC_QUOT, KC_Y, KC_K, KC_U, KC_KP_7, KC_KP_8, KC_KP_9, | ||
| 139 | KC_MS_WH_UP, KC_H, KC_J, KC_L, KC_KP_4, KC_KP_2, KC_KP_6, | ||
| 140 | KC_B, KC_MS_UP, KC_N, KC_KP_1, KC_KP_5, KC_KP_3, | ||
| 141 | KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_UP, KC_KP_0, KC_SLASH, | ||
| 142 | KC_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, MO(MEH_FN_PLUS), | ||
| 143 | |||
| 144 | // right thumb | ||
| 145 | KC_MS_BTN5, MO(HYPER_FN), | ||
| 146 | KC_MS_BTN4, | ||
| 147 | KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1 | ||
| 148 | ), | ||
| 149 | |||
| 150 | [ARROWS_US] = LAYOUT_ergodox( | ||
| 151 | // left hand | ||
| 152 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 153 | XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 154 | XXXXXXX, KC_LCTRL, KC_LSHIFT, XXXXXXX, _______, XXXXXXX, | ||
| 155 | XXXXXXX, KC_RALT, KC_LALT, GUI_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 156 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 157 | |||
| 158 | // left thumb | ||
| 159 | XXXXXXX, XXXXXXX, | ||
| 160 | KC_HOME, | ||
| 161 | KC_SPACE, KC_BSPACE, KC_END, | ||
| 162 | |||
| 163 | // right hand | ||
| 164 | LGUI(KC_X), XXXXXXX, LCTL(KC_X), KC_MS_WH_UP, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 165 | LGUI(KC_C), XXXXXXX, LCTL(KC_C), KC_UP, SCTL(KC_C), LCTL(KC_Z), LGUI(KC_Z), | ||
| 166 | KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_APPLICATION, | ||
| 167 | LGUI(KC_V), XXXXXXX, LCTL(KC_V), KC_MS_WH_DOWN, SCTL(KC_V), LCTL(KC_Y), SGUI(KC_Z), | ||
| 168 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, | ||
| 169 | |||
| 170 | // right thumb | ||
| 171 | XXXXXXX, XXXXXXX, | ||
| 172 | KC_PGUP, | ||
| 173 | KC_PGDOWN, KC_DELETE, KC_ENTER | ||
| 174 | ), | ||
| 175 | |||
| 176 | [MOUSE_US] = LAYOUT_ergodox( | ||
| 177 | // left hand | ||
| 178 | XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_UP, LCTL(KC_X), XXXXXXX, LGUI(KC_X), | ||
| 179 | LGUI(KC_Z), LCTL(KC_Z), SCTL(KC_C), KC_MS_UP, LCTL(KC_C), KC_MS_BTN4, LGUI(KC_C), | ||
| 180 | KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_RIGHT, | ||
| 181 | LGUI(KC_Z), LCTL(KC_Y), SCTL(KC_V), KC_MS_WH_DOWN, LCTL(KC_V), KC_MS_BTN5, LGUI(KC_V), | ||
| 182 | KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 183 | |||
| 184 | // left thumb | ||
| 185 | XXXXXXX, XXXXXXX, | ||
| 186 | XXXXXXX, | ||
| 187 | KC_MS_BTN1, KC_MS_BTN2, XXXXXXX, | ||
| 188 | |||
| 189 | // right hand | ||
| 190 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 191 | XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX, | ||
| 192 | XXXXXXX, _______, KC_MS_ACCEL1, KC_LSHIFT, KC_LCTRL, KC_MS_ACCEL2, | ||
| 193 | XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT, KC_RALT, XXXXXXX, | ||
| 194 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 195 | |||
| 196 | // right thumb | ||
| 197 | XXXXXXX, XXXXXXX, | ||
| 198 | XXXXXXX, | ||
| 199 | XXXXXXX, XXXXXXX, KC_MS_ACCEL0 | ||
| 200 | ), | ||
| 201 | |||
| 202 | [NUMPAD_US] = LAYOUT_ergodox( | ||
| 203 | // left hand | ||
| 204 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 205 | XXXXXXX, XXXXXXX, GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO), XXXXXXX, XXXXXXX, | ||
| 206 | _______, KC_LCTRL, KC_LSHIFT, _______, MEH_T(KC_NO), XXXXXXX, | ||
| 207 | XXXXXXX, KC_RALT, KC_LALT, XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX, | ||
| 208 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 209 | |||
| 210 | // left thumb | ||
| 211 | XXXXXXX, XXXXXXX, | ||
| 212 | KC_HOME, | ||
| 213 | KC_SPACE, KC_BSPACE, KC_END, | ||
| 214 | |||
| 215 | // right hand | ||
| 216 | KC_X, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, | ||
| 217 | KC_O, KC_I, KC_1, KC_2, KC_3, KC_SLSH, KC_PERC, | ||
| 218 | KC_M, KC_4, KC_5, KC_6, KC_PLUS, KC_MINS, | ||
| 219 | KC_L, KC_J, KC_7, KC_8, KC_9, KC_ASTR, KC_CIRC, | ||
| 220 | KC_DOT, KC_0, KC_COMM, KC_UNDS, KC_BSLS, | ||
| 221 | |||
| 222 | // right thumb | ||
| 223 | XXXXXXX, XXXXXXX, | ||
| 224 | KC_PGUP, | ||
| 225 | KC_PGDOWN, KC_DELETE, KC_ENTER | ||
| 226 | ), | ||
| 227 | |||
| 228 | [LAYERS_US] = LAYOUT_ergodox( | ||
| 229 | // left hand | ||
| 230 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 231 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 232 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 233 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 234 | XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 235 | |||
| 236 | // left thumb | ||
| 237 | XXXXXXX, XXXXXXX, | ||
| 238 | XXXXXXX, | ||
| 239 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 240 | |||
| 241 | // right hand | ||
| 242 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 243 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 244 | XXXXXXX, TO(DVORAK_US), TO(PLOVER_US), TO(GAMING_US), XXXXXXX, XXXXXXX, | ||
| 245 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 246 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 247 | |||
| 248 | // right thumb | ||
| 249 | XXXXXXX, XXXXXXX, | ||
| 250 | XXXXXXX, | ||
| 251 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 252 | ), | ||
| 253 | |||
| 254 | [DVORAK_DV] = LAYOUT_ergodox( | ||
| 255 | // left hand | ||
| 256 | KC_ESC, DV_LABK, DV_LCBR, DV_LBRC, DV_LPRN, DV_EXLM, DV_AMPR, | ||
| 257 | KC_TAB, DV_QUOT, SCMD_T(DV_COMM), MEH_T(DV_DOT), ALL_T(DV_P), DV_Y, DV_AT, | ||
| 258 | DV_EQL, CTL_T(DV_A), SFT_T(DV_O), LT(NUMPAD_DV, DV_E), LT(ARROWS_DV, DV_U), DV_I, | ||
| 259 | DV_BSLS, ALGR_T(DV_SCLN), ALT_T(DV_Q), LT(MEDIA_FN, DV_J), GUI_T(DV_K), DV_X, DV_PERC, | ||
| 260 | MO(MEH_FN), TG(LAYERS_DV), DV_CIRC, DV_PLUS, DV_COLN, | ||
| 261 | |||
| 262 | // left thumb | ||
| 263 | KC_LEFT, KC_RGHT, | ||
| 264 | KC_HOME, | ||
| 265 | KC_SPC, KC_BSPC, KC_END, | ||
| 266 | |||
| 267 | // right hand | ||
| 268 | DV_PIPE, DV_QUES, DV_RPRN, DV_RBRC, DV_RCBR, DV_RABK, DV_ASTR, | ||
| 269 | DV_HASH, DV_F, ALL_T(DV_G), MEH_T(DV_C), SCMD_T(DV_R), DV_L, DV_SLSH, | ||
| 270 | DV_D, LT(MOUSE_DV, DV_H), LT(HYPER_FN, DV_T), SFT_T(DV_N), CTL_T(DV_S), DV_MINS, | ||
| 271 | DV_DLR, DV_B, GUI_T(DV_M), LT(MEDIA_FN, DV_W), ALT_T(DV_V), ALGR_T(DV_Z), DV_GRV, | ||
| 272 | DV_DQUO, DV_UNDS, DV_TILD, _______, MO(MEH_FN_PLUS), | ||
| 273 | |||
| 274 | // right thumb | ||
| 275 | KC_UP, KC_DOWN, | ||
| 276 | KC_PGUP, | ||
| 277 | KC_PGDN, KC_DEL, KC_ENT | ||
| 278 | ), | ||
| 279 | |||
| 280 | [PLOVER_DV] = LAYOUT_ergodox( | ||
| 281 | // left hand | ||
| 282 | XXXXXXX, XXXXXXX, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_BTN3, GUI_T(KC_NO), | ||
| 283 | KC_ESC, KC_MS_BTN4, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_BTN5, PD_NUM, | ||
| 284 | KC_TAB, PD_LS, PD_LT, PD_LP, PD_LH, PD_STAR, | ||
| 285 | KC_CLCK, PD_LS, PD_LK, PD_LW, PD_LR, PD_STAR, PD_STAR, | ||
| 286 | MO(MEH_FN), TG(LAYERS_DV), PD_NUM, PD_NUM, PD_NUM, | ||
| 287 | |||
| 288 | // left thumb | ||
| 289 | KC_SPACE, KC_BSPACE, | ||
| 290 | KC_HOME, | ||
| 291 | PD_A, PD_O, KC_END, | ||
| 292 | |||
| 293 | // right hand | ||
| 294 | KC_MS_ACCEL2, KC_MS_ACCEL1, KC_MS_ACCEL0, KC_UP, KC_APPLICATION, XXXXXXX, KC_MS_WH_UP, | ||
| 295 | PD_NUM, KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_MS_WH_DOWN, | ||
| 296 | PD_STAR, PD_RF, PD_RP, PD_RL, PD_RT, PD_RD, | ||
| 297 | PD_STAR, PD_STAR, PD_RR, PD_RB, PD_RG, PD_RS, PD_RZ, | ||
| 298 | PD_NUM, PD_NUM, PD_NUM, PD_NUM, MO(MEH_FN_PLUS), | ||
| 299 | |||
| 300 | // right thumb | ||
| 301 | KC_DELETE, KC_ENTER, | ||
| 302 | KC_PGUP, | ||
| 303 | KC_PGDOWN, PD_E, PD_U | ||
| 304 | ), | ||
| 305 | |||
| 306 | [GAMING_DV] = LAYOUT_ergodox( | ||
| 307 | // left hand | ||
| 308 | KC_ESCAPE, GUI_T(DV_MINS), DV_I, DV_O, DV_P, ALGR_T(DV_EQL), DV_T, | ||
| 309 | KC_TAB, KC_LALT, DV_Q, DV_W, DV_E, ALL_T(DV_R), DV_G, | ||
| 310 | LT(MOUSE_DV, DV_GRV), KC_LCTRL, DV_A, DV_S, DV_D, MEH_T(DV_F), | ||
| 311 | DV_BSLS, KC_LSHIFT, DV_Z, DV_X, DV_C, SCMD_T(DV_V), DV_M, | ||
| 312 | MO(MEH_FN), TG(LAYERS_DV), DV_COMM, DV_DOT, DV_LBRC, | ||
| 313 | |||
| 314 | // left thumb | ||
| 315 | MO(MEDIA_FN), KC_NLCK, | ||
| 316 | DV_SCLN, | ||
| 317 | KC_SPACE, KC_ENTER, KC_BSPACE, | ||
| 318 | |||
| 319 | // right hand | ||
| 320 | DV_QUOT, DV_Y, DV_K, DV_U, KC_KP_7, KC_KP_8, KC_KP_9, | ||
| 321 | KC_MS_WH_UP, DV_H, DV_J, DV_L, KC_KP_4, KC_KP_2, KC_KP_6, | ||
| 322 | DV_B, KC_MS_UP, DV_N, KC_KP_1, KC_KP_5, KC_KP_3, | ||
| 323 | KC_MS_WH_DOWN, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_UP, KC_KP_0, DV_SLSH, | ||
| 324 | DV_RBRC, KC_LEFT, KC_DOWN, KC_RIGHT, MO(MEH_FN_PLUS), | ||
| 325 | |||
| 326 | // right thumb | ||
| 327 | KC_MS_BTN5, MO(HYPER_FN), | ||
| 328 | KC_MS_BTN4, | ||
| 329 | KC_MS_BTN3, KC_MS_BTN2, KC_MS_BTN1 | ||
| 330 | ), | ||
| 331 | |||
| 332 | [ARROWS_DV] = LAYOUT_ergodox( | ||
| 333 | // left hand | ||
| 334 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 335 | XXXXXXX, SCMD_T(KC_NO), MEH_T(KC_NO), ALL_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 336 | XXXXXXX, KC_LCTRL, KC_LSHIFT, XXXXXXX, _______, XXXXXXX, | ||
| 337 | XXXXXXX, KC_RALT, KC_LALT, GUI_T(KC_NO), XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 338 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 339 | |||
| 340 | // left thumb | ||
| 341 | XXXXXXX, XXXXXXX, | ||
| 342 | KC_HOME, | ||
| 343 | KC_SPACE, KC_BSPACE, KC_END, | ||
| 344 | |||
| 345 | // right hand | ||
| 346 | LGUI(DV_X), XXXXXXX, LCTL(DV_X), KC_MS_WH_UP, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 347 | LGUI(DV_C), XXXXXXX, LCTL(DV_C), KC_UP, SCTL(DV_C), LCTL(DV_Z), LGUI(DV_Z), | ||
| 348 | KC_MS_WH_LEFT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_MS_WH_RIGHT, KC_APPLICATION, | ||
| 349 | LGUI(DV_V), XXXXXXX, LCTL(DV_V), KC_MS_WH_DOWN, SCTL(DV_V), LCTL(DV_Y), SGUI(DV_Z), | ||
| 350 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLCK, | ||
| 351 | |||
| 352 | // right thumb | ||
| 353 | XXXXXXX, XXXXXXX, | ||
| 354 | KC_PGUP, | ||
| 355 | KC_PGDOWN, KC_DELETE, KC_ENTER | ||
| 356 | ), | ||
| 357 | |||
| 358 | [MOUSE_DV] = LAYOUT_ergodox( | ||
| 359 | // left hand | ||
| 360 | XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_WH_UP, LCTL(DV_X), XXXXXXX, LGUI(DV_X), | ||
| 361 | LGUI(DV_Z), LCTL(DV_Z), SCTL(DV_C), KC_MS_UP, LCTL(DV_C), KC_MS_BTN4, LGUI(DV_C), | ||
| 362 | KC_MS_BTN3, KC_MS_WH_LEFT, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_MS_WH_RIGHT, | ||
| 363 | LGUI(DV_Z), LCTL(DV_Y), SCTL(DV_V), KC_MS_WH_DOWN, LCTL(DV_V), KC_MS_BTN5, LGUI(DV_V), | ||
| 364 | KC_SLCK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 365 | |||
| 366 | // left thumb | ||
| 367 | XXXXXXX, XXXXXXX, | ||
| 368 | XXXXXXX, | ||
| 369 | KC_MS_BTN1, KC_MS_BTN2, XXXXXXX, | ||
| 370 | |||
| 371 | // right hand | ||
| 372 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 373 | XXXXXXX, XXXXXXX, XXXXXXX, ALL_T(KC_NO), MEH_T(KC_NO), SCMD_T(KC_NO), XXXXXXX, | ||
| 374 | XXXXXXX, _______, KC_MS_ACCEL1, KC_LSHIFT, KC_LCTRL, KC_MS_ACCEL2, | ||
| 375 | XXXXXXX, XXXXXXX, XXXXXXX, GUI_T(KC_NO), KC_LALT, KC_RALT, XXXXXXX, | ||
| 376 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 377 | |||
| 378 | // right thumb | ||
| 379 | XXXXXXX, XXXXXXX, | ||
| 380 | XXXXXXX, | ||
| 381 | XXXXXXX, XXXXXXX, KC_MS_ACCEL0 | ||
| 382 | ), | ||
| 383 | |||
| 384 | [NUMPAD_DV] = LAYOUT_ergodox( | ||
| 385 | // left hand | ||
| 386 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 387 | XXXXXXX, XXXXXXX, GUI_T(KC_NO), XXXXXXX, ALL_T(KC_NO), XXXXXXX, XXXXXXX, | ||
| 388 | _______, KC_LCTRL, KC_LSHIFT, _______, MEH_T(KC_NO), XXXXXXX, | ||
| 389 | XXXXXXX, KC_RALT, KC_LALT, XXXXXXX, SCMD_T(KC_NO), XXXXXXX, XXXXXXX, | ||
| 390 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 391 | |||
| 392 | // left thumb | ||
| 393 | XXXXXXX, XXXXXXX, | ||
| 394 | KC_HOME, | ||
| 395 | KC_SPACE, KC_BSPACE, KC_END, | ||
| 396 | |||
| 397 | // right hand | ||
| 398 | DV_X, DV_A, DV_B, DV_C, DV_D, DV_E, DV_F, | ||
| 399 | DV_O, DV_I, DV_1, DV_2, DV_3, DV_SLSH, DV_PERC, | ||
| 400 | DV_M, DV_4, DV_5, DV_6, DV_PLUS, DV_MINS, | ||
| 401 | DV_L, DV_J, DV_7, DV_8, DV_9, DV_ASTR, DV_CIRC, | ||
| 402 | DV_DOT, DV_0, DV_COMM, DV_UNDS, DV_BSLS, | ||
| 403 | |||
| 404 | // right thumb | ||
| 405 | XXXXXXX, XXXXXXX, | ||
| 406 | KC_PGUP, | ||
| 407 | KC_PGDOWN, KC_DELETE, KC_ENTER | ||
| 408 | ), | ||
| 409 | |||
| 410 | [LAYERS_DV] = LAYOUT_ergodox( | ||
| 411 | // left hand | ||
| 412 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 413 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 414 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 415 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 416 | XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 417 | |||
| 418 | // left thumb | ||
| 419 | XXXXXXX, XXXXXXX, | ||
| 420 | XXXXXXX, | ||
| 421 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 422 | |||
| 423 | // right hand | ||
| 424 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 425 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 426 | XXXXXXX, TO(DVORAK_DV), TO(PLOVER_DV), TO(GAMING_DV), XXXXXXX, XXXXXXX, | ||
| 427 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 428 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 429 | |||
| 430 | // right thumb | ||
| 431 | XXXXXXX, XXXXXXX, | ||
| 432 | XXXXXXX, | ||
| 433 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 434 | ), | ||
| 435 | |||
| 436 | [MEDIA_FN] = LAYOUT_ergodox( | ||
| 437 | // left hand | ||
| 438 | KC_AUDIO_VOL_DOWN, KC_AUDIO_MUTE, RGB_TOG, XXXXXXX, KC_MAIL, KC_FIND, KC_WWW_REFRESH, | ||
| 439 | KC_MEDIA_PREV_TRACK, KC_F9, KC_F7, KC_F5, KC_F3, KC_F1, KC_WWW_HOME, | ||
| 440 | KC_PAUSE, KC_F19, KC_F17, KC_F15, KC_F13, KC_F11, | ||
| 441 | RGB_HUD, XXXXXXX, XXXXXXX, _______, KC_F23, KC_F21, KC_WWW_BACK, | ||
| 442 | RGB_VAD, KC_CLCK, KC_PSCREEN, XXXXXXX, MO(FIRMWARE), | ||
| 443 | |||
| 444 | // left thumb | ||
| 445 | _______, XXXXXXX, | ||
| 446 | XXXXXXX, | ||
| 447 | XXXXXXX, XXXXXXX, KC_MEDIA_EJECT, | ||
| 448 | |||
| 449 | // right hand | ||
| 450 | KC_WWW_FAVORITES, KC_MY_COMPUTER, KC_CALCULATOR, XXXXXXX, RGB_MOD, RGB_M_P, KC_AUDIO_VOL_UP, | ||
| 451 | KC_WWW_SEARCH, KC_F2, KC_F4, KC_F6, KC_F8, KC_F10, KC_MEDIA_NEXT_TRACK, | ||
| 452 | KC_F12, KC_F14, KC_F16, KC_F18, KC_F20, KC_MEDIA_PLAY_PAUSE, | ||
| 453 | KC_WWW_FORWARD, KC_F22, KC_F24, _______, XXXXXXX, XXXXXXX, RGB_HUI, | ||
| 454 | KC_SYSTEM_POWER, XXXXXXX, KC_SYSTEM_SLEEP, KC_SYSTEM_WAKE, RGB_VAI, | ||
| 455 | |||
| 456 | // right thumb | ||
| 457 | XXXXXXX, XXXXXXX, | ||
| 458 | XXXXXXX, | ||
| 459 | RGB_GREEN, XXXXXXX, XXXXXXX | ||
| 460 | ), | ||
| 461 | |||
| 462 | [HYPER_FN] = LAYOUT_ergodox( | ||
| 463 | // left hand | ||
| 464 | XXXXXXX, HYPR(KC_F1), HYPR(KC_F2), HYPR(KC_F3), HYPR(KC_F4), HYPR(KC_F5), XXXXXXX, | ||
| 465 | XXXXXXX, HYPR(KC_F6), HYPR(KC_F7), HYPR(KC_F8), HYPR(KC_F9), HYPR(KC_F10), XXXXXXX, | ||
| 466 | XXXXXXX, HYPR(KC_F11), HYPR(KC_F12), HYPR(KC_F13), HYPR(KC_F14), HYPR(KC_F15), | ||
| 467 | XXXXXXX, HYPR(KC_F16), HYPR(KC_F17), HYPR(KC_F18), HYPR(KC_F19), HYPR(KC_F20), XXXXXXX, | ||
| 468 | XXXXXXX, HYPR(KC_F21), HYPR(KC_F22), HYPR(KC_F23), HYPR(KC_F24), | ||
| 469 | |||
| 470 | // left thumb | ||
| 471 | XXXXXXX, XXXXXXX, | ||
| 472 | XXXXXXX, | ||
| 473 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 474 | |||
| 475 | // right hand | ||
| 476 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 477 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 478 | XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 479 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 480 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 481 | |||
| 482 | // right thumb | ||
| 483 | XXXXXXX, _______, | ||
| 484 | XXXXXXX, | ||
| 485 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 486 | ), | ||
| 487 | |||
| 488 | [MEH_FN] = LAYOUT_ergodox( | ||
| 489 | // left hand | ||
| 490 | LCA(KC_F11), LCA(KC_F9), LCA(KC_F7), LCA(KC_F5), LCA(KC_F3), LCA(KC_F1), XXXXXXX, | ||
| 491 | LCAG(KC_F11), LCAG(KC_F9), LCAG(KC_F7), LCAG(KC_F5), LCAG(KC_F3), LCAG(KC_F1), XXXXXXX, | ||
| 492 | MEH(KC_F11), MEH(KC_F9), MEH(KC_F7), MEH(KC_F5), MEH(KC_F3), MEH(KC_F1), | ||
| 493 | SGUI(KC_F11), SGUI(KC_F9), SGUI(KC_F7), SGUI(KC_F5), SGUI(KC_F3), SGUI(KC_F1), XXXXXXX, | ||
| 494 | _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 495 | |||
| 496 | // left thumb | ||
| 497 | XXXXXXX, XXXXXXX, | ||
| 498 | XXXXXXX, | ||
| 499 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 500 | |||
| 501 | // right hand | ||
| 502 | XXXXXXX, LCA(KC_F2), LCA(KC_F4), LCA(KC_F6), LCA(KC_F8), LCA(KC_F10), LCA(KC_F12), | ||
| 503 | XXXXXXX, LCAG(KC_F2), LCAG(KC_F4), LCAG(KC_F6), LCAG(KC_F8), LCAG(KC_F10), LCAG(KC_F12), | ||
| 504 | MEH(KC_F2), MEH(KC_F4), MEH(KC_F6), MEH(KC_F8), MEH(KC_F10), MEH(KC_F12), | ||
| 505 | XXXXXXX, SGUI(KC_F2), SGUI(KC_F4), SGUI(KC_F6), SGUI(KC_F8), SGUI(KC_F10), SGUI(KC_F12), | ||
| 506 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 507 | |||
| 508 | // right thumb | ||
| 509 | XXXXXXX, XXXXXXX, | ||
| 510 | XXXXXXX, | ||
| 511 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 512 | ), | ||
| 513 | |||
| 514 | [MEH_FN_PLUS] = LAYOUT_ergodox( | ||
| 515 | // left hand | ||
| 516 | LCA(KC_F23), LCA(KC_F21), LCA(KC_F19), LCA(KC_F17), LCA(KC_F15), LCA(KC_F13), XXXXXXX, | ||
| 517 | LCAG(KC_F23), LCAG(KC_F21), LCAG(KC_F19), LCAG(KC_F17), LCAG(KC_F15), LCAG(KC_F13), XXXXXXX, | ||
| 518 | MEH(KC_F23), MEH(KC_F21), MEH(KC_F19), MEH(KC_F17), MEH(KC_F15), MEH(KC_F13), | ||
| 519 | SGUI(KC_F23), SGUI(KC_F21), SGUI(KC_F19), SGUI(KC_F17), SGUI(KC_F15), SGUI(KC_F13), XXXXXXX, | ||
| 520 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 521 | |||
| 522 | // left thumb | ||
| 523 | XXXXXXX, XXXXXXX, | ||
| 524 | XXXXXXX, | ||
| 525 | XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 526 | |||
| 527 | // right hand | ||
| 528 | XXXXXXX, LCA(KC_F14), LCA(KC_F16), LCA(KC_F18), LCA(KC_F20), LCA(KC_F22), LCA(KC_F24), | ||
| 529 | XXXXXXX, LCAG(KC_F14), LCAG(KC_F16), LCAG(KC_F18), LCAG(KC_F20), LCAG(KC_F22), LCAG(KC_F24), | ||
| 530 | MEH(KC_F14), MEH(KC_F16), MEH(KC_F18), MEH(KC_F20), MEH(KC_F22), MEH(KC_F24), | ||
| 531 | XXXXXXX, SGUI(KC_F14), SGUI(KC_F16), SGUI(KC_F18), SGUI(KC_F20), SGUI(KC_F22), SGUI(KC_F24), | ||
| 532 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, | ||
| 533 | |||
| 534 | // right thumb | ||
| 535 | XXXXXXX, XXXXXXX, | ||
| 536 | XXXXXXX, | ||
| 537 | XXXXXXX, XXXXXXX, XXXXXXX | ||
| 538 | ), | ||
| 539 | |||
| 540 | [FIRMWARE] = LAYOUT_ergodox( | ||
| 541 | // left hand | ||
| 542 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 543 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 544 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 545 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 546 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, | ||
| 547 | |||
| 548 | // left thumb | ||
| 549 | XXXXXXX, XXXXXXX, | ||
| 550 | XXXXXXX, | ||
| 551 | RESET, XXXXXXX, XXXXXXX, | ||
| 552 | |||
| 553 | // right hand | ||
| 554 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 555 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 556 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 557 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 558 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
| 559 | |||
| 560 | // right thumb | ||
| 561 | XXXXXXX, XXXXXXX, | ||
| 562 | XXXXXXX, | ||
| 563 | XXXXXXX, XXXXXXX, EEP_RST | ||
| 564 | ) | ||
| 565 | }; | ||
| 566 | |||
| 567 | |||
| 568 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 569 | switch (keycode) { | ||
| 570 | case RGB_GREEN: | ||
| 571 | if (record->event.pressed) { | ||
| 572 | #ifdef RGBLIGHT_ENABLE | ||
| 573 | rgblight_enable(); | ||
| 574 | rgblight_mode(1); | ||
| 575 | rgblight_sethsv_red(); | ||
| 576 | #endif | ||
| 577 | } | ||
| 578 | |||
| 579 | return false; | ||
| 580 | |||
| 581 | case KC_CLCK: | ||
| 582 | if (record->event.pressed) { | ||
| 583 | if (!(CAPS_LOCK)) { | ||
| 584 | ergodox_right_led_1_on(); | ||
| 585 | CAPS_LOCK = 1; | ||
| 586 | } else { | ||
| 587 | ergodox_right_led_1_off(); | ||
| 588 | CAPS_LOCK = 0; | ||
| 589 | } | ||
| 590 | } | ||
| 591 | |||
| 592 | return true; | ||
| 593 | |||
| 594 | case KC_NLCK: | ||
| 595 | if (record->event.pressed) { | ||
| 596 | if (!(NUM_LOCK)) { | ||
| 597 | ergodox_right_led_2_on(); | ||
| 598 | NUM_LOCK = 1; | ||
| 599 | } else { | ||
| 600 | ergodox_right_led_2_off(); | ||
| 601 | NUM_LOCK = 0; | ||
| 602 | } | ||
| 603 | } | ||
| 604 | |||
| 605 | return true; | ||
| 606 | |||
| 607 | case KC_SLCK: | ||
| 608 | if (record->event.pressed) { | ||
| 609 | if (!(SCROLL_LOCK)) { | ||
| 610 | ergodox_right_led_3_on(); | ||
| 611 | SCROLL_LOCK = 1; | ||
| 612 | } else { | ||
| 613 | ergodox_right_led_3_off(); | ||
| 614 | SCROLL_LOCK = 0; | ||
| 615 | } | ||
| 616 | } | ||
| 617 | |||
| 618 | case KC_MS_WH_LEFT: | ||
| 619 | if (record->event.pressed) { | ||
| 620 | if (SCROLL_LOCK) { | ||
| 621 | return false; | ||
| 622 | } else { | ||
| 623 | return true; | ||
| 624 | } | ||
| 625 | } | ||
| 626 | |||
| 627 | case KC_MS_WH_UP: | ||
| 628 | if (record->event.pressed) { | ||
| 629 | if (SCROLL_LOCK) { | ||
| 630 | return false; | ||
| 631 | } else { | ||
| 632 | return true; | ||
| 633 | } | ||
| 634 | } | ||
| 635 | |||
| 636 | case KC_MS_WH_DOWN: | ||
| 637 | if (record->event.pressed) { | ||
| 638 | if (SCROLL_LOCK) { | ||
| 639 | return false; | ||
| 640 | } else { | ||
| 641 | return true; | ||
| 642 | } | ||
| 643 | } | ||
| 644 | |||
| 645 | case KC_MS_WH_RIGHT: | ||
| 646 | if (record->event.pressed) { | ||
| 647 | if (SCROLL_LOCK) { | ||
| 648 | return false; | ||
| 649 | } else { | ||
| 650 | return true; | ||
| 651 | } | ||
| 652 | } | ||
| 653 | |||
| 654 | default: | ||
| 655 | return true; | ||
| 656 | } | ||
| 657 | } | ||
| 658 | |||
| 659 | uint32_t layer_state_set_user(uint32_t state) { | ||
| 660 | uint8_t layer = biton32(state); | ||
| 661 | |||
| 662 | switch (layer) { | ||
| 663 | case DVORAK_US: | ||
| 664 | rgblight_sethsv_noeeprom_red(); | ||
| 665 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
| 666 | |||
| 667 | break; | ||
| 668 | |||
| 669 | case PLOVER_US: | ||
| 670 | rgblight_sethsv_noeeprom_red(); | ||
| 671 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
| 672 | |||
| 673 | break; | ||
| 674 | |||
| 675 | case GAMING_US: | ||
| 676 | rgblight_sethsv_noeeprom_red(); | ||
| 677 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
| 678 | |||
| 679 | break; | ||
| 680 | |||
| 681 | case ARROWS_US: | ||
| 682 | rgblight_sethsv_noeeprom_blue(); | ||
| 683 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 684 | |||
| 685 | break; | ||
| 686 | |||
| 687 | case MOUSE_US: | ||
| 688 | rgblight_sethsv_noeeprom_blue(); | ||
| 689 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 690 | |||
| 691 | break; | ||
| 692 | |||
| 693 | case NUMPAD_US: | ||
| 694 | rgblight_sethsv_noeeprom_blue(); | ||
| 695 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 696 | |||
| 697 | break; | ||
| 698 | |||
| 699 | case LAYERS_US: | ||
| 700 | rgblight_sethsv_noeeprom_cyan(); | ||
| 701 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 702 | |||
| 703 | break; | ||
| 704 | |||
| 705 | case DVORAK_DV: | ||
| 706 | rgblight_sethsv_noeeprom_green(); | ||
| 707 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
| 708 | break; | ||
| 709 | |||
| 710 | case PLOVER_DV: | ||
| 711 | rgblight_sethsv_noeeprom_green(); | ||
| 712 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
| 713 | |||
| 714 | break; | ||
| 715 | |||
| 716 | case GAMING_DV: | ||
| 717 | rgblight_sethsv_noeeprom_green(); | ||
| 718 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
| 719 | |||
| 720 | break; | ||
| 721 | |||
| 722 | case ARROWS_DV: | ||
| 723 | rgblight_sethsv_noeeprom_blue(); | ||
| 724 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 725 | |||
| 726 | break; | ||
| 727 | |||
| 728 | case MOUSE_DV: | ||
| 729 | rgblight_sethsv_noeeprom_blue(); | ||
| 730 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 731 | |||
| 732 | break; | ||
| 733 | |||
| 734 | case NUMPAD_DV: | ||
| 735 | rgblight_sethsv_noeeprom_blue(); | ||
| 736 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 737 | |||
| 738 | break; | ||
| 739 | |||
| 740 | case LAYERS_DV: | ||
| 741 | rgblight_sethsv_noeeprom_cyan(); | ||
| 742 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 743 | |||
| 744 | break; | ||
| 745 | |||
| 746 | case MEDIA_FN: | ||
| 747 | rgblight_sethsv_noeeprom_yellow(); | ||
| 748 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 749 | |||
| 750 | break; | ||
| 751 | |||
| 752 | case HYPER_FN: | ||
| 753 | rgblight_sethsv_noeeprom_magenta(); | ||
| 754 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 755 | |||
| 756 | break; | ||
| 757 | |||
| 758 | case MEH_FN: | ||
| 759 | rgblight_sethsv_noeeprom_magenta(); | ||
| 760 | rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 4); | ||
| 761 | |||
| 762 | break; | ||
| 763 | |||
| 764 | case MEH_FN_PLUS: | ||
| 765 | rgblight_sethsv_noeeprom_magenta(); | ||
| 766 | rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 5); | ||
| 767 | |||
| 768 | break; | ||
| 769 | |||
| 770 | case FIRMWARE: | ||
| 771 | rgblight_sethsv_noeeprom_pink(); | ||
| 772 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 773 | |||
| 774 | break; | ||
| 775 | |||
| 776 | default: | ||
| 777 | break; | ||
| 778 | } | ||
| 779 | |||
| 780 | return state; | ||
| 781 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c new file mode 100644 index 000000000..f190e4f6f --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/layers/layers_definitions.c | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | enum layers { // Hacker Dvorak keyboard layers: | ||
| 2 | DVORAK = 0, // * Dvorak base layer. | ||
| 3 | PLOVER = 1, // * Steno layer for use with Plover. | ||
| 4 | GAMING = 2, // * Gaming layer intended for general purpose playing. | ||
| 5 | ARROWS = 3, // * Arrows movement keys and edition shortcuts. | ||
| 6 | MOUSE = 4, // * Mouse movement keys and edition shortcuts. | ||
| 7 | NUMPAD = 5, // * ATM style numpad with symbols and letters that should suffice to input any numeric literal. | ||
| 8 | LAYERS = 6, // * Layer switcher used to change between DVORAK, PLOVER and GAMING layers. | ||
| 9 | MEDIA_FN = 7, // * Media, RGB and function keys from F1 to F24 in symmetric fashion. | ||
| 10 | HYPER = 8, // * Hot keys layer (uses hyper + F1 .. F24) suitable for global shortcut tasks. | ||
| 11 | FIRMWARE = 9 // * Layer with firmware related functionality, like the reset and EEPROM keys. | ||
| 12 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_dictionary.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_dictionary.c new file mode 100644 index 000000000..8d5fa00a7 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_dictionary.c | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | LEADER_DICTIONARY() { | ||
| 2 | leading = false; | ||
| 3 | leader_end(); | ||
| 4 | |||
| 5 | SEQ_ONE_KEY(TD(APMR_PIPE)) { | ||
| 6 | register_code(KC_LCTL); | ||
| 7 | register_code(KC_LSFT); | ||
| 8 | register_code(KC_U); | ||
| 9 | |||
| 10 | unregister_code(KC_U); | ||
| 11 | unregister_code(KC_LSFT); | ||
| 12 | unregister_code(KC_LCTL); | ||
| 13 | } | ||
| 14 | } | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c new file mode 100644 index 000000000..1e89c4bfc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/leader/leader_setup.c | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | LEADER_EXTERNS(); | ||
| 2 | |||
| 3 | void qk_leader_start(void) { | ||
| 4 | if (!leading) { | ||
| 5 | leading = true; | ||
| 6 | leader_time = timer_read(); | ||
| 7 | leader_sequence_size = 0; | ||
| 8 | leader_sequence[0] = 0; | ||
| 9 | leader_sequence[1] = 0; | ||
| 10 | leader_sequence[2] = 0; | ||
| 11 | leader_sequence[3] = 0; | ||
| 12 | leader_sequence[4] = 0; | ||
| 13 | } | ||
| 14 | } | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/plover/plover_mode.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/plover/plover_mode.c new file mode 100644 index 000000000..b38826490 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/plover/plover_mode.c | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | // TODO: improve feedback | ||
| 2 | void plover_toggle(void) { | ||
| 3 | // Press "PHROLG" | ||
| 4 | register_code(PV_LP); | ||
| 5 | register_code(PV_LH); | ||
| 6 | register_code(PV_LR); | ||
| 7 | register_code(PV_O); | ||
| 8 | register_code(PV_RL); | ||
| 9 | register_code(PV_RG); | ||
| 10 | |||
| 11 | // Release "PHROLG" | ||
| 12 | unregister_code(PV_LP); | ||
| 13 | unregister_code(PV_LH); | ||
| 14 | unregister_code(PV_LR); | ||
| 15 | unregister_code(PV_O); | ||
| 16 | unregister_code(PV_RL); | ||
| 17 | unregister_code(PV_RG); | ||
| 18 | } | ||
| 19 | |||
| 20 | bool PLOVER_MODE = false; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/readme.md b/keyboards/ergodox_ez/keymaps/hacker_dvorak/readme.md index c7df0d748..8089a6d55 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/readme.md +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/readme.md | |||
| @@ -17,8 +17,8 @@ I plan to use [QMK](https://docs.qmk.fm) in the future, in order to overcome som | |||
| 17 | * All symbols (including shifted symbols). | 17 | * All symbols (including shifted symbols). |
| 18 | * All modifier are dual keys positioned near the home row. | 18 | * All modifier are dual keys positioned near the home row. |
| 19 | 2. Querty | 19 | 2. Querty |
| 20 | * Used to overcome the limitation pointed above, when your OS layout is set to Dvorak instead of US, this way you can use | 20 | * Used to overcome the limitation pointed above, when your OS layout is set to Dvorak instead of US, this way you can use |
| 21 | Standard Dvorak (available by default on all the main operating systems) on other normal keybdoards and Hacker Dvorak on | 21 | Standard Dvorak (available by default on all the main operating systems) on other normal keybdoards and Hacker Dvorak on |
| 22 | the Ergodox EZ Shine at the same time, without changing back and forth tho OS layout. | 22 | the Ergodox EZ Shine at the same time, without changing back and forth tho OS layout. |
| 23 | 3. Gaming | 23 | 3. Gaming |
| 24 | * Still in development. | 24 | * Still in development. |
| @@ -35,7 +35,7 @@ I plan to use [QMK](https://docs.qmk.fm) in the future, in order to overcome som | |||
| 35 | 6. Numpad | 35 | 6. Numpad |
| 36 | * ATM style numpad. | 36 | * ATM style numpad. |
| 37 | * All modifier keys. | 37 | * All modifier keys. |
| 38 | * Letters from `A` to `F` for hexadecimal numbers (`B` is also used for binary numeric literals in most programming | 38 | * Letters from `A` to `F` for hexadecimal numbers (`B` is also used for binary numeric literals in most programming |
| 39 | languages, ie. `0b11001`). | 39 | languages, ie. `0b11001`). |
| 40 | * `X` for hexadecimal numeric literals in most programming languages, ie. `0xbeef`. | 40 | * `X` for hexadecimal numeric literals in most programming languages, ie. `0xbeef`. |
| 41 | * `O` for octal numeric literals in most programming languages, ie `0o123`. | 41 | * `O` for octal numeric literals in most programming languages, ie `0o123`. |
| @@ -52,11 +52,11 @@ I plan to use [QMK](https://docs.qmk.fm) in the future, in order to overcome som | |||
| 52 | * Useful for custom application shortcuts. | 52 | * Useful for custom application shortcuts. |
| 53 | 10. Meh Fn + | 53 | 10. Meh Fn + |
| 54 | * Useful for custom standard shortcuts. | 54 | * Useful for custom standard shortcuts. |
| 55 | 55 | ||
| 56 | ## To Do | 56 | ## To Do |
| 57 | 57 | ||
| 58 | Add images. | 58 | Add images. |
| 59 | 59 | ||
| 60 | *** | 60 | *** |
| 61 | 61 | ||
| 62 | Please comment below if you have any ideas or suggestions. If you have used this layout or used it as a base, I'd love to hear about your experience! \ No newline at end of file | 62 | Please comment below if you have any ideas or suggestions. If you have used this layout or used it as a base, I'd love to hear about your experience! |
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk index 4aa2f262b..51a9ff0d4 100644 --- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/rules.mk | |||
| @@ -1,35 +1,40 @@ | |||
| 1 | # Set any rules.mk overrides for your specific keymap here. | 1 | # Set any rules.mk overrides for your specific keymap here. |
| 2 | # See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file | 2 | # See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file |
| 3 | NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 4 | TAP_DANCE_ENABLE = yes | ||
| 5 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700b). | ||
| 6 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450b). | ||
| 7 | SLEEP_LED_ENABLE = yes # Turn off leds when computer is sleeping. | ||
| 8 | KEY_LOCK_ENABLE = yes # (+1730b) | ||
| 9 | RGBLIGHT_ENABLE = yes | ||
| 10 | LEADER_ENABLE = yes | ||
| 11 | 3 | ||
| 4 | NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||
| 5 | TAP_DANCE_ENABLE = yes | ||
| 6 | MOUSEKEY_ENABLE = yes # Mouse keys(+4700b). | ||
| 7 | EXTRAKEY_ENABLE = yes # Audio control and System control(+450b). | ||
| 8 | RGBLIGHT_ENABLE = yes | ||
| 9 | LEADER_ENABLE = yes | ||
| 12 | 10 | ||
| 13 | UNICODE_ENABLE = no # For Unicode. | 11 | UNICODE_ENABLE = no |
| 14 | COMMAND_ENABLE = no # Commands for debug and configuration | 12 | COMMAND_ENABLE = no # Commands for debug and configuration |
| 15 | SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard. | 13 | SWAP_HANDS_ENABLE = no # Allow swapping hands of keyboard. |
| 16 | 14 | ||
| 17 | 15 | ||
| 18 | # This are by default off: | 16 | # This are by default off: |
| 19 | # CONSOLE_ENABLE = no # Console for debug(+400) | 17 | # COMBO_ENABLE = no |
| 20 | # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) | 18 | # UCIS_ENABLE = no # For Unicode. |
| 19 | # UNICODEMAP_ENABLE = no | ||
| 20 | # SLEEP_LED_ENABLE = no # Turn off leds when computer is sleeping. | ||
| 21 | # KEY_LOCK_ENABLE = no # (+1730b) | ||
| 22 | # CONSOLE_ENABLE = no # Console for debug(+400b) | ||
| 23 | # BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000b) | ||
| 21 | # API_SYSEX_ENABLE = no | 24 | # API_SYSEX_ENABLE = no |
| 22 | # MIDI_ENABLE = no | 25 | # MIDI_ENABLE = no |
| 23 | # UNICODEMAP_ENABLE = no | ||
| 24 | # BLUETOOTH_ENABLE = no | 26 | # BLUETOOTH_ENABLE = no |
| 25 | # AUDIO_ENABLE = no | 27 | # AUDIO_ENABLE = no |
| 26 | # FAUXCLICKY_ENABLE = no | 28 | # FAUXCLICKY_ENABLE = no |
| 27 | # VARIABLE_TRACE = no | 29 | # VARIABLE_TRACE = no |
| 28 | # BACKLIGHT_ENABLE = no | 30 | # BACKLIGHT_ENABLE = no |
| 29 | # RGB_MATRIX_ENABLE = no | 31 | # RGB_MATRIX_ENABLE = no |
| 30 | # COMBO_ENABLE = no | ||
| 31 | 32 | ||
| 33 | # POINTING_DEVICE_ENABLE = no | ||
| 34 | |||
| 35 | # AUTO_SHIFT_ENABLE = no | ||
| 36 | # AUTO_SHIFT_MODIFIERS = no | ||
| 32 | 37 | ||
| 33 | # This don't need argument: | 38 | # This don't need argument? |
| 34 | # CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ | 39 | # CUSTOM_MATRIX # Custom matrix file for the ErgoDox EZ |
| 35 | # SPLIT_KEYBOARD | 40 | # SPLIT_KEYBOARD |
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c new file mode 100644 index 000000000..6debc1ce4 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/mod_tap_layer_dances/none_lead.c | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | //instanalize an instance of 'tap' for the None - Lead tap dance. | ||
| 2 | static tap none_lead_state = { | ||
| 3 | .is_press_action = true, | ||
| 4 | .state = 0 | ||
| 5 | }; | ||
| 6 | |||
| 7 | void none_lead_finished(qk_tap_dance_state_t *state, void *user_data) { | ||
| 8 | none_lead_state.state = current_dance(state); | ||
| 9 | switch (none_lead_state.state) { | ||
| 10 | case SINGLE_TAP: | ||
| 11 | register_code(KC_NO); | ||
| 12 | break; | ||
| 13 | |||
| 14 | case SINGLE_HOLD: | ||
| 15 | register_code(KC_LALT); | ||
| 16 | register_code(KC_LSFT); | ||
| 17 | break; | ||
| 18 | |||
| 19 | case DOUBLE_TAP: | ||
| 20 | qk_leader_start(); | ||
| 21 | break; | ||
| 22 | } | ||
| 23 | } | ||
| 24 | |||
| 25 | void none_lead_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
| 26 | switch (none_lead_state.state) { | ||
| 27 | case SINGLE_TAP: | ||
| 28 | unregister_code(KC_NO); | ||
| 29 | break; | ||
| 30 | |||
| 31 | case SINGLE_HOLD: | ||
| 32 | unregister_code(KC_LALT); | ||
| 33 | unregister_code(KC_LSFT); | ||
| 34 | break; | ||
| 35 | |||
| 36 | case DOUBLE_TAP: | ||
| 37 | break; | ||
| 38 | } | ||
| 39 | none_lead_state.state = 0; | ||
| 40 | } | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c new file mode 100644 index 000000000..550e1f7c8 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_actions.c | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | // Register the double tap dances: | ||
| 2 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 3 | [EQL_PLUS] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), | ||
| 4 | [MINS_UNDS] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), | ||
| 5 | [SLSH_BSLS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS), | ||
| 6 | [GRV_TILD] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), | ||
| 7 | [QUOT_DQUO] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, KC_DQUO), | ||
| 8 | [SCLN_COLN] = ACTION_TAP_DANCE_DOUBLE(KC_SCLN, KC_COLN), | ||
| 9 | [ASTR_CIRC] = ACTION_TAP_DANCE_DOUBLE(KC_ASTR, KC_CIRC), | ||
| 10 | [APMR_PIPE] = ACTION_TAP_DANCE_DOUBLE(KC_AMPR, KC_PIPE), | ||
| 11 | [EXLM_QUES] = ACTION_TAP_DANCE_DOUBLE(KC_EXLM, KC_QUES), | ||
| 12 | [HASH_PERC] = ACTION_TAP_DANCE_DOUBLE(KC_HASH, KC_PERC), | ||
| 13 | [AT_DLR] = ACTION_TAP_DANCE_DOUBLE(KC_AT, KC_DLR), | ||
| 14 | [LPRN_LBRC] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_LBRC), | ||
| 15 | [RPRN_RBRC] = ACTION_TAP_DANCE_DOUBLE(KC_RPRN, KC_RBRC), | ||
| 16 | [LCBR_LABK] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_LABK), | ||
| 17 | [RCBR_RABK] = ACTION_TAP_DANCE_DOUBLE(KC_RCBR, KC_RABK), | ||
| 18 | [DOT_COMM] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_COMM), | ||
| 19 | [NONE_LEAD] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, none_lead_finished, none_lead_reset, DANCING_TERM) | ||
| 20 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_setup.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_setup.c new file mode 100644 index 000000000..340ccca13 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dance_setup.c | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | typedef struct { | ||
| 2 | bool is_press_action; | ||
| 3 | int state; | ||
| 4 | } tap; | ||
| 5 | |||
| 6 | enum { | ||
| 7 | SINGLE_TAP = 1, | ||
| 8 | SINGLE_HOLD = 2, | ||
| 9 | DOUBLE_TAP = 3, | ||
| 10 | DOUBLE_HOLD = 4, | ||
| 11 | DOUBLE_SINGLE_TAP = 5, // Send two single taps. | ||
| 12 | TRIPLE_TAP = 6, | ||
| 13 | TRIPLE_HOLD = 7, | ||
| 14 | TRIPLE_SINGLE_TAP = 8 // Send three single taps. | ||
| 15 | }; | ||
| 16 | |||
| 17 | /* Return an integer that corresponds to what kind of tap dance should be executed. | ||
| 18 | * | ||
| 19 | * How to figure out tap dance state: interrupted and pressed. | ||
| 20 | * | ||
| 21 | * Interrupted: If the state of a dance dance is "interrupted", that means that another key has been hit | ||
| 22 | * under the tapping term. This is typically indicitive that you are trying to "tap" the key. | ||
| 23 | * | ||
| 24 | * Pressed: Whether or not the key is still being pressed. If this value is true, that means the tapping term | ||
| 25 | * has ended, but the key is still being pressed down. This generally means the key is being "held". | ||
| 26 | * | ||
| 27 | * One thing that is currenlty not possible with qmk software in regards to tap dance is to mimic the "permissive hold" | ||
| 28 | * feature. In general, advanced tap dances do not work well if they are used with commonly typed letters. | ||
| 29 | * For example "A". Tap dances are best used on non-letter keys that are not hit while typing letters. | ||
| 30 | * | ||
| 31 | * Good places to put an advanced tap dance: | ||
| 32 | * z,q,x,j,k,v,b, any function key, home/end, comma, semi-colon | ||
| 33 | * | ||
| 34 | * Criteria for "good placement" of a tap dance key: | ||
| 35 | * Not a key that is hit frequently in a sentence | ||
| 36 | * Not a key that is used frequently to double tap, for example 'tab' is often double tapped in a terminal, or | ||
| 37 | * in a web form. So 'tab' would be a poor choice for a tap dance. | ||
| 38 | * Letters used in common words as a double. For example 'p' in 'pepper'. If a tap dance function existed on the | ||
| 39 | * letter 'p', the word 'pepper' would be quite frustating to type. | ||
| 40 | * | ||
| 41 | * For the third point, there does exist the 'DOUBLE_SINGLE_TAP', however this is not fully tested | ||
| 42 | * | ||
| 43 | */ | ||
| 44 | int current_dance(qk_tap_dance_state_t *state) { | ||
| 45 | int current_state = 0; | ||
| 46 | if (state->count == 1) { | ||
| 47 | if (state->interrupted || !state->pressed) { | ||
| 48 | current_state = SINGLE_TAP; | ||
| 49 | } else { | ||
| 50 | current_state = SINGLE_HOLD; //key has not been interrupted, but they key is still held. Means you want to send a 'HOLD'. | ||
| 51 | } | ||
| 52 | } else if (state->count == 2) { | ||
| 53 | /* | ||
| 54 | * DOUBLE_SINGLE_TAP is to distinguish between typing "pepper", and actually wanting a double tap | ||
| 55 | * action when hitting 'pp'. Suggested use case for this return value is when you want to send two | ||
| 56 | * keystrokes of the key, and not the 'double tap' action/macro. | ||
| 57 | */ | ||
| 58 | if (state->interrupted) { | ||
| 59 | current_state = DOUBLE_SINGLE_TAP; | ||
| 60 | } else if (state->pressed) { | ||
| 61 | current_state = DOUBLE_HOLD; | ||
| 62 | } else { | ||
| 63 | current_state = DOUBLE_TAP; | ||
| 64 | } | ||
| 65 | } else if (state->count == 3) { | ||
| 66 | if (state->interrupted) { | ||
| 67 | current_state = TRIPLE_SINGLE_TAP; | ||
| 68 | } else if (state->pressed) { | ||
| 69 | current_state = TRIPLE_HOLD; | ||
| 70 | } else { | ||
| 71 | current_state = TRIPLE_TAP; | ||
| 72 | } | ||
| 73 | } | ||
| 74 | return current_state; | ||
| 75 | } | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c new file mode 100644 index 000000000..3d4469872 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/tap_dance/tap_dances.c | |||
| @@ -0,0 +1,74 @@ | |||
| 1 | //--------------------------------------------------------------------------------------------// | ||
| 2 | // | | | | | // | ||
| 3 | // Single tap | Single hold | Double tap | Double hold | Triple tap | Triple hold // | ||
| 4 | // Mod tap dances: // | | | | | // | ||
| 5 | enum tap_dances { //--------------------------------------------------------------------------------------------// | ||
| 6 | // | | | | | // | ||
| 7 | EQL_PLUS = 0, // = | + | | | | // | ||
| 8 | // | | | | | // | ||
| 9 | //--------------------------------------------------------------------------------------------// | ||
| 10 | // | | | | | // | ||
| 11 | MINS_UNDS = 1, // - | _ | | | | // | ||
| 12 | // | | | | | // | ||
| 13 | //--------------------------------------------------------------------------------------------// | ||
| 14 | // | | | | | // | ||
| 15 | SLSH_BSLS = 2, // / | \ | | | | // | ||
| 16 | // | | | | | // | ||
| 17 | //--------------------------------------------------------------------------------------------// | ||
| 18 | // | | | | | // | ||
| 19 | GRV_TILD = 3, // ` | ~ | | | | // | ||
| 20 | // | | | | | // | ||
| 21 | //--------------------------------------------------------------------------------------------// | ||
| 22 | // | | | | | // | ||
| 23 | QUOT_DQUO = 4, // ' | " | | | | // | ||
| 24 | // | | | | | // | ||
| 25 | //--------------------------------------------------------------------------------------------// | ||
| 26 | // | | | | | // | ||
| 27 | SCLN_COLN = 5, // ; | : | | | | // | ||
| 28 | // | | | | | // | ||
| 29 | //--------------------------------------------------------------------------------------------// | ||
| 30 | // | | | | | // | ||
| 31 | ASTR_CIRC = 6, // * | ^ | | | | // | ||
| 32 | // | | | | | // | ||
| 33 | //--------------------------------------------------------------------------------------------// | ||
| 34 | // | | | | | // | ||
| 35 | APMR_PIPE = 7, // & | | | | | | // | ||
| 36 | // | | | | | // | ||
| 37 | //--------------------------------------------------------------------------------------------// | ||
| 38 | // | | | | | // | ||
| 39 | EXLM_QUES = 8, // ! | ? | | | | // | ||
| 40 | // | | | | | // | ||
| 41 | //--------------------------------------------------------------------------------------------// | ||
| 42 | // | | | | | // | ||
| 43 | HASH_PERC = 9, // # | % | | | | // | ||
| 44 | // | | | | | // | ||
| 45 | //--------------------------------------------------------------------------------------------// | ||
| 46 | // | | | | | // | ||
| 47 | AT_DLR = 10, // @ | $ | | | | // | ||
| 48 | // | | | | | // | ||
| 49 | //--------------------------------------------------------------------------------------------// | ||
| 50 | // | | | | | // | ||
| 51 | LPRN_LBRC = 11, // ( | [ | | | | // | ||
| 52 | // | | | | | // | ||
| 53 | //--------------------------------------------------------------------------------------------// | ||
| 54 | // | | | | | // | ||
| 55 | RPRN_RBRC = 12, // ) | ] | | | | // | ||
| 56 | // | | | | | // | ||
| 57 | //--------------------------------------------------------------------------------------------// | ||
| 58 | // | | | | | // | ||
| 59 | LCBR_LABK = 13, // { | < | | | | // | ||
| 60 | // | | | | | // | ||
| 61 | //--------------------------------------------------------------------------------------------// | ||
| 62 | // | | | | | // | ||
| 63 | RCBR_RABK = 14, // } | > | | | | // | ||
| 64 | // | | | | | // | ||
| 65 | //--------------------------------------------------------------------------------------------// | ||
| 66 | // | | | | | // | ||
| 67 | DOT_COMM = 15, // . | , | | | | // | ||
| 68 | // | | | | | // | ||
| 69 | //--------------------------------------------------------------------------------------------// | ||
| 70 | // | | | | | // | ||
| 71 | NONE_LEAD = 16, // NONE | ALT+SHIFT | LEAD | | | // | ||
| 72 | // | | | | | // | ||
| 73 | //--------------------------------------------------------------------------------------------// | ||
| 74 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/eeconfig_init_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/eeconfig_init_user.c new file mode 100644 index 000000000..41b7b6694 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/eeconfig_init_user.c | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | // void eeconfig_init_user(void) { | ||
| 2 | // | ||
| 3 | // }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c new file mode 100644 index 000000000..e2eeed6fa --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c | |||
| @@ -0,0 +1,121 @@ | |||
| 1 | |||
| 2 | uint32_t layer_state_set_user(uint32_t state) { | ||
| 3 | uint8_t layer = biton32(state); | ||
| 4 | |||
| 5 | switch (layer) { | ||
| 6 | case DVORAK: | ||
| 7 | rgblight_sethsv_noeeprom_green(); | ||
| 8 | rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); | ||
| 9 | |||
| 10 | if (PLOVER_MODE) { | ||
| 11 | plover_toggle(); | ||
| 12 | PLOVER_MODE = false; | ||
| 13 | } | ||
| 14 | |||
| 15 | break; | ||
| 16 | |||
| 17 | case PLOVER: | ||
| 18 | rgblight_sethsv_noeeprom_red(); | ||
| 19 | rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING + 3); | ||
| 20 | |||
| 21 | if (!(PLOVER_MODE)) { | ||
| 22 | plover_toggle(); | ||
| 23 | PLOVER_MODE = true; | ||
| 24 | } | ||
| 25 | |||
| 26 | break; | ||
| 27 | |||
| 28 | case GAMING: | ||
| 29 | rgblight_sethsv_noeeprom_red(); | ||
| 30 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 31 | |||
| 32 | if (PLOVER_MODE) { | ||
| 33 | plover_toggle(); | ||
| 34 | PLOVER_MODE = false; | ||
| 35 | } | ||
| 36 | |||
| 37 | break; | ||
| 38 | |||
| 39 | case ARROWS: | ||
| 40 | rgblight_sethsv_noeeprom_blue(); | ||
| 41 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 42 | |||
| 43 | if (PLOVER_MODE) { | ||
| 44 | plover_toggle(); | ||
| 45 | PLOVER_MODE = false; | ||
| 46 | } | ||
| 47 | |||
| 48 | break; | ||
| 49 | |||
| 50 | case MOUSE: | ||
| 51 | rgblight_sethsv_noeeprom_blue(); | ||
| 52 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 53 | |||
| 54 | if (PLOVER_MODE) { | ||
| 55 | plover_toggle(); | ||
| 56 | PLOVER_MODE = false; | ||
| 57 | } | ||
| 58 | |||
| 59 | break; | ||
| 60 | |||
| 61 | case NUMPAD: | ||
| 62 | rgblight_sethsv_noeeprom_blue(); | ||
| 63 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 64 | |||
| 65 | if (PLOVER_MODE) { | ||
| 66 | plover_toggle(); | ||
| 67 | PLOVER_MODE = false; | ||
| 68 | } | ||
| 69 | |||
| 70 | break; | ||
| 71 | |||
| 72 | case LAYERS: | ||
| 73 | rgblight_sethsv_noeeprom_cyan(); | ||
| 74 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 75 | |||
| 76 | if (PLOVER_MODE) { | ||
| 77 | plover_toggle(); | ||
| 78 | PLOVER_MODE = false; | ||
| 79 | } | ||
| 80 | |||
| 81 | break; | ||
| 82 | |||
| 83 | case MEDIA_FN: | ||
| 84 | rgblight_sethsv_noeeprom_yellow(); | ||
| 85 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 86 | |||
| 87 | if (PLOVER_MODE) { | ||
| 88 | plover_toggle(); | ||
| 89 | PLOVER_MODE = false; | ||
| 90 | } | ||
| 91 | |||
| 92 | break; | ||
| 93 | |||
| 94 | case HYPER: | ||
| 95 | rgblight_sethsv_noeeprom_magenta(); | ||
| 96 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 97 | |||
| 98 | if (PLOVER_MODE) { | ||
| 99 | plover_toggle(); | ||
| 100 | PLOVER_MODE = false; | ||
| 101 | } | ||
| 102 | |||
| 103 | break; | ||
| 104 | |||
| 105 | case FIRMWARE: | ||
| 106 | rgblight_sethsv_noeeprom_magenta(); | ||
| 107 | rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT + 2); | ||
| 108 | |||
| 109 | if (PLOVER_MODE) { | ||
| 110 | plover_toggle(); | ||
| 111 | PLOVER_MODE = false; | ||
| 112 | } | ||
| 113 | |||
| 114 | break; | ||
| 115 | |||
| 116 | default: | ||
| 117 | break; | ||
| 118 | } | ||
| 119 | |||
| 120 | return state; | ||
| 121 | } | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/matrix_scan_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/matrix_scan_user.c new file mode 100644 index 000000000..3b78079cc --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/matrix_scan_user.c | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | #include "../leader/leader_setup.c" | ||
| 2 | |||
| 3 | bool MATRIX_SCANNED = false; | ||
| 4 | |||
| 5 | void matrix_scan_user(void) { | ||
| 6 | if (!(MATRIX_SCANNED)) { | ||
| 7 | rgblight_sethsv_noeeprom_green(); | ||
| 8 | MATRIX_SCANNED = true; | ||
| 9 | } | ||
| 10 | |||
| 11 | #include "../leader/leader_dictionary.c" | ||
| 12 | }; | ||
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c new file mode 100644 index 000000000..764463582 --- /dev/null +++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/process_record_user.c | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | // TODO: Improve this currently there is no feedback if activated by other means. | ||
| 2 | bool CAPS_LOCK = false; | ||
| 3 | bool NUM_LOCK = false; | ||
| 4 | bool SCROLL_LOCK = false; | ||
| 5 | |||
| 6 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 7 | if (!process_record_dynamic_macro(keycode, record)) { | ||
| 8 | return false; | ||
| 9 | } | ||
| 10 | |||
| 11 | switch (keycode) { | ||
| 12 | case KC_CLCK: | ||
| 13 | if (record->event.pressed) { | ||
| 14 | if (!(CAPS_LOCK)) { | ||
| 15 | ergodox_right_led_1_on(); | ||
| 16 | CAPS_LOCK = true; | ||
| 17 | } else { | ||
| 18 | ergodox_right_led_1_off(); | ||
| 19 | CAPS_LOCK = false; | ||
| 20 | } | ||
| 21 | } | ||
| 22 | |||
| 23 | return true; | ||
| 24 | |||
| 25 | case KC_NLCK: | ||
| 26 | if (record->event.pressed) { | ||
| 27 | if (!(NUM_LOCK)) { | ||
| 28 | ergodox_right_led_2_on(); | ||
| 29 | NUM_LOCK = true; | ||
| 30 | } else { | ||
| 31 | ergodox_right_led_2_off(); | ||
| 32 | NUM_LOCK = false; | ||
| 33 | } | ||
| 34 | } | ||
| 35 | |||
| 36 | return true; | ||
| 37 | |||
| 38 | case KC_SLCK: | ||
| 39 | if (record->event.pressed) { | ||
| 40 | if (!(SCROLL_LOCK)) { | ||
| 41 | ergodox_right_led_3_on(); | ||
| 42 | SCROLL_LOCK = true; | ||
| 43 | } else { | ||
| 44 | ergodox_right_led_3_off(); | ||
| 45 | SCROLL_LOCK = false; | ||
| 46 | } | ||
| 47 | } | ||
| 48 | |||
| 49 | return true; | ||
| 50 | |||
| 51 | case KC_MS_WH_UP ... KC_MS_WH_RIGHT: | ||
| 52 | if (record->event.pressed) { | ||
| 53 | if (SCROLL_LOCK) { | ||
| 54 | return false; | ||
| 55 | } else { | ||
| 56 | return true; | ||
| 57 | } | ||
| 58 | } | ||
| 59 | |||
| 60 | case MY_CUSTOM_MACRO: | ||
| 61 | if (record->event.pressed) { | ||
| 62 | SEND_STRING("QMK is the best thing ever!"); // this is our macro! | ||
| 63 | return false; | ||
| 64 | } | ||
| 65 | |||
| 66 | case MY_OTHER_MACRO: | ||
| 67 | if (record->event.pressed) { | ||
| 68 | SEND_STRING(SS_LCTRL("ac")); // selects all and copies | ||
| 69 | return false; | ||
| 70 | } | ||
| 71 | |||
| 72 | default: | ||
| 73 | return true; | ||
| 74 | } | ||
| 75 | } | ||
