diff options
| author | sdothum <sdothum@gmail.com> | 2018-05-04 21:36:23 -0400 |
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2018-05-04 18:36:23 -0700 |
| commit | 50b5c6ad72682776705b0faf5b8ef87deec5cd6a (patch) | |
| tree | 68310c4da2741d803ebaf052ba2c22e91faca72b | |
| parent | 5170398479c9e9ed36ff2966083c50e4808725be (diff) | |
| download | qmk_firmware-50b5c6ad72682776705b0faf5b8ef87deec5cd6a.tar.gz qmk_firmware-50b5c6ad72682776705b0faf5b8ef87deec5cd6a.zip | |
update with qmk master (#2887)
* add splitography
* trim keymap.c
* add Makefile
* rename Makefile to rules.mk
* thumb key definition
* thumb key definition
* thumb key definition
* blue/orange layer swap, double qwerty steno exit
* fix TxBolt 1-3 key chord suppression (PREVENT_STUCK_MODIFIERS)
* add audio control
* beakl 8+10, dvorak (standard and splitography wide variant)
* beakl 8+10, dvorak (standard and splitography wide variant)
* shift layer home blocks
* regex layer key changes
* tilde align symbol navigation and regex layer
* splitography/planck code break out into common .h segments
* splitography/planck code break out into common .h segments
* splitography common library
* splitography common library
* splitography beakl altgr home row
* updating with qmk master
68 files changed, 8574 insertions, 0 deletions
diff --git a/keyboards/planck/keymaps/altgr/beakl.h b/keyboards/planck/keymaps/altgr/beakl.h new file mode 100644 index 000000000..a684a6c43 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/beakl.h | |||
| @@ -0,0 +1,612 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................... BEAKL EZ | ||
| 5 | #ifdef BEAKLEZ | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | ; | , | J | . | X | Caps |^Shift| B | D | M | P | Z | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_Y, KC_O, KC_U, KC_K, CNTR_TL, CNTR_TR, KC_F, KC_G, KC_R, KC_C, KC_V }, | ||
| 18 | {KC_H, KC_I, KC_E, HOME_A, TD_QUOT, CNTR_HL, CNTR_HR, KC_L, KC_S, KC_T, KC_N, KC_W }, | ||
| 19 | {KC_SCLN, KC_COMM, KC_J, KC_DOT, KC_X, CNTR_BL, CNTR_BR, KC_B, KC_D, KC_M, KC_P, KC_Z }, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, | ||
| 25 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_QUOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, | ||
| 26 | {KC_SCLN, KC_COMM, S(KC_J), KC_DOT, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | : | ~ | J | ` | X | Caps |^Shift| B | D | M | P | Z | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, | ||
| 42 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, | ||
| 43 | {TD_COLN, TD_TILD, S(KC_J), TD_GRV, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | : | / | J | ? | X | Caps |^Shift| B | D | M | P | Z | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, | ||
| 59 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, | ||
| 60 | {TD_COLN, KC_SLSH, S(KC_J), KC_QUES, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
| 65 | // ..................................................................... BEAKL 8 | ||
| 66 | #ifdef BEAKL8 | ||
| 67 | // ,-----------------------------------------------------------------------------------. | ||
| 68 | // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | | ||
| 69 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 70 | // | K | H | E | A | . | ↑Alt | ↑GUI | D | S | T | N | B | | ||
| 71 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 72 | // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | | ||
| 73 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 74 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 75 | // `-----------------------------------------------------------------------------------' | ||
| 76 | |||
| 77 | [_BASE] = { | ||
| 78 | {KC_Q, KC_Y, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_C, KC_R, KC_F, KC_Z }, | ||
| 79 | {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_D, KC_S, KC_T, KC_N, KC_B }, | ||
| 80 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 81 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 82 | }, | ||
| 83 | |||
| 84 | [_SHIFT] = { | ||
| 85 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, | ||
| 86 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, | ||
| 87 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 88 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 89 | }, | ||
| 90 | |||
| 91 | // ,-----------------------------------------------------------------------------------. | ||
| 92 | // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | | ||
| 93 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 94 | // | K | H | E | A | ~ | ↑Alt | ↑GUI | D | S | T | N | B | | ||
| 95 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 96 | // | J | : | " | I | ` | Caps |^Shift| W | M | L | P | V | | ||
| 97 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 98 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 99 | // `-----------------------------------------------------------------------------------' | ||
| 100 | |||
| 101 | [_LSHIFT] = { | ||
| 102 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, | ||
| 103 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), TD_TILD, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, | ||
| 104 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 105 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 106 | }, | ||
| 107 | |||
| 108 | // ,-----------------------------------------------------------------------------------. | ||
| 109 | // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | | ||
| 110 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 111 | // | K | H | E | A | ? | ↑Alt | ↑GUI | D | S | T | N | B | | ||
| 112 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 113 | // | J | : | " | I | / | Caps |^Shift| W | M | L | P | V | | ||
| 114 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 115 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 116 | // `-----------------------------------------------------------------------------------' | ||
| 117 | |||
| 118 | [_RSHIFT] = { | ||
| 119 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, | ||
| 120 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, | ||
| 121 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 122 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 123 | }, | ||
| 124 | #endif | ||
| 125 | |||
| 126 | // .................................................................... BEAKL 8P | ||
| 127 | #ifdef BEAKL8P | ||
| 128 | // ,-----------------------------------------------------------------------------------. | ||
| 129 | // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | R | F | X | | ||
| 130 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 131 | // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 132 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 133 | // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | | ||
| 134 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 135 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 136 | // `-----------------------------------------------------------------------------------' | ||
| 137 | |||
| 138 | [_BASE] = { | ||
| 139 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, | ||
| 140 | {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_S, KC_N, KC_B }, | ||
| 141 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 142 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 143 | }, | ||
| 144 | |||
| 145 | [_SHIFT] = { | ||
| 146 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 147 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 148 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 149 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 150 | }, | ||
| 151 | |||
| 152 | // ,-----------------------------------------------------------------------------------. | ||
| 153 | // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | R | F | X | | ||
| 154 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 155 | // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 156 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 157 | // | J | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | | ||
| 158 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 159 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 160 | // `-----------------------------------------------------------------------------------' | ||
| 161 | |||
| 162 | [_LSHIFT] = { | ||
| 163 | {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 164 | {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 165 | {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 166 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 167 | }, | ||
| 168 | |||
| 169 | // ,-----------------------------------------------------------------------------------. | ||
| 170 | // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | F | X | | ||
| 171 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 172 | // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | N | B | | ||
| 173 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 174 | // | J | : | " | I | / | Caps |^Shift| \ | $ | * | P | V | | ||
| 175 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 176 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 177 | // `-----------------------------------------------------------------------------------' | ||
| 178 | |||
| 179 | [_RSHIFT] = { | ||
| 180 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_F), S(KC_X)}, | ||
| 181 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_N), S(KC_B)}, | ||
| 182 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_P), S(KC_V)}, | ||
| 183 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 184 | }, | ||
| 185 | #endif | ||
| 186 | |||
| 187 | // ................................................................... BEAKL 8TX | ||
| 188 | #ifdef BEAKL8TX | ||
| 189 | // ,-----------------------------------------------------------------------------------. | ||
| 190 | // | Q | Y | O | U | J | ^Alt | ^GUI | G | D | R | F | X | | ||
| 191 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 192 | // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 193 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 194 | // | Z | ; | " | I | , | Caps |^Shift| W | M | L | P | V | | ||
| 195 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 196 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 197 | // `-----------------------------------------------------------------------------------' | ||
| 198 | |||
| 199 | [_BASE] = { | ||
| 200 | {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, | ||
| 201 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, | ||
| 202 | {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 203 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 204 | }, | ||
| 205 | |||
| 206 | [_SHIFT] = { | ||
| 207 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 208 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 209 | {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 210 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 211 | }, | ||
| 212 | |||
| 213 | // ,-----------------------------------------------------------------------------------. | ||
| 214 | // | Q | $ | { | } | J | ^Alt | ^GUI | G | D | R | F | X | | ||
| 215 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 216 | // | K | / | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 217 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 218 | // | Z | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | | ||
| 219 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 220 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 221 | // `-----------------------------------------------------------------------------------' | ||
| 222 | |||
| 223 | [_LSHIFT] = { | ||
| 224 | {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 225 | {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 226 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 227 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 228 | }, | ||
| 229 | |||
| 230 | // ,-----------------------------------------------------------------------------------. | ||
| 231 | // | Q | Y | O | U | J | ^Alt | ^GUI | G | [ | ] | ^ | X | | ||
| 232 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 233 | // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | $ | B | | ||
| 234 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 235 | // | Z | : | " | I | / | Caps |^Shift| \ | * | . | P | V | | ||
| 236 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 237 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 238 | // `-----------------------------------------------------------------------------------' | ||
| 239 | |||
| 240 | [_RSHIFT] = { | ||
| 241 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 242 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, | ||
| 243 | {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 244 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 245 | }, | ||
| 246 | #endif | ||
| 247 | |||
| 248 | // ................................................................... BEAKL 8TT | ||
| 249 | #ifdef BEAKL8TT | ||
| 250 | // ,-----------------------------------------------------------------------------------. | ||
| 251 | // | Q | Y | O | U | J | Fn | Caps | G | D | R | F | X | | ||
| 252 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 253 | // | K | H | E | A | . |Cursor| Mouse| C | T | S | N | B | | ||
| 254 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 255 | // | Z | ; | " | I | , | Num | Regex| W | M | L | P | V | | ||
| 256 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 257 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 258 | // `-----------------------------------------------------------------------------------' | ||
| 259 | |||
| 260 | [_BASE] = { | ||
| 261 | {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, | ||
| 262 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, | ||
| 263 | {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 264 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 265 | }, | ||
| 266 | |||
| 267 | [_SHIFT] = { | ||
| 268 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 269 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 270 | {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 271 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 272 | }, | ||
| 273 | |||
| 274 | // ,-----------------------------------------------------------------------------------. | ||
| 275 | // | Q | $ | { | } | J | Fn | Caps | G | D | R | F | X | | ||
| 276 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 277 | // | K | / | < | > | ~ |Cursor| Mouse| C | T | S | N | B | | ||
| 278 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 279 | // | Z | : | ! | = | ` | Num | Regex| W | M | L | P | V | | ||
| 280 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 281 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 282 | // `-----------------------------------------------------------------------------------' | ||
| 283 | |||
| 284 | [_LSHIFT] = { | ||
| 285 | {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 286 | {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 287 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 288 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 289 | }, | ||
| 290 | |||
| 291 | // ,-----------------------------------------------------------------------------------. | ||
| 292 | // | Q | Y | O | U | J | Fn | Caps | G | [ | ] | ^ | X | | ||
| 293 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 294 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | B | | ||
| 295 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 296 | // | Z | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 297 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 298 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 299 | // `-----------------------------------------------------------------------------------' | ||
| 300 | |||
| 301 | [_RSHIFT] = { | ||
| 302 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 303 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, | ||
| 304 | {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 305 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 306 | }, | ||
| 307 | #endif | ||
| 308 | |||
| 309 | // .................................................................... BEAKL 10 | ||
| 310 | #ifdef BEAKL10 | ||
| 311 | // ,-----------------------------------------------------------------------------------. | ||
| 312 | // | Q | H | O | U | X | ^Alt | ^GUI | G | D | N | M | V | | ||
| 313 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 314 | // | Y | I | E | A | . | ↑Alt | ↑GUI | C | S | R | T | W | | ||
| 315 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 316 | // | J | ; | " | , | Z | Caps |^Shift| B | P | L | F | K | | ||
| 317 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 318 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 319 | // `-----------------------------------------------------------------------------------' | ||
| 320 | |||
| 321 | [_BASE] = { | ||
| 322 | {KC_Q, KC_H, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_V }, | ||
| 323 | {KC_Y, KC_I, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_S, KC_R, KC_T, KC_W }, | ||
| 324 | {KC_J, KC_SCLN, TD_QUOT, KC_COMM, KC_Z, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_K }, | ||
| 325 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 326 | }, | ||
| 327 | |||
| 328 | [_SHIFT] = { | ||
| 329 | {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, | ||
| 330 | {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, | ||
| 331 | {S(KC_J), KC_SCLN, TD_QUOT, KC_COMM, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, | ||
| 332 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 333 | }, | ||
| 334 | |||
| 335 | // ,-----------------------------------------------------------------------------------. | ||
| 336 | // | Q | [ | ! | ] | X | ^Alt | ^GUI | G | D | N | M | V | | ||
| 337 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 338 | // | Y | < | = | > | ~ | ↑Alt | ↑GUI | C | S | R | T | W | | ||
| 339 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 340 | // | J | : | " | ` | Z | Caps |^Shift| B | P | L | F | K | | ||
| 341 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 342 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 343 | // `-----------------------------------------------------------------------------------' | ||
| 344 | |||
| 345 | [_LSHIFT] = { | ||
| 346 | {S(KC_Q), TD_LBRC, KC_EXLM, TD_RBRC, S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, | ||
| 347 | {S(KC_Y), TD_LT, KC_EQL, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, | ||
| 348 | {S(KC_J), KC_COLN, TD_DQOT, TD_GRV, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, | ||
| 349 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 350 | }, | ||
| 351 | |||
| 352 | // ,-----------------------------------------------------------------------------------. | ||
| 353 | // | Q | H | O | U | X | ^Alt | ^GUI | G | { | + | } | V | | ||
| 354 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 355 | // | Y | I | E | A | ? | ↑Alt | ↑GUI | C | ( | * | ) | W | | ||
| 356 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 357 | // | J | : | " | / | Z | Caps |^Shift| B | P | L | F | K | | ||
| 358 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 359 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 360 | // `-----------------------------------------------------------------------------------' | ||
| 361 | |||
| 362 | [_RSHIFT] = { | ||
| 363 | {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), TD_LCBR, KC_PLUS, TD_RCBR, S(KC_V)}, | ||
| 364 | {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), TD_LPRN, KC_ASTR, TD_RPRN, S(KC_W)}, | ||
| 365 | {S(KC_J), TD_COLN, TD_DQOT, KC_SLSH, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, | ||
| 366 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 367 | }, | ||
| 368 | #endif | ||
| 369 | |||
| 370 | // ............................................................... BEAKL Mash Up | ||
| 371 | #ifdef BEAKL810 | ||
| 372 | // ,-----------------------------------------------------------------------------------. | ||
| 373 | // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | N | M | X | | ||
| 374 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 375 | // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | R | S | W | | ||
| 376 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 377 | // | J | ; | " | I | , | Caps |^Shift| B | P | L | F | V | | ||
| 378 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 379 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 380 | // `-----------------------------------------------------------------------------------' | ||
| 381 | |||
| 382 | [_BASE] = { | ||
| 383 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 384 | {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_R, KC_S, KC_W }, | ||
| 385 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 386 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 387 | }, | ||
| 388 | |||
| 389 | [_SHIFT] = { | ||
| 390 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 391 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 392 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 393 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 394 | }, | ||
| 395 | |||
| 396 | // ,-----------------------------------------------------------------------------------. | ||
| 397 | // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | N | M | X | | ||
| 398 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 399 | // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | R | S | W | | ||
| 400 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 401 | // | J | : | ! | = | ` | Caps |^Shift| B | P | L | F | V | | ||
| 402 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 403 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 404 | // `-----------------------------------------------------------------------------------' | ||
| 405 | |||
| 406 | [_LSHIFT] = { | ||
| 407 | {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 408 | {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 409 | {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 410 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 411 | }, | ||
| 412 | |||
| 413 | // ,-----------------------------------------------------------------------------------. | ||
| 414 | // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | M | X | | ||
| 415 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 416 | // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | S | W | | ||
| 417 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 418 | // | J | : | " | I | / | Caps |^Shift| \ | $ | * | F | V | | ||
| 419 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 420 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 421 | // `-----------------------------------------------------------------------------------' | ||
| 422 | |||
| 423 | [_RSHIFT] = { | ||
| 424 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_M), S(KC_X)}, | ||
| 425 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_S), S(KC_W)}, | ||
| 426 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_F), S(KC_V)}, | ||
| 427 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 428 | }, | ||
| 429 | #endif | ||
| 430 | |||
| 431 | // .................................................................... BEAKL MU | ||
| 432 | #ifdef BEAKLMU | ||
| 433 | // ,-----------------------------------------------------------------------------------. | ||
| 434 | // | Q | Y | O | U | Z | Fn | Caps | G | D | N | M | X | | ||
| 435 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 436 | // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 437 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 438 | // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | | ||
| 439 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 440 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 441 | // `-----------------------------------------------------------------------------------' | ||
| 442 | |||
| 443 | [_BASE] = { | ||
| 444 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 445 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 446 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 447 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 448 | }, | ||
| 449 | |||
| 450 | [_SHIFT] = { | ||
| 451 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 452 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 453 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 454 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 455 | }, | ||
| 456 | |||
| 457 | // ,-----------------------------------------------------------------------------------. | ||
| 458 | // | Q | $ | { | } | Z | Fn | Caps | G | D | N | M | X | | ||
| 459 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 460 | // | K | / | < | > | ~ |Cursor| Mouse| C | T | R | S | W | | ||
| 461 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 462 | // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | | ||
| 463 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 464 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 465 | // `-----------------------------------------------------------------------------------' | ||
| 466 | |||
| 467 | [_LSHIFT] = { | ||
| 468 | {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 469 | {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 470 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 471 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 472 | }, | ||
| 473 | |||
| 474 | // ,-----------------------------------------------------------------------------------. | ||
| 475 | // | Q | Y | O | U | Z | Fn | Caps | G | [ | ] | ^ | X | | ||
| 476 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 477 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 478 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 479 | // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 480 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 481 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 482 | // `-----------------------------------------------------------------------------------' | ||
| 483 | |||
| 484 | [_RSHIFT] = { | ||
| 485 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 486 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, | ||
| 487 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 488 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 489 | }, | ||
| 490 | #endif | ||
| 491 | |||
| 492 | // .................................................................... BEAKL SP | ||
| 493 | #ifdef BEAKLSP | ||
| 494 | // ,-----------------------------------------------------------------------------------. | ||
| 495 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 496 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 497 | // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 498 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 499 | // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | | ||
| 500 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 501 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 502 | // `-----------------------------------------------------------------------------------' | ||
| 503 | |||
| 504 | [_BASE] = { | ||
| 505 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 506 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 507 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 508 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 509 | }, | ||
| 510 | |||
| 511 | [_SHIFT] = { | ||
| 512 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 513 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 514 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 515 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 516 | }, | ||
| 517 | |||
| 518 | // ,-----------------------------------------------------------------------------------. | ||
| 519 | // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | | ||
| 520 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 521 | // | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | | ||
| 522 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 523 | // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | | ||
| 524 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 525 | // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| | ||
| 526 | // `-----------------------------------------------------------------------------------' | ||
| 527 | |||
| 528 | [_LSHIFT] = { | ||
| 529 | {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 530 | {S(KC_K), KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 531 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 532 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, | ||
| 533 | }, | ||
| 534 | |||
| 535 | // ,-----------------------------------------------------------------------------------. | ||
| 536 | // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | | ||
| 537 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 538 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 539 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 540 | // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 541 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 542 | // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| | ||
| 543 | // `-----------------------------------------------------------------------------------' | ||
| 544 | |||
| 545 | [_RSHIFT] = { | ||
| 546 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, | ||
| 547 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, | ||
| 548 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 549 | {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, | ||
| 550 | }, | ||
| 551 | #endif | ||
| 552 | |||
| 553 | // .................................................................... BEAKL GR | ||
| 554 | #ifdef BEAKLGR | ||
| 555 | // ,-----------------------------------------------------------------------------------. | ||
| 556 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 557 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 558 | // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 559 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 560 | // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | | ||
| 561 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 562 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 563 | // `-----------------------------------------------------------------------------------' | ||
| 564 | |||
| 565 | [_BASE] = { | ||
| 566 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 567 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 568 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 569 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 570 | }, | ||
| 571 | |||
| 572 | [_SHIFT] = { | ||
| 573 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 574 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 575 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 576 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 577 | }, | ||
| 578 | |||
| 579 | // ,-----------------------------------------------------------------------------------. | ||
| 580 | // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | | ||
| 581 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 582 | // | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | | ||
| 583 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 584 | // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | | ||
| 585 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 586 | // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| | ||
| 587 | // `-----------------------------------------------------------------------------------' | ||
| 588 | |||
| 589 | [_LSHIFT] = { | ||
| 590 | {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 591 | {SM_K, KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 592 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 593 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, | ||
| 594 | }, | ||
| 595 | |||
| 596 | // ,-----------------------------------------------------------------------------------. | ||
| 597 | // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | | ||
| 598 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 599 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 600 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 601 | // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 602 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 603 | // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| | ||
| 604 | // `-----------------------------------------------------------------------------------' | ||
| 605 | |||
| 606 | [_RSHIFT] = { | ||
| 607 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, | ||
| 608 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, SM_W }, | ||
| 609 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 610 | {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, | ||
| 611 | }, | ||
| 612 | #endif | ||
diff --git a/keyboards/planck/keymaps/altgr/colemak.h b/keyboards/planck/keymaps/altgr/colemak.h new file mode 100644 index 000000000..8810ba82a --- /dev/null +++ b/keyboards/planck/keymaps/altgr/colemak.h | |||
| @@ -0,0 +1,124 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .............................................................. Colemak Mod-DH | ||
| 5 | #ifdef COLEMAK | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | ; | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Z | X | C | D | V | Caps |^Shift| K | H | , | . | " | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_W, KC_F, KC_P, KC_B, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, | ||
| 18 | {KC_A, KC_R, KC_S, KC_T, KC_G, CNTR_HL, CNTR_HR, KC_M, KC_N, KC_E, KC_I, KC_O }, | ||
| 19 | {KC_Z, KC_X, KC_C, KC_D, KC_V, CNTR_BL, CNTR_BR, KC_K, KC_H, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, | ||
| 25 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 26 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | Z | X | C | D | V | Caps |^Shift| K | H | / | ? | " | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 42 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 43 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | Z | X | C | D | V | Caps |^Shift| K | H | ~ | ` | " | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 59 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 60 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
| 65 | // ..................................................................... ColemaX | ||
| 66 | #ifdef COLEMAX | ||
| 67 | // ,-----------------------------------------------------------------------------------. | ||
| 68 | // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | ; | | ||
| 69 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 70 | // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | | ||
| 71 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 72 | // | X | V | F | D | P | Caps |^Shift| M | H | , | . | " | | ||
| 73 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 74 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 75 | // `-----------------------------------------------------------------------------------' | ||
| 76 | |||
| 77 | [_BASE] = { | ||
| 78 | {KC_Q, KC_W, KC_C, KC_G, KC_Z, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, | ||
| 79 | {KC_A, KC_R, KC_S, KC_T, KC_B, CNTR_HL, CNTR_HR, KC_K, KC_N, KC_E, KC_I, KC_O }, | ||
| 80 | {KC_X, KC_V, KC_F, KC_D, KC_P, CNTR_BL, CNTR_BR, KC_M, KC_H, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 81 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 82 | }, | ||
| 83 | |||
| 84 | [_SHIFT] = { | ||
| 85 | {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, | ||
| 86 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 87 | {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 88 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 89 | }, | ||
| 90 | |||
| 91 | // ,-----------------------------------------------------------------------------------. | ||
| 92 | // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 93 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 94 | // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | | ||
| 95 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 96 | // | X | V | F | D | P | Caps |^Shift| M | H | / | ? | " | | ||
| 97 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 98 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 99 | // `-----------------------------------------------------------------------------------' | ||
| 100 | |||
| 101 | [_LSHIFT] = { | ||
| 102 | {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 103 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 104 | {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 105 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 106 | }, | ||
| 107 | |||
| 108 | // ,-----------------------------------------------------------------------------------. | ||
| 109 | // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 110 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 111 | // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | | ||
| 112 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 113 | // | X | V | F | D | P | Caps |^Shift| M | H | ~ | ` | " | | ||
| 114 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 115 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 116 | // `-----------------------------------------------------------------------------------' | ||
| 117 | |||
| 118 | [_RSHIFT] = { | ||
| 119 | {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 120 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 121 | {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 122 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 123 | }, | ||
| 124 | #endif | ||
diff --git a/keyboards/planck/keymaps/altgr/common/chord_layout.h b/keyboards/planck/keymaps/altgr/common/chord_layout.h new file mode 100644 index 000000000..2c785d56c --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/chord_layout.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. Short Cuts | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | | Copy | Paste| | | | | | | | | | ||
| 8 | // |--------------------------------------------------------------+------+------+------| | ||
| 9 | // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | | Nak | Eot | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | | | | f() | | | | | | | ||
| 14 | // | | | | | | | | f() | | | | | see _PLOVER | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_EDIT] = { | ||
| 18 | {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 19 | {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, | ||
| 20 | {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 21 | {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, | ||
| 22 | }, | ||
| 23 | |||
| 24 | // ................................................................ Adjust Layer | ||
| 25 | |||
| 26 | // ,-----------------------------------------------------------------------------------. | ||
| 27 | // |Plover| | | | | | | | | | | | | ||
| 28 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 29 | // |Aud on| | | | | | | | | | | | | ||
| 30 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 31 | // | Reset| | | | | | | | | | | | | ||
| 32 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 33 | // | | | | f() | | | | | f() | | | | | ||
| 34 | // `-----------------------------------------------------------------------------------' | ||
| 35 | |||
| 36 | [_ADJUST] = { | ||
| 37 | {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 38 | {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 39 | {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 40 | {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 41 | }, | ||
diff --git a/keyboards/planck/keymaps/altgr/common/init.h b/keyboards/planck/keymaps/altgr/common/init.h new file mode 100644 index 000000000..6366a19f6 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/init.h | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | |||
| 2 | // ....................................................................... Audio | ||
| 3 | |||
| 4 | void matrix_init_user(void) | ||
| 5 | { | ||
| 6 | #ifdef STENO_ENABLE | ||
| 7 | steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI | ||
| 8 | #endif | ||
| 9 | #ifdef AUDIO_ENABLE | ||
| 10 | startup_user(); | ||
| 11 | #endif | ||
| 12 | } | ||
| 13 | |||
| 14 | #ifdef AUDIO_ENABLE | ||
| 15 | #ifdef BACKLIGHT_ENABLE | ||
| 16 | void led_set_user(uint8_t usb_led) | ||
| 17 | { | ||
| 18 | static uint8_t old_usb_led = 0; | ||
| 19 | _delay_ms(10); // gets rid of tick | ||
| 20 | if (!is_playing_notes()) { | ||
| 21 | if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 22 | // if capslock LED is turning on | ||
| 23 | PLAY_SONG(song_caps_on); | ||
| 24 | } | ||
| 25 | else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 26 | // if capslock LED is turning off | ||
| 27 | PLAY_SONG(song_caps_off); | ||
| 28 | } | ||
| 29 | } | ||
| 30 | old_usb_led = usb_led; | ||
| 31 | } | ||
| 32 | #endif | ||
| 33 | |||
| 34 | void startup_user(void) | ||
| 35 | { | ||
| 36 | _delay_ms(20); // gets rid of tick | ||
| 37 | PLAY_SONG(song_startup); | ||
| 38 | } | ||
| 39 | |||
| 40 | void shutdown_user(void) | ||
| 41 | { | ||
| 42 | PLAY_SONG(song_goodbye); | ||
| 43 | _delay_ms(150); | ||
| 44 | stop_all_notes(); | ||
| 45 | } | ||
| 46 | |||
| 47 | void music_on_user(void) | ||
| 48 | { | ||
| 49 | music_scale_user(); | ||
| 50 | } | ||
| 51 | |||
| 52 | void music_scale_user(void) | ||
| 53 | { | ||
| 54 | PLAY_SONG(music_scale); | ||
| 55 | } | ||
| 56 | #endif | ||
diff --git a/keyboards/planck/keymaps/altgr/common/keycode_functions.h b/keyboards/planck/keymaps/altgr/common/keycode_functions.h new file mode 100644 index 000000000..e0ae15089 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/keycode_functions.h | |||
| @@ -0,0 +1,657 @@ | |||
| 1 | |||
| 2 | // .......................................................... Keycode Primitives | ||
| 3 | |||
| 4 | // register simple key press | ||
| 5 | void tap_key(uint16_t keycode) | ||
| 6 | { | ||
| 7 | register_code (keycode); | ||
| 8 | unregister_code(keycode); | ||
| 9 | } | ||
| 10 | |||
| 11 | void shift_key(uint16_t keycode) | ||
| 12 | { | ||
| 13 | register_code (KC_LSFT); | ||
| 14 | tap_key (keycode); | ||
| 15 | unregister_code(KC_LSFT); | ||
| 16 | } | ||
| 17 | |||
| 18 | #define SHIFT 1 | ||
| 19 | #define NOSHIFT 0 | ||
| 20 | |||
| 21 | static uint16_t key_timer = 0; | ||
| 22 | |||
| 23 | // key press for thumb_layer() and lt_shift() macros | ||
| 24 | bool key_press(uint8_t shift, uint16_t keycode) | ||
| 25 | { | ||
| 26 | if (keycode) { | ||
| 27 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 28 | if (shift) { | ||
| 29 | shift_key(keycode); | ||
| 30 | } | ||
| 31 | else { | ||
| 32 | tap_key(keycode); | ||
| 33 | } | ||
| 34 | return true; | ||
| 35 | } | ||
| 36 | } | ||
| 37 | return false; | ||
| 38 | } | ||
| 39 | |||
| 40 | // ALT_T, CTL_T, GUI_T, SFT_T for shifted keycodes | ||
| 41 | void mt_shift(keyrecord_t *record, uint16_t modifier, uint16_t modifier2, uint16_t keycode) | ||
| 42 | { | ||
| 43 | if (record->event.pressed) { | ||
| 44 | key_timer = timer_read(); | ||
| 45 | register_code(modifier); | ||
| 46 | if (modifier2) { | ||
| 47 | register_code(modifier2); | ||
| 48 | } | ||
| 49 | } | ||
| 50 | else { | ||
| 51 | unregister_code(modifier); | ||
| 52 | if (modifier2) { | ||
| 53 | unregister_code(modifier2); | ||
| 54 | } | ||
| 55 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 56 | shift_key(keycode); | ||
| 57 | } | ||
| 58 | key_timer = 0; | ||
| 59 | } | ||
| 60 | } | ||
| 61 | |||
| 62 | // ................................................................... Mod Masks | ||
| 63 | |||
| 64 | // tap dance persistant mods, see process_record_user() | ||
| 65 | // keyboard_report->mods (?) appears to be cleared by tap dance | ||
| 66 | static uint8_t mods = 0; | ||
| 67 | |||
| 68 | void tap_mods(keyrecord_t *record, uint16_t keycode) | ||
| 69 | { | ||
| 70 | if (record->event.pressed) { | ||
| 71 | mods |= MOD_BIT(keycode); | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | mods &= ~(MOD_BIT(keycode)); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | // (un)register modifiers | ||
| 79 | void modifier(void (*f)(uint8_t)) | ||
| 80 | { | ||
| 81 | if (mods & MOD_BIT(KC_LCTL)) { | ||
| 82 | (*f)(KC_LCTL); | ||
| 83 | } | ||
| 84 | if (mods & MOD_BIT(KC_LGUI)) { | ||
| 85 | (*f)(KC_LGUI); | ||
| 86 | } | ||
| 87 | if (mods & MOD_BIT(KC_LALT)) { | ||
| 88 | (*f)(KC_LALT); | ||
| 89 | } | ||
| 90 | } | ||
| 91 | |||
| 92 | // .................................................... Triple Dance Shift/Layer | ||
| 93 | |||
| 94 | static uint8_t dt_shift = 0; | ||
| 95 | |||
| 96 | void double_shift(uint16_t keycode, uint8_t layer) | ||
| 97 | { | ||
| 98 | tap_key (keycode); | ||
| 99 | if (DT_SHIFT) { | ||
| 100 | // set_oneshot_mods(MOD_LSFT); | ||
| 101 | // layer_on(layer); | ||
| 102 | layer_on (_SHIFT); | ||
| 103 | set_oneshot_layer(_SHIFT, ONESHOT_START); | ||
| 104 | dt_shift = 1; | ||
| 105 | } | ||
| 106 | else { | ||
| 107 | layer_on(layer); | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | // tap dance LT (LAYER, KEY) emulation with <KEY><DOWN> -> <KEY><SHIFT> and auto-repeat extensions! | ||
| 112 | void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) | ||
| 113 | { | ||
| 114 | // double tap plus down | ||
| 115 | if (state->count > 2) { | ||
| 116 | // double enter shift | ||
| 117 | if (keycode == KC_ENT) { | ||
| 118 | tap_key (keycode); | ||
| 119 | double_shift(keycode, layer); | ||
| 120 | } | ||
| 121 | // repeating keycode | ||
| 122 | else { | ||
| 123 | register_code(keycode); | ||
| 124 | } | ||
| 125 | } | ||
| 126 | // tap plus down (or double tap): keycode (one shot) shift | ||
| 127 | else if (state->count > 1) { | ||
| 128 | double_shift(keycode, layer); | ||
| 129 | } | ||
| 130 | // down: shift | ||
| 131 | else if (state->pressed) { | ||
| 132 | layer_on(layer); | ||
| 133 | } | ||
| 134 | // tap: keycode | ||
| 135 | else { | ||
| 136 | modifier(register_code); | ||
| 137 | tap_key (keycode); | ||
| 138 | modifier(unregister_code); | ||
| 139 | } | ||
| 140 | } | ||
| 141 | |||
| 142 | void tap_reset(uint16_t keycode, uint8_t layer) | ||
| 143 | { | ||
| 144 | unregister_code(keycode); | ||
| 145 | if (DT_SHIFT && dt_shift) { | ||
| 146 | clear_oneshot_layer_state(ONESHOT_PRESSED); | ||
| 147 | dt_shift = 0; | ||
| 148 | } | ||
| 149 | else { | ||
| 150 | layer_off(layer); | ||
| 151 | } | ||
| 152 | } | ||
| 153 | |||
| 154 | // augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid <ENTER><SHIFT> sequences | ||
| 155 | void enter(qk_tap_dance_state_t *state, void *user_data) | ||
| 156 | { | ||
| 157 | tap_shift(state, KC_ENT, _RSHIFT); | ||
| 158 | } | ||
| 159 | |||
| 160 | void enter_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 161 | { | ||
| 162 | tap_reset(KC_ENT, _RSHIFT); | ||
| 163 | } | ||
| 164 | |||
| 165 | // augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid <SPACE><SHIFT> sequences | ||
| 166 | void space(qk_tap_dance_state_t *state, void *user_data) | ||
| 167 | { | ||
| 168 | tap_shift(state, KC_SPC, _LSHIFT); | ||
| 169 | } | ||
| 170 | |||
| 171 | void space_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 172 | { | ||
| 173 | tap_reset(KC_SPC, _LSHIFT); | ||
| 174 | } | ||
| 175 | |||
| 176 | // ......................................................... Triple Dance Insert | ||
| 177 | |||
| 178 | void double_max(uint8_t count, uint8_t shift, uint16_t keycode) | ||
| 179 | { | ||
| 180 | if (shift) { | ||
| 181 | shift_key(keycode); | ||
| 182 | if (count > 1) { | ||
| 183 | shift_key(keycode); | ||
| 184 | } | ||
| 185 | } | ||
| 186 | else { | ||
| 187 | tap_key(keycode); | ||
| 188 | if (count > 1) { | ||
| 189 | tap_key(keycode); | ||
| 190 | } | ||
| 191 | } | ||
| 192 | } | ||
| 193 | |||
| 194 | void colon(qk_tap_dance_state_t *state, void *user_data) | ||
| 195 | { | ||
| 196 | if (state->count > 2) { | ||
| 197 | tap_key (KC_SPC); | ||
| 198 | shift_key(KC_SCLN); | ||
| 199 | shift_key(KC_SCLN); | ||
| 200 | tap_key (KC_SPC); | ||
| 201 | } | ||
| 202 | else { | ||
| 203 | double_max(state->count, SHIFT, KC_SCLN); | ||
| 204 | } | ||
| 205 | reset_tap_dance(state); | ||
| 206 | } | ||
| 207 | |||
| 208 | void eql(qk_tap_dance_state_t *state, void *user_data) | ||
| 209 | { | ||
| 210 | if (state->count > 2) { | ||
| 211 | tap_key(KC_SPC); | ||
| 212 | tap_key(KC_SLSH); | ||
| 213 | tap_key(KC_EQL); | ||
| 214 | tap_key(KC_SPC); | ||
| 215 | } | ||
| 216 | else { | ||
| 217 | double_max(state->count, NOSHIFT, KC_EQL); | ||
| 218 | } | ||
| 219 | reset_tap_dance(state); | ||
| 220 | } | ||
| 221 | |||
| 222 | void greater(qk_tap_dance_state_t *state, void *user_data) | ||
| 223 | { | ||
| 224 | if (state->count > 2) { | ||
| 225 | tap_key (KC_SPC); | ||
| 226 | tap_key (KC_MINS); | ||
| 227 | shift_key(KC_DOT); | ||
| 228 | tap_key (KC_SPC); | ||
| 229 | } | ||
| 230 | else { | ||
| 231 | double_max(state->count, SHIFT, KC_DOT); | ||
| 232 | } | ||
| 233 | reset_tap_dance(state); | ||
| 234 | } | ||
| 235 | |||
| 236 | void lesser(qk_tap_dance_state_t *state, void *user_data) | ||
| 237 | { | ||
| 238 | if (state->count > 2) { | ||
| 239 | tap_key (KC_SPC); | ||
| 240 | shift_key(KC_COMM); | ||
| 241 | tap_key (KC_MINS); | ||
| 242 | tap_key (KC_SPC); | ||
| 243 | } | ||
| 244 | else { | ||
| 245 | double_max(state->count, SHIFT, KC_COMM); | ||
| 246 | } | ||
| 247 | reset_tap_dance(state); | ||
| 248 | } | ||
| 249 | |||
| 250 | void tilde(qk_tap_dance_state_t *state, void *user_data) | ||
| 251 | { | ||
| 252 | // double tap plus down: repeating keycode | ||
| 253 | if (state->count > 2) { | ||
| 254 | register_code(KC_LSFT); | ||
| 255 | register_code(KC_GRV); | ||
| 256 | } | ||
| 257 | // tap: keycode | ||
| 258 | else { | ||
| 259 | shift_key(KC_GRV); | ||
| 260 | // double tap: unix home directory | ||
| 261 | if (state->count > 1) { | ||
| 262 | tap_key(KC_SLSH); | ||
| 263 | } | ||
| 264 | } | ||
| 265 | } | ||
| 266 | |||
| 267 | void tilde_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 268 | { | ||
| 269 | unregister_code(KC_GRV); | ||
| 270 | unregister_code(KC_LSFT); | ||
| 271 | } | ||
| 272 | |||
| 273 | // ............................................................. Tap Dance Pairs | ||
| 274 | |||
| 275 | // tap dance shift rules | ||
| 276 | #define S_NEVER 0 | ||
| 277 | #define S_SINGLE 1 | ||
| 278 | #define S_DOUBLE 2 | ||
| 279 | #define S_ALWAYS S_SINGLE | S_DOUBLE | ||
| 280 | |||
| 281 | void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) | ||
| 282 | { | ||
| 283 | if (shift & S_DOUBLE) { | ||
| 284 | shift_key(left); | ||
| 285 | shift_key(right); | ||
| 286 | } | ||
| 287 | else { | ||
| 288 | tap_key(left); | ||
| 289 | tap_key(right); | ||
| 290 | } | ||
| 291 | } | ||
| 292 | |||
| 293 | #define CLOSE 1 | ||
| 294 | |||
| 295 | // tap dance symbol pairs | ||
| 296 | void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) | ||
| 297 | { | ||
| 298 | // triple tap: left right with cursor between symbol pair a la vim :-) | ||
| 299 | if (state->count > 2) { | ||
| 300 | symbol_pair(shift, left, right); | ||
| 301 | tap_key (KC_LEFT); | ||
| 302 | } | ||
| 303 | // double tap: left right | ||
| 304 | else if (state->count > 1) { | ||
| 305 | symbol_pair(shift, left, right); | ||
| 306 | } | ||
| 307 | // down: modifier | ||
| 308 | else if (state->pressed) { | ||
| 309 | if (modifier) { | ||
| 310 | register_code(modifier); | ||
| 311 | } | ||
| 312 | } | ||
| 313 | // tap: left (close: right) | ||
| 314 | else { | ||
| 315 | if (shift & S_SINGLE) { | ||
| 316 | shift_key(close ? right : left); | ||
| 317 | } | ||
| 318 | else { | ||
| 319 | tap_key(close ? right : left); | ||
| 320 | } | ||
| 321 | } | ||
| 322 | if (!modifier) { | ||
| 323 | reset_tap_dance(state); | ||
| 324 | } | ||
| 325 | } | ||
| 326 | |||
| 327 | void doublequote(qk_tap_dance_state_t *state, void *user_data) | ||
| 328 | { | ||
| 329 | tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); | ||
| 330 | } | ||
| 331 | |||
| 332 | void grave(qk_tap_dance_state_t *state, void *user_data) | ||
| 333 | { | ||
| 334 | tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); | ||
| 335 | } | ||
| 336 | |||
| 337 | void lbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 338 | { | ||
| 339 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); | ||
| 340 | } | ||
| 341 | |||
| 342 | void lcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 343 | { | ||
| 344 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); | ||
| 345 | } | ||
| 346 | |||
| 347 | void lparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 348 | { | ||
| 349 | tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); | ||
| 350 | } | ||
| 351 | |||
| 352 | void lparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 353 | { | ||
| 354 | unregister_code(KC_LCTL); | ||
| 355 | } | ||
| 356 | |||
| 357 | void quote(qk_tap_dance_state_t *state, void *user_data) | ||
| 358 | { | ||
| 359 | tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); | ||
| 360 | } | ||
| 361 | |||
| 362 | void rangle(qk_tap_dance_state_t *state, void *user_data) | ||
| 363 | { | ||
| 364 | tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); | ||
| 365 | } | ||
| 366 | |||
| 367 | void rbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 368 | { | ||
| 369 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 370 | } | ||
| 371 | |||
| 372 | void rcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 373 | { | ||
| 374 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 375 | } | ||
| 376 | |||
| 377 | void rparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 378 | { | ||
| 379 | tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); | ||
| 380 | } | ||
| 381 | |||
| 382 | void rparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 383 | { | ||
| 384 | unregister_code(KC_LCTL); | ||
| 385 | } | ||
| 386 | |||
| 387 | // ............................................................ Tap Dance Insert | ||
| 388 | |||
| 389 | void comma(qk_tap_dance_state_t *state, void *user_data) | ||
| 390 | { | ||
| 391 | tap_key(KC_COMM); | ||
| 392 | if (state->count > 1) { | ||
| 393 | tap_key(KC_SPC); | ||
| 394 | } | ||
| 395 | reset_tap_dance(state); | ||
| 396 | } | ||
| 397 | |||
| 398 | void dot(qk_tap_dance_state_t *state, void *user_data) | ||
| 399 | { | ||
| 400 | if (state->count > 1) { | ||
| 401 | shift_key(KC_COLN); | ||
| 402 | } | ||
| 403 | else { | ||
| 404 | tap_key(KC_DOT); | ||
| 405 | } | ||
| 406 | reset_tap_dance(state); | ||
| 407 | } | ||
| 408 | |||
| 409 | // compile time macro string, see functions/hardware planck script | ||
| 410 | void private(qk_tap_dance_state_t *state, void *user_data) | ||
| 411 | { | ||
| 412 | if (state->count > 1) { | ||
| 413 | #ifdef PRIVATE_STRING | ||
| 414 | #include "private_string.h" | ||
| 415 | #endif | ||
| 416 | } | ||
| 417 | reset_tap_dance(state); | ||
| 418 | } | ||
| 419 | |||
| 420 | // config.h defined string | ||
| 421 | void send(qk_tap_dance_state_t *state, void *user_data) | ||
| 422 | { | ||
| 423 | if (state->count > 1) { | ||
| 424 | SEND_STRING(PUBLIC_STRING); | ||
| 425 | } | ||
| 426 | reset_tap_dance(state); | ||
| 427 | } | ||
| 428 | |||
| 429 | // .......................................................... Tap Dance One Shot | ||
| 430 | |||
| 431 | void caps(qk_tap_dance_state_t *state, void *user_data) | ||
| 432 | { | ||
| 433 | if (state->count > 1) { | ||
| 434 | tap_key(KC_CAPS); | ||
| 435 | } | ||
| 436 | else { | ||
| 437 | set_oneshot_mods(MOD_LSFT); | ||
| 438 | register_code (KC_LSFT); // on hold down | ||
| 439 | } | ||
| 440 | } | ||
| 441 | |||
| 442 | void caps_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 443 | { | ||
| 444 | unregister_code(KC_LSFT); | ||
| 445 | } | ||
| 446 | |||
| 447 | // ................................................................... Tap Dance | ||
| 448 | |||
| 449 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 450 | [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) | ||
| 451 | ,[_COLN] = ACTION_TAP_DANCE_FN (colon) | ||
| 452 | ,[_COMM] = ACTION_TAP_DANCE_FN (comma) | ||
| 453 | ,[_DOT] = ACTION_TAP_DANCE_FN (dot) | ||
| 454 | ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) | ||
| 455 | ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) | ||
| 456 | ,[_EQL] = ACTION_TAP_DANCE_FN (eql) | ||
| 457 | ,[_GRV] = ACTION_TAP_DANCE_FN (grave) | ||
| 458 | ,[_GT] = ACTION_TAP_DANCE_FN (greater) | ||
| 459 | ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) | ||
| 460 | ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) | ||
| 461 | ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) | ||
| 462 | ,[_LT] = ACTION_TAP_DANCE_FN (lesser) | ||
| 463 | ,[_PRIV] = ACTION_TAP_DANCE_FN (private) | ||
| 464 | ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) | ||
| 465 | ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) | ||
| 466 | ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) | ||
| 467 | ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) | ||
| 468 | ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) | ||
| 469 | ,[_SEND] = ACTION_TAP_DANCE_FN (send) | ||
| 470 | ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) | ||
| 471 | ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) | ||
| 472 | }; | ||
| 473 | |||
| 474 | // .............................................................. Dynamic Layers | ||
| 475 | |||
| 476 | #define LEFT 1 | ||
| 477 | #define RIGHT 2 | ||
| 478 | static uint8_t thumb = 0; | ||
| 479 | |||
| 480 | // LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() | ||
| 481 | // up, up -> _BASE | ||
| 482 | // up, down -> _SYMBOL | ||
| 483 | // down, up -> _NUMBER | ||
| 484 | // down, down -> _MOUSE // see layer keycodes that raise mouse layer | ||
| 485 | #define THUMBS_DOWN _MOUSE // layer | ||
| 486 | |||
| 487 | static uint8_t overlayer = 0; | ||
| 488 | |||
| 489 | // left right thumb layer combinations | ||
| 490 | void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) | ||
| 491 | { | ||
| 492 | if (record->event.pressed) { | ||
| 493 | // layer_on via tap_layer(), see process_record_user() | ||
| 494 | key_timer = timer_read(); | ||
| 495 | thumb = thumb | side; | ||
| 496 | } | ||
| 497 | else { | ||
| 498 | layer_off(thumb_dn_layer); | ||
| 499 | // opposite thumb_layer() thumb may have switched effective layer! | ||
| 500 | if (overlayer) { | ||
| 501 | layer_off(overlayer); | ||
| 502 | overlayer = 0; | ||
| 503 | } | ||
| 504 | if (!key_press(shift, keycode)) { | ||
| 505 | layer_off(THUMBS_DOWN); // both thumbs needed | ||
| 506 | // opposite thumb down? see left right combination layer table above | ||
| 507 | if (thumb & (side == LEFT ? RIGHT : LEFT)) { | ||
| 508 | layer_on(thumb_up_layer); | ||
| 509 | overlayer = thumb_up_layer; | ||
| 510 | } | ||
| 511 | } | ||
| 512 | clear_mods(); | ||
| 513 | thumb = thumb & ~side; | ||
| 514 | key_timer = 0; | ||
| 515 | } | ||
| 516 | } | ||
| 517 | |||
| 518 | // #ifdef STENO_ENABLE | ||
| 519 | // // LT for steno keycode | ||
| 520 | // void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 521 | // { | ||
| 522 | // if (record->event.pressed) { | ||
| 523 | // key_timer = timer_read(); | ||
| 524 | // if (keycode) { | ||
| 525 | // process_steno(keycode, record); | ||
| 526 | // } | ||
| 527 | // layer_on(layer); | ||
| 528 | // } | ||
| 529 | // else { | ||
| 530 | // layer_off(layer); | ||
| 531 | // if (keycode) { | ||
| 532 | // if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 533 | // process_steno(keycode, record); | ||
| 534 | // } | ||
| 535 | // else { | ||
| 536 | // // clear pressed state (request push of updated) process_steno.c and .h | ||
| 537 | // // steno_clear_state(); | ||
| 538 | // } | ||
| 539 | // } | ||
| 540 | // key_timer = 0; | ||
| 541 | // } | ||
| 542 | // } | ||
| 543 | // #endif | ||
| 544 | |||
| 545 | // LT for S(keycode) | ||
| 546 | void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 547 | { | ||
| 548 | if (record->event.pressed) { | ||
| 549 | key_timer = timer_read(); | ||
| 550 | layer_on(layer); | ||
| 551 | } | ||
| 552 | else { | ||
| 553 | layer_off(layer); | ||
| 554 | // for shifted keycodes, hence, LT_SHIFT | ||
| 555 | key_press(SHIFT, keycode); | ||
| 556 | clear_mods(); | ||
| 557 | key_timer = 0; | ||
| 558 | } | ||
| 559 | } | ||
| 560 | |||
| 561 | // set layer asap to overcome macro latency errors, notably tap dance and LT usage | ||
| 562 | // this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() | ||
| 563 | void tap_layer(keyrecord_t *record, uint8_t layer) | ||
| 564 | { | ||
| 565 | if (record->event.pressed) { | ||
| 566 | layer_on(layer); | ||
| 567 | } | ||
| 568 | else { | ||
| 569 | layer_off(layer); | ||
| 570 | } | ||
| 571 | } | ||
| 572 | |||
| 573 | // ..................................................................... Keymaps | ||
| 574 | |||
| 575 | // void persistant_default_layer_set(uint16_t default_layer) | ||
| 576 | // { | ||
| 577 | // eeconfig_update_default_layer(default_layer); | ||
| 578 | // default_layer_set (default_layer); | ||
| 579 | // } | ||
| 580 | |||
| 581 | void clear_layers(void) | ||
| 582 | { | ||
| 583 | uint8_t layer; | ||
| 584 | for (layer = 0; layer < _END_LAYERS; layer++) { | ||
| 585 | layer_off(layer); | ||
| 586 | } | ||
| 587 | } | ||
| 588 | |||
| 589 | #ifdef CENTER_TT | ||
| 590 | static uint16_t tt_keycode = 0; // current TT keycode | ||
| 591 | |||
| 592 | void clear_tt(void) | ||
| 593 | { | ||
| 594 | if (tt_keycode == KC_CAPS) { | ||
| 595 | tap_key(KC_CAPS); // clear capslock | ||
| 596 | } | ||
| 597 | tt_keycode = 0; | ||
| 598 | clear_layers(); | ||
| 599 | set_single_persistent_default_layer(_BASE); | ||
| 600 | } | ||
| 601 | #endif | ||
| 602 | |||
| 603 | // txbolt plover run state | ||
| 604 | static uint8_t plover = 0; | ||
| 605 | |||
| 606 | void toggle_plover(uint8_t state) | ||
| 607 | { | ||
| 608 | if (plover != state) { | ||
| 609 | #ifdef PLOVER_KEYBIND | ||
| 610 | #include "plover_keybind.h" | ||
| 611 | #endif | ||
| 612 | plover = state; | ||
| 613 | } | ||
| 614 | } | ||
| 615 | |||
| 616 | void base_layer(void) | ||
| 617 | { | ||
| 618 | #ifdef AUDIO_ENABLE | ||
| 619 | if (plover) { | ||
| 620 | PLAY_SONG(song_plover_gb); | ||
| 621 | } | ||
| 622 | else { | ||
| 623 | PLAY_SONG(song_qwerty); | ||
| 624 | } | ||
| 625 | #endif | ||
| 626 | clear_layers(); | ||
| 627 | set_single_persistent_default_layer(_BASE); | ||
| 628 | toggle_plover(0); | ||
| 629 | } | ||
| 630 | |||
| 631 | void steno(keyrecord_t *record) | ||
| 632 | { | ||
| 633 | if (record->event.pressed) { | ||
| 634 | #ifdef AUDIO_ENABLE | ||
| 635 | PLAY_SONG(song_plover); | ||
| 636 | #endif | ||
| 637 | clear_layers(); | ||
| 638 | layer_on(_PLOVER); | ||
| 639 | if (!eeconfig_is_enabled()) { | ||
| 640 | eeconfig_init(); | ||
| 641 | } | ||
| 642 | keymap_config.raw = eeconfig_read_keymap(); | ||
| 643 | keymap_config.nkro = 1; | ||
| 644 | eeconfig_update_keymap(keymap_config.raw); | ||
| 645 | if (!plover) { | ||
| 646 | toggle_plover(1); | ||
| 647 | } | ||
| 648 | } | ||
| 649 | } | ||
| 650 | |||
| 651 | void steno_exit(keyrecord_t *record) | ||
| 652 | { | ||
| 653 | if (record->event.pressed) { | ||
| 654 | base_layer(); | ||
| 655 | toggle_plover(0); | ||
| 656 | } | ||
| 657 | } | ||
diff --git a/keyboards/planck/keymaps/altgr/common/number_fkey_layout.h b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.h new file mode 100644 index 000000000..528020e74 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.h | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | #ifdef SHIFT_SYMBOLS | ||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | | | | 0 | = | | | | | ||
| 14 | // | | | | f() | | | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_NUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 23 | #else | ||
| 24 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | #else | ||
| 28 | // .-----------------------------------------------------------------------------------. | ||
| 29 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 30 | // |-----------------------------------------------------------------------------------| | ||
| 31 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | | # | X | G | | | | , | 1 | 2 | 3 | + | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | f() | | 0 | = | | | ||
| 36 | // | | f() | | = | 0 | | | ||
| 37 | // '-----------------------------------------------------------------------------------' | ||
| 38 | |||
| 39 | [_NUMBER] = { | ||
| 40 | {_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 41 | {OS_GUI, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 42 | {_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 43 | #ifdef THUMB_0 | ||
| 44 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 45 | #else | ||
| 46 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 47 | #endif | ||
| 48 | }, | ||
| 49 | |||
| 50 | // .-----------------------------------------------------------------------------------. | ||
| 51 | // | | | | | | | | { | & | ? | : | } | | ||
| 52 | // |-----------------------------------------------------------------------------------| | ||
| 53 | // | | | | f() | | | | ( | $ | % | ^ | ) | | ||
| 54 | // |-----------------------------------------------------------------------------------| | ||
| 55 | // | | | | | | | | [ | < | ~ | > | ] | | ||
| 56 | // |-----------------------------------------------------------------------------------| | ||
| 57 | // | | f() | | \ | | | | | ||
| 58 | // '-----------------------------------------------------------------------------------' | ||
| 59 | |||
| 60 | [_NUMSYM] = { | ||
| 61 | {_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR}, | ||
| 62 | {___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN}, | ||
| 63 | {_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC}, | ||
| 64 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___}, | ||
| 65 | }, | ||
| 66 | #endif | ||
| 67 | |||
| 68 | // ............ .................................................. Function Keys | ||
| 69 | |||
| 70 | // .-----------------------------------------------------------------------------------. | ||
| 71 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 76 | // |-----------------------------------------------------------------------------------| | ||
| 77 | // | | | | | | f() | | + | | | | | | ||
| 78 | // | | | | | f() | | | + | | | | | see _PLOVER | ||
| 79 | // '-----------------------------------------------------------------------------------' | ||
| 80 | |||
| 81 | [_FNCKEY] = { | ||
| 82 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 83 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 84 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 85 | {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 86 | }, | ||
diff --git a/keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h new file mode 100644 index 000000000..702286372 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/number_fkey_layout.save.h | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | #ifdef SHIFT_SYMBOLS | ||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | | | | 0 | = | | | | | ||
| 14 | // | | | | f() | | | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_NUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 23 | #else | ||
| 24 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | #else | ||
| 28 | // .-----------------------------------------------------------------------------------. | ||
| 29 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 30 | // |-----------------------------------------------------------------------------------| | ||
| 31 | // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | | # | X | G | | | | , | 1 | 2 | 3 | + | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | f() | | | | 0 | = | | | | | ||
| 36 | // | | | | f() | | | | = | 0 | | | | | ||
| 37 | // '-----------------------------------------------------------------------------------' | ||
| 38 | |||
| 39 | [_NUMBER] = { | ||
| 40 | {_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 41 | {OS_CTL, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 42 | {_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 43 | #ifdef THUMB_0 | ||
| 44 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 45 | #else | ||
| 46 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 47 | #endif | ||
| 48 | }, | ||
| 49 | |||
| 50 | // .-----------------------------------------------------------------------------------. | ||
| 51 | // | | | | | | | | { | & | ? | : | } | | ||
| 52 | // |-----------------------------------------------------------------------------------| | ||
| 53 | // | | | | f() | | | | ( | $ | % | ^ | ) | | ||
| 54 | // |-----------------------------------------------------------------------------------| | ||
| 55 | // | | | | | | | | [ | < | ~ | > | ] | | ||
| 56 | // |-----------------------------------------------------------------------------------| | ||
| 57 | // | | | | f() | | | | \ | | | | | | | ||
| 58 | // '-----------------------------------------------------------------------------------' | ||
| 59 | |||
| 60 | [_NUMSYM] = { | ||
| 61 | {_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR}, | ||
| 62 | {___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN}, | ||
| 63 | {_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC}, | ||
| 64 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___}, | ||
| 65 | }, | ||
| 66 | #endif | ||
| 67 | |||
| 68 | // ............ .................................................. Function Keys | ||
| 69 | |||
| 70 | // .-----------------------------------------------------------------------------------. | ||
| 71 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 76 | // |-----------------------------------------------------------------------------------| | ||
| 77 | // | | | | | | f() | | + | | | | | | ||
| 78 | // | | | | | f() | | | + | | | | | see _PLOVER | ||
| 79 | // '-----------------------------------------------------------------------------------' | ||
| 80 | |||
| 81 | [_FNCKEY] = { | ||
| 82 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 83 | {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 84 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 85 | {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 86 | }, | ||
diff --git a/keyboards/planck/keymaps/altgr/common/plover_keybind.h b/keyboards/planck/keymaps/altgr/common/plover_keybind.h new file mode 100644 index 000000000..cb4ef92ef --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/plover_keybind.h | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | |||
| 2 | // simple window manager specific plover keybind hook | ||
| 3 | |||
| 4 | // toggle plover application, see herbstluftwm/config/appbinds | ||
| 5 | register_code (KC_LGUI); | ||
| 6 | register_code (KC_LCTL); | ||
| 7 | tap_key (KC_EQL); | ||
| 8 | unregister_code(KC_LCTL); | ||
| 9 | unregister_code(KC_LGUI); | ||
diff --git a/keyboards/planck/keymaps/altgr/common/sounds.h b/keyboards/planck/keymaps/altgr/common/sounds.h new file mode 100644 index 000000000..1bfc7a6da --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/sounds.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | |||
| 2 | // ................................................................ Audio Sounds | ||
| 3 | |||
| 4 | #ifdef AUDIO_ENABLE | ||
| 5 | float song_startup [][2] = SONG(STARTUP_SOUND); | ||
| 6 | float song_colemak [][2] = SONG(COLEMAK_SOUND); | ||
| 7 | float song_qwerty [][2] = SONG(QWERTY_SOUND); | ||
| 8 | float song_plover [][2] = SONG(PLOVER_SOUND); | ||
| 9 | float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||
| 10 | float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); | ||
| 11 | float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); | ||
| 12 | float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 13 | float song_goodbye [][2] = SONG(GOODBYE_SOUND); | ||
| 14 | #endif | ||
diff --git a/keyboards/planck/keymaps/altgr/common/steno_layout.h b/keyboards/planck/keymaps/altgr/common/steno_layout.h new file mode 100644 index 000000000..ab4a6fe01 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/steno_layout.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Plover | ||
| 5 | #ifdef STENO_ENABLE | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | # | # | # | # | # | # | # | # | # | # | # | # | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | | A | O | E | U | | | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_PLOVER] = { | ||
| 17 | {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, | ||
| 18 | {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, | ||
| 19 | {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, | ||
| 20 | {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, | ||
| 21 | }, | ||
| 22 | #else | ||
| 23 | // ,-----------------------------------------------------------------------------------. | ||
| 24 | // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| 25 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 26 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 27 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 28 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 29 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 30 | // | | A | O | E | U | | | ||
| 31 | // `-----------------------------------------------------------------------------------' | ||
| 32 | |||
| 33 | [_PLOVER] = { | ||
| 34 | {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, | ||
| 35 | {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, | ||
| 36 | {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 37 | {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, | ||
| 38 | }, | ||
| 39 | #endif | ||
diff --git a/keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h new file mode 100644 index 000000000..798610870 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/symbol_guifn_layout.h | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ..................................................... Symbol Navigation Layer | ||
| 5 | #ifdef SHIFT_SYMBOLS | ||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | ~ | * | & | | | | | Home | Up | End | PgUp | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | @ | ! | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | |Adjust| \ | | f() | | | ||
| 14 | // '-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_SYMBOL] = { | ||
| 17 | {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 18 | {OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 19 | {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 20 | {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 21 | }, | ||
| 22 | #else | ||
| 23 | // .-----------------------------------------------------------------------------------. | ||
| 24 | // | { | . | * | & | } | | | | Home | Up | End | PgUp | | ||
| 25 | // |-----------------------------------------------------------------------------------| | ||
| 26 | // | ( | ^ | % | $ | ) | | | | Left | Down | Right| PgDn | | ||
| 27 | // |-----------------------------------------------------------------------------------| | ||
| 28 | // | [ | # | @ | ! | ] | | | | | | | | | ||
| 29 | // |-----------------------------------------------------------------------------------| | ||
| 30 | // | | | | \ | | f() | | | ||
| 31 | // '-----------------------------------------------------------------------------------' | ||
| 32 | |||
| 33 | [_SYMBOL] = { | ||
| 34 | {KC_LCBR, KC_DOT, KC_ASTR, KC_AMPR, TD_RCBR, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 35 | {SM_LPRN, SM_CIRC, SM_PERC, SM_DLR, TD_RPRN, _______, _______, _______, LT_LFTX, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 36 | {KC_LBRC, KC_HASH, KC_AT, KC_EXLM, TD_RBRC, _______, _______, _______, _______, _______, _______, _______}, | ||
| 37 | {___x___, ___x___, ___x___, SL_PIPE, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 38 | }, | ||
| 39 | |||
| 40 | // .-----------------------------------------------------------------------------------. | ||
| 41 | // | | ? | + | ~ | | | | | | | | | | ||
| 42 | // |-----------------------------------------------------------------------------------| | ||
| 43 | // | | < | = | > | | | | | f() | | | | | ||
| 44 | // |-----------------------------------------------------------------------------------| | ||
| 45 | // | | 3 | 2 | 1 | | | | | | | | | | ||
| 46 | // |-----------------------------------------------------------------------------------| | ||
| 47 | // | | | | | f() | | | ||
| 48 | // '-----------------------------------------------------------------------------------' | ||
| 49 | |||
| 50 | [_SYMREG] = { | ||
| 51 | {___x___, KC_QUES, KC_PLUS, KC_TILD, ___x___, _______, _______, _______, ___x___, ___x___, ___x___, ___x___}, | ||
| 52 | {___x___, KC_LT, KC_EQL, TD_RNGL, ___x___, _______, _______, _______, ___fn__, ___x___, ___x___, ___x___}, | ||
| 53 | {___x___, KC_3, KC_2, KC_1, ___x___, _______, _______, _______, _______, _______, _______, _______}, | ||
| 54 | {___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 55 | }, | ||
| 56 | #endif | ||
| 57 | |||
| 58 | // ............................................................... Mouse Actions | ||
| 59 | |||
| 60 | // .-----------------------------------------------------------------------------------. | ||
| 61 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 62 | // |-----------------------------------------------------------------------------------| | ||
| 63 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 64 | // |-----------------------------------------------------------------------------------| | ||
| 65 | // | | | | | | | | | | | | | | ||
| 66 | // |-----------------------------------------------------------------------------------| | ||
| 67 | // | | | f() | | f() | | | ||
| 68 | // '-----------------------------------------------------------------------------------' | ||
| 69 | |||
| 70 | [_MOUSE] = { | ||
| 71 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 72 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 73 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 74 | {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 75 | }, | ||
diff --git a/keyboards/planck/keymaps/altgr/common/tapdance.h b/keyboards/planck/keymaps/altgr/common/tapdance.h new file mode 100644 index 000000000..d778286bf --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/tapdance.h | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | |||
| 2 | // tap dance keys | ||
| 3 | enum tap_dance { | ||
| 4 | _CAPS = 0 | ||
| 5 | ,_COLN | ||
| 6 | ,_COMM | ||
| 7 | ,_DOT | ||
| 8 | ,_DQOT | ||
| 9 | ,_ENT | ||
| 10 | ,_EQL | ||
| 11 | ,_GRV | ||
| 12 | ,_GT | ||
| 13 | ,_LBRC | ||
| 14 | ,_LCBR | ||
| 15 | ,_LPRN | ||
| 16 | ,_LT | ||
| 17 | ,_PRIV | ||
| 18 | ,_QUOT | ||
| 19 | ,_RBRC | ||
| 20 | ,_RCBR | ||
| 21 | ,_RNGL | ||
| 22 | ,_RPRN | ||
| 23 | ,_SEND | ||
| 24 | ,_SPC | ||
| 25 | ,_TILD | ||
| 26 | }; | ||
| 27 | |||
| 28 | #define TD_CAPS TD(_CAPS) | ||
| 29 | #define TD_COLN TD(_COLN) | ||
| 30 | #define TD_COMM TD(_COMM) | ||
| 31 | #define TD_DOT TD(_DOT) | ||
| 32 | #define TD_DQOT TD(_DQOT) | ||
| 33 | #define TD_ENT TD(_ENT) | ||
| 34 | #define TD_EQL TD(_EQL) | ||
| 35 | #define TD_GRV TD(_GRV) | ||
| 36 | #define TD_GT TD(_GT) | ||
| 37 | #define TD_LBRC TD(_LBRC) | ||
| 38 | #define TD_LCBR TD(_LCBR) | ||
| 39 | #define TD_LPRN TD(_LPRN) | ||
| 40 | #define TD_LT TD(_LT) | ||
| 41 | #define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h | ||
| 42 | #define TD_QUOT TD(_QUOT) | ||
| 43 | #define TD_RBRC TD(_RBRC) | ||
| 44 | #define TD_RCBR TD(_RCBR) | ||
| 45 | #define TD_RNGL TD(_RNGL) | ||
| 46 | #define TD_RPRN TD(_RPRN) | ||
| 47 | #define TD_SEND TD(_SEND) // config.h defined macro string | ||
| 48 | #define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc | ||
| 49 | #define TD_TILD TD(_TILD) | ||
diff --git a/keyboards/planck/keymaps/altgr/common/toggle_layout.h b/keyboards/planck/keymaps/altgr/common/toggle_layout.h new file mode 100644 index 000000000..713d27bbc --- /dev/null +++ b/keyboards/planck/keymaps/altgr/common/toggle_layout.h | |||
| @@ -0,0 +1,102 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | Space| | | 0 | = | | | | | ||
| 14 | // | | | | f() | Space| | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_TTNUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______}, | ||
| 23 | #else | ||
| 24 | {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | |||
| 28 | // ............ .................................................. Function Keys | ||
| 29 | |||
| 30 | // .-----------------------------------------------------------------------------------. | ||
| 31 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 36 | // |-----------------------------------------------------------------------------------| | ||
| 37 | // | | | | f() | | | | + | | | | | | ||
| 38 | // '-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_TTFNCKEY] = { | ||
| 41 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 42 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 43 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 44 | {_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ....................................................................... Regex | ||
| 48 | |||
| 49 | // ,-----------------------------------------------------------------------------------. | ||
| 50 | // | | ~ | { | } | & | | | % | [ | ] | @ | | | ||
| 51 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 52 | // | | ^ | < | > | ? | | | | | ( | ) | $ | | | ||
| 53 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 54 | // | | : | ! | = | / | | | \ | * | . | # | | | ||
| 55 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 56 | // | | | | f() | - | | | + | Space| | | | | ||
| 57 | // `-----------------------------------------------------------------------------------' | ||
| 58 | |||
| 59 | [_TTREGEX] = { | ||
| 60 | {___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___}, | ||
| 61 | {___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, | ||
| 62 | {___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___}, | ||
| 63 | {_______, _______, _______, TT_ESC, KC_MINS, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______}, | ||
| 64 | }, | ||
| 65 | |||
| 66 | // ............................................................ Navigation Layer | ||
| 67 | |||
| 68 | // .-----------------------------------------------------------------------------------. | ||
| 69 | // | | | | | | | | | Home | Up | End | PgUp | | ||
| 70 | // |-----------------------------------------------------------------------------------| | ||
| 71 | // | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | | | | | | | | | | | | | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | | | f() | | | | | | | | | | ||
| 76 | // '-----------------------------------------------------------------------------------' | ||
| 77 | |||
| 78 | [_TTCURSOR] = { | ||
| 79 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 80 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 81 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 82 | {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 83 | }, | ||
| 84 | |||
| 85 | // ............................................................... Mouse Actions | ||
| 86 | |||
| 87 | // .-----------------------------------------------------------------------------------. | ||
| 88 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 89 | // |-----------------------------------------------------------------------------------| | ||
| 90 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 91 | // |-----------------------------------------------------------------------------------| | ||
| 92 | // | | | | | | | | | | | | | | ||
| 93 | // |-----------------------------------------------------------------------------------| | ||
| 94 | // | | | | f() | | | | | | | | | | ||
| 95 | // '-----------------------------------------------------------------------------------' | ||
| 96 | |||
| 97 | [_TTMOUSE] = { | ||
| 98 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 99 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 100 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 101 | {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 102 | }, | ||
diff --git a/keyboards/planck/keymaps/altgr/config.h b/keyboards/planck/keymaps/altgr/config.h new file mode 100644 index 000000000..d55258c02 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/config.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | // required because lower/raise modifiers are redefined by colemak-dh | ||
| 7 | #define PREVENT_STUCK_MODIFIERS | ||
| 8 | |||
| 9 | // tap dance key press termination interval | ||
| 10 | #define TAPPING_TERM 250 | ||
| 11 | |||
| 12 | // smooth mouse motion | ||
| 13 | // #define MOUSEKEY_INTERVAL 20 | ||
| 14 | // #define MOUSEKEY_DELAY 0 | ||
| 15 | // #define MOUSEKEY_TIME_TO_MAX 60 | ||
| 16 | // #define MOUSEKEY_MAX_SPEED 7 | ||
| 17 | // #define MOUSEKEY_WHEEL_DELAY 0 | ||
| 18 | |||
| 19 | // compile time macro string, see functions/hardware planck script (undefine otherwise) | ||
| 20 | #define PRIVATE_STRING | ||
| 21 | |||
| 22 | // compile time macro string, must be in quotes | ||
| 23 | #define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" | ||
| 24 | |||
| 25 | // thumb key tap-shift() double tap: one shot shift (0) off (1) on | ||
| 26 | #define DT_SHIFT 1 | ||
| 27 | |||
| 28 | // number layer 0 position KEYPAD_0, THUMB_0 | ||
| 29 | #define THUMB_0 | ||
| 30 | |||
| 31 | // home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) | ||
| 32 | #define SHIFT_SYMBOLS | ||
| 33 | |||
| 34 | // center column TT assignments (undefine for OSM chords) | ||
| 35 | #define CENTER_TT | ||
| 36 | #define TAPPING_TOGGLE 1 | ||
| 37 | |||
| 38 | // home row modifiers | ||
| 39 | #define HOME_MODS | ||
| 40 | // fix dual function timing | ||
| 41 | #define PERMISSIVE_HOLD | ||
| 42 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 43 | |||
| 44 | // layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) | ||
| 45 | #define BEAKLGR | ||
| 46 | |||
| 47 | // sync app with window manager keybind hook defined in plover_keybind.h | ||
| 48 | #define PLOVER_KEYBIND | ||
| 49 | |||
| 50 | #endif | ||
diff --git a/keyboards/planck/keymaps/altgr/keymap.c b/keyboards/planck/keymaps/altgr/keymap.c new file mode 100644 index 000000000..516f481fc --- /dev/null +++ b/keyboards/planck/keymaps/altgr/keymap.c | |||
| @@ -0,0 +1,490 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | // | ||
| 4 | // To flash planck firmware | ||
| 5 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 6 | // Reset keyboard or press hw reset button on base (hole) | ||
| 7 | // | ||
| 8 | // cd qmk_firmware/keyboards/planck | ||
| 9 | // sudo make KEYMAP=sdothum dfu | ||
| 10 | // | ||
| 11 | // sudo make clean (good practice before flashing) | ||
| 12 | // sudo make KEYMAP=sdothum (to compile check) | ||
| 13 | // | ||
| 14 | // Package requirements (for arch linux) | ||
| 15 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 16 | // avr-gcc-atmel | ||
| 17 | // avr-libc-atmel | ||
| 18 | // dfu-programmer | ||
| 19 | // | ||
| 20 | // Notes | ||
| 21 | // ▔▔▔▔▔ | ||
| 22 | // ** E R G O W I D E S P L I T ** Layout | ||
| 23 | // | ||
| 24 | // Autocompletion tap dance key pairs (),[],{} are available from the | ||
| 25 | // number/symbol layer, as well as, numerous (un)shift key values | ||
| 26 | // | ||
| 27 | // The navigation pad provides a single hand right thumb activated cluster | ||
| 28 | // with left hand modifiers | ||
| 29 | // | ||
| 30 | // #define PRIVATE_STRING includes private_string.h, a user defined code | ||
| 31 | // block for the PRIV tap dance e.g. SEND_STRING("secret messape"), | ||
| 32 | // see function private() | ||
| 33 | // | ||
| 34 | // Modifier clusters | ||
| 35 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 36 | // The num and sym keys together access the navigation pad layer | ||
| 37 | // | ||
| 38 | // ,-----------------------------------------------------------------------------------. | ||
| 39 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 40 | // `-----------------------------------------------------------------------------------' | ||
| 41 | // | ||
| 42 | // Hint | ||
| 43 | // ▔▔▔▔ | ||
| 44 | // For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, | ||
| 45 | // Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and | ||
| 46 | // actuation | ||
| 47 | // | ||
| 48 | // Code | ||
| 49 | // ▔▔▔▔ | ||
| 50 | // This source is shamelessly based on the "default" planck layout | ||
| 51 | // | ||
| 52 | // #ifdef/#endif block structures are not indented, as syntax highlighting | ||
| 53 | // in vim is sufficient for identification | ||
| 54 | // | ||
| 55 | // c++ commenting style is used throughout | ||
| 56 | // | ||
| 57 | // Change history | ||
| 58 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 59 | // See http://thedarnedestthing.com/planck%20constant | ||
| 60 | // See http://thedarnedestthing.com/planck%20done | ||
| 61 | |||
| 62 | |||
| 63 | |||
| 64 | // === N O T E === | ||
| 65 | // | ||
| 66 | // sudo CPATH=<keymap.c directory>/common make ... | ||
| 67 | |||
| 68 | |||
| 69 | #include "config.h" | ||
| 70 | #include "planck.h" | ||
| 71 | #include "action_layer.h" | ||
| 72 | #ifdef STENO_ENABLE | ||
| 73 | #include "keymap_steno.h" | ||
| 74 | #endif | ||
| 75 | #ifdef AUDIO_ENABLE | ||
| 76 | #include "audio.h" | ||
| 77 | #endif | ||
| 78 | #include "eeconfig.h" | ||
| 79 | |||
| 80 | extern keymap_config_t keymap_config; | ||
| 81 | |||
| 82 | enum planck_layers { | ||
| 83 | _BASE = 0 | ||
| 84 | ,_SHIFT | ||
| 85 | ,_LSHIFT | ||
| 86 | ,_RSHIFT | ||
| 87 | ,_PLOVER | ||
| 88 | ,_NUMBER | ||
| 89 | ,_SYMBOL | ||
| 90 | ,_FNCKEY | ||
| 91 | ,_MOUSE | ||
| 92 | #ifdef CENTER_TT | ||
| 93 | ,_TTNUMBER | ||
| 94 | ,_TTREGEX | ||
| 95 | ,_TTFNCKEY | ||
| 96 | ,_TTCURSOR | ||
| 97 | ,_TTMOUSE | ||
| 98 | #endif | ||
| 99 | #ifndef SHIFT_SYMBOLS | ||
| 100 | ,_NUMSYM | ||
| 101 | ,_SYMREG | ||
| 102 | #endif | ||
| 103 | ,_EDIT | ||
| 104 | ,_QWERTY | ||
| 105 | ,_ADJUST | ||
| 106 | ,_END_LAYERS | ||
| 107 | }; | ||
| 108 | |||
| 109 | enum planck_keycodes { | ||
| 110 | BASE = SAFE_RANGE | ||
| 111 | ,BASE1 | ||
| 112 | ,BASE2 | ||
| 113 | ,PLOVER | ||
| 114 | ,PLOEXIT | ||
| 115 | ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() | ||
| 116 | ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() | ||
| 117 | ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() | ||
| 118 | ,SM_K // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_K)) for shifted key-codes, see process_record_user() | ||
| 119 | ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() | ||
| 120 | ,SM_LPRN // pseudo CTL_T(S(KC_9)) for shifted key-codes, see process_record_user() | ||
| 121 | ,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user() | ||
| 122 | ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() | ||
| 123 | ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() | ||
| 124 | ,SL_PIPE // pseudo LT (_ADJUST, S(KC_BSLS)) for shifted key-codes, see process_record_user() | ||
| 125 | ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() | ||
| 126 | #ifdef CENTER_TT | ||
| 127 | ,TT_ESC | ||
| 128 | #endif | ||
| 129 | #ifdef STENO_ENABLE | ||
| 130 | ,PS_STNA = STN_A | ||
| 131 | ,PS_STNO = STN_O | ||
| 132 | ,PS_STNE = STN_E | ||
| 133 | ,PS_STNU = STN_U | ||
| 134 | #else | ||
| 135 | ,LT_C = LT (_NUMBER, KC_C) | ||
| 136 | ,LT_V = LT (_FNCKEY, KC_V) | ||
| 137 | ,LT_N = LT (_EDIT, KC_N) | ||
| 138 | ,LT_M = LT (_SYMBOL, KC_M) | ||
| 139 | #endif | ||
| 140 | ,PS_BASE | ||
| 141 | }; | ||
| 142 | |||
| 143 | // modifier keys | ||
| 144 | #define AT_B ALT_T(KC_B) | ||
| 145 | #define AT_DOWN ALT_T(KC_DOWN) | ||
| 146 | #define CT_RGHT CTL_T(KC_RGHT) | ||
| 147 | #define GT_C GUI_T(KC_C) | ||
| 148 | #define GT_UP GUI_T(KC_UP) | ||
| 149 | #define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) | ||
| 150 | #define MT_X MT (MOD_LALT | MOD_LSFT, KC_X) | ||
| 151 | #define ST_A SFT_T(KC_A) | ||
| 152 | #ifdef HOME_MODS | ||
| 153 | #define HOME_K GUI_T(KC_K) | ||
| 154 | #define HOME_H CTL_T(KC_H) | ||
| 155 | #define HOME_E ALT_T(KC_E) | ||
| 156 | #define HOME_A SFT_T(KC_A) | ||
| 157 | #if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) | ||
| 158 | #define HOME_T SFT_T(KC_T) | ||
| 159 | #define HOME_R ALT_T(KC_R) | ||
| 160 | #define HOME_S CTL_T(KC_S) | ||
| 161 | #define HOME_W GUI_T(KC_W) | ||
| 162 | #else | ||
| 163 | #define HOME_T SFT_T(KC_T) | ||
| 164 | #define HOME_S ALT_T(KC_S) | ||
| 165 | #define HOME_N GUI_T(KC_N) | ||
| 166 | #define HOME_B CTL_T(KC_B) | ||
| 167 | #endif | ||
| 168 | #else | ||
| 169 | #define HOME_K KC_K | ||
| 170 | #define HOME_H KC_H | ||
| 171 | #define HOME_E KC_E | ||
| 172 | #define HOME_A KC_A | ||
| 173 | #define HOME_T KC_T | ||
| 174 | #define HOME_S KC_S | ||
| 175 | #define HOME_N KC_N | ||
| 176 | #define HOME_B KC_B | ||
| 177 | #endif | ||
| 178 | |||
| 179 | #define S_DOWN S (KC_DOWN) | ||
| 180 | #define S_LEFT S (KC_LEFT) | ||
| 181 | #define S_RGHT S (KC_RGHT) | ||
| 182 | #define S_TAB S (KC_TAB) | ||
| 183 | #define S_UP S (KC_UP) | ||
| 184 | |||
| 185 | #include "tapdance.h" | ||
| 186 | |||
| 187 | // keycodes | ||
| 188 | #define ___x___ KC_TRNS | ||
| 189 | #define ___fn__ KC_TRNS | ||
| 190 | #ifdef _______ | ||
| 191 | #undef _______ | ||
| 192 | #endif | ||
| 193 | #define _______ KC_NO | ||
| 194 | |||
| 195 | #define COPY LCTL(KC_C) | ||
| 196 | #define CUT LCTL(KC_X) | ||
| 197 | #define EOT LCTL(KC_D) | ||
| 198 | #define NAK LCTL(KC_U) | ||
| 199 | #define PASTE LCTL(KC_V) | ||
| 200 | #define UNDO LCTL(KC_Z) | ||
| 201 | #define TMCOPY LALT(LCTL(KC_C)) | ||
| 202 | #define TMPASTE LALT(LCTL(KC_V)) | ||
| 203 | #define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling | ||
| 204 | #define LT_BSPC LT (_EDIT, KC_BSPC) | ||
| 205 | #define SP_LEFT LT (_EDIT, KC_LEFT) | ||
| 206 | #define LT_ESC LT (_NUMBER, KC_ESC) | ||
| 207 | #define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling | ||
| 208 | #define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling | ||
| 209 | #define LT_TAB LT (_FNCKEY, KC_TAB) | ||
| 210 | #define LT_INS LT (_FNCKEY, KC_INS) | ||
| 211 | #define LT_ALTG LT (_FNCKEY, KC_RALT) | ||
| 212 | #define ADJUST MO (_ADJUST) | ||
| 213 | #define OS_ALT OSM (MOD_LALT) | ||
| 214 | #define OS_CTL OSM (MOD_LCTL) | ||
| 215 | #define OS_GUI OSM (MOD_LGUI) | ||
| 216 | #define OS_SFT OSM (MOD_LSFT) | ||
| 217 | #define OS_CALT OSM (MOD_LALT | MOD_LCTL) | ||
| 218 | #define OS_CGUI OSM (MOD_LGUI | MOD_LCTL) | ||
| 219 | #define OS_CSFT OSM (MOD_LSFT | MOD_LCTL) | ||
| 220 | #define OS_SALT OSM (MOD_LALT | MOD_LSFT) | ||
| 221 | #define OS_SGUI OSM (MOD_LGUI | MOD_LSFT) | ||
| 222 | |||
| 223 | #ifdef CENTER_TT | ||
| 224 | #ifdef BEAKLSP | ||
| 225 | #define CNTR_TL OSM (MOD_LSFT) | ||
| 226 | #else | ||
| 227 | #define CNTR_TL TT (_TTFNCKEY) | ||
| 228 | #endif | ||
| 229 | #define CNTR_TR KC_CAPS | ||
| 230 | #define CNTR_HL TT (_TTCURSOR) | ||
| 231 | #define CNTR_HR TT (_TTMOUSE) | ||
| 232 | #define CNTR_BL TT (_TTNUMBER) | ||
| 233 | #define CNTR_BR TT (_TTREGEX) | ||
| 234 | #else | ||
| 235 | #define CNTR_TL OSM (MOD_LALT | MOD_LCTL) | ||
| 236 | #define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) | ||
| 237 | #define CNTR_HL OSM (MOD_LALT | MOD_LSFT) | ||
| 238 | #define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) | ||
| 239 | #define CNTR_BL TD (_CAPS) | ||
| 240 | #define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) | ||
| 241 | #endif | ||
| 242 | |||
| 243 | #ifdef THUMB_0 | ||
| 244 | #define LT_EQL LT (_ADJUST, KC_EQL) | ||
| 245 | #else | ||
| 246 | #define LT_0 LT (_ADJUST, KC_0) | ||
| 247 | #endif | ||
| 248 | #ifndef SHIFT_SYMBOLS | ||
| 249 | #define LT_A LT (_NUMSYM, KC_A) | ||
| 250 | #define LT_LFTX LT (_SYMREG, KC_LEFT) | ||
| 251 | #endif | ||
| 252 | |||
| 253 | // ........................................................ Default Alpha Layout | ||
| 254 | |||
| 255 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 256 | |||
| 257 | #include "beakl.h" | ||
| 258 | #include "colemak.h" | ||
| 259 | #include "qwerty.h" | ||
| 260 | #include "steno_layout.h" | ||
| 261 | |||
| 262 | // ...................................................... Number / Function Keys | ||
| 263 | |||
| 264 | #include "number_fkey_layout.h" | ||
| 265 | |||
| 266 | // ......................................................... Symbol / Navigation | ||
| 267 | |||
| 268 | #include "symbol_guifn_layout.h" | ||
| 269 | |||
| 270 | // ............................................................... Toggle Layers | ||
| 271 | |||
| 272 | #ifdef CENTER_TT | ||
| 273 | #include "toggle_layout.h" | ||
| 274 | #endif | ||
| 275 | |||
| 276 | // ......................................................... Short Cuts / Adjust | ||
| 277 | |||
| 278 | #include "chord_layout.h" | ||
| 279 | |||
| 280 | }; | ||
| 281 | |||
| 282 | // ...................................................................... Sounds | ||
| 283 | |||
| 284 | #include "sounds.h" | ||
| 285 | |||
| 286 | // ........................................................... User Keycode Trap | ||
| 287 | |||
| 288 | #include "keycode_functions.h" | ||
| 289 | |||
| 290 | #define BASE_1 1 | ||
| 291 | #define BASE_2 2 | ||
| 292 | #define BASE_12 3 | ||
| 293 | static uint8_t base_n = 0; | ||
| 294 | |||
| 295 | bool process_record_user(uint16_t keycode, keyrecord_t *record) | ||
| 296 | { | ||
| 297 | switch (keycode) { | ||
| 298 | case BASE1: | ||
| 299 | if (record->event.pressed) { | ||
| 300 | base_n = base_n | BASE_1; | ||
| 301 | if (base_n == BASE_12) { | ||
| 302 | base_layer(); | ||
| 303 | } | ||
| 304 | } | ||
| 305 | else { | ||
| 306 | base_n = base_n & ~BASE_1; | ||
| 307 | } | ||
| 308 | return false; | ||
| 309 | case BASE2: | ||
| 310 | if (record->event.pressed) { | ||
| 311 | base_n = base_n | BASE_2; | ||
| 312 | if (base_n == BASE_12) { | ||
| 313 | base_layer(); | ||
| 314 | } | ||
| 315 | } | ||
| 316 | else { | ||
| 317 | base_n = base_n & ~BASE_2; | ||
| 318 | } | ||
| 319 | return false; | ||
| 320 | case AT_DOWN: | ||
| 321 | #ifdef HOME_MODS | ||
| 322 | case HOME_E: | ||
| 323 | #if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) | ||
| 324 | case HOME_R: | ||
| 325 | #else | ||
| 326 | case HOME_S: | ||
| 327 | #endif | ||
| 328 | #endif | ||
| 329 | tap_mods(record, KC_LALT); | ||
| 330 | break; | ||
| 331 | case CT_RGHT: | ||
| 332 | #ifdef HOME_MODS | ||
| 333 | case HOME_K: | ||
| 334 | #if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) | ||
| 335 | case HOME_W: | ||
| 336 | #else | ||
| 337 | case HOME_B: | ||
| 338 | #endif | ||
| 339 | #endif | ||
| 340 | tap_mods(record, KC_LGUI); | ||
| 341 | break; | ||
| 342 | case GT_UP: | ||
| 343 | #ifdef HOME_MODS | ||
| 344 | case HOME_H: | ||
| 345 | #if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR) | ||
| 346 | case HOME_S: | ||
| 347 | #else | ||
| 348 | case HOME_N: | ||
| 349 | #endif | ||
| 350 | #endif | ||
| 351 | tap_mods(record, KC_LCTL); | ||
| 352 | break; | ||
| 353 | #ifdef HOME_MODS | ||
| 354 | case HOME_A: | ||
| 355 | case HOME_T: | ||
| 356 | tap_mods(record, KC_LSFT); | ||
| 357 | break; | ||
| 358 | #endif | ||
| 359 | #ifdef CENTER_TT | ||
| 360 | case TT_ESC: | ||
| 361 | clear_tt(); // exit TT layer | ||
| 362 | return false; | ||
| 363 | #endif | ||
| 364 | case LT_ESC: | ||
| 365 | #ifdef CENTER_TT | ||
| 366 | if (tt_keycode != 0) { | ||
| 367 | clear_tt(); // exit TT layer | ||
| 368 | return false; | ||
| 369 | } | ||
| 370 | #endif | ||
| 371 | tap_layer(record, _NUMBER); | ||
| 372 | break; | ||
| 373 | case LT_LEFT: | ||
| 374 | case SP_BSPC: | ||
| 375 | tap_layer(record, _SYMBOL); | ||
| 376 | // LT (_SYMBOL, KC_LEFT) left right combination layer | ||
| 377 | thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); | ||
| 378 | break; | ||
| 379 | case OS_ALT: | ||
| 380 | tap_mods(record, KC_LALT); | ||
| 381 | break; | ||
| 382 | case OS_CTL: | ||
| 383 | tap_mods(record, KC_LCTL); | ||
| 384 | break; | ||
| 385 | case OS_GUI: | ||
| 386 | tap_mods(record, KC_LGUI); | ||
| 387 | break; | ||
| 388 | case SM_CIRC: | ||
| 389 | // GUI_T(S(KC_6)) | ||
| 390 | mt_shift(record, KC_LGUI, 0, KC_6); | ||
| 391 | break; | ||
| 392 | case SM_DLR: | ||
| 393 | // SFT_T(S(KC_4)) | ||
| 394 | mt_shift(record, KC_LSFT, 0, KC_4); | ||
| 395 | break; | ||
| 396 | case SM_G: | ||
| 397 | // MT(MOD_LALT | MOD_LSFT, S(KC_G)) | ||
| 398 | mt_shift(record, KC_LALT, KC_LSFT, KC_G); | ||
| 399 | break; | ||
| 400 | case SM_K: | ||
| 401 | // MT(MOD_LGUI | MOD_LSFT, S(KC_K)) | ||
| 402 | mt_shift(record, KC_LGUI, KC_LSFT, KC_K); | ||
| 403 | break; | ||
| 404 | case SM_W: | ||
| 405 | // MT(MOD_LGUI | MOD_LSFT, S(KC_W)) | ||
| 406 | mt_shift(record, KC_LGUI, KC_LSFT, KC_W); | ||
| 407 | break; | ||
| 408 | case SM_LPRN: | ||
| 409 | // CTL_T(S(KC_9)) | ||
| 410 | mt_shift(record, KC_LCTL, 0, KC_9); | ||
| 411 | break; | ||
| 412 | case SM_PERC: | ||
| 413 | // ALT_T(S(KC_5)) | ||
| 414 | mt_shift(record, KC_LALT, 0, KC_5); | ||
| 415 | break; | ||
| 416 | case LT_BSLS: | ||
| 417 | tap_layer(record, _MOUSE); | ||
| 418 | // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS | ||
| 419 | thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); | ||
| 420 | break; | ||
| 421 | case SL_LEFT: | ||
| 422 | tap_layer(record, _MOUSE); | ||
| 423 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 424 | thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); | ||
| 425 | break; | ||
| 426 | case SP_DEL: | ||
| 427 | tap_layer(record, _MOUSE); | ||
| 428 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 429 | thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); | ||
| 430 | break; | ||
| 431 | case SL_PIPE: | ||
| 432 | // LT (_ADJUST, S(KC_BSLS)) emulation | ||
| 433 | lt_shift(record, KC_BSLS, _ADJUST); | ||
| 434 | break; | ||
| 435 | case SL_TAB: | ||
| 436 | // LT (_FNCKEY, S(KC_TAB)) emulation | ||
| 437 | lt_shift(record, KC_TAB, _FNCKEY); | ||
| 438 | break; | ||
| 439 | case TD_ENT: | ||
| 440 | tap_layer(record, _RSHIFT); | ||
| 441 | // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter | ||
| 442 | break; | ||
| 443 | case TD_SPC: | ||
| 444 | tap_layer(record, _LSHIFT); | ||
| 445 | // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC | ||
| 446 | thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); | ||
| 447 | break; | ||
| 448 | #ifdef CENTER_TT | ||
| 449 | case CNTR_TL: | ||
| 450 | case CNTR_TR: | ||
| 451 | case CNTR_HL: | ||
| 452 | case CNTR_HR: | ||
| 453 | case CNTR_BL: | ||
| 454 | case CNTR_BR: | ||
| 455 | if (tt_keycode != keycode && tt_keycode != 0) { | ||
| 456 | clear_tt(); // return to base layer first if different TT layer selected | ||
| 457 | } | ||
| 458 | tt_keycode = keycode; | ||
| 459 | break; | ||
| 460 | #endif | ||
| 461 | // #ifdef STENO_ENABLE | ||
| 462 | // case PS_STNA: | ||
| 463 | // stn_layer(record, STN_A, _NUMBER); | ||
| 464 | // break; | ||
| 465 | // case PS_STNO: | ||
| 466 | // stn_layer(record, STN_O, _FNCKEY); | ||
| 467 | // break; | ||
| 468 | // case PS_STNE: | ||
| 469 | // stn_layer(record, STN_E, _EDIT); | ||
| 470 | // break; | ||
| 471 | // case PS_STNU: | ||
| 472 | // stn_layer(record, STN_U, _SYMBOL); | ||
| 473 | // break; | ||
| 474 | // #endif | ||
| 475 | case PS_BASE: | ||
| 476 | if (record->event.pressed) { | ||
| 477 | base_layer(); | ||
| 478 | } | ||
| 479 | return false; | ||
| 480 | case PLOVER: | ||
| 481 | steno(record); | ||
| 482 | return false; | ||
| 483 | case PLOEXIT: | ||
| 484 | steno_exit(record); | ||
| 485 | return false; | ||
| 486 | } | ||
| 487 | return true; | ||
| 488 | } | ||
| 489 | |||
| 490 | #include "init.h" | ||
diff --git a/keyboards/planck/keymaps/altgr/private_string.h b/keyboards/planck/keymaps/altgr/private_string.h new file mode 100644 index 000000000..6ea34cc8e --- /dev/null +++ b/keyboards/planck/keymaps/altgr/private_string.h | |||
| @@ -0,0 +1 @@ | |||
| SEND_STRING("the keys of enoch"); | |||
diff --git a/keyboards/planck/keymaps/altgr/qwerty.h b/keyboards/planck/keymaps/altgr/qwerty.h new file mode 100644 index 000000000..d11d0478b --- /dev/null +++ b/keyboards/planck/keymaps/altgr/qwerty.h | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Qwerty | ||
| 5 | #ifdef QWERTY | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P }, | ||
| 18 | {KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, | ||
| 19 | {KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 25 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN}, | ||
| 26 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 42 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, | ||
| 43 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 59 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, | ||
| 60 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
diff --git a/keyboards/planck/keymaps/altgr/readme.md b/keyboards/planck/keymaps/altgr/readme.md new file mode 100644 index 000000000..58f73e3b4 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # The sdothum extended Default Planck Layout | ||
| 2 | |||
| 3 | - Colemak-DH layout layer with shift/tab key overlays | ||
| 4 | - Number and symbol/function key layer | ||
| 5 | - Hexadecimal keypad layer | ||
| 6 | - Navigation keypad layer | ||
| 7 | - Dynamic macro layer | ||
| 8 | - Autocompletion tap key pairs (),[],{} | ||
| 9 | - Normalized enter and esc key position across keyboard layers | ||
| 10 | - Extensive use of tap keys | ||
diff --git a/keyboards/planck/keymaps/altgr/rules.mk b/keyboards/planck/keymaps/altgr/rules.mk new file mode 100644 index 000000000..40f153844 --- /dev/null +++ b/keyboards/planck/keymaps/altgr/rules.mk | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | # Build Options: | ||
| 2 | # change to "no" to disable the options, or define them in the Makefile in | ||
| 3 | # the appropriate keymap folder that will get included automatically | ||
| 4 | |||
| 5 | BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) | ||
| 6 | MOUSEKEY_ENABLE = yes # mouse keys(+4700) | ||
| 7 | EXTRAKEY_ENABLE = no # audio control and System control(+450) | ||
| 8 | CONSOLE_ENABLE = no # console for debug(+400) | ||
| 9 | COMMAND_ENABLE = no # commands for debug and configuration | ||
| 10 | NKRO_ENABLE = yes # nkey rollover | ||
| 11 | BACKLIGHT_ENABLE = no # enable keyboard backlight functionality | ||
| 12 | MIDI_ENABLE = no # MIDI controls | ||
| 13 | AUDIO_ENABLE = no # audio output on port C6 | ||
| 14 | UNICODE_ENABLE = no # unicode | ||
| 15 | BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID | ||
| 16 | RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. | ||
| 17 | STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys | ||
| 18 | |||
| 19 | # do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 20 | SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend | ||
| 21 | |||
| 22 | TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} | ||
| 23 | |||
| 24 | ifndef QUANTUM_DIR | ||
| 25 | include ../../../../Makefile | ||
| 26 | endif | ||
diff --git a/keyboards/planck/keymaps/hiea/common/chord_layout.h b/keyboards/planck/keymaps/hiea/common/chord_layout.h new file mode 100644 index 000000000..2c785d56c --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/chord_layout.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. Short Cuts | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | | Copy | Paste| | | | | | | | | | ||
| 8 | // |--------------------------------------------------------------+------+------+------| | ||
| 9 | // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | | Nak | Eot | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | | | | f() | | | | | | | ||
| 14 | // | | | | | | | | f() | | | | | see _PLOVER | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_EDIT] = { | ||
| 18 | {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 19 | {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, | ||
| 20 | {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 21 | {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, | ||
| 22 | }, | ||
| 23 | |||
| 24 | // ................................................................ Adjust Layer | ||
| 25 | |||
| 26 | // ,-----------------------------------------------------------------------------------. | ||
| 27 | // |Plover| | | | | | | | | | | | | ||
| 28 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 29 | // |Aud on| | | | | | | | | | | | | ||
| 30 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 31 | // | Reset| | | | | | | | | | | | | ||
| 32 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 33 | // | | | | f() | | | | | f() | | | | | ||
| 34 | // `-----------------------------------------------------------------------------------' | ||
| 35 | |||
| 36 | [_ADJUST] = { | ||
| 37 | {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 38 | {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 39 | {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 40 | {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 41 | }, | ||
diff --git a/keyboards/planck/keymaps/hiea/common/init.h b/keyboards/planck/keymaps/hiea/common/init.h new file mode 100644 index 000000000..6366a19f6 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/init.h | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | |||
| 2 | // ....................................................................... Audio | ||
| 3 | |||
| 4 | void matrix_init_user(void) | ||
| 5 | { | ||
| 6 | #ifdef STENO_ENABLE | ||
| 7 | steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI | ||
| 8 | #endif | ||
| 9 | #ifdef AUDIO_ENABLE | ||
| 10 | startup_user(); | ||
| 11 | #endif | ||
| 12 | } | ||
| 13 | |||
| 14 | #ifdef AUDIO_ENABLE | ||
| 15 | #ifdef BACKLIGHT_ENABLE | ||
| 16 | void led_set_user(uint8_t usb_led) | ||
| 17 | { | ||
| 18 | static uint8_t old_usb_led = 0; | ||
| 19 | _delay_ms(10); // gets rid of tick | ||
| 20 | if (!is_playing_notes()) { | ||
| 21 | if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 22 | // if capslock LED is turning on | ||
| 23 | PLAY_SONG(song_caps_on); | ||
| 24 | } | ||
| 25 | else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 26 | // if capslock LED is turning off | ||
| 27 | PLAY_SONG(song_caps_off); | ||
| 28 | } | ||
| 29 | } | ||
| 30 | old_usb_led = usb_led; | ||
| 31 | } | ||
| 32 | #endif | ||
| 33 | |||
| 34 | void startup_user(void) | ||
| 35 | { | ||
| 36 | _delay_ms(20); // gets rid of tick | ||
| 37 | PLAY_SONG(song_startup); | ||
| 38 | } | ||
| 39 | |||
| 40 | void shutdown_user(void) | ||
| 41 | { | ||
| 42 | PLAY_SONG(song_goodbye); | ||
| 43 | _delay_ms(150); | ||
| 44 | stop_all_notes(); | ||
| 45 | } | ||
| 46 | |||
| 47 | void music_on_user(void) | ||
| 48 | { | ||
| 49 | music_scale_user(); | ||
| 50 | } | ||
| 51 | |||
| 52 | void music_scale_user(void) | ||
| 53 | { | ||
| 54 | PLAY_SONG(music_scale); | ||
| 55 | } | ||
| 56 | #endif | ||
diff --git a/keyboards/planck/keymaps/hiea/common/keycode_functions.h b/keyboards/planck/keymaps/hiea/common/keycode_functions.h new file mode 100644 index 000000000..e0ae15089 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/keycode_functions.h | |||
| @@ -0,0 +1,657 @@ | |||
| 1 | |||
| 2 | // .......................................................... Keycode Primitives | ||
| 3 | |||
| 4 | // register simple key press | ||
| 5 | void tap_key(uint16_t keycode) | ||
| 6 | { | ||
| 7 | register_code (keycode); | ||
| 8 | unregister_code(keycode); | ||
| 9 | } | ||
| 10 | |||
| 11 | void shift_key(uint16_t keycode) | ||
| 12 | { | ||
| 13 | register_code (KC_LSFT); | ||
| 14 | tap_key (keycode); | ||
| 15 | unregister_code(KC_LSFT); | ||
| 16 | } | ||
| 17 | |||
| 18 | #define SHIFT 1 | ||
| 19 | #define NOSHIFT 0 | ||
| 20 | |||
| 21 | static uint16_t key_timer = 0; | ||
| 22 | |||
| 23 | // key press for thumb_layer() and lt_shift() macros | ||
| 24 | bool key_press(uint8_t shift, uint16_t keycode) | ||
| 25 | { | ||
| 26 | if (keycode) { | ||
| 27 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 28 | if (shift) { | ||
| 29 | shift_key(keycode); | ||
| 30 | } | ||
| 31 | else { | ||
| 32 | tap_key(keycode); | ||
| 33 | } | ||
| 34 | return true; | ||
| 35 | } | ||
| 36 | } | ||
| 37 | return false; | ||
| 38 | } | ||
| 39 | |||
| 40 | // ALT_T, CTL_T, GUI_T, SFT_T for shifted keycodes | ||
| 41 | void mt_shift(keyrecord_t *record, uint16_t modifier, uint16_t modifier2, uint16_t keycode) | ||
| 42 | { | ||
| 43 | if (record->event.pressed) { | ||
| 44 | key_timer = timer_read(); | ||
| 45 | register_code(modifier); | ||
| 46 | if (modifier2) { | ||
| 47 | register_code(modifier2); | ||
| 48 | } | ||
| 49 | } | ||
| 50 | else { | ||
| 51 | unregister_code(modifier); | ||
| 52 | if (modifier2) { | ||
| 53 | unregister_code(modifier2); | ||
| 54 | } | ||
| 55 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 56 | shift_key(keycode); | ||
| 57 | } | ||
| 58 | key_timer = 0; | ||
| 59 | } | ||
| 60 | } | ||
| 61 | |||
| 62 | // ................................................................... Mod Masks | ||
| 63 | |||
| 64 | // tap dance persistant mods, see process_record_user() | ||
| 65 | // keyboard_report->mods (?) appears to be cleared by tap dance | ||
| 66 | static uint8_t mods = 0; | ||
| 67 | |||
| 68 | void tap_mods(keyrecord_t *record, uint16_t keycode) | ||
| 69 | { | ||
| 70 | if (record->event.pressed) { | ||
| 71 | mods |= MOD_BIT(keycode); | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | mods &= ~(MOD_BIT(keycode)); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | // (un)register modifiers | ||
| 79 | void modifier(void (*f)(uint8_t)) | ||
| 80 | { | ||
| 81 | if (mods & MOD_BIT(KC_LCTL)) { | ||
| 82 | (*f)(KC_LCTL); | ||
| 83 | } | ||
| 84 | if (mods & MOD_BIT(KC_LGUI)) { | ||
| 85 | (*f)(KC_LGUI); | ||
| 86 | } | ||
| 87 | if (mods & MOD_BIT(KC_LALT)) { | ||
| 88 | (*f)(KC_LALT); | ||
| 89 | } | ||
| 90 | } | ||
| 91 | |||
| 92 | // .................................................... Triple Dance Shift/Layer | ||
| 93 | |||
| 94 | static uint8_t dt_shift = 0; | ||
| 95 | |||
| 96 | void double_shift(uint16_t keycode, uint8_t layer) | ||
| 97 | { | ||
| 98 | tap_key (keycode); | ||
| 99 | if (DT_SHIFT) { | ||
| 100 | // set_oneshot_mods(MOD_LSFT); | ||
| 101 | // layer_on(layer); | ||
| 102 | layer_on (_SHIFT); | ||
| 103 | set_oneshot_layer(_SHIFT, ONESHOT_START); | ||
| 104 | dt_shift = 1; | ||
| 105 | } | ||
| 106 | else { | ||
| 107 | layer_on(layer); | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | // tap dance LT (LAYER, KEY) emulation with <KEY><DOWN> -> <KEY><SHIFT> and auto-repeat extensions! | ||
| 112 | void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) | ||
| 113 | { | ||
| 114 | // double tap plus down | ||
| 115 | if (state->count > 2) { | ||
| 116 | // double enter shift | ||
| 117 | if (keycode == KC_ENT) { | ||
| 118 | tap_key (keycode); | ||
| 119 | double_shift(keycode, layer); | ||
| 120 | } | ||
| 121 | // repeating keycode | ||
| 122 | else { | ||
| 123 | register_code(keycode); | ||
| 124 | } | ||
| 125 | } | ||
| 126 | // tap plus down (or double tap): keycode (one shot) shift | ||
| 127 | else if (state->count > 1) { | ||
| 128 | double_shift(keycode, layer); | ||
| 129 | } | ||
| 130 | // down: shift | ||
| 131 | else if (state->pressed) { | ||
| 132 | layer_on(layer); | ||
| 133 | } | ||
| 134 | // tap: keycode | ||
| 135 | else { | ||
| 136 | modifier(register_code); | ||
| 137 | tap_key (keycode); | ||
| 138 | modifier(unregister_code); | ||
| 139 | } | ||
| 140 | } | ||
| 141 | |||
| 142 | void tap_reset(uint16_t keycode, uint8_t layer) | ||
| 143 | { | ||
| 144 | unregister_code(keycode); | ||
| 145 | if (DT_SHIFT && dt_shift) { | ||
| 146 | clear_oneshot_layer_state(ONESHOT_PRESSED); | ||
| 147 | dt_shift = 0; | ||
| 148 | } | ||
| 149 | else { | ||
| 150 | layer_off(layer); | ||
| 151 | } | ||
| 152 | } | ||
| 153 | |||
| 154 | // augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid <ENTER><SHIFT> sequences | ||
| 155 | void enter(qk_tap_dance_state_t *state, void *user_data) | ||
| 156 | { | ||
| 157 | tap_shift(state, KC_ENT, _RSHIFT); | ||
| 158 | } | ||
| 159 | |||
| 160 | void enter_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 161 | { | ||
| 162 | tap_reset(KC_ENT, _RSHIFT); | ||
| 163 | } | ||
| 164 | |||
| 165 | // augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid <SPACE><SHIFT> sequences | ||
| 166 | void space(qk_tap_dance_state_t *state, void *user_data) | ||
| 167 | { | ||
| 168 | tap_shift(state, KC_SPC, _LSHIFT); | ||
| 169 | } | ||
| 170 | |||
| 171 | void space_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 172 | { | ||
| 173 | tap_reset(KC_SPC, _LSHIFT); | ||
| 174 | } | ||
| 175 | |||
| 176 | // ......................................................... Triple Dance Insert | ||
| 177 | |||
| 178 | void double_max(uint8_t count, uint8_t shift, uint16_t keycode) | ||
| 179 | { | ||
| 180 | if (shift) { | ||
| 181 | shift_key(keycode); | ||
| 182 | if (count > 1) { | ||
| 183 | shift_key(keycode); | ||
| 184 | } | ||
| 185 | } | ||
| 186 | else { | ||
| 187 | tap_key(keycode); | ||
| 188 | if (count > 1) { | ||
| 189 | tap_key(keycode); | ||
| 190 | } | ||
| 191 | } | ||
| 192 | } | ||
| 193 | |||
| 194 | void colon(qk_tap_dance_state_t *state, void *user_data) | ||
| 195 | { | ||
| 196 | if (state->count > 2) { | ||
| 197 | tap_key (KC_SPC); | ||
| 198 | shift_key(KC_SCLN); | ||
| 199 | shift_key(KC_SCLN); | ||
| 200 | tap_key (KC_SPC); | ||
| 201 | } | ||
| 202 | else { | ||
| 203 | double_max(state->count, SHIFT, KC_SCLN); | ||
| 204 | } | ||
| 205 | reset_tap_dance(state); | ||
| 206 | } | ||
| 207 | |||
| 208 | void eql(qk_tap_dance_state_t *state, void *user_data) | ||
| 209 | { | ||
| 210 | if (state->count > 2) { | ||
| 211 | tap_key(KC_SPC); | ||
| 212 | tap_key(KC_SLSH); | ||
| 213 | tap_key(KC_EQL); | ||
| 214 | tap_key(KC_SPC); | ||
| 215 | } | ||
| 216 | else { | ||
| 217 | double_max(state->count, NOSHIFT, KC_EQL); | ||
| 218 | } | ||
| 219 | reset_tap_dance(state); | ||
| 220 | } | ||
| 221 | |||
| 222 | void greater(qk_tap_dance_state_t *state, void *user_data) | ||
| 223 | { | ||
| 224 | if (state->count > 2) { | ||
| 225 | tap_key (KC_SPC); | ||
| 226 | tap_key (KC_MINS); | ||
| 227 | shift_key(KC_DOT); | ||
| 228 | tap_key (KC_SPC); | ||
| 229 | } | ||
| 230 | else { | ||
| 231 | double_max(state->count, SHIFT, KC_DOT); | ||
| 232 | } | ||
| 233 | reset_tap_dance(state); | ||
| 234 | } | ||
| 235 | |||
| 236 | void lesser(qk_tap_dance_state_t *state, void *user_data) | ||
| 237 | { | ||
| 238 | if (state->count > 2) { | ||
| 239 | tap_key (KC_SPC); | ||
| 240 | shift_key(KC_COMM); | ||
| 241 | tap_key (KC_MINS); | ||
| 242 | tap_key (KC_SPC); | ||
| 243 | } | ||
| 244 | else { | ||
| 245 | double_max(state->count, SHIFT, KC_COMM); | ||
| 246 | } | ||
| 247 | reset_tap_dance(state); | ||
| 248 | } | ||
| 249 | |||
| 250 | void tilde(qk_tap_dance_state_t *state, void *user_data) | ||
| 251 | { | ||
| 252 | // double tap plus down: repeating keycode | ||
| 253 | if (state->count > 2) { | ||
| 254 | register_code(KC_LSFT); | ||
| 255 | register_code(KC_GRV); | ||
| 256 | } | ||
| 257 | // tap: keycode | ||
| 258 | else { | ||
| 259 | shift_key(KC_GRV); | ||
| 260 | // double tap: unix home directory | ||
| 261 | if (state->count > 1) { | ||
| 262 | tap_key(KC_SLSH); | ||
| 263 | } | ||
| 264 | } | ||
| 265 | } | ||
| 266 | |||
| 267 | void tilde_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 268 | { | ||
| 269 | unregister_code(KC_GRV); | ||
| 270 | unregister_code(KC_LSFT); | ||
| 271 | } | ||
| 272 | |||
| 273 | // ............................................................. Tap Dance Pairs | ||
| 274 | |||
| 275 | // tap dance shift rules | ||
| 276 | #define S_NEVER 0 | ||
| 277 | #define S_SINGLE 1 | ||
| 278 | #define S_DOUBLE 2 | ||
| 279 | #define S_ALWAYS S_SINGLE | S_DOUBLE | ||
| 280 | |||
| 281 | void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) | ||
| 282 | { | ||
| 283 | if (shift & S_DOUBLE) { | ||
| 284 | shift_key(left); | ||
| 285 | shift_key(right); | ||
| 286 | } | ||
| 287 | else { | ||
| 288 | tap_key(left); | ||
| 289 | tap_key(right); | ||
| 290 | } | ||
| 291 | } | ||
| 292 | |||
| 293 | #define CLOSE 1 | ||
| 294 | |||
| 295 | // tap dance symbol pairs | ||
| 296 | void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) | ||
| 297 | { | ||
| 298 | // triple tap: left right with cursor between symbol pair a la vim :-) | ||
| 299 | if (state->count > 2) { | ||
| 300 | symbol_pair(shift, left, right); | ||
| 301 | tap_key (KC_LEFT); | ||
| 302 | } | ||
| 303 | // double tap: left right | ||
| 304 | else if (state->count > 1) { | ||
| 305 | symbol_pair(shift, left, right); | ||
| 306 | } | ||
| 307 | // down: modifier | ||
| 308 | else if (state->pressed) { | ||
| 309 | if (modifier) { | ||
| 310 | register_code(modifier); | ||
| 311 | } | ||
| 312 | } | ||
| 313 | // tap: left (close: right) | ||
| 314 | else { | ||
| 315 | if (shift & S_SINGLE) { | ||
| 316 | shift_key(close ? right : left); | ||
| 317 | } | ||
| 318 | else { | ||
| 319 | tap_key(close ? right : left); | ||
| 320 | } | ||
| 321 | } | ||
| 322 | if (!modifier) { | ||
| 323 | reset_tap_dance(state); | ||
| 324 | } | ||
| 325 | } | ||
| 326 | |||
| 327 | void doublequote(qk_tap_dance_state_t *state, void *user_data) | ||
| 328 | { | ||
| 329 | tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); | ||
| 330 | } | ||
| 331 | |||
| 332 | void grave(qk_tap_dance_state_t *state, void *user_data) | ||
| 333 | { | ||
| 334 | tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); | ||
| 335 | } | ||
| 336 | |||
| 337 | void lbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 338 | { | ||
| 339 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); | ||
| 340 | } | ||
| 341 | |||
| 342 | void lcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 343 | { | ||
| 344 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); | ||
| 345 | } | ||
| 346 | |||
| 347 | void lparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 348 | { | ||
| 349 | tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); | ||
| 350 | } | ||
| 351 | |||
| 352 | void lparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 353 | { | ||
| 354 | unregister_code(KC_LCTL); | ||
| 355 | } | ||
| 356 | |||
| 357 | void quote(qk_tap_dance_state_t *state, void *user_data) | ||
| 358 | { | ||
| 359 | tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); | ||
| 360 | } | ||
| 361 | |||
| 362 | void rangle(qk_tap_dance_state_t *state, void *user_data) | ||
| 363 | { | ||
| 364 | tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); | ||
| 365 | } | ||
| 366 | |||
| 367 | void rbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 368 | { | ||
| 369 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 370 | } | ||
| 371 | |||
| 372 | void rcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 373 | { | ||
| 374 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 375 | } | ||
| 376 | |||
| 377 | void rparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 378 | { | ||
| 379 | tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); | ||
| 380 | } | ||
| 381 | |||
| 382 | void rparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 383 | { | ||
| 384 | unregister_code(KC_LCTL); | ||
| 385 | } | ||
| 386 | |||
| 387 | // ............................................................ Tap Dance Insert | ||
| 388 | |||
| 389 | void comma(qk_tap_dance_state_t *state, void *user_data) | ||
| 390 | { | ||
| 391 | tap_key(KC_COMM); | ||
| 392 | if (state->count > 1) { | ||
| 393 | tap_key(KC_SPC); | ||
| 394 | } | ||
| 395 | reset_tap_dance(state); | ||
| 396 | } | ||
| 397 | |||
| 398 | void dot(qk_tap_dance_state_t *state, void *user_data) | ||
| 399 | { | ||
| 400 | if (state->count > 1) { | ||
| 401 | shift_key(KC_COLN); | ||
| 402 | } | ||
| 403 | else { | ||
| 404 | tap_key(KC_DOT); | ||
| 405 | } | ||
| 406 | reset_tap_dance(state); | ||
| 407 | } | ||
| 408 | |||
| 409 | // compile time macro string, see functions/hardware planck script | ||
| 410 | void private(qk_tap_dance_state_t *state, void *user_data) | ||
| 411 | { | ||
| 412 | if (state->count > 1) { | ||
| 413 | #ifdef PRIVATE_STRING | ||
| 414 | #include "private_string.h" | ||
| 415 | #endif | ||
| 416 | } | ||
| 417 | reset_tap_dance(state); | ||
| 418 | } | ||
| 419 | |||
| 420 | // config.h defined string | ||
| 421 | void send(qk_tap_dance_state_t *state, void *user_data) | ||
| 422 | { | ||
| 423 | if (state->count > 1) { | ||
| 424 | SEND_STRING(PUBLIC_STRING); | ||
| 425 | } | ||
| 426 | reset_tap_dance(state); | ||
| 427 | } | ||
| 428 | |||
| 429 | // .......................................................... Tap Dance One Shot | ||
| 430 | |||
| 431 | void caps(qk_tap_dance_state_t *state, void *user_data) | ||
| 432 | { | ||
| 433 | if (state->count > 1) { | ||
| 434 | tap_key(KC_CAPS); | ||
| 435 | } | ||
| 436 | else { | ||
| 437 | set_oneshot_mods(MOD_LSFT); | ||
| 438 | register_code (KC_LSFT); // on hold down | ||
| 439 | } | ||
| 440 | } | ||
| 441 | |||
| 442 | void caps_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 443 | { | ||
| 444 | unregister_code(KC_LSFT); | ||
| 445 | } | ||
| 446 | |||
| 447 | // ................................................................... Tap Dance | ||
| 448 | |||
| 449 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 450 | [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) | ||
| 451 | ,[_COLN] = ACTION_TAP_DANCE_FN (colon) | ||
| 452 | ,[_COMM] = ACTION_TAP_DANCE_FN (comma) | ||
| 453 | ,[_DOT] = ACTION_TAP_DANCE_FN (dot) | ||
| 454 | ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) | ||
| 455 | ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) | ||
| 456 | ,[_EQL] = ACTION_TAP_DANCE_FN (eql) | ||
| 457 | ,[_GRV] = ACTION_TAP_DANCE_FN (grave) | ||
| 458 | ,[_GT] = ACTION_TAP_DANCE_FN (greater) | ||
| 459 | ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) | ||
| 460 | ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) | ||
| 461 | ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) | ||
| 462 | ,[_LT] = ACTION_TAP_DANCE_FN (lesser) | ||
| 463 | ,[_PRIV] = ACTION_TAP_DANCE_FN (private) | ||
| 464 | ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) | ||
| 465 | ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) | ||
| 466 | ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) | ||
| 467 | ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) | ||
| 468 | ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) | ||
| 469 | ,[_SEND] = ACTION_TAP_DANCE_FN (send) | ||
| 470 | ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) | ||
| 471 | ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) | ||
| 472 | }; | ||
| 473 | |||
| 474 | // .............................................................. Dynamic Layers | ||
| 475 | |||
| 476 | #define LEFT 1 | ||
| 477 | #define RIGHT 2 | ||
| 478 | static uint8_t thumb = 0; | ||
| 479 | |||
| 480 | // LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() | ||
| 481 | // up, up -> _BASE | ||
| 482 | // up, down -> _SYMBOL | ||
| 483 | // down, up -> _NUMBER | ||
| 484 | // down, down -> _MOUSE // see layer keycodes that raise mouse layer | ||
| 485 | #define THUMBS_DOWN _MOUSE // layer | ||
| 486 | |||
| 487 | static uint8_t overlayer = 0; | ||
| 488 | |||
| 489 | // left right thumb layer combinations | ||
| 490 | void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) | ||
| 491 | { | ||
| 492 | if (record->event.pressed) { | ||
| 493 | // layer_on via tap_layer(), see process_record_user() | ||
| 494 | key_timer = timer_read(); | ||
| 495 | thumb = thumb | side; | ||
| 496 | } | ||
| 497 | else { | ||
| 498 | layer_off(thumb_dn_layer); | ||
| 499 | // opposite thumb_layer() thumb may have switched effective layer! | ||
| 500 | if (overlayer) { | ||
| 501 | layer_off(overlayer); | ||
| 502 | overlayer = 0; | ||
| 503 | } | ||
| 504 | if (!key_press(shift, keycode)) { | ||
| 505 | layer_off(THUMBS_DOWN); // both thumbs needed | ||
| 506 | // opposite thumb down? see left right combination layer table above | ||
| 507 | if (thumb & (side == LEFT ? RIGHT : LEFT)) { | ||
| 508 | layer_on(thumb_up_layer); | ||
| 509 | overlayer = thumb_up_layer; | ||
| 510 | } | ||
| 511 | } | ||
| 512 | clear_mods(); | ||
| 513 | thumb = thumb & ~side; | ||
| 514 | key_timer = 0; | ||
| 515 | } | ||
| 516 | } | ||
| 517 | |||
| 518 | // #ifdef STENO_ENABLE | ||
| 519 | // // LT for steno keycode | ||
| 520 | // void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 521 | // { | ||
| 522 | // if (record->event.pressed) { | ||
| 523 | // key_timer = timer_read(); | ||
| 524 | // if (keycode) { | ||
| 525 | // process_steno(keycode, record); | ||
| 526 | // } | ||
| 527 | // layer_on(layer); | ||
| 528 | // } | ||
| 529 | // else { | ||
| 530 | // layer_off(layer); | ||
| 531 | // if (keycode) { | ||
| 532 | // if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 533 | // process_steno(keycode, record); | ||
| 534 | // } | ||
| 535 | // else { | ||
| 536 | // // clear pressed state (request push of updated) process_steno.c and .h | ||
| 537 | // // steno_clear_state(); | ||
| 538 | // } | ||
| 539 | // } | ||
| 540 | // key_timer = 0; | ||
| 541 | // } | ||
| 542 | // } | ||
| 543 | // #endif | ||
| 544 | |||
| 545 | // LT for S(keycode) | ||
| 546 | void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 547 | { | ||
| 548 | if (record->event.pressed) { | ||
| 549 | key_timer = timer_read(); | ||
| 550 | layer_on(layer); | ||
| 551 | } | ||
| 552 | else { | ||
| 553 | layer_off(layer); | ||
| 554 | // for shifted keycodes, hence, LT_SHIFT | ||
| 555 | key_press(SHIFT, keycode); | ||
| 556 | clear_mods(); | ||
| 557 | key_timer = 0; | ||
| 558 | } | ||
| 559 | } | ||
| 560 | |||
| 561 | // set layer asap to overcome macro latency errors, notably tap dance and LT usage | ||
| 562 | // this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() | ||
| 563 | void tap_layer(keyrecord_t *record, uint8_t layer) | ||
| 564 | { | ||
| 565 | if (record->event.pressed) { | ||
| 566 | layer_on(layer); | ||
| 567 | } | ||
| 568 | else { | ||
| 569 | layer_off(layer); | ||
| 570 | } | ||
| 571 | } | ||
| 572 | |||
| 573 | // ..................................................................... Keymaps | ||
| 574 | |||
| 575 | // void persistant_default_layer_set(uint16_t default_layer) | ||
| 576 | // { | ||
| 577 | // eeconfig_update_default_layer(default_layer); | ||
| 578 | // default_layer_set (default_layer); | ||
| 579 | // } | ||
| 580 | |||
| 581 | void clear_layers(void) | ||
| 582 | { | ||
| 583 | uint8_t layer; | ||
| 584 | for (layer = 0; layer < _END_LAYERS; layer++) { | ||
| 585 | layer_off(layer); | ||
| 586 | } | ||
| 587 | } | ||
| 588 | |||
| 589 | #ifdef CENTER_TT | ||
| 590 | static uint16_t tt_keycode = 0; // current TT keycode | ||
| 591 | |||
| 592 | void clear_tt(void) | ||
| 593 | { | ||
| 594 | if (tt_keycode == KC_CAPS) { | ||
| 595 | tap_key(KC_CAPS); // clear capslock | ||
| 596 | } | ||
| 597 | tt_keycode = 0; | ||
| 598 | clear_layers(); | ||
| 599 | set_single_persistent_default_layer(_BASE); | ||
| 600 | } | ||
| 601 | #endif | ||
| 602 | |||
| 603 | // txbolt plover run state | ||
| 604 | static uint8_t plover = 0; | ||
| 605 | |||
| 606 | void toggle_plover(uint8_t state) | ||
| 607 | { | ||
| 608 | if (plover != state) { | ||
| 609 | #ifdef PLOVER_KEYBIND | ||
| 610 | #include "plover_keybind.h" | ||
| 611 | #endif | ||
| 612 | plover = state; | ||
| 613 | } | ||
| 614 | } | ||
| 615 | |||
| 616 | void base_layer(void) | ||
| 617 | { | ||
| 618 | #ifdef AUDIO_ENABLE | ||
| 619 | if (plover) { | ||
| 620 | PLAY_SONG(song_plover_gb); | ||
| 621 | } | ||
| 622 | else { | ||
| 623 | PLAY_SONG(song_qwerty); | ||
| 624 | } | ||
| 625 | #endif | ||
| 626 | clear_layers(); | ||
| 627 | set_single_persistent_default_layer(_BASE); | ||
| 628 | toggle_plover(0); | ||
| 629 | } | ||
| 630 | |||
| 631 | void steno(keyrecord_t *record) | ||
| 632 | { | ||
| 633 | if (record->event.pressed) { | ||
| 634 | #ifdef AUDIO_ENABLE | ||
| 635 | PLAY_SONG(song_plover); | ||
| 636 | #endif | ||
| 637 | clear_layers(); | ||
| 638 | layer_on(_PLOVER); | ||
| 639 | if (!eeconfig_is_enabled()) { | ||
| 640 | eeconfig_init(); | ||
| 641 | } | ||
| 642 | keymap_config.raw = eeconfig_read_keymap(); | ||
| 643 | keymap_config.nkro = 1; | ||
| 644 | eeconfig_update_keymap(keymap_config.raw); | ||
| 645 | if (!plover) { | ||
| 646 | toggle_plover(1); | ||
| 647 | } | ||
| 648 | } | ||
| 649 | } | ||
| 650 | |||
| 651 | void steno_exit(keyrecord_t *record) | ||
| 652 | { | ||
| 653 | if (record->event.pressed) { | ||
| 654 | base_layer(); | ||
| 655 | toggle_plover(0); | ||
| 656 | } | ||
| 657 | } | ||
diff --git a/keyboards/planck/keymaps/hiea/common/number_fkey_layout.h b/keyboards/planck/keymaps/hiea/common/number_fkey_layout.h new file mode 100644 index 000000000..321482b29 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/number_fkey_layout.h | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | | | | 0 | = | | | | | ||
| 14 | // | | | | f() | | | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_NUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 23 | #else | ||
| 24 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | |||
| 28 | // ............ .................................................. Function Keys | ||
| 29 | |||
| 30 | // .-----------------------------------------------------------------------------------. | ||
| 31 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 36 | // |-----------------------------------------------------------------------------------| | ||
| 37 | // | | | | | | f() | | + | | | | | | ||
| 38 | // | | | | | f() | | | + | | | | | see _PLOVER | ||
| 39 | // '-----------------------------------------------------------------------------------' | ||
| 40 | |||
| 41 | [_FNCKEY] = { | ||
| 42 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 43 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 44 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 45 | {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 46 | }, | ||
diff --git a/keyboards/planck/keymaps/hiea/common/plover_keybind.h b/keyboards/planck/keymaps/hiea/common/plover_keybind.h new file mode 100644 index 000000000..cb4ef92ef --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/plover_keybind.h | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | |||
| 2 | // simple window manager specific plover keybind hook | ||
| 3 | |||
| 4 | // toggle plover application, see herbstluftwm/config/appbinds | ||
| 5 | register_code (KC_LGUI); | ||
| 6 | register_code (KC_LCTL); | ||
| 7 | tap_key (KC_EQL); | ||
| 8 | unregister_code(KC_LCTL); | ||
| 9 | unregister_code(KC_LGUI); | ||
diff --git a/keyboards/planck/keymaps/hiea/common/sounds.h b/keyboards/planck/keymaps/hiea/common/sounds.h new file mode 100644 index 000000000..1bfc7a6da --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/sounds.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | |||
| 2 | // ................................................................ Audio Sounds | ||
| 3 | |||
| 4 | #ifdef AUDIO_ENABLE | ||
| 5 | float song_startup [][2] = SONG(STARTUP_SOUND); | ||
| 6 | float song_colemak [][2] = SONG(COLEMAK_SOUND); | ||
| 7 | float song_qwerty [][2] = SONG(QWERTY_SOUND); | ||
| 8 | float song_plover [][2] = SONG(PLOVER_SOUND); | ||
| 9 | float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||
| 10 | float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); | ||
| 11 | float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); | ||
| 12 | float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 13 | float song_goodbye [][2] = SONG(GOODBYE_SOUND); | ||
| 14 | #endif | ||
diff --git a/keyboards/planck/keymaps/hiea/common/steno_layout.h b/keyboards/planck/keymaps/hiea/common/steno_layout.h new file mode 100644 index 000000000..ab4a6fe01 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/steno_layout.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Plover | ||
| 5 | #ifdef STENO_ENABLE | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | # | # | # | # | # | # | # | # | # | # | # | # | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | | A | O | E | U | | | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_PLOVER] = { | ||
| 17 | {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, | ||
| 18 | {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, | ||
| 19 | {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, | ||
| 20 | {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, | ||
| 21 | }, | ||
| 22 | #else | ||
| 23 | // ,-----------------------------------------------------------------------------------. | ||
| 24 | // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| 25 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 26 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 27 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 28 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 29 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 30 | // | | A | O | E | U | | | ||
| 31 | // `-----------------------------------------------------------------------------------' | ||
| 32 | |||
| 33 | [_PLOVER] = { | ||
| 34 | {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, | ||
| 35 | {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, | ||
| 36 | {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 37 | {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, | ||
| 38 | }, | ||
| 39 | #endif | ||
diff --git a/keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h new file mode 100644 index 000000000..677e46409 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/symbol_guifn_layout.h | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ..................................................... Symbol Navigation Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | ~ | * | & | | | | | Home | Up | End | PgUp | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | @ | ! | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | |Adjust| \ | | f() | | | ||
| 14 | // '-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_SYMBOL] = { | ||
| 17 | {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 18 | {OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 19 | {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 20 | {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | // ............................................................... Mouse Actions | ||
| 24 | |||
| 25 | // .-----------------------------------------------------------------------------------. | ||
| 26 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 27 | // |-----------------------------------------------------------------------------------| | ||
| 28 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 29 | // |-----------------------------------------------------------------------------------| | ||
| 30 | // | | | | | | | | | | | | | | ||
| 31 | // |-----------------------------------------------------------------------------------| | ||
| 32 | // | | | f() | | f() | | | ||
| 33 | // '-----------------------------------------------------------------------------------' | ||
| 34 | |||
| 35 | [_MOUSE] = { | ||
| 36 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 37 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 38 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 39 | {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 40 | }, | ||
diff --git a/keyboards/planck/keymaps/hiea/common/tapdance.h b/keyboards/planck/keymaps/hiea/common/tapdance.h new file mode 100644 index 000000000..d778286bf --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/tapdance.h | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | |||
| 2 | // tap dance keys | ||
| 3 | enum tap_dance { | ||
| 4 | _CAPS = 0 | ||
| 5 | ,_COLN | ||
| 6 | ,_COMM | ||
| 7 | ,_DOT | ||
| 8 | ,_DQOT | ||
| 9 | ,_ENT | ||
| 10 | ,_EQL | ||
| 11 | ,_GRV | ||
| 12 | ,_GT | ||
| 13 | ,_LBRC | ||
| 14 | ,_LCBR | ||
| 15 | ,_LPRN | ||
| 16 | ,_LT | ||
| 17 | ,_PRIV | ||
| 18 | ,_QUOT | ||
| 19 | ,_RBRC | ||
| 20 | ,_RCBR | ||
| 21 | ,_RNGL | ||
| 22 | ,_RPRN | ||
| 23 | ,_SEND | ||
| 24 | ,_SPC | ||
| 25 | ,_TILD | ||
| 26 | }; | ||
| 27 | |||
| 28 | #define TD_CAPS TD(_CAPS) | ||
| 29 | #define TD_COLN TD(_COLN) | ||
| 30 | #define TD_COMM TD(_COMM) | ||
| 31 | #define TD_DOT TD(_DOT) | ||
| 32 | #define TD_DQOT TD(_DQOT) | ||
| 33 | #define TD_ENT TD(_ENT) | ||
| 34 | #define TD_EQL TD(_EQL) | ||
| 35 | #define TD_GRV TD(_GRV) | ||
| 36 | #define TD_GT TD(_GT) | ||
| 37 | #define TD_LBRC TD(_LBRC) | ||
| 38 | #define TD_LCBR TD(_LCBR) | ||
| 39 | #define TD_LPRN TD(_LPRN) | ||
| 40 | #define TD_LT TD(_LT) | ||
| 41 | #define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h | ||
| 42 | #define TD_QUOT TD(_QUOT) | ||
| 43 | #define TD_RBRC TD(_RBRC) | ||
| 44 | #define TD_RCBR TD(_RCBR) | ||
| 45 | #define TD_RNGL TD(_RNGL) | ||
| 46 | #define TD_RPRN TD(_RPRN) | ||
| 47 | #define TD_SEND TD(_SEND) // config.h defined macro string | ||
| 48 | #define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc | ||
| 49 | #define TD_TILD TD(_TILD) | ||
diff --git a/keyboards/planck/keymaps/hiea/common/toggle_layout.h b/keyboards/planck/keymaps/hiea/common/toggle_layout.h new file mode 100644 index 000000000..713d27bbc --- /dev/null +++ b/keyboards/planck/keymaps/hiea/common/toggle_layout.h | |||
| @@ -0,0 +1,102 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | Space| | | 0 | = | | | | | ||
| 14 | // | | | | f() | Space| | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_TTNUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______}, | ||
| 23 | #else | ||
| 24 | {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | |||
| 28 | // ............ .................................................. Function Keys | ||
| 29 | |||
| 30 | // .-----------------------------------------------------------------------------------. | ||
| 31 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 36 | // |-----------------------------------------------------------------------------------| | ||
| 37 | // | | | | f() | | | | + | | | | | | ||
| 38 | // '-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_TTFNCKEY] = { | ||
| 41 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 42 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 43 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 44 | {_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ....................................................................... Regex | ||
| 48 | |||
| 49 | // ,-----------------------------------------------------------------------------------. | ||
| 50 | // | | ~ | { | } | & | | | % | [ | ] | @ | | | ||
| 51 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 52 | // | | ^ | < | > | ? | | | | | ( | ) | $ | | | ||
| 53 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 54 | // | | : | ! | = | / | | | \ | * | . | # | | | ||
| 55 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 56 | // | | | | f() | - | | | + | Space| | | | | ||
| 57 | // `-----------------------------------------------------------------------------------' | ||
| 58 | |||
| 59 | [_TTREGEX] = { | ||
| 60 | {___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___}, | ||
| 61 | {___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, | ||
| 62 | {___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___}, | ||
| 63 | {_______, _______, _______, TT_ESC, KC_MINS, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______}, | ||
| 64 | }, | ||
| 65 | |||
| 66 | // ............................................................ Navigation Layer | ||
| 67 | |||
| 68 | // .-----------------------------------------------------------------------------------. | ||
| 69 | // | | | | | | | | | Home | Up | End | PgUp | | ||
| 70 | // |-----------------------------------------------------------------------------------| | ||
| 71 | // | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | | | | | | | | | | | | | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | | | f() | | | | | | | | | | ||
| 76 | // '-----------------------------------------------------------------------------------' | ||
| 77 | |||
| 78 | [_TTCURSOR] = { | ||
| 79 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 80 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 81 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 82 | {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 83 | }, | ||
| 84 | |||
| 85 | // ............................................................... Mouse Actions | ||
| 86 | |||
| 87 | // .-----------------------------------------------------------------------------------. | ||
| 88 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 89 | // |-----------------------------------------------------------------------------------| | ||
| 90 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 91 | // |-----------------------------------------------------------------------------------| | ||
| 92 | // | | | | | | | | | | | | | | ||
| 93 | // |-----------------------------------------------------------------------------------| | ||
| 94 | // | | | | f() | | | | | | | | | | ||
| 95 | // '-----------------------------------------------------------------------------------' | ||
| 96 | |||
| 97 | [_TTMOUSE] = { | ||
| 98 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 99 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 100 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 101 | {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 102 | }, | ||
diff --git a/keyboards/planck/keymaps/hiea/config.h b/keyboards/planck/keymaps/hiea/config.h new file mode 100644 index 000000000..9bb5e0873 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/config.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | // required because lower/raise modifiers are redefined by colemak-dh | ||
| 7 | #define PREVENT_STUCK_MODIFIERS | ||
| 8 | |||
| 9 | // tap dance key press termination interval | ||
| 10 | #define TAPPING_TERM 250 | ||
| 11 | |||
| 12 | // smooth mouse motion | ||
| 13 | // #define MOUSEKEY_INTERVAL 20 | ||
| 14 | // #define MOUSEKEY_DELAY 0 | ||
| 15 | // #define MOUSEKEY_TIME_TO_MAX 60 | ||
| 16 | // #define MOUSEKEY_MAX_SPEED 7 | ||
| 17 | // #define MOUSEKEY_WHEEL_DELAY 0 | ||
| 18 | |||
| 19 | // compile time macro string, see functions/hardware planck script (undefine otherwise) | ||
| 20 | #define PRIVATE_STRING | ||
| 21 | |||
| 22 | // compile time macro string, must be in quotes | ||
| 23 | #define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" | ||
| 24 | |||
| 25 | // thumb key tap-shift() double tap: one shot shift (0) off (1) on | ||
| 26 | #define DT_SHIFT 1 | ||
| 27 | |||
| 28 | // number layer 0 position KEYPAD_0, THUMB_0 | ||
| 29 | #define THUMB_0 | ||
| 30 | |||
| 31 | // home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) | ||
| 32 | #define SHIFT_SYMBOLS | ||
| 33 | |||
| 34 | // center column TT assignments (undefine for OSM chords) | ||
| 35 | #define CENTER_TT | ||
| 36 | #define TAPPING_TOGGLE 1 | ||
| 37 | |||
| 38 | // home row modifiers | ||
| 39 | #define HOME_MODS | ||
| 40 | // fix dual function timing | ||
| 41 | #define PERMISSIVE_HOLD | ||
| 42 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 43 | |||
| 44 | // layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) | ||
| 45 | #define DEFAULT | ||
| 46 | |||
| 47 | // sync app with window manager keybind hook defined in plover_keybind.h | ||
| 48 | #define PLOVER_KEYBIND | ||
| 49 | |||
| 50 | #endif | ||
diff --git a/keyboards/planck/keymaps/hiea/hiea.h b/keyboards/planck/keymaps/hiea/hiea.h new file mode 100644 index 000000000..093802aef --- /dev/null +++ b/keyboards/planck/keymaps/hiea/hiea.h | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. BEAKL HIEA | ||
| 5 | #ifdef DEFAULT | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | H | I | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | J | ; | " | K | , | Num | Regex| B | P | L | F | V | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 18 | {HOME_H, HOME_I, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 19 | {KC_J, KC_SCLN, TD_QUOT, KC_K, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 25 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 26 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_K), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | H | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 42 | {SM_H, KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 43 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | H | I | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | J | : | " | K | / | Num | Regex| \ | * | . | P | V | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, | ||
| 59 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, SM_W }, | ||
| 60 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
diff --git a/keyboards/planck/keymaps/hiea/keymap.c b/keyboards/planck/keymaps/hiea/keymap.c new file mode 100644 index 000000000..2f573f9a4 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/keymap.c | |||
| @@ -0,0 +1,429 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | // | ||
| 4 | // To flash planck firmware | ||
| 5 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 6 | // Reset keyboard or press hw reset button on base (hole) | ||
| 7 | // | ||
| 8 | // cd qmk_firmware/keyboards/planck | ||
| 9 | // sudo make KEYMAP=sdothum dfu | ||
| 10 | // | ||
| 11 | // sudo make clean (good practice before flashing) | ||
| 12 | // sudo make KEYMAP=sdothum (to compile check) | ||
| 13 | // | ||
| 14 | // Package requirements (for arch linux) | ||
| 15 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 16 | // avr-gcc-atmel | ||
| 17 | // avr-libc-atmel | ||
| 18 | // dfu-programmer | ||
| 19 | // | ||
| 20 | // Notes | ||
| 21 | // ▔▔▔▔▔ | ||
| 22 | // ** E R G O W I D E S P L I T ** Layout | ||
| 23 | // | ||
| 24 | // Autocompletion tap dance key pairs (),[],{} are available from the | ||
| 25 | // number/symbol layer, as well as, numerous (un)shift key values | ||
| 26 | // | ||
| 27 | // The navigation pad provides a single hand right thumb activated cluster | ||
| 28 | // with left hand modifiers | ||
| 29 | // | ||
| 30 | // #define PRIVATE_STRING includes private_string.h, a user defined code | ||
| 31 | // block for the PRIV tap dance e.g. SEND_STRING("secret messape"), | ||
| 32 | // see function private() | ||
| 33 | // | ||
| 34 | // Modifier clusters | ||
| 35 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 36 | // The num and sym keys together access the navigation pad layer | ||
| 37 | // | ||
| 38 | // ,-----------------------------------------------------------------------------------. | ||
| 39 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 40 | // `-----------------------------------------------------------------------------------' | ||
| 41 | // | ||
| 42 | // Hint | ||
| 43 | // ▔▔▔▔ | ||
| 44 | // For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, | ||
| 45 | // Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and | ||
| 46 | // actuation | ||
| 47 | // | ||
| 48 | // Code | ||
| 49 | // ▔▔▔▔ | ||
| 50 | // This source is shamelessly based on the "default" planck layout | ||
| 51 | // | ||
| 52 | // #ifdef/#endif block structures are not indented, as syntax highlighting | ||
| 53 | // in vim is sufficient for identification | ||
| 54 | // | ||
| 55 | // c++ commenting style is used throughout | ||
| 56 | // | ||
| 57 | // Change history | ||
| 58 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 59 | // See http://thedarnedestthing.com/planck%20constant | ||
| 60 | // See http://thedarnedestthing.com/planck%20done | ||
| 61 | |||
| 62 | |||
| 63 | |||
| 64 | // === N O T E === | ||
| 65 | // | ||
| 66 | // sudo CPATH=<keymap.c directory>/common make ... | ||
| 67 | |||
| 68 | |||
| 69 | #include "config.h" | ||
| 70 | #include "planck.h" | ||
| 71 | #include "action_layer.h" | ||
| 72 | #ifdef STENO_ENABLE | ||
| 73 | #include "keymap_steno.h" | ||
| 74 | #endif | ||
| 75 | #ifdef AUDIO_ENABLE | ||
| 76 | #include "audio.h" | ||
| 77 | #endif | ||
| 78 | #include "eeconfig.h" | ||
| 79 | |||
| 80 | extern keymap_config_t keymap_config; | ||
| 81 | |||
| 82 | enum planck_layers { | ||
| 83 | _BASE = 0 | ||
| 84 | ,_SHIFT | ||
| 85 | ,_LSHIFT | ||
| 86 | ,_RSHIFT | ||
| 87 | ,_PLOVER | ||
| 88 | ,_NUMBER | ||
| 89 | ,_SYMBOL | ||
| 90 | ,_FNCKEY | ||
| 91 | ,_MOUSE | ||
| 92 | #ifdef CENTER_TT | ||
| 93 | ,_TTNUMBER | ||
| 94 | ,_TTREGEX | ||
| 95 | ,_TTFNCKEY | ||
| 96 | ,_TTCURSOR | ||
| 97 | ,_TTMOUSE | ||
| 98 | #endif | ||
| 99 | ,_EDIT | ||
| 100 | ,_ADJUST | ||
| 101 | ,_END_LAYERS | ||
| 102 | }; | ||
| 103 | |||
| 104 | enum planck_keycodes { | ||
| 105 | BASE = SAFE_RANGE | ||
| 106 | ,BASE1 | ||
| 107 | ,BASE2 | ||
| 108 | ,PLOVER | ||
| 109 | ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() | ||
| 110 | ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() | ||
| 111 | ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() | ||
| 112 | ,SM_H // pseudo MT (MOD_LCTL | MOD_LSFT, S(KC_H)) for shifted key-codes, see process_record_user() | ||
| 113 | ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() | ||
| 114 | ,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user() | ||
| 115 | ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() | ||
| 116 | ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() | ||
| 117 | ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() | ||
| 118 | #ifdef CENTER_TT | ||
| 119 | ,TT_ESC | ||
| 120 | #endif | ||
| 121 | #ifdef STENO_ENABLE | ||
| 122 | ,PS_STNA = STN_A | ||
| 123 | ,PS_STNO = STN_O | ||
| 124 | ,PS_STNE = STN_E | ||
| 125 | ,PS_STNU = STN_U | ||
| 126 | #else | ||
| 127 | ,LT_C = LT (_NUMBER, KC_C) | ||
| 128 | ,LT_V = LT (_FNCKEY, KC_V) | ||
| 129 | ,LT_N = LT (_EDIT, KC_N) | ||
| 130 | ,LT_M = LT (_SYMBOL, KC_M) | ||
| 131 | #endif | ||
| 132 | }; | ||
| 133 | |||
| 134 | // modifier keys | ||
| 135 | #define AT_B ALT_T(KC_B) | ||
| 136 | #define AT_DOWN ALT_T(KC_DOWN) | ||
| 137 | #define CT_RGHT CTL_T(KC_RGHT) | ||
| 138 | #define GT_C GUI_T(KC_C) | ||
| 139 | #define GT_UP GUI_T(KC_UP) | ||
| 140 | #define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) | ||
| 141 | #define ST_A SFT_T(KC_A) | ||
| 142 | #ifdef HOME_MODS | ||
| 143 | #define HOME_H GUI_T(KC_H) | ||
| 144 | #define HOME_I CTL_T(KC_I) | ||
| 145 | #define HOME_E ALT_T(KC_E) | ||
| 146 | #define HOME_A SFT_T(KC_A) | ||
| 147 | #define HOME_T SFT_T(KC_T) | ||
| 148 | #define HOME_R ALT_T(KC_R) | ||
| 149 | #define HOME_S CTL_T(KC_S) | ||
| 150 | #define HOME_W GUI_T(KC_W) | ||
| 151 | #else | ||
| 152 | #define HOME_H KC_H | ||
| 153 | #define HOME_I KC_I | ||
| 154 | #define HOME_E KC_E | ||
| 155 | #define HOME_A KC_A | ||
| 156 | #define HOME_T KC_T | ||
| 157 | #define HOME_R KC_R | ||
| 158 | #define HOME_S KC_S | ||
| 159 | #define HOME_W KC_W | ||
| 160 | #endif | ||
| 161 | |||
| 162 | #define S_DOWN S (KC_DOWN) | ||
| 163 | #define S_LEFT S (KC_LEFT) | ||
| 164 | #define S_RGHT S (KC_RGHT) | ||
| 165 | #define S_TAB S (KC_TAB) | ||
| 166 | #define S_UP S (KC_UP) | ||
| 167 | |||
| 168 | #include "tapdance.h" | ||
| 169 | |||
| 170 | // keycodes | ||
| 171 | #define ___x___ KC_TRNS | ||
| 172 | #define ___fn__ KC_TRNS | ||
| 173 | #ifdef _______ | ||
| 174 | #undef _______ | ||
| 175 | #endif | ||
| 176 | #define _______ KC_NO | ||
| 177 | |||
| 178 | #define COPY LCTL(KC_C) | ||
| 179 | #define CUT LCTL(KC_X) | ||
| 180 | #define EOT LCTL(KC_D) | ||
| 181 | #define NAK LCTL(KC_U) | ||
| 182 | #define PASTE LCTL(KC_V) | ||
| 183 | #define UNDO LCTL(KC_Z) | ||
| 184 | #define TMCOPY LALT(LCTL(KC_C)) | ||
| 185 | #define TMPASTE LALT(LCTL(KC_V)) | ||
| 186 | #define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling | ||
| 187 | #define LT_BSPC LT (_EDIT, KC_BSPC) | ||
| 188 | #define SP_LEFT LT (_EDIT, KC_LEFT) | ||
| 189 | #define LT_ESC LT (_NUMBER, KC_ESC) | ||
| 190 | #define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling | ||
| 191 | #define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling | ||
| 192 | #define LT_TAB LT (_FNCKEY, KC_TAB) | ||
| 193 | #define LT_INS LT (_FNCKEY, KC_INS) | ||
| 194 | #define ADJUST MO (_ADJUST) | ||
| 195 | #define OS_ALT OSM (MOD_LALT) | ||
| 196 | #define OS_CTL OSM (MOD_LCTL) | ||
| 197 | #define OS_GUI OSM (MOD_LGUI) | ||
| 198 | #define OS_SFT OSM (MOD_LSFT) | ||
| 199 | |||
| 200 | #ifdef CENTER_TT | ||
| 201 | #define CNTR_TL TT (_TTFNCKEY) | ||
| 202 | #define CNTR_TR KC_CAPS | ||
| 203 | #define CNTR_HL TT (_TTCURSOR) | ||
| 204 | #define CNTR_HR TT (_TTMOUSE) | ||
| 205 | #define CNTR_BL TT (_TTNUMBER) | ||
| 206 | #define CNTR_BR TT (_TTREGEX) | ||
| 207 | #else | ||
| 208 | #define CNTR_TL OSM (MOD_LALT | MOD_LCTL) | ||
| 209 | #define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) | ||
| 210 | #define CNTR_HL OSM (MOD_LALT | MOD_LSFT) | ||
| 211 | #define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) | ||
| 212 | #define CNTR_BL TD (_CAPS) | ||
| 213 | #define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) | ||
| 214 | #endif | ||
| 215 | |||
| 216 | #ifdef THUMB_0 | ||
| 217 | #define LT_EQL LT (_ADJUST, KC_EQL) | ||
| 218 | #else | ||
| 219 | #define LT_0 LT (_ADJUST, KC_0) | ||
| 220 | #endif | ||
| 221 | |||
| 222 | // ........................................................ Default Alpha Layout | ||
| 223 | |||
| 224 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 225 | |||
| 226 | #include "hiea.h" | ||
| 227 | #include "steno_layout.h" | ||
| 228 | |||
| 229 | // ...................................................... Number / Function Keys | ||
| 230 | |||
| 231 | #include "number_fkey_layout.h" | ||
| 232 | |||
| 233 | // ......................................................... Symbol / Navigation | ||
| 234 | |||
| 235 | #include "symbol_guifn_layout.h" | ||
| 236 | |||
| 237 | // ............................................................... Toggle Layers | ||
| 238 | |||
| 239 | #ifdef CENTER_TT | ||
| 240 | #include "toggle_layout.h" | ||
| 241 | #endif | ||
| 242 | |||
| 243 | // ......................................................... Short Cuts / Adjust | ||
| 244 | |||
| 245 | #include "chord_layout.h" | ||
| 246 | |||
| 247 | }; | ||
| 248 | |||
| 249 | // ...................................................................... Sounds | ||
| 250 | |||
| 251 | #include "sounds.h" | ||
| 252 | |||
| 253 | // ........................................................... User Keycode Trap | ||
| 254 | |||
| 255 | #include "keycode_functions.h" | ||
| 256 | |||
| 257 | #define BASE_1 1 | ||
| 258 | #define BASE_2 2 | ||
| 259 | #define BASE_12 3 | ||
| 260 | static uint8_t base_n = 0; | ||
| 261 | |||
| 262 | bool process_record_user(uint16_t keycode, keyrecord_t *record) | ||
| 263 | { | ||
| 264 | switch (keycode) { | ||
| 265 | case BASE1: | ||
| 266 | if (record->event.pressed) { | ||
| 267 | base_n = base_n | BASE_1; | ||
| 268 | if (base_n == BASE_12) { | ||
| 269 | base_layer(); | ||
| 270 | } | ||
| 271 | } | ||
| 272 | else { | ||
| 273 | base_n = base_n & ~BASE_1; | ||
| 274 | } | ||
| 275 | return false; | ||
| 276 | case BASE2: | ||
| 277 | if (record->event.pressed) { | ||
| 278 | base_n = base_n | BASE_2; | ||
| 279 | if (base_n == BASE_12) { | ||
| 280 | base_layer(); | ||
| 281 | } | ||
| 282 | } | ||
| 283 | else { | ||
| 284 | base_n = base_n & ~BASE_2; | ||
| 285 | } | ||
| 286 | return false; | ||
| 287 | case AT_DOWN: | ||
| 288 | #ifdef HOME_MODS | ||
| 289 | case HOME_E: | ||
| 290 | case HOME_R: | ||
| 291 | #endif | ||
| 292 | tap_mods(record, KC_LALT); | ||
| 293 | break; | ||
| 294 | case CT_RGHT: | ||
| 295 | #ifdef HOME_MODS | ||
| 296 | case HOME_H: | ||
| 297 | case HOME_W: | ||
| 298 | #endif | ||
| 299 | tap_mods(record, KC_LGUI); | ||
| 300 | break; | ||
| 301 | case GT_UP: | ||
| 302 | #ifdef HOME_MODS | ||
| 303 | case HOME_I: | ||
| 304 | case HOME_S: | ||
| 305 | #endif | ||
| 306 | tap_mods(record, KC_LCTL); | ||
| 307 | break; | ||
| 308 | #ifdef HOME_MODS | ||
| 309 | case HOME_A: | ||
| 310 | case HOME_T: | ||
| 311 | tap_mods(record, KC_LSFT); | ||
| 312 | break; | ||
| 313 | #endif | ||
| 314 | #ifdef CENTER_TT | ||
| 315 | case TT_ESC: | ||
| 316 | clear_tt(); // exit TT layer | ||
| 317 | return false; | ||
| 318 | #endif | ||
| 319 | case LT_ESC: | ||
| 320 | #ifdef CENTER_TT | ||
| 321 | if (tt_keycode != 0) { | ||
| 322 | clear_tt(); // exit TT layer | ||
| 323 | return false; | ||
| 324 | } | ||
| 325 | #endif | ||
| 326 | tap_layer(record, _NUMBER); | ||
| 327 | break; | ||
| 328 | case LT_LEFT: | ||
| 329 | case SP_BSPC: | ||
| 330 | tap_layer(record, _SYMBOL); | ||
| 331 | // LT (_SYMBOL, KC_LEFT) left right combination layer | ||
| 332 | thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); | ||
| 333 | break; | ||
| 334 | case OS_ALT: | ||
| 335 | tap_mods(record, KC_LALT); | ||
| 336 | break; | ||
| 337 | case OS_CTL: | ||
| 338 | tap_mods(record, KC_LCTL); | ||
| 339 | break; | ||
| 340 | case OS_GUI: | ||
| 341 | tap_mods(record, KC_LGUI); | ||
| 342 | break; | ||
| 343 | case SM_CIRC: | ||
| 344 | // GUI_T(S(KC_6)) | ||
| 345 | mt_shift(record, KC_LGUI, 0, KC_6); | ||
| 346 | break; | ||
| 347 | case SM_DLR: | ||
| 348 | // SFT_T(S(KC_4)) | ||
| 349 | mt_shift(record, KC_LSFT, 0, KC_4); | ||
| 350 | break; | ||
| 351 | case SM_G: | ||
| 352 | // MT(MOD_LALT | MOD_LSFT, S(KC_G)) | ||
| 353 | mt_shift(record, KC_LALT, KC_LSFT, KC_G); | ||
| 354 | break; | ||
| 355 | case SM_H: | ||
| 356 | // MT(MOD_LCTL | MOD_LSFT, S(KC_K)) | ||
| 357 | mt_shift(record, KC_LCTL, KC_LSFT, KC_H); | ||
| 358 | break; | ||
| 359 | case SM_W: | ||
| 360 | // MT(MOD_LGUI | MOD_LSFT, S(KC_W)) | ||
| 361 | mt_shift(record, KC_LGUI, KC_LSFT, KC_W); | ||
| 362 | break; | ||
| 363 | case SM_PERC: | ||
| 364 | // ALT_T(S(KC_5)) | ||
| 365 | mt_shift(record, KC_LALT, 0, KC_5); | ||
| 366 | break; | ||
| 367 | case LT_BSLS: | ||
| 368 | tap_layer(record, _MOUSE); | ||
| 369 | // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS | ||
| 370 | thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); | ||
| 371 | break; | ||
| 372 | case SL_LEFT: | ||
| 373 | tap_layer(record, _MOUSE); | ||
| 374 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 375 | thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); | ||
| 376 | break; | ||
| 377 | case SP_DEL: | ||
| 378 | tap_layer(record, _MOUSE); | ||
| 379 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 380 | thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); | ||
| 381 | break; | ||
| 382 | case SL_TAB: | ||
| 383 | // LT (_FNCKEY, S(KC_TAB)) emulation | ||
| 384 | lt_shift(record, KC_TAB, _FNCKEY); | ||
| 385 | break; | ||
| 386 | case TD_ENT: | ||
| 387 | tap_layer(record, _RSHIFT); | ||
| 388 | // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter | ||
| 389 | break; | ||
| 390 | case TD_SPC: | ||
| 391 | tap_layer(record, _LSHIFT); | ||
| 392 | // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC | ||
| 393 | thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); | ||
| 394 | break; | ||
| 395 | #ifdef CENTER_TT | ||
| 396 | case CNTR_TL: | ||
| 397 | case CNTR_TR: | ||
| 398 | case CNTR_HL: | ||
| 399 | case CNTR_HR: | ||
| 400 | case CNTR_BL: | ||
| 401 | case CNTR_BR: | ||
| 402 | if (tt_keycode != keycode && tt_keycode != 0) { | ||
| 403 | clear_tt(); // return to base layer first if different TT layer selected | ||
| 404 | } | ||
| 405 | tt_keycode = keycode; | ||
| 406 | break; | ||
| 407 | #endif | ||
| 408 | // #ifdef STENO_ENABLE | ||
| 409 | // case PS_STNA: | ||
| 410 | // stn_layer(record, STN_A, _NUMBER); | ||
| 411 | // break; | ||
| 412 | // case PS_STNO: | ||
| 413 | // stn_layer(record, STN_O, _FNCKEY); | ||
| 414 | // break; | ||
| 415 | // case PS_STNE: | ||
| 416 | // stn_layer(record, STN_E, _EDIT); | ||
| 417 | // break; | ||
| 418 | // case PS_STNU: | ||
| 419 | // stn_layer(record, STN_U, _SYMBOL); | ||
| 420 | // break; | ||
| 421 | // #endif | ||
| 422 | case PLOVER: | ||
| 423 | steno(record); | ||
| 424 | return false; | ||
| 425 | } | ||
| 426 | return true; | ||
| 427 | } | ||
| 428 | |||
| 429 | #include "init.h" | ||
diff --git a/keyboards/planck/keymaps/hiea/qwerty.h b/keyboards/planck/keymaps/hiea/qwerty.h new file mode 100644 index 000000000..d11d0478b --- /dev/null +++ b/keyboards/planck/keymaps/hiea/qwerty.h | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Qwerty | ||
| 5 | #ifdef QWERTY | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P }, | ||
| 18 | {KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, | ||
| 19 | {KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 25 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN}, | ||
| 26 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 42 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, | ||
| 43 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 59 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, | ||
| 60 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
diff --git a/keyboards/planck/keymaps/hiea/readme.md b/keyboards/planck/keymaps/hiea/readme.md new file mode 100644 index 000000000..58f73e3b4 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # The sdothum extended Default Planck Layout | ||
| 2 | |||
| 3 | - Colemak-DH layout layer with shift/tab key overlays | ||
| 4 | - Number and symbol/function key layer | ||
| 5 | - Hexadecimal keypad layer | ||
| 6 | - Navigation keypad layer | ||
| 7 | - Dynamic macro layer | ||
| 8 | - Autocompletion tap key pairs (),[],{} | ||
| 9 | - Normalized enter and esc key position across keyboard layers | ||
| 10 | - Extensive use of tap keys | ||
diff --git a/keyboards/planck/keymaps/hiea/rules.mk b/keyboards/planck/keymaps/hiea/rules.mk new file mode 100644 index 000000000..40f153844 --- /dev/null +++ b/keyboards/planck/keymaps/hiea/rules.mk | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | # Build Options: | ||
| 2 | # change to "no" to disable the options, or define them in the Makefile in | ||
| 3 | # the appropriate keymap folder that will get included automatically | ||
| 4 | |||
| 5 | BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) | ||
| 6 | MOUSEKEY_ENABLE = yes # mouse keys(+4700) | ||
| 7 | EXTRAKEY_ENABLE = no # audio control and System control(+450) | ||
| 8 | CONSOLE_ENABLE = no # console for debug(+400) | ||
| 9 | COMMAND_ENABLE = no # commands for debug and configuration | ||
| 10 | NKRO_ENABLE = yes # nkey rollover | ||
| 11 | BACKLIGHT_ENABLE = no # enable keyboard backlight functionality | ||
| 12 | MIDI_ENABLE = no # MIDI controls | ||
| 13 | AUDIO_ENABLE = no # audio output on port C6 | ||
| 14 | UNICODE_ENABLE = no # unicode | ||
| 15 | BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID | ||
| 16 | RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. | ||
| 17 | STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys | ||
| 18 | |||
| 19 | # do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 20 | SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend | ||
| 21 | |||
| 22 | TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} | ||
| 23 | |||
| 24 | ifndef QUANTUM_DIR | ||
| 25 | include ../../../../Makefile | ||
| 26 | endif | ||
diff --git a/keyboards/planck/keymaps/hieax/common/chord_layout.h b/keyboards/planck/keymaps/hieax/common/chord_layout.h new file mode 100644 index 000000000..2c785d56c --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/chord_layout.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. Short Cuts | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | | Copy | Paste| | | | | | | | | | ||
| 8 | // |--------------------------------------------------------------+------+------+------| | ||
| 9 | // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | | Nak | Eot | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | | | | f() | | | | | | | ||
| 14 | // | | | | | | | | f() | | | | | see _PLOVER | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_EDIT] = { | ||
| 18 | {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 19 | {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, | ||
| 20 | {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 21 | {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, | ||
| 22 | }, | ||
| 23 | |||
| 24 | // ................................................................ Adjust Layer | ||
| 25 | |||
| 26 | // ,-----------------------------------------------------------------------------------. | ||
| 27 | // |Plover| | | | | | | | | | | | | ||
| 28 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 29 | // |Aud on| | | | | | | | | | | | | ||
| 30 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 31 | // | Reset| | | | | | | | | | | | | ||
| 32 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 33 | // | | | | f() | | | | | f() | | | | | ||
| 34 | // `-----------------------------------------------------------------------------------' | ||
| 35 | |||
| 36 | [_ADJUST] = { | ||
| 37 | {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 38 | {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 39 | {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 40 | {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 41 | }, | ||
diff --git a/keyboards/planck/keymaps/hieax/common/init.h b/keyboards/planck/keymaps/hieax/common/init.h new file mode 100644 index 000000000..6366a19f6 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/init.h | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | |||
| 2 | // ....................................................................... Audio | ||
| 3 | |||
| 4 | void matrix_init_user(void) | ||
| 5 | { | ||
| 6 | #ifdef STENO_ENABLE | ||
| 7 | steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI | ||
| 8 | #endif | ||
| 9 | #ifdef AUDIO_ENABLE | ||
| 10 | startup_user(); | ||
| 11 | #endif | ||
| 12 | } | ||
| 13 | |||
| 14 | #ifdef AUDIO_ENABLE | ||
| 15 | #ifdef BACKLIGHT_ENABLE | ||
| 16 | void led_set_user(uint8_t usb_led) | ||
| 17 | { | ||
| 18 | static uint8_t old_usb_led = 0; | ||
| 19 | _delay_ms(10); // gets rid of tick | ||
| 20 | if (!is_playing_notes()) { | ||
| 21 | if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 22 | // if capslock LED is turning on | ||
| 23 | PLAY_SONG(song_caps_on); | ||
| 24 | } | ||
| 25 | else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 26 | // if capslock LED is turning off | ||
| 27 | PLAY_SONG(song_caps_off); | ||
| 28 | } | ||
| 29 | } | ||
| 30 | old_usb_led = usb_led; | ||
| 31 | } | ||
| 32 | #endif | ||
| 33 | |||
| 34 | void startup_user(void) | ||
| 35 | { | ||
| 36 | _delay_ms(20); // gets rid of tick | ||
| 37 | PLAY_SONG(song_startup); | ||
| 38 | } | ||
| 39 | |||
| 40 | void shutdown_user(void) | ||
| 41 | { | ||
| 42 | PLAY_SONG(song_goodbye); | ||
| 43 | _delay_ms(150); | ||
| 44 | stop_all_notes(); | ||
| 45 | } | ||
| 46 | |||
| 47 | void music_on_user(void) | ||
| 48 | { | ||
| 49 | music_scale_user(); | ||
| 50 | } | ||
| 51 | |||
| 52 | void music_scale_user(void) | ||
| 53 | { | ||
| 54 | PLAY_SONG(music_scale); | ||
| 55 | } | ||
| 56 | #endif | ||
diff --git a/keyboards/planck/keymaps/hieax/common/keycode_functions.h b/keyboards/planck/keymaps/hieax/common/keycode_functions.h new file mode 100644 index 000000000..a26b562ff --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/keycode_functions.h | |||
| @@ -0,0 +1,732 @@ | |||
| 1 | |||
| 2 | // .......................................................... Keycode Primitives | ||
| 3 | |||
| 4 | // register simple key press | ||
| 5 | void tap_key(uint16_t keycode) | ||
| 6 | { | ||
| 7 | register_code (keycode); | ||
| 8 | unregister_code(keycode); | ||
| 9 | } | ||
| 10 | |||
| 11 | void shift_key(uint16_t keycode) | ||
| 12 | { | ||
| 13 | register_code (KC_LSFT); | ||
| 14 | tap_key (keycode); | ||
| 15 | unregister_code(KC_LSFT); | ||
| 16 | } | ||
| 17 | |||
| 18 | #define SHIFT 1 | ||
| 19 | #define NOSHIFT 0 | ||
| 20 | |||
| 21 | static uint16_t key_timer = 0; | ||
| 22 | |||
| 23 | // key press for thumb_layer() and lt_shift() macros | ||
| 24 | bool key_press(uint8_t shift, uint16_t keycode) | ||
| 25 | { | ||
| 26 | if (keycode) { | ||
| 27 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 28 | if (shift) { | ||
| 29 | shift_key(keycode); | ||
| 30 | } | ||
| 31 | else { | ||
| 32 | tap_key(keycode); | ||
| 33 | } | ||
| 34 | return true; | ||
| 35 | } | ||
| 36 | } | ||
| 37 | return false; | ||
| 38 | } | ||
| 39 | |||
| 40 | // ALT_T, CTL_T, GUI_T, SFT_T for shifted keycodes | ||
| 41 | void mt_shift(keyrecord_t *record, uint16_t modifier, uint16_t modifier2, uint16_t keycode) | ||
| 42 | { | ||
| 43 | if (record->event.pressed) { | ||
| 44 | key_timer = timer_read(); | ||
| 45 | register_code(modifier); | ||
| 46 | if (modifier2) { | ||
| 47 | register_code(modifier2); | ||
| 48 | } | ||
| 49 | } | ||
| 50 | else { | ||
| 51 | unregister_code(modifier); | ||
| 52 | if (modifier2) { | ||
| 53 | unregister_code(modifier2); | ||
| 54 | } | ||
| 55 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 56 | shift_key(keycode); | ||
| 57 | } | ||
| 58 | key_timer = 0; | ||
| 59 | } | ||
| 60 | } | ||
| 61 | |||
| 62 | // ................................................................... Mod Masks | ||
| 63 | |||
| 64 | // tap dance persistant mods, see process_record_user() | ||
| 65 | // keyboard_report->mods (?) appears to be cleared by tap dance | ||
| 66 | static uint8_t mods = 0; | ||
| 67 | |||
| 68 | void tap_mods(keyrecord_t *record, uint16_t keycode) | ||
| 69 | { | ||
| 70 | if (record->event.pressed) { | ||
| 71 | mods |= MOD_BIT(keycode); | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | mods &= ~(MOD_BIT(keycode)); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | // (un)register modifiers | ||
| 79 | void modifier(void (*f)(uint8_t)) | ||
| 80 | { | ||
| 81 | if (mods & MOD_BIT(KC_LCTL)) { | ||
| 82 | (*f)(KC_LCTL); | ||
| 83 | } | ||
| 84 | if (mods & MOD_BIT(KC_LGUI)) { | ||
| 85 | (*f)(KC_LGUI); | ||
| 86 | } | ||
| 87 | if (mods & MOD_BIT(KC_LALT)) { | ||
| 88 | (*f)(KC_LALT); | ||
| 89 | } | ||
| 90 | if (mods & MOD_BIT(KC_LSFT)) { | ||
| 91 | (*f)(KC_LSFT); | ||
| 92 | } | ||
| 93 | if (mods & MOD_BIT(KC_RSFT)) { | ||
| 94 | (*f)(KC_RSFT); | ||
| 95 | } | ||
| 96 | } | ||
| 97 | |||
| 98 | // .................................................... Triple Dance Shift/Layer | ||
| 99 | |||
| 100 | static uint8_t dt_shift = 0; | ||
| 101 | |||
| 102 | void double_shift(uint16_t keycode, uint8_t layer) | ||
| 103 | { | ||
| 104 | tap_key (keycode); | ||
| 105 | if (DT_SHIFT) { | ||
| 106 | // set_oneshot_mods(MOD_LSFT); | ||
| 107 | // layer_on(layer); | ||
| 108 | layer_on (_SHIFT); | ||
| 109 | set_oneshot_layer(_SHIFT, ONESHOT_START); | ||
| 110 | dt_shift = 1; | ||
| 111 | } | ||
| 112 | else { | ||
| 113 | layer_on(layer); | ||
| 114 | } | ||
| 115 | } | ||
| 116 | |||
| 117 | // tap dance LT (LAYER, KEY) emulation with <KEY><DOWN> -> <KEY><SHIFT> and auto-repeat extensions! | ||
| 118 | void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) | ||
| 119 | { | ||
| 120 | // double tap plus down | ||
| 121 | if (state->count > 2) { | ||
| 122 | // double enter shift | ||
| 123 | if (keycode == KC_ENT) { | ||
| 124 | tap_key (keycode); | ||
| 125 | double_shift(keycode, layer); | ||
| 126 | } | ||
| 127 | // repeating keycode | ||
| 128 | else { | ||
| 129 | register_code(keycode); | ||
| 130 | } | ||
| 131 | } | ||
| 132 | // tap plus down (or double tap): keycode (one shot) shift | ||
| 133 | else if (state->count > 1) { | ||
| 134 | double_shift(keycode, layer); | ||
| 135 | } | ||
| 136 | // down: shift | ||
| 137 | else if (state->pressed) { | ||
| 138 | layer_on(layer); | ||
| 139 | } | ||
| 140 | // tap: keycode | ||
| 141 | else { | ||
| 142 | modifier(register_code); | ||
| 143 | tap_key (keycode); | ||
| 144 | modifier(unregister_code); | ||
| 145 | } | ||
| 146 | } | ||
| 147 | |||
| 148 | void tap_reset(uint16_t keycode, uint8_t layer) | ||
| 149 | { | ||
| 150 | unregister_code(keycode); | ||
| 151 | if (DT_SHIFT && dt_shift) { | ||
| 152 | clear_oneshot_layer_state(ONESHOT_PRESSED); | ||
| 153 | dt_shift = 0; | ||
| 154 | } | ||
| 155 | else { | ||
| 156 | layer_off(layer); | ||
| 157 | } | ||
| 158 | } | ||
| 159 | |||
| 160 | // augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid <ENTER><SHIFT> sequences | ||
| 161 | void enter(qk_tap_dance_state_t *state, void *user_data) | ||
| 162 | { | ||
| 163 | tap_shift(state, KC_ENT, _RSHIFT); | ||
| 164 | } | ||
| 165 | |||
| 166 | void enter_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 167 | { | ||
| 168 | tap_reset(KC_ENT, _RSHIFT); | ||
| 169 | } | ||
| 170 | |||
| 171 | // augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid <SPACE><SHIFT> sequences | ||
| 172 | void space(qk_tap_dance_state_t *state, void *user_data) | ||
| 173 | { | ||
| 174 | tap_shift(state, KC_SPC, _LSHIFT); | ||
| 175 | } | ||
| 176 | |||
| 177 | void space_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 178 | { | ||
| 179 | tap_reset(KC_SPC, _LSHIFT); | ||
| 180 | } | ||
| 181 | |||
| 182 | // ......................................................... Triple Dance Insert | ||
| 183 | |||
| 184 | void double_max(uint8_t count, uint8_t shift, uint16_t keycode) | ||
| 185 | { | ||
| 186 | if (shift) { | ||
| 187 | shift_key(keycode); | ||
| 188 | if (count > 1) { | ||
| 189 | shift_key(keycode); | ||
| 190 | } | ||
| 191 | } | ||
| 192 | else { | ||
| 193 | tap_key(keycode); | ||
| 194 | if (count > 1) { | ||
| 195 | tap_key(keycode); | ||
| 196 | } | ||
| 197 | } | ||
| 198 | } | ||
| 199 | |||
| 200 | void colon(qk_tap_dance_state_t *state, void *user_data) | ||
| 201 | { | ||
| 202 | if (state->count > 2) { | ||
| 203 | tap_key (KC_SPC); | ||
| 204 | shift_key(KC_SCLN); | ||
| 205 | shift_key(KC_SCLN); | ||
| 206 | tap_key (KC_SPC); | ||
| 207 | } | ||
| 208 | else { | ||
| 209 | double_max(state->count, SHIFT, KC_SCLN); | ||
| 210 | } | ||
| 211 | reset_tap_dance(state); | ||
| 212 | } | ||
| 213 | |||
| 214 | void eql(qk_tap_dance_state_t *state, void *user_data) | ||
| 215 | { | ||
| 216 | if (state->count > 2) { | ||
| 217 | tap_key(KC_SPC); | ||
| 218 | tap_key(KC_SLSH); | ||
| 219 | tap_key(KC_EQL); | ||
| 220 | tap_key(KC_SPC); | ||
| 221 | } | ||
| 222 | else { | ||
| 223 | double_max(state->count, NOSHIFT, KC_EQL); | ||
| 224 | } | ||
| 225 | reset_tap_dance(state); | ||
| 226 | } | ||
| 227 | |||
| 228 | void greater(qk_tap_dance_state_t *state, void *user_data) | ||
| 229 | { | ||
| 230 | if (state->count > 2) { | ||
| 231 | tap_key (KC_SPC); | ||
| 232 | tap_key (KC_MINS); | ||
| 233 | shift_key(KC_DOT); | ||
| 234 | tap_key (KC_SPC); | ||
| 235 | } | ||
| 236 | else { | ||
| 237 | double_max(state->count, SHIFT, KC_DOT); | ||
| 238 | } | ||
| 239 | reset_tap_dance(state); | ||
| 240 | } | ||
| 241 | |||
| 242 | void lesser(qk_tap_dance_state_t *state, void *user_data) | ||
| 243 | { | ||
| 244 | if (state->count > 2) { | ||
| 245 | tap_key (KC_SPC); | ||
| 246 | shift_key(KC_COMM); | ||
| 247 | tap_key (KC_MINS); | ||
| 248 | tap_key (KC_SPC); | ||
| 249 | } | ||
| 250 | else { | ||
| 251 | double_max(state->count, SHIFT, KC_COMM); | ||
| 252 | } | ||
| 253 | reset_tap_dance(state); | ||
| 254 | } | ||
| 255 | |||
| 256 | void tilde(qk_tap_dance_state_t *state, void *user_data) | ||
| 257 | { | ||
| 258 | // double tap plus down: repeating keycode | ||
| 259 | if (state->count > 2) { | ||
| 260 | register_code(KC_LSFT); | ||
| 261 | register_code(KC_GRV); | ||
| 262 | } | ||
| 263 | // tap: keycode | ||
| 264 | else { | ||
| 265 | shift_key(KC_GRV); | ||
| 266 | // double tap: unix home directory | ||
| 267 | if (state->count > 1) { | ||
| 268 | tap_key(KC_SLSH); | ||
| 269 | } | ||
| 270 | } | ||
| 271 | } | ||
| 272 | |||
| 273 | void tilde_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 274 | { | ||
| 275 | unregister_code(KC_GRV); | ||
| 276 | unregister_code(KC_LSFT); | ||
| 277 | } | ||
| 278 | |||
| 279 | // ............................................................. Tap Dance Pairs | ||
| 280 | |||
| 281 | // tap dance shift rules | ||
| 282 | #define S_NEVER 0 | ||
| 283 | #define S_SINGLE 1 | ||
| 284 | #define S_DOUBLE 2 | ||
| 285 | #define S_ALWAYS S_SINGLE | S_DOUBLE | ||
| 286 | |||
| 287 | void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) | ||
| 288 | { | ||
| 289 | if (shift & S_DOUBLE) { | ||
| 290 | shift_key(left); | ||
| 291 | shift_key(right); | ||
| 292 | } | ||
| 293 | else { | ||
| 294 | tap_key(left); | ||
| 295 | tap_key(right); | ||
| 296 | } | ||
| 297 | } | ||
| 298 | |||
| 299 | #define CLOSE 1 | ||
| 300 | |||
| 301 | // tap dance symbol pairs | ||
| 302 | void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) | ||
| 303 | { | ||
| 304 | // triple tap: left right with cursor between symbol pair a la vim :-) | ||
| 305 | if (state->count > 2) { | ||
| 306 | symbol_pair(shift, left, right); | ||
| 307 | tap_key (KC_LEFT); | ||
| 308 | } | ||
| 309 | // double tap: left right | ||
| 310 | else if (state->count > 1) { | ||
| 311 | symbol_pair(shift, left, right); | ||
| 312 | } | ||
| 313 | // down: modifier | ||
| 314 | else if (state->pressed) { | ||
| 315 | if (modifier) { | ||
| 316 | register_code(modifier); | ||
| 317 | } | ||
| 318 | } | ||
| 319 | // tap: left (close: right) | ||
| 320 | else { | ||
| 321 | if (shift & S_SINGLE) { | ||
| 322 | shift_key(close ? right : left); | ||
| 323 | } | ||
| 324 | else { | ||
| 325 | tap_key(close ? right : left); | ||
| 326 | } | ||
| 327 | } | ||
| 328 | if (!modifier) { | ||
| 329 | reset_tap_dance(state); | ||
| 330 | } | ||
| 331 | } | ||
| 332 | |||
| 333 | void doublequote(qk_tap_dance_state_t *state, void *user_data) | ||
| 334 | { | ||
| 335 | tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); | ||
| 336 | } | ||
| 337 | |||
| 338 | void grave(qk_tap_dance_state_t *state, void *user_data) | ||
| 339 | { | ||
| 340 | tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); | ||
| 341 | } | ||
| 342 | |||
| 343 | void lbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 344 | { | ||
| 345 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); | ||
| 346 | } | ||
| 347 | |||
| 348 | void lcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 349 | { | ||
| 350 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); | ||
| 351 | } | ||
| 352 | |||
| 353 | void lparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 354 | { | ||
| 355 | tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); | ||
| 356 | } | ||
| 357 | |||
| 358 | void lparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 359 | { | ||
| 360 | unregister_code(KC_LCTL); | ||
| 361 | } | ||
| 362 | |||
| 363 | void quote(qk_tap_dance_state_t *state, void *user_data) | ||
| 364 | { | ||
| 365 | tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); | ||
| 366 | } | ||
| 367 | |||
| 368 | void rangle(qk_tap_dance_state_t *state, void *user_data) | ||
| 369 | { | ||
| 370 | tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); | ||
| 371 | } | ||
| 372 | |||
| 373 | void rbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 374 | { | ||
| 375 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 376 | } | ||
| 377 | |||
| 378 | void rcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 379 | { | ||
| 380 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 381 | } | ||
| 382 | |||
| 383 | void rparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 384 | { | ||
| 385 | tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); | ||
| 386 | } | ||
| 387 | |||
| 388 | void rparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 389 | { | ||
| 390 | unregister_code(KC_LCTL); | ||
| 391 | } | ||
| 392 | |||
| 393 | // ............................................................ Tap Dance Insert | ||
| 394 | |||
| 395 | void comma(qk_tap_dance_state_t *state, void *user_data) | ||
| 396 | { | ||
| 397 | tap_key(KC_COMM); | ||
| 398 | if (state->count > 1) { | ||
| 399 | tap_key(KC_SPC); | ||
| 400 | } | ||
| 401 | reset_tap_dance(state); | ||
| 402 | } | ||
| 403 | |||
| 404 | void dot(qk_tap_dance_state_t *state, void *user_data) | ||
| 405 | { | ||
| 406 | if (state->count > 1) { | ||
| 407 | shift_key(KC_COLN); | ||
| 408 | } | ||
| 409 | else { | ||
| 410 | tap_key(KC_DOT); | ||
| 411 | } | ||
| 412 | reset_tap_dance(state); | ||
| 413 | } | ||
| 414 | |||
| 415 | // compile time macro string, see functions/hardware planck script | ||
| 416 | void private(qk_tap_dance_state_t *state, void *user_data) | ||
| 417 | { | ||
| 418 | if (state->count > 1) { | ||
| 419 | #ifdef PRIVATE_STRING | ||
| 420 | #include "private_string.h" | ||
| 421 | #endif | ||
| 422 | } | ||
| 423 | reset_tap_dance(state); | ||
| 424 | } | ||
| 425 | |||
| 426 | // config.h defined string | ||
| 427 | void send(qk_tap_dance_state_t *state, void *user_data) | ||
| 428 | { | ||
| 429 | if (state->count > 1) { | ||
| 430 | SEND_STRING(PUBLIC_STRING); | ||
| 431 | } | ||
| 432 | reset_tap_dance(state); | ||
| 433 | } | ||
| 434 | |||
| 435 | // .......................................................... Tap Dance One Shot | ||
| 436 | |||
| 437 | void caps(qk_tap_dance_state_t *state, void *user_data) | ||
| 438 | { | ||
| 439 | if (state->count > 1) { | ||
| 440 | tap_key(KC_CAPS); | ||
| 441 | } | ||
| 442 | else { | ||
| 443 | set_oneshot_mods(MOD_LSFT); | ||
| 444 | register_code (KC_LSFT); // on hold down | ||
| 445 | } | ||
| 446 | } | ||
| 447 | |||
| 448 | void caps_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 449 | { | ||
| 450 | unregister_code(KC_LSFT); | ||
| 451 | } | ||
| 452 | |||
| 453 | // ................................................................... Tap Dance | ||
| 454 | |||
| 455 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 456 | [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) | ||
| 457 | ,[_COLN] = ACTION_TAP_DANCE_FN (colon) | ||
| 458 | ,[_COMM] = ACTION_TAP_DANCE_FN (comma) | ||
| 459 | ,[_DOT] = ACTION_TAP_DANCE_FN (dot) | ||
| 460 | ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) | ||
| 461 | ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) | ||
| 462 | ,[_EQL] = ACTION_TAP_DANCE_FN (eql) | ||
| 463 | ,[_GRV] = ACTION_TAP_DANCE_FN (grave) | ||
| 464 | ,[_GT] = ACTION_TAP_DANCE_FN (greater) | ||
| 465 | ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) | ||
| 466 | ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) | ||
| 467 | ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) | ||
| 468 | ,[_LT] = ACTION_TAP_DANCE_FN (lesser) | ||
| 469 | ,[_PRIV] = ACTION_TAP_DANCE_FN (private) | ||
| 470 | ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) | ||
| 471 | ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) | ||
| 472 | ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) | ||
| 473 | ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) | ||
| 474 | ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) | ||
| 475 | ,[_SEND] = ACTION_TAP_DANCE_FN (send) | ||
| 476 | ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) | ||
| 477 | ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) | ||
| 478 | }; | ||
| 479 | |||
| 480 | // .............................................................. Dynamic Layers | ||
| 481 | |||
| 482 | #define LEFT 1 | ||
| 483 | #define RIGHT 2 | ||
| 484 | static uint8_t thumb = 0; | ||
| 485 | |||
| 486 | // LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() | ||
| 487 | // up, up -> _BASE | ||
| 488 | // up, down -> _SYMBOL | ||
| 489 | // down, up -> _NUMBER | ||
| 490 | // down, down -> _MOUSE // see layer keycodes that raise mouse layer | ||
| 491 | #define THUMBS_DOWN _MOUSE // layer | ||
| 492 | |||
| 493 | static uint8_t overlayer = 0; | ||
| 494 | |||
| 495 | // left right thumb layer combinations | ||
| 496 | void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) | ||
| 497 | { | ||
| 498 | if (record->event.pressed) { | ||
| 499 | // layer_on via tap_layer(), see process_record_user() | ||
| 500 | key_timer = timer_read(); | ||
| 501 | thumb = thumb | side; | ||
| 502 | } | ||
| 503 | else { | ||
| 504 | layer_off(thumb_dn_layer); | ||
| 505 | // opposite thumb_layer() thumb may have switched effective layer! | ||
| 506 | if (overlayer) { | ||
| 507 | layer_off(overlayer); | ||
| 508 | overlayer = 0; | ||
| 509 | } | ||
| 510 | if (!key_press(shift, keycode)) { | ||
| 511 | layer_off(THUMBS_DOWN); // both thumbs needed | ||
| 512 | // opposite thumb down? see left right combination layer table above | ||
| 513 | if (thumb & (side == LEFT ? RIGHT : LEFT)) { | ||
| 514 | layer_on(thumb_up_layer); | ||
| 515 | overlayer = thumb_up_layer; | ||
| 516 | } | ||
| 517 | } | ||
| 518 | clear_mods(); | ||
| 519 | thumb = thumb & ~side; | ||
| 520 | key_timer = 0; | ||
| 521 | } | ||
| 522 | } | ||
| 523 | |||
| 524 | // #ifdef STENO_ENABLE | ||
| 525 | // // LT for steno keycode | ||
| 526 | // void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 527 | // { | ||
| 528 | // if (record->event.pressed) { | ||
| 529 | // key_timer = timer_read(); | ||
| 530 | // if (keycode) { | ||
| 531 | // process_steno(keycode, record); | ||
| 532 | // } | ||
| 533 | // layer_on(layer); | ||
| 534 | // } | ||
| 535 | // else { | ||
| 536 | // layer_off(layer); | ||
| 537 | // if (keycode) { | ||
| 538 | // if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 539 | // process_steno(keycode, record); | ||
| 540 | // } | ||
| 541 | // else { | ||
| 542 | // // clear pressed state (request push of updated) process_steno.c and .h | ||
| 543 | // // steno_clear_state(); | ||
| 544 | // } | ||
| 545 | // } | ||
| 546 | // key_timer = 0; | ||
| 547 | // } | ||
| 548 | // } | ||
| 549 | // #endif | ||
| 550 | |||
| 551 | // LT macro for nested LT layers | ||
| 552 | void lt(keyrecord_t *record, uint8_t shift, uint16_t keycode, uint16_t modifier, uint8_t layer) | ||
| 553 | { | ||
| 554 | if (record->event.pressed) { | ||
| 555 | key_timer = timer_read(); | ||
| 556 | if (modifier) { | ||
| 557 | register_code(modifier); | ||
| 558 | } | ||
| 559 | layer_on(layer); | ||
| 560 | } | ||
| 561 | else { | ||
| 562 | if (modifier) { | ||
| 563 | unregister_code(modifier); | ||
| 564 | } | ||
| 565 | layer_off(layer); | ||
| 566 | // for shifted keycodes, hence, LT_SHIFT | ||
| 567 | key_press(shift, keycode); | ||
| 568 | clear_mods(); | ||
| 569 | key_timer = 0; | ||
| 570 | } | ||
| 571 | } | ||
| 572 | |||
| 573 | // LT for S(keycode) | ||
| 574 | void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 575 | { | ||
| 576 | lt(record, SHIFT, keycode, 0, layer); | ||
| 577 | } | ||
| 578 | |||
| 579 | // set layer asap to overcome macro latency errors, notably tap dance and LT usage | ||
| 580 | // this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() | ||
| 581 | void tap_layer(keyrecord_t *record, uint8_t layer) | ||
| 582 | { | ||
| 583 | if (record->event.pressed) { | ||
| 584 | layer_on(layer); | ||
| 585 | } | ||
| 586 | else { | ||
| 587 | layer_off(layer); | ||
| 588 | } | ||
| 589 | } | ||
| 590 | |||
| 591 | // ..................................................................... Keymaps | ||
| 592 | |||
| 593 | // void persistant_default_layer_set(uint16_t default_layer) | ||
| 594 | // { | ||
| 595 | // eeconfig_update_default_layer(default_layer); | ||
| 596 | // default_layer_set (default_layer); | ||
| 597 | // } | ||
| 598 | |||
| 599 | void clear_layers(void) | ||
| 600 | { | ||
| 601 | uint8_t layer; | ||
| 602 | for (layer = 0; layer < _END_LAYERS; layer++) { | ||
| 603 | layer_off(layer); | ||
| 604 | } | ||
| 605 | } | ||
| 606 | |||
| 607 | #ifdef HOME_MODS | ||
| 608 | // home row layer/shift key state, see tap_mods() and keymap.c | ||
| 609 | #define LSYMBOL MOD_BIT(KC_LSFT) | ||
| 610 | #define RSYMBOL MOD_BIT(KC_RSFT) | ||
| 611 | |||
| 612 | void home_state(void) { | ||
| 613 | // if only the shift key, raise the opposite hand symbol layer | ||
| 614 | if (mods == LSYMBOL) { | ||
| 615 | layer_on(_LSYMBOL); | ||
| 616 | } | ||
| 617 | else if (mods == RSYMBOL) { | ||
| 618 | layer_on(_RSYMBOL); | ||
| 619 | } | ||
| 620 | // or combine modifiers | ||
| 621 | else if (mods & LSYMBOL) { | ||
| 622 | register_code(KC_LSFT); | ||
| 623 | } | ||
| 624 | else if (mods & RSYMBOL) { | ||
| 625 | register_code(KC_RSFT); | ||
| 626 | } | ||
| 627 | } | ||
| 628 | |||
| 629 | // home row layer/shift | ||
| 630 | void symbol_shift(keyrecord_t *record, uint16_t keycode) | ||
| 631 | { | ||
| 632 | if (keycode) { | ||
| 633 | if (record->event.pressed) { | ||
| 634 | key_timer = timer_read(); | ||
| 635 | home_state(); | ||
| 636 | } | ||
| 637 | else { | ||
| 638 | // clear layer/shift state | ||
| 639 | if (keycode == KC_A) { | ||
| 640 | layer_off(_LSYMBOL); | ||
| 641 | unregister_code(KC_LSFT); | ||
| 642 | } | ||
| 643 | else if (keycode == KC_T) { | ||
| 644 | layer_off(_RSYMBOL); | ||
| 645 | unregister_code(KC_RSFT); | ||
| 646 | } | ||
| 647 | // no other modifier enabled, issue keycode | ||
| 648 | if (~mods) { | ||
| 649 | key_press(NOSHIFT, keycode); | ||
| 650 | } | ||
| 651 | key_timer = 0; | ||
| 652 | } | ||
| 653 | } | ||
| 654 | else { | ||
| 655 | // a non-shift modifier disables symbol layer | ||
| 656 | layer_off(_LSYMBOL); | ||
| 657 | layer_off(_RSYMBOL); | ||
| 658 | // update home layer/shift state | ||
| 659 | home_state(); | ||
| 660 | } | ||
| 661 | } | ||
| 662 | #endif | ||
| 663 | |||
| 664 | #ifdef CENTER_TT | ||
| 665 | static uint16_t tt_keycode = 0; // current TT keycode | ||
| 666 | |||
| 667 | void clear_tt(void) | ||
| 668 | { | ||
| 669 | if (tt_keycode == KC_CAPS) { | ||
| 670 | tap_key(KC_CAPS); // clear capslock | ||
| 671 | } | ||
| 672 | tt_keycode = 0; | ||
| 673 | clear_layers(); | ||
| 674 | set_single_persistent_default_layer(_BASE); | ||
| 675 | } | ||
| 676 | #endif | ||
| 677 | |||
| 678 | // txbolt plover run state | ||
| 679 | static uint8_t plover = 0; | ||
| 680 | |||
| 681 | void toggle_plover(uint8_t state) | ||
| 682 | { | ||
| 683 | if (plover != state) { | ||
| 684 | #ifdef PLOVER_KEYBIND | ||
| 685 | #include "plover_keybind.h" | ||
| 686 | #endif | ||
| 687 | plover = state; | ||
| 688 | } | ||
| 689 | } | ||
| 690 | |||
| 691 | void base_layer(void) | ||
| 692 | { | ||
| 693 | #ifdef AUDIO_ENABLE | ||
| 694 | if (plover) { | ||
| 695 | PLAY_SONG(song_plover_gb); | ||
| 696 | } | ||
| 697 | else { | ||
| 698 | PLAY_SONG(song_qwerty); | ||
| 699 | } | ||
| 700 | #endif | ||
| 701 | clear_layers(); | ||
| 702 | set_single_persistent_default_layer(_BASE); | ||
| 703 | toggle_plover(0); | ||
| 704 | } | ||
| 705 | |||
| 706 | void steno(keyrecord_t *record) | ||
| 707 | { | ||
| 708 | if (record->event.pressed) { | ||
| 709 | #ifdef AUDIO_ENABLE | ||
| 710 | PLAY_SONG(song_plover); | ||
| 711 | #endif | ||
| 712 | clear_layers(); | ||
| 713 | layer_on(_PLOVER); | ||
| 714 | if (!eeconfig_is_enabled()) { | ||
| 715 | eeconfig_init(); | ||
| 716 | } | ||
| 717 | keymap_config.raw = eeconfig_read_keymap(); | ||
| 718 | keymap_config.nkro = 1; | ||
| 719 | eeconfig_update_keymap(keymap_config.raw); | ||
| 720 | if (!plover) { | ||
| 721 | toggle_plover(1); | ||
| 722 | } | ||
| 723 | } | ||
| 724 | } | ||
| 725 | |||
| 726 | void steno_exit(keyrecord_t *record) | ||
| 727 | { | ||
| 728 | if (record->event.pressed) { | ||
| 729 | base_layer(); | ||
| 730 | toggle_plover(0); | ||
| 731 | } | ||
| 732 | } | ||
diff --git a/keyboards/planck/keymaps/hieax/common/number_fkey_layout.h b/keyboards/planck/keymaps/hieax/common/number_fkey_layout.h new file mode 100644 index 000000000..321482b29 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/number_fkey_layout.h | |||
| @@ -0,0 +1,46 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | | | | 0 | = | | | | | ||
| 14 | // | | | | f() | | | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_NUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 23 | #else | ||
| 24 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | |||
| 28 | // ............ .................................................. Function Keys | ||
| 29 | |||
| 30 | // .-----------------------------------------------------------------------------------. | ||
| 31 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 36 | // |-----------------------------------------------------------------------------------| | ||
| 37 | // | | | | | | f() | | + | | | | | | ||
| 38 | // | | | | | f() | | | + | | | | | see _PLOVER | ||
| 39 | // '-----------------------------------------------------------------------------------' | ||
| 40 | |||
| 41 | [_FNCKEY] = { | ||
| 42 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 43 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 44 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 45 | {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 46 | }, | ||
diff --git a/keyboards/planck/keymaps/hieax/common/plover_keybind.h b/keyboards/planck/keymaps/hieax/common/plover_keybind.h new file mode 100644 index 000000000..cb4ef92ef --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/plover_keybind.h | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | |||
| 2 | // simple window manager specific plover keybind hook | ||
| 3 | |||
| 4 | // toggle plover application, see herbstluftwm/config/appbinds | ||
| 5 | register_code (KC_LGUI); | ||
| 6 | register_code (KC_LCTL); | ||
| 7 | tap_key (KC_EQL); | ||
| 8 | unregister_code(KC_LCTL); | ||
| 9 | unregister_code(KC_LGUI); | ||
diff --git a/keyboards/planck/keymaps/hieax/common/sounds.h b/keyboards/planck/keymaps/hieax/common/sounds.h new file mode 100644 index 000000000..1bfc7a6da --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/sounds.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | |||
| 2 | // ................................................................ Audio Sounds | ||
| 3 | |||
| 4 | #ifdef AUDIO_ENABLE | ||
| 5 | float song_startup [][2] = SONG(STARTUP_SOUND); | ||
| 6 | float song_colemak [][2] = SONG(COLEMAK_SOUND); | ||
| 7 | float song_qwerty [][2] = SONG(QWERTY_SOUND); | ||
| 8 | float song_plover [][2] = SONG(PLOVER_SOUND); | ||
| 9 | float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||
| 10 | float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); | ||
| 11 | float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); | ||
| 12 | float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 13 | float song_goodbye [][2] = SONG(GOODBYE_SOUND); | ||
| 14 | #endif | ||
diff --git a/keyboards/planck/keymaps/hieax/common/steno_layout.h b/keyboards/planck/keymaps/hieax/common/steno_layout.h new file mode 100644 index 000000000..ab4a6fe01 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/steno_layout.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Plover | ||
| 5 | #ifdef STENO_ENABLE | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | # | # | # | # | # | # | # | # | # | # | # | # | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | | A | O | E | U | | | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_PLOVER] = { | ||
| 17 | {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, | ||
| 18 | {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, | ||
| 19 | {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, | ||
| 20 | {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, | ||
| 21 | }, | ||
| 22 | #else | ||
| 23 | // ,-----------------------------------------------------------------------------------. | ||
| 24 | // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| 25 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 26 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 27 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 28 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 29 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 30 | // | | A | O | E | U | | | ||
| 31 | // `-----------------------------------------------------------------------------------' | ||
| 32 | |||
| 33 | [_PLOVER] = { | ||
| 34 | {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, | ||
| 35 | {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, | ||
| 36 | {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 37 | {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, | ||
| 38 | }, | ||
| 39 | #endif | ||
diff --git a/keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h new file mode 100644 index 000000000..677e46409 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/symbol_guifn_layout.h | |||
| @@ -0,0 +1,40 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ..................................................... Symbol Navigation Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | ~ | * | & | | | | | Home | Up | End | PgUp | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | @ | ! | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | |Adjust| \ | | f() | | | ||
| 14 | // '-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_SYMBOL] = { | ||
| 17 | {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 18 | {OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 19 | {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 20 | {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | // ............................................................... Mouse Actions | ||
| 24 | |||
| 25 | // .-----------------------------------------------------------------------------------. | ||
| 26 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 27 | // |-----------------------------------------------------------------------------------| | ||
| 28 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 29 | // |-----------------------------------------------------------------------------------| | ||
| 30 | // | | | | | | | | | | | | | | ||
| 31 | // |-----------------------------------------------------------------------------------| | ||
| 32 | // | | | f() | | f() | | | ||
| 33 | // '-----------------------------------------------------------------------------------' | ||
| 34 | |||
| 35 | [_MOUSE] = { | ||
| 36 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 37 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 38 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 39 | {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 40 | }, | ||
diff --git a/keyboards/planck/keymaps/hieax/common/tapdance.h b/keyboards/planck/keymaps/hieax/common/tapdance.h new file mode 100644 index 000000000..d778286bf --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/tapdance.h | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | |||
| 2 | // tap dance keys | ||
| 3 | enum tap_dance { | ||
| 4 | _CAPS = 0 | ||
| 5 | ,_COLN | ||
| 6 | ,_COMM | ||
| 7 | ,_DOT | ||
| 8 | ,_DQOT | ||
| 9 | ,_ENT | ||
| 10 | ,_EQL | ||
| 11 | ,_GRV | ||
| 12 | ,_GT | ||
| 13 | ,_LBRC | ||
| 14 | ,_LCBR | ||
| 15 | ,_LPRN | ||
| 16 | ,_LT | ||
| 17 | ,_PRIV | ||
| 18 | ,_QUOT | ||
| 19 | ,_RBRC | ||
| 20 | ,_RCBR | ||
| 21 | ,_RNGL | ||
| 22 | ,_RPRN | ||
| 23 | ,_SEND | ||
| 24 | ,_SPC | ||
| 25 | ,_TILD | ||
| 26 | }; | ||
| 27 | |||
| 28 | #define TD_CAPS TD(_CAPS) | ||
| 29 | #define TD_COLN TD(_COLN) | ||
| 30 | #define TD_COMM TD(_COMM) | ||
| 31 | #define TD_DOT TD(_DOT) | ||
| 32 | #define TD_DQOT TD(_DQOT) | ||
| 33 | #define TD_ENT TD(_ENT) | ||
| 34 | #define TD_EQL TD(_EQL) | ||
| 35 | #define TD_GRV TD(_GRV) | ||
| 36 | #define TD_GT TD(_GT) | ||
| 37 | #define TD_LBRC TD(_LBRC) | ||
| 38 | #define TD_LCBR TD(_LCBR) | ||
| 39 | #define TD_LPRN TD(_LPRN) | ||
| 40 | #define TD_LT TD(_LT) | ||
| 41 | #define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h | ||
| 42 | #define TD_QUOT TD(_QUOT) | ||
| 43 | #define TD_RBRC TD(_RBRC) | ||
| 44 | #define TD_RCBR TD(_RCBR) | ||
| 45 | #define TD_RNGL TD(_RNGL) | ||
| 46 | #define TD_RPRN TD(_RPRN) | ||
| 47 | #define TD_SEND TD(_SEND) // config.h defined macro string | ||
| 48 | #define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc | ||
| 49 | #define TD_TILD TD(_TILD) | ||
diff --git a/keyboards/planck/keymaps/hieax/common/toggle_layout.h b/keyboards/planck/keymaps/hieax/common/toggle_layout.h new file mode 100644 index 000000000..ea4ead56b --- /dev/null +++ b/keyboards/planck/keymaps/hieax/common/toggle_layout.h | |||
| @@ -0,0 +1,102 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | GUI | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | Space| | | 0 | = | | | | | ||
| 14 | // | | | | f() | Space| | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_TTNUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______}, | ||
| 23 | #else | ||
| 24 | {_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | |||
| 28 | // ............ .................................................. Function Keys | ||
| 29 | |||
| 30 | // .-----------------------------------------------------------------------------------. | ||
| 31 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 36 | // |-----------------------------------------------------------------------------------| | ||
| 37 | // | | | | f() | | | | + | | | | | | ||
| 38 | // '-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_TTFNCKEY] = { | ||
| 41 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 42 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 43 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 44 | {_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ....................................................................... Regex | ||
| 48 | |||
| 49 | // ,-----------------------------------------------------------------------------------. | ||
| 50 | // | | . | * | & | ~ | | | ` | [ | ] | ^ | | | ||
| 51 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 52 | // | | < | % | > | ? | | | | | ( | ) | $ | | | ||
| 53 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 54 | // | | : | @ | ! | / | | | \ | { | } | # | | | ||
| 55 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 56 | // | | | | f() | = | | | + | Space| | | | | ||
| 57 | // `-----------------------------------------------------------------------------------' | ||
| 58 | |||
| 59 | [_TTREGEX] = { | ||
| 60 | {___x___, KC_DOT, KC_ASTR, KC_AMPR, KC_TILD, ___x___, ___x___, KC_GRV, KC_LBRC, KC_RBRC, KC_CIRC, ___x___}, | ||
| 61 | {___x___, KC_LT, KC_PERC, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, | ||
| 62 | {___x___, KC_COLN, KC_AT, KC_EXLM, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_LCBR, KC_RCBR, KC_HASH, ___x___}, | ||
| 63 | {_______, _______, _______, TT_ESC, KC_EQL, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______}, | ||
| 64 | }, | ||
| 65 | |||
| 66 | // ............................................................ Navigation Layer | ||
| 67 | |||
| 68 | // .-----------------------------------------------------------------------------------. | ||
| 69 | // | | | | | | | | | Home | Up | End | PgUp | | ||
| 70 | // |-----------------------------------------------------------------------------------| | ||
| 71 | // | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | | | | | | | | | | | | | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | | | f() | | | | | | | | | | ||
| 76 | // '-----------------------------------------------------------------------------------' | ||
| 77 | |||
| 78 | [_TTCURSOR] = { | ||
| 79 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 80 | {OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 81 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 82 | {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 83 | }, | ||
| 84 | |||
| 85 | // ............................................................... Mouse Actions | ||
| 86 | |||
| 87 | // .-----------------------------------------------------------------------------------. | ||
| 88 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 89 | // |-----------------------------------------------------------------------------------| | ||
| 90 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 91 | // |-----------------------------------------------------------------------------------| | ||
| 92 | // | | | | | | | | | | | | | | ||
| 93 | // |-----------------------------------------------------------------------------------| | ||
| 94 | // | | | | f() | | | | | | | | | | ||
| 95 | // '-----------------------------------------------------------------------------------' | ||
| 96 | |||
| 97 | [_TTMOUSE] = { | ||
| 98 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 99 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 100 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 101 | {_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 102 | }, | ||
diff --git a/keyboards/planck/keymaps/hieax/config.h b/keyboards/planck/keymaps/hieax/config.h new file mode 100644 index 000000000..9bb5e0873 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/config.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | // required because lower/raise modifiers are redefined by colemak-dh | ||
| 7 | #define PREVENT_STUCK_MODIFIERS | ||
| 8 | |||
| 9 | // tap dance key press termination interval | ||
| 10 | #define TAPPING_TERM 250 | ||
| 11 | |||
| 12 | // smooth mouse motion | ||
| 13 | // #define MOUSEKEY_INTERVAL 20 | ||
| 14 | // #define MOUSEKEY_DELAY 0 | ||
| 15 | // #define MOUSEKEY_TIME_TO_MAX 60 | ||
| 16 | // #define MOUSEKEY_MAX_SPEED 7 | ||
| 17 | // #define MOUSEKEY_WHEEL_DELAY 0 | ||
| 18 | |||
| 19 | // compile time macro string, see functions/hardware planck script (undefine otherwise) | ||
| 20 | #define PRIVATE_STRING | ||
| 21 | |||
| 22 | // compile time macro string, must be in quotes | ||
| 23 | #define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" | ||
| 24 | |||
| 25 | // thumb key tap-shift() double tap: one shot shift (0) off (1) on | ||
| 26 | #define DT_SHIFT 1 | ||
| 27 | |||
| 28 | // number layer 0 position KEYPAD_0, THUMB_0 | ||
| 29 | #define THUMB_0 | ||
| 30 | |||
| 31 | // home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) | ||
| 32 | #define SHIFT_SYMBOLS | ||
| 33 | |||
| 34 | // center column TT assignments (undefine for OSM chords) | ||
| 35 | #define CENTER_TT | ||
| 36 | #define TAPPING_TOGGLE 1 | ||
| 37 | |||
| 38 | // home row modifiers | ||
| 39 | #define HOME_MODS | ||
| 40 | // fix dual function timing | ||
| 41 | #define PERMISSIVE_HOLD | ||
| 42 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 43 | |||
| 44 | // layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) | ||
| 45 | #define DEFAULT | ||
| 46 | |||
| 47 | // sync app with window manager keybind hook defined in plover_keybind.h | ||
| 48 | #define PLOVER_KEYBIND | ||
| 49 | |||
| 50 | #endif | ||
diff --git a/keyboards/planck/keymaps/hieax/hiea.h b/keyboards/planck/keymaps/hieax/hiea.h new file mode 100644 index 000000000..64541d633 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/hiea.h | |||
| @@ -0,0 +1,99 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. BEAKL HIEA | ||
| 5 | #ifdef DEFAULT | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | H | I | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | J | ; | " | K | , | Num | Regex| B | P | L | F | V | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 18 | {HOME_H, HOME_I, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 19 | {KC_J, KC_SCLN, TD_QUOT, KC_K, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 25 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 26 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_K), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | J | : | " | K | / | Num | Regex| B | P | L | F | V | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 42 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 43 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | J | : | " | K | / | Num | Regex| B | P | L | F | V | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 59 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 60 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #ifdef HOME_MODS | ||
| 64 | // ,-----------------------------------------------------------------------------------. | ||
| 65 | // | Q | Y | O | U | Z | Fn | Caps | ` | [ | ] | ^ | X | | ||
| 66 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 67 | // | H | I | E | f() | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 68 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 69 | // | J | : | " | K | / | Num | Regex| \ | { | } | # | V | | ||
| 70 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 71 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | + | Space| Down | Up | Right| | ||
| 72 | // `-----------------------------------------------------------------------------------' | ||
| 73 | |||
| 74 | [_LSYMBOL] = { | ||
| 75 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, TD_GRV, KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 76 | {HOME_H, HOME_I, HOME_E, ___fn__, KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, | ||
| 77 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_LCBR, KC_RCBR, KC_HASH, S(KC_V)}, | ||
| 78 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, KC_PLUS, SL_SPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 79 | }, | ||
| 80 | |||
| 81 | // ,-----------------------------------------------------------------------------------. | ||
| 82 | // | Q | . | * | & | ~ | Fn | Caps | G | D | N | M | X | | ||
| 83 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 84 | // | H | < | % | > | ? |Cursor| Mouse| C | f() | R | S | W | | ||
| 85 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 86 | // | J | : | @ | ! | / | Num | Regex| B | P | L | F | V | | ||
| 87 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 88 | // | Ctrl | GUI | Alt | ↑Tab | = | Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 89 | // | | ↑Tab | = | Ent | Bksp | | | ||
| 90 | // `-----------------------------------------------------------------------------------' | ||
| 91 | |||
| 92 | [_RSYMBOL] = { | ||
| 93 | {S(KC_Q), KC_DOT, KC_ASTR, KC_AMPR, TD_TILD, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 94 | {S(KC_H), TD_LT, KC_PERC, TD_GT, KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), ___fn__, HOME_R, HOME_S, HOME_W }, | ||
| 95 | {S(KC_J), TD_COLN, KC_AT, KC_EXLM, KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 96 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, TD_EQL, LT_INS, SP_LEFT, TD_ENT, LT_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 97 | }, | ||
| 98 | #endif | ||
| 99 | #endif | ||
diff --git a/keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h b/keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h new file mode 100644 index 000000000..53ffb8861 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/hiea.sync-conflict-20180501-144403-SMV4TP4.h | |||
| @@ -0,0 +1,97 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. BEAKL HIEA | ||
| 5 | #ifdef DEFAULT | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | H | I | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | J | ; | " | K | , | Num | Regex| B | P | L | F | V | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 18 | {HOME_H, HOME_I, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 19 | {KC_J, KC_SCLN, TD_QUOT, KC_K, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 25 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 26 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_K), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | J | : | " | K | / | Num | Regex| B | P | L | F | V | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 42 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 43 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | H | I | E | A | ? |Cursor| Mouse| C | T | R | S | W | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | J | : | " | K | / | Num | Regex| B | P | L | F | V | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 59 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 60 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
| 65 | // ,-----------------------------------------------------------------------------------. | ||
| 66 | // | Q | Y | O | U | Z | Fn | Caps | ` | [ | ] | ^ | X | | ||
| 67 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 68 | // | H | I | E | f() | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 69 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 70 | // | J | : | " | K | / | Num | Regex| \ | { | } | # | V | | ||
| 71 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 72 | // | | Esc | Space| + | Space| | | ||
| 73 | // `-----------------------------------------------------------------------------------' | ||
| 74 | |||
| 75 | [_LSYMBOL] = { | ||
| 76 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, TD_GRV, KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 77 | {HOME_H, HOME_I, HOME_E, ___fn__, KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, | ||
| 78 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_K), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_LCBR, KC_RCBR, KC_HASH, S(KC_V)}, | ||
| 79 | {_______, _______, _______, _______, LT_ESC, TD_SPC, KC_PLUS, KC_SPC, _______, _______, _______, _______}, | ||
| 80 | }, | ||
| 81 | |||
| 82 | // ,-----------------------------------------------------------------------------------. | ||
| 83 | // | Q | . | * | & | ~ | Fn | Caps | G | D | N | M | X | | ||
| 84 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 85 | // | H | < | % | > | ? |Cursor| Mouse| C | f() | R | S | W | | ||
| 86 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 87 | // | J | : | @ | ! | / | Num | Regex| B | P | L | F | V | | ||
| 88 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 89 | // | | ↑Tab | = | Ent | Bksp | | | ||
| 90 | // `-----------------------------------------------------------------------------------' | ||
| 91 | |||
| 92 | [_RSYMBOL] = { | ||
| 93 | {S(KC_Q), KC_DOT, KC_ASTR, KC_AMPR, TD_TILD, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 94 | {S(KC_H), TD_LT, KC_PERC, TD_GT, KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), ___fn__, HOME_R, HOME_S, HOME_W }, | ||
| 95 | {S(KC_J), TD_COLN, KC_AT, KC_EXLM, KC_SLSH, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 96 | {_______, _______, _______, _______, S_TAB, TD_EQL, TD_ENT, LT_BSPC, _______, _______, _______, _______}, | ||
| 97 | }, | ||
diff --git a/keyboards/planck/keymaps/hieax/keymap.c b/keyboards/planck/keymaps/hieax/keymap.c new file mode 100644 index 000000000..d761ee677 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/keymap.c | |||
| @@ -0,0 +1,446 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | // | ||
| 4 | // To flash planck firmware | ||
| 5 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 6 | // Reset keyboard or press hw reset button on base (hole) | ||
| 7 | // | ||
| 8 | // cd qmk_firmware/keyboards/planck | ||
| 9 | // sudo make KEYMAP=sdothum dfu | ||
| 10 | // | ||
| 11 | // sudo make clean (good practice before flashing) | ||
| 12 | // sudo make KEYMAP=sdothum (to compile check) | ||
| 13 | // | ||
| 14 | // Package requirements (for arch linux) | ||
| 15 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 16 | // avr-gcc-atmel | ||
| 17 | // avr-libc-atmel | ||
| 18 | // dfu-programmer | ||
| 19 | // | ||
| 20 | // Notes | ||
| 21 | // ▔▔▔▔▔ | ||
| 22 | // ** E R G O W I D E S P L I T ** Layout | ||
| 23 | // | ||
| 24 | // Autocompletion tap dance key pairs (),[],{} are available from the | ||
| 25 | // number/symbol layer, as well as, numerous (un)shift key values | ||
| 26 | // | ||
| 27 | // The navigation pad provides a single hand right thumb activated cluster | ||
| 28 | // with left hand modifiers | ||
| 29 | // | ||
| 30 | // #define PRIVATE_STRING includes private_string.h, a user defined code | ||
| 31 | // block for the PRIV tap dance e.g. SEND_STRING("secret messape"), | ||
| 32 | // see function private() | ||
| 33 | // | ||
| 34 | // Modifier clusters | ||
| 35 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 36 | // The num and sym keys together access the navigation pad layer | ||
| 37 | // | ||
| 38 | // ,-----------------------------------------------------------------------------------. | ||
| 39 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 40 | // `-----------------------------------------------------------------------------------' | ||
| 41 | // | ||
| 42 | // Hint | ||
| 43 | // ▔▔▔▔ | ||
| 44 | // For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, | ||
| 45 | // Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and | ||
| 46 | // actuation | ||
| 47 | // | ||
| 48 | // Code | ||
| 49 | // ▔▔▔▔ | ||
| 50 | // This source is shamelessly based on the "default" planck layout | ||
| 51 | // | ||
| 52 | // #ifdef/#endif block structures are not indented, as syntax highlighting | ||
| 53 | // in vim is sufficient for identification | ||
| 54 | // | ||
| 55 | // c++ commenting style is used throughout | ||
| 56 | // | ||
| 57 | // Change history | ||
| 58 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 59 | // See http://thedarnedestthing.com/planck%20constant | ||
| 60 | // See http://thedarnedestthing.com/planck%20done | ||
| 61 | |||
| 62 | |||
| 63 | |||
| 64 | // === N O T E === | ||
| 65 | // | ||
| 66 | // sudo CPATH=<keymap.c directory>/common make ... | ||
| 67 | |||
| 68 | |||
| 69 | #include "config.h" | ||
| 70 | #include "planck.h" | ||
| 71 | #include "action_layer.h" | ||
| 72 | #ifdef STENO_ENABLE | ||
| 73 | #include "keymap_steno.h" | ||
| 74 | #endif | ||
| 75 | #ifdef AUDIO_ENABLE | ||
| 76 | #include "audio.h" | ||
| 77 | #endif | ||
| 78 | #include "eeconfig.h" | ||
| 79 | |||
| 80 | extern keymap_config_t keymap_config; | ||
| 81 | |||
| 82 | enum planck_layers { | ||
| 83 | _BASE = 0 | ||
| 84 | ,_SHIFT | ||
| 85 | ,_LSHIFT | ||
| 86 | ,_RSHIFT | ||
| 87 | ,_LSYMBOL | ||
| 88 | ,_RSYMBOL | ||
| 89 | ,_PLOVER | ||
| 90 | ,_NUMBER | ||
| 91 | ,_SYMBOL | ||
| 92 | ,_FNCKEY | ||
| 93 | ,_MOUSE | ||
| 94 | ,_EDIT | ||
| 95 | ,_ADJUST | ||
| 96 | #ifdef CENTER_TT | ||
| 97 | ,_TTNUMBER | ||
| 98 | ,_TTREGEX | ||
| 99 | ,_TTFNCKEY | ||
| 100 | ,_TTCURSOR | ||
| 101 | ,_TTMOUSE | ||
| 102 | #endif | ||
| 103 | ,_END_LAYERS | ||
| 104 | }; | ||
| 105 | |||
| 106 | enum planck_keycodes { | ||
| 107 | BASE = SAFE_RANGE | ||
| 108 | ,BASE1 | ||
| 109 | ,BASE2 | ||
| 110 | ,PLOVER | ||
| 111 | ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() | ||
| 112 | ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() | ||
| 113 | ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() | ||
| 114 | ,SM_H // pseudo MT (MOD_LCTL | MOD_LSFT, S(KC_H)) for shifted key-codes, see process_record_user() | ||
| 115 | ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() | ||
| 116 | ,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user() | ||
| 117 | ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() | ||
| 118 | ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() | ||
| 119 | ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() | ||
| 120 | ,SL_SPC // pseudo LT (S(_SYMBOL), KC_SPC) for home row shifted GUIFN | ||
| 121 | #ifdef HOME_MODS | ||
| 122 | ,HOME_A // pseudo SFT_T(KC_A) | ||
| 123 | ,HOME_T // pseudo SFT_T(KC_T) | ||
| 124 | #endif | ||
| 125 | #ifdef CENTER_TT | ||
| 126 | ,TT_ESC | ||
| 127 | #endif | ||
| 128 | #ifdef STENO_ENABLE | ||
| 129 | ,PS_STNA = STN_A | ||
| 130 | ,PS_STNO = STN_O | ||
| 131 | ,PS_STNE = STN_E | ||
| 132 | ,PS_STNU = STN_U | ||
| 133 | #else | ||
| 134 | ,LT_C = LT (_NUMBER, KC_C) | ||
| 135 | ,LT_V = LT (_FNCKEY, KC_V) | ||
| 136 | ,LT_N = LT (_EDIT, KC_N) | ||
| 137 | ,LT_M = LT (_SYMBOL, KC_M) | ||
| 138 | #endif | ||
| 139 | }; | ||
| 140 | |||
| 141 | // modifier keys | ||
| 142 | #define AT_B ALT_T(KC_B) | ||
| 143 | #define AT_DOWN ALT_T(KC_DOWN) | ||
| 144 | #define CT_RGHT CTL_T(KC_RGHT) | ||
| 145 | #define GT_C GUI_T(KC_C) | ||
| 146 | #define GT_UP GUI_T(KC_UP) | ||
| 147 | #define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) | ||
| 148 | #define ST_A SFT_T(KC_A) | ||
| 149 | #ifdef HOME_MODS | ||
| 150 | #define HOME_H GUI_T(KC_H) | ||
| 151 | #define HOME_I CTL_T(KC_I) | ||
| 152 | #define HOME_E ALT_T(KC_E) | ||
| 153 | #define HOME_R ALT_T(KC_R) | ||
| 154 | #define HOME_S CTL_T(KC_S) | ||
| 155 | #define HOME_W GUI_T(KC_W) | ||
| 156 | #else | ||
| 157 | #define HOME_H KC_H | ||
| 158 | #define HOME_I KC_I | ||
| 159 | #define HOME_E KC_E | ||
| 160 | #define HOME_A KC_A | ||
| 161 | #define HOME_T KC_T | ||
| 162 | #define HOME_R KC_R | ||
| 163 | #define HOME_S KC_S | ||
| 164 | #define HOME_W KC_W | ||
| 165 | #endif | ||
| 166 | |||
| 167 | #define S_DOWN S (KC_DOWN) | ||
| 168 | #define S_LEFT S (KC_LEFT) | ||
| 169 | #define S_RGHT S (KC_RGHT) | ||
| 170 | #define S_TAB S (KC_TAB) | ||
| 171 | #define S_UP S (KC_UP) | ||
| 172 | |||
| 173 | #include "tapdance.h" | ||
| 174 | |||
| 175 | // keycodes | ||
| 176 | #define ___x___ KC_TRNS | ||
| 177 | #define ___fn__ KC_TRNS | ||
| 178 | #ifdef _______ | ||
| 179 | #undef _______ | ||
| 180 | #endif | ||
| 181 | #define _______ KC_NO | ||
| 182 | |||
| 183 | #define COPY LCTL(KC_C) | ||
| 184 | #define CUT LCTL(KC_X) | ||
| 185 | #define EOT LCTL(KC_D) | ||
| 186 | #define NAK LCTL(KC_U) | ||
| 187 | #define PASTE LCTL(KC_V) | ||
| 188 | #define UNDO LCTL(KC_Z) | ||
| 189 | #define TMCOPY LALT(LCTL(KC_C)) | ||
| 190 | #define TMPASTE LALT(LCTL(KC_V)) | ||
| 191 | #define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling | ||
| 192 | #define LT_BSPC LT (_EDIT, KC_BSPC) | ||
| 193 | #define SP_LEFT LT (_EDIT, KC_LEFT) | ||
| 194 | #define LT_ESC LT (_NUMBER, KC_ESC) | ||
| 195 | #define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling | ||
| 196 | #define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling | ||
| 197 | #define LT_TAB LT (_FNCKEY, KC_TAB) | ||
| 198 | #define LT_INS LT (_FNCKEY, KC_INS) | ||
| 199 | #define ADJUST MO (_ADJUST) | ||
| 200 | #define OS_ALT OSM (MOD_LALT) | ||
| 201 | #define OS_CTL OSM (MOD_LCTL) | ||
| 202 | #define OS_GUI OSM (MOD_LGUI) | ||
| 203 | #define OS_SFT OSM (MOD_LSFT) | ||
| 204 | |||
| 205 | #ifdef CENTER_TT | ||
| 206 | #define CNTR_TL TT (_TTFNCKEY) | ||
| 207 | #define CNTR_TR KC_CAPS | ||
| 208 | #define CNTR_HL TT (_TTCURSOR) | ||
| 209 | #define CNTR_HR TT (_TTMOUSE) | ||
| 210 | #define CNTR_BL TT (_TTNUMBER) | ||
| 211 | #define CNTR_BR TT (_TTREGEX) | ||
| 212 | #else | ||
| 213 | #define CNTR_TL OSM (MOD_LALT | MOD_LCTL) | ||
| 214 | #define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) | ||
| 215 | #define CNTR_HL OSM (MOD_LALT | MOD_LSFT) | ||
| 216 | #define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) | ||
| 217 | #define CNTR_BL TD (_CAPS) | ||
| 218 | #define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) | ||
| 219 | #endif | ||
| 220 | |||
| 221 | // LT can only reference layers 0-15 | ||
| 222 | #ifdef THUMB_0 | ||
| 223 | #define LT_EQL LT (_ADJUST, KC_EQL) | ||
| 224 | #else | ||
| 225 | #define LT_0 LT (_ADJUST, KC_0) | ||
| 226 | #endif | ||
| 227 | |||
| 228 | // ........................................................ Default Alpha Layout | ||
| 229 | |||
| 230 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 231 | |||
| 232 | #include "hiea.h" | ||
| 233 | #include "steno_layout.h" | ||
| 234 | |||
| 235 | // ...................................................... Number / Function Keys | ||
| 236 | |||
| 237 | #include "number_fkey_layout.h" | ||
| 238 | |||
| 239 | // ......................................................... Symbol / Navigation | ||
| 240 | |||
| 241 | #include "symbol_guifn_layout.h" | ||
| 242 | |||
| 243 | // ............................................................... Toggle Layers | ||
| 244 | |||
| 245 | #ifdef CENTER_TT | ||
| 246 | #include "toggle_layout.h" | ||
| 247 | #endif | ||
| 248 | |||
| 249 | // ......................................................... Short Cuts / Adjust | ||
| 250 | |||
| 251 | #include "chord_layout.h" | ||
| 252 | |||
| 253 | }; | ||
| 254 | |||
| 255 | // ...................................................................... Sounds | ||
| 256 | |||
| 257 | #include "sounds.h" | ||
| 258 | |||
| 259 | // ........................................................... User Keycode Trap | ||
| 260 | |||
| 261 | #include "keycode_functions.h" | ||
| 262 | |||
| 263 | #define BASE_1 1 | ||
| 264 | #define BASE_2 2 | ||
| 265 | #define BASE_12 3 | ||
| 266 | static uint8_t base_n = 0; | ||
| 267 | |||
| 268 | bool process_record_user(uint16_t keycode, keyrecord_t *record) | ||
| 269 | { | ||
| 270 | switch (keycode) { | ||
| 271 | case BASE1: | ||
| 272 | if (record->event.pressed) { | ||
| 273 | base_n = base_n | BASE_1; | ||
| 274 | if (base_n == BASE_12) { | ||
| 275 | base_layer(); | ||
| 276 | } | ||
| 277 | } | ||
| 278 | else { | ||
| 279 | base_n = base_n & ~BASE_1; | ||
| 280 | } | ||
| 281 | return false; | ||
| 282 | case BASE2: | ||
| 283 | if (record->event.pressed) { | ||
| 284 | base_n = base_n | BASE_2; | ||
| 285 | if (base_n == BASE_12) { | ||
| 286 | base_layer(); | ||
| 287 | } | ||
| 288 | } | ||
| 289 | else { | ||
| 290 | base_n = base_n & ~BASE_2; | ||
| 291 | } | ||
| 292 | return false; | ||
| 293 | #ifdef HOME_MODS | ||
| 294 | case HOME_E: | ||
| 295 | case HOME_R: | ||
| 296 | tap_mods(record, KC_LALT); | ||
| 297 | symbol_shift(record, 0); | ||
| 298 | break; | ||
| 299 | case HOME_H: | ||
| 300 | case HOME_W: | ||
| 301 | tap_mods(record, KC_LGUI); | ||
| 302 | symbol_shift(record, 0); | ||
| 303 | break; | ||
| 304 | case HOME_I: | ||
| 305 | case HOME_S: | ||
| 306 | tap_mods(record, KC_LCTL); | ||
| 307 | symbol_shift(record, 0); | ||
| 308 | break; | ||
| 309 | case HOME_A: | ||
| 310 | tap_mods(record, KC_LSFT); | ||
| 311 | symbol_shift(record, KC_A); | ||
| 312 | break; | ||
| 313 | case HOME_T: | ||
| 314 | tap_mods(record, KC_RSFT); | ||
| 315 | symbol_shift(record, KC_T); | ||
| 316 | break; | ||
| 317 | #else | ||
| 318 | case AT_DOWN: | ||
| 319 | tap_mods(record, KC_LALT); | ||
| 320 | break; | ||
| 321 | case CT_RGHT: | ||
| 322 | tap_mods(record, KC_LGUI); | ||
| 323 | break; | ||
| 324 | case GT_UP: | ||
| 325 | tap_mods(record, KC_LCTL); | ||
| 326 | break; | ||
| 327 | #endif | ||
| 328 | case SL_SPC: | ||
| 329 | lt(record, NOSHIFT, KC_SPC, KC_LSFT, _SYMBOL); | ||
| 330 | break; | ||
| 331 | #ifdef CENTER_TT | ||
| 332 | case TT_ESC: | ||
| 333 | clear_tt(); // exit TT layer | ||
| 334 | return false; | ||
| 335 | #endif | ||
| 336 | case LT_ESC: | ||
| 337 | #ifdef CENTER_TT | ||
| 338 | if (tt_keycode != 0) { | ||
| 339 | clear_tt(); // exit TT layer | ||
| 340 | return false; | ||
| 341 | } | ||
| 342 | #endif | ||
| 343 | tap_layer(record, _NUMBER); | ||
| 344 | break; | ||
| 345 | case LT_LEFT: | ||
| 346 | case SP_BSPC: | ||
| 347 | tap_layer(record, _SYMBOL); | ||
| 348 | // LT (_SYMBOL, KC_LEFT) left right combination layer | ||
| 349 | thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); | ||
| 350 | break; | ||
| 351 | case OS_ALT: | ||
| 352 | tap_mods(record, KC_LALT); | ||
| 353 | break; | ||
| 354 | case OS_CTL: | ||
| 355 | tap_mods(record, KC_LCTL); | ||
| 356 | break; | ||
| 357 | case OS_GUI: | ||
| 358 | tap_mods(record, KC_LGUI); | ||
| 359 | break; | ||
| 360 | case SM_CIRC: | ||
| 361 | // GUI_T(S(KC_6)) | ||
| 362 | mt_shift(record, KC_LGUI, 0, KC_6); | ||
| 363 | break; | ||
| 364 | case SM_DLR: | ||
| 365 | // SFT_T(S(KC_4)) | ||
| 366 | mt_shift(record, KC_LSFT, 0, KC_4); | ||
| 367 | break; | ||
| 368 | case SM_G: | ||
| 369 | // MT(MOD_LALT | MOD_LSFT, S(KC_G)) | ||
| 370 | mt_shift(record, KC_LALT, KC_LSFT, KC_G); | ||
| 371 | break; | ||
| 372 | case SM_H: | ||
| 373 | // MT(MOD_LCTL | MOD_LSFT, S(KC_K)) | ||
| 374 | mt_shift(record, KC_LCTL, KC_LSFT, KC_H); | ||
| 375 | break; | ||
| 376 | case SM_W: | ||
| 377 | // MT(MOD_LGUI | MOD_LSFT, S(KC_W)) | ||
| 378 | mt_shift(record, KC_LGUI, KC_LSFT, KC_W); | ||
| 379 | break; | ||
| 380 | case SM_PERC: | ||
| 381 | // ALT_T(S(KC_5)) | ||
| 382 | mt_shift(record, KC_LALT, 0, KC_5); | ||
| 383 | break; | ||
| 384 | case LT_BSLS: | ||
| 385 | tap_layer(record, _MOUSE); | ||
| 386 | // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS | ||
| 387 | thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); | ||
| 388 | break; | ||
| 389 | case SL_LEFT: | ||
| 390 | tap_layer(record, _MOUSE); | ||
| 391 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 392 | thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); | ||
| 393 | break; | ||
| 394 | case SP_DEL: | ||
| 395 | tap_layer(record, _MOUSE); | ||
| 396 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 397 | thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); | ||
| 398 | break; | ||
| 399 | case SL_TAB: | ||
| 400 | // LT (_FNCKEY, S(KC_TAB)) emulation | ||
| 401 | lt_shift(record, KC_TAB, _FNCKEY); | ||
| 402 | break; | ||
| 403 | case TD_ENT: | ||
| 404 | tap_layer(record, _RSHIFT); | ||
| 405 | // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter | ||
| 406 | break; | ||
| 407 | case TD_SPC: | ||
| 408 | tap_layer(record, _LSHIFT); | ||
| 409 | // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC | ||
| 410 | thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); | ||
| 411 | break; | ||
| 412 | #ifdef CENTER_TT | ||
| 413 | case CNTR_TL: | ||
| 414 | case CNTR_TR: | ||
| 415 | case CNTR_HL: | ||
| 416 | case CNTR_HR: | ||
| 417 | case CNTR_BL: | ||
| 418 | case CNTR_BR: | ||
| 419 | if (tt_keycode != keycode && tt_keycode != 0) { | ||
| 420 | clear_tt(); // return to base layer first if different TT layer selected | ||
| 421 | } | ||
| 422 | tt_keycode = keycode; | ||
| 423 | break; | ||
| 424 | #endif | ||
| 425 | // #ifdef STENO_ENABLE | ||
| 426 | // case PS_STNA: | ||
| 427 | // stn_layer(record, STN_A, _NUMBER); | ||
| 428 | // break; | ||
| 429 | // case PS_STNO: | ||
| 430 | // stn_layer(record, STN_O, _FNCKEY); | ||
| 431 | // break; | ||
| 432 | // case PS_STNE: | ||
| 433 | // stn_layer(record, STN_E, _EDIT); | ||
| 434 | // break; | ||
| 435 | // case PS_STNU: | ||
| 436 | // stn_layer(record, STN_U, _SYMBOL); | ||
| 437 | // break; | ||
| 438 | // #endif | ||
| 439 | case PLOVER: | ||
| 440 | steno(record); | ||
| 441 | return false; | ||
| 442 | } | ||
| 443 | return true; | ||
| 444 | } | ||
| 445 | |||
| 446 | #include "init.h" | ||
diff --git a/keyboards/planck/keymaps/hieax/readme.md b/keyboards/planck/keymaps/hieax/readme.md new file mode 100644 index 000000000..58f73e3b4 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # The sdothum extended Default Planck Layout | ||
| 2 | |||
| 3 | - Colemak-DH layout layer with shift/tab key overlays | ||
| 4 | - Number and symbol/function key layer | ||
| 5 | - Hexadecimal keypad layer | ||
| 6 | - Navigation keypad layer | ||
| 7 | - Dynamic macro layer | ||
| 8 | - Autocompletion tap key pairs (),[],{} | ||
| 9 | - Normalized enter and esc key position across keyboard layers | ||
| 10 | - Extensive use of tap keys | ||
diff --git a/keyboards/planck/keymaps/hieax/rules.mk b/keyboards/planck/keymaps/hieax/rules.mk new file mode 100644 index 000000000..40f153844 --- /dev/null +++ b/keyboards/planck/keymaps/hieax/rules.mk | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | # Build Options: | ||
| 2 | # change to "no" to disable the options, or define them in the Makefile in | ||
| 3 | # the appropriate keymap folder that will get included automatically | ||
| 4 | |||
| 5 | BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) | ||
| 6 | MOUSEKEY_ENABLE = yes # mouse keys(+4700) | ||
| 7 | EXTRAKEY_ENABLE = no # audio control and System control(+450) | ||
| 8 | CONSOLE_ENABLE = no # console for debug(+400) | ||
| 9 | COMMAND_ENABLE = no # commands for debug and configuration | ||
| 10 | NKRO_ENABLE = yes # nkey rollover | ||
| 11 | BACKLIGHT_ENABLE = no # enable keyboard backlight functionality | ||
| 12 | MIDI_ENABLE = no # MIDI controls | ||
| 13 | AUDIO_ENABLE = no # audio output on port C6 | ||
| 14 | UNICODE_ENABLE = no # unicode | ||
| 15 | BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID | ||
| 16 | RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. | ||
| 17 | STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys | ||
| 18 | |||
| 19 | # do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 20 | SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend | ||
| 21 | |||
| 22 | TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} | ||
| 23 | |||
| 24 | ifndef QUANTUM_DIR | ||
| 25 | include ../../../../Makefile | ||
| 26 | endif | ||
diff --git a/keyboards/planck/keymaps/sdothum/beakl.h b/keyboards/planck/keymaps/sdothum/beakl.h new file mode 100644 index 000000000..de3da34a5 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/beakl.h | |||
| @@ -0,0 +1,551 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................... BEAKL EZ | ||
| 5 | #ifdef BEAKLEZ | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | ; | , | J | . | X | Caps |^Shift| B | D | M | P | Z | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_Y, KC_O, KC_U, KC_K, CNTR_TL, CNTR_TR, KC_F, KC_G, KC_R, KC_C, KC_V }, | ||
| 18 | {KC_H, KC_I, KC_E, HOME_A, TD_QUOT, CNTR_HL, CNTR_HR, KC_L, KC_S, KC_T, KC_N, KC_W }, | ||
| 19 | {KC_SCLN, KC_COMM, KC_J, KC_DOT, KC_X, CNTR_BL, CNTR_BR, KC_B, KC_D, KC_M, KC_P, KC_Z }, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, | ||
| 25 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_QUOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, | ||
| 26 | {KC_SCLN, KC_COMM, S(KC_J), KC_DOT, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | : | ~ | J | ` | X | Caps |^Shift| B | D | M | P | Z | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, | ||
| 42 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, | ||
| 43 | {TD_COLN, TD_TILD, S(KC_J), TD_GRV, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | : | / | J | ? | X | Caps |^Shift| B | D | M | P | Z | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V)}, | ||
| 59 | {S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W)}, | ||
| 60 | {TD_COLN, KC_SLSH, S(KC_J), KC_QUES, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z)}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
| 65 | // ..................................................................... BEAKL 8 | ||
| 66 | #ifdef BEAKL8 | ||
| 67 | // ,-----------------------------------------------------------------------------------. | ||
| 68 | // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | | ||
| 69 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 70 | // | K | H | E | A | . | ↑Alt | ↑GUI | D | S | T | N | B | | ||
| 71 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 72 | // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | | ||
| 73 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 74 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 75 | // `-----------------------------------------------------------------------------------' | ||
| 76 | |||
| 77 | [_BASE] = { | ||
| 78 | {KC_Q, KC_Y, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_C, KC_R, KC_F, KC_Z }, | ||
| 79 | {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_D, KC_S, KC_T, KC_N, KC_B }, | ||
| 80 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 81 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 82 | }, | ||
| 83 | |||
| 84 | [_SHIFT] = { | ||
| 85 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, | ||
| 86 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, | ||
| 87 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 88 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 89 | }, | ||
| 90 | |||
| 91 | // ,-----------------------------------------------------------------------------------. | ||
| 92 | // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | | ||
| 93 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 94 | // | K | H | E | A | ~ | ↑Alt | ↑GUI | D | S | T | N | B | | ||
| 95 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 96 | // | J | : | " | I | ` | Caps |^Shift| W | M | L | P | V | | ||
| 97 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 98 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 99 | // `-----------------------------------------------------------------------------------' | ||
| 100 | |||
| 101 | [_LSHIFT] = { | ||
| 102 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, | ||
| 103 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), TD_TILD, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, | ||
| 104 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 105 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 106 | }, | ||
| 107 | |||
| 108 | // ,-----------------------------------------------------------------------------------. | ||
| 109 | // | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z | | ||
| 110 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 111 | // | K | H | E | A | ? | ↑Alt | ↑GUI | D | S | T | N | B | | ||
| 112 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 113 | // | J | : | " | I | / | Caps |^Shift| W | M | L | P | V | | ||
| 114 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 115 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 116 | // `-----------------------------------------------------------------------------------' | ||
| 117 | |||
| 118 | [_RSHIFT] = { | ||
| 119 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z)}, | ||
| 120 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B)}, | ||
| 121 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 122 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 123 | }, | ||
| 124 | #endif | ||
| 125 | |||
| 126 | // .................................................................... BEAKL 8P | ||
| 127 | #ifdef BEAKL8P | ||
| 128 | // ,-----------------------------------------------------------------------------------. | ||
| 129 | // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | R | F | X | | ||
| 130 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 131 | // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 132 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 133 | // | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V | | ||
| 134 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 135 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 136 | // `-----------------------------------------------------------------------------------' | ||
| 137 | |||
| 138 | [_BASE] = { | ||
| 139 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, | ||
| 140 | {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_S, KC_N, KC_B }, | ||
| 141 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 142 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 143 | }, | ||
| 144 | |||
| 145 | [_SHIFT] = { | ||
| 146 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 147 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 148 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 149 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 150 | }, | ||
| 151 | |||
| 152 | // ,-----------------------------------------------------------------------------------. | ||
| 153 | // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | R | F | X | | ||
| 154 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 155 | // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 156 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 157 | // | J | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | | ||
| 158 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 159 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 160 | // `-----------------------------------------------------------------------------------' | ||
| 161 | |||
| 162 | [_LSHIFT] = { | ||
| 163 | {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 164 | {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 165 | {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 166 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 167 | }, | ||
| 168 | |||
| 169 | // ,-----------------------------------------------------------------------------------. | ||
| 170 | // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | F | X | | ||
| 171 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 172 | // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | N | B | | ||
| 173 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 174 | // | J | : | " | I | / | Caps |^Shift| \ | $ | * | P | V | | ||
| 175 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 176 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 177 | // `-----------------------------------------------------------------------------------' | ||
| 178 | |||
| 179 | [_RSHIFT] = { | ||
| 180 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_F), S(KC_X)}, | ||
| 181 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_N), S(KC_B)}, | ||
| 182 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_P), S(KC_V)}, | ||
| 183 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 184 | }, | ||
| 185 | #endif | ||
| 186 | |||
| 187 | // ................................................................... BEAKL 8TX | ||
| 188 | #ifdef BEAKL8TX | ||
| 189 | // ,-----------------------------------------------------------------------------------. | ||
| 190 | // | Q | Y | O | U | J | ^Alt | ^GUI | G | D | R | F | X | | ||
| 191 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 192 | // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 193 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 194 | // | Z | ; | " | I | , | Caps |^Shift| W | M | L | P | V | | ||
| 195 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 196 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 197 | // `-----------------------------------------------------------------------------------' | ||
| 198 | |||
| 199 | [_BASE] = { | ||
| 200 | {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, | ||
| 201 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, | ||
| 202 | {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 203 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 204 | }, | ||
| 205 | |||
| 206 | [_SHIFT] = { | ||
| 207 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 208 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 209 | {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 210 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 211 | }, | ||
| 212 | |||
| 213 | // ,-----------------------------------------------------------------------------------. | ||
| 214 | // | Q | $ | { | } | J | ^Alt | ^GUI | G | D | R | F | X | | ||
| 215 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 216 | // | K | / | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B | | ||
| 217 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 218 | // | Z | : | ! | = | ` | Caps |^Shift| W | M | L | P | V | | ||
| 219 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 220 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 221 | // `-----------------------------------------------------------------------------------' | ||
| 222 | |||
| 223 | [_LSHIFT] = { | ||
| 224 | {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 225 | {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 226 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 227 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 228 | }, | ||
| 229 | |||
| 230 | // ,-----------------------------------------------------------------------------------. | ||
| 231 | // | Q | Y | O | U | J | ^Alt | ^GUI | G | [ | ] | ^ | X | | ||
| 232 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 233 | // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | $ | B | | ||
| 234 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 235 | // | Z | : | " | I | / | Caps |^Shift| \ | * | . | P | V | | ||
| 236 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 237 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 238 | // `-----------------------------------------------------------------------------------' | ||
| 239 | |||
| 240 | [_RSHIFT] = { | ||
| 241 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 242 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, | ||
| 243 | {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 244 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 245 | }, | ||
| 246 | #endif | ||
| 247 | |||
| 248 | // ................................................................... BEAKL 8TT | ||
| 249 | #ifdef BEAKL8TT | ||
| 250 | // ,-----------------------------------------------------------------------------------. | ||
| 251 | // | Q | Y | O | U | J | Fn | Caps | G | D | R | F | X | | ||
| 252 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 253 | // | K | H | E | A | . |Cursor| Mouse| C | T | S | N | B | | ||
| 254 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 255 | // | Z | ; | " | I | , | Num | Regex| W | M | L | P | V | | ||
| 256 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 257 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 258 | // `-----------------------------------------------------------------------------------' | ||
| 259 | |||
| 260 | [_BASE] = { | ||
| 261 | {KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X }, | ||
| 262 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B }, | ||
| 263 | {KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V }, | ||
| 264 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 265 | }, | ||
| 266 | |||
| 267 | [_SHIFT] = { | ||
| 268 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 269 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 270 | {S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 271 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 272 | }, | ||
| 273 | |||
| 274 | // ,-----------------------------------------------------------------------------------. | ||
| 275 | // | Q | $ | { | } | J | Fn | Caps | G | D | R | F | X | | ||
| 276 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 277 | // | K | / | < | > | ~ |Cursor| Mouse| C | T | S | N | B | | ||
| 278 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 279 | // | Z | : | ! | = | ` | Num | Regex| W | M | L | P | V | | ||
| 280 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 281 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 282 | // `-----------------------------------------------------------------------------------' | ||
| 283 | |||
| 284 | [_LSHIFT] = { | ||
| 285 | {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X)}, | ||
| 286 | {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B)}, | ||
| 287 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V)}, | ||
| 288 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 289 | }, | ||
| 290 | |||
| 291 | // ,-----------------------------------------------------------------------------------. | ||
| 292 | // | Q | Y | O | U | J | Fn | Caps | G | [ | ] | ^ | X | | ||
| 293 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 294 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | B | | ||
| 295 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 296 | // | Z | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 297 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 298 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 299 | // `-----------------------------------------------------------------------------------' | ||
| 300 | |||
| 301 | [_RSHIFT] = { | ||
| 302 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 303 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B)}, | ||
| 304 | {S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 305 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 306 | }, | ||
| 307 | #endif | ||
| 308 | |||
| 309 | // .................................................................... BEAKL 10 | ||
| 310 | #ifdef BEAKL10 | ||
| 311 | // ,-----------------------------------------------------------------------------------. | ||
| 312 | // | Q | H | O | U | X | ^Alt | ^GUI | G | D | N | M | V | | ||
| 313 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 314 | // | Y | I | E | A | . | ↑Alt | ↑GUI | C | S | R | T | W | | ||
| 315 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 316 | // | J | ; | " | , | Z | Caps |^Shift| B | P | L | F | K | | ||
| 317 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 318 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 319 | // `-----------------------------------------------------------------------------------' | ||
| 320 | |||
| 321 | [_BASE] = { | ||
| 322 | {KC_Q, KC_H, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_V }, | ||
| 323 | {KC_Y, KC_I, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_S, KC_R, KC_T, KC_W }, | ||
| 324 | {KC_J, KC_SCLN, TD_QUOT, KC_COMM, KC_Z, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_K }, | ||
| 325 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 326 | }, | ||
| 327 | |||
| 328 | [_SHIFT] = { | ||
| 329 | {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, | ||
| 330 | {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, | ||
| 331 | {S(KC_J), KC_SCLN, TD_QUOT, KC_COMM, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, | ||
| 332 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 333 | }, | ||
| 334 | |||
| 335 | // ,-----------------------------------------------------------------------------------. | ||
| 336 | // | Q | [ | ! | ] | X | ^Alt | ^GUI | G | D | N | M | V | | ||
| 337 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 338 | // | Y | < | = | > | ~ | ↑Alt | ↑GUI | C | S | R | T | W | | ||
| 339 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 340 | // | J | : | " | ` | Z | Caps |^Shift| B | P | L | F | K | | ||
| 341 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 342 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 343 | // `-----------------------------------------------------------------------------------' | ||
| 344 | |||
| 345 | [_LSHIFT] = { | ||
| 346 | {S(KC_Q), TD_LBRC, KC_EXLM, TD_RBRC, S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V)}, | ||
| 347 | {S(KC_Y), TD_LT, KC_EQL, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W)}, | ||
| 348 | {S(KC_J), KC_COLN, TD_DQOT, TD_GRV, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, | ||
| 349 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 350 | }, | ||
| 351 | |||
| 352 | // ,-----------------------------------------------------------------------------------. | ||
| 353 | // | Q | H | O | U | X | ^Alt | ^GUI | G | { | + | } | V | | ||
| 354 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 355 | // | Y | I | E | A | ? | ↑Alt | ↑GUI | C | ( | * | ) | W | | ||
| 356 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 357 | // | J | : | " | / | Z | Caps |^Shift| B | P | L | F | K | | ||
| 358 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 359 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 360 | // `-----------------------------------------------------------------------------------' | ||
| 361 | |||
| 362 | [_RSHIFT] = { | ||
| 363 | {S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), TD_LCBR, KC_PLUS, TD_RCBR, S(KC_V)}, | ||
| 364 | {S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), TD_LPRN, KC_ASTR, TD_RPRN, S(KC_W)}, | ||
| 365 | {S(KC_J), TD_COLN, TD_DQOT, KC_SLSH, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K)}, | ||
| 366 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 367 | }, | ||
| 368 | #endif | ||
| 369 | |||
| 370 | // ............................................................... BEAKL Mash Up | ||
| 371 | #ifdef BEAKL810 | ||
| 372 | // ,-----------------------------------------------------------------------------------. | ||
| 373 | // | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | N | M | X | | ||
| 374 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 375 | // | K | H | E | A | . | ↑Alt | ↑GUI | C | T | R | S | W | | ||
| 376 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 377 | // | J | ; | " | I | , | Caps |^Shift| B | P | L | F | V | | ||
| 378 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 379 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 380 | // `-----------------------------------------------------------------------------------' | ||
| 381 | |||
| 382 | [_BASE] = { | ||
| 383 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 384 | {KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_R, KC_S, KC_W }, | ||
| 385 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 386 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 387 | }, | ||
| 388 | |||
| 389 | [_SHIFT] = { | ||
| 390 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 391 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 392 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 393 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 394 | }, | ||
| 395 | |||
| 396 | // ,-----------------------------------------------------------------------------------. | ||
| 397 | // | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | N | M | X | | ||
| 398 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 399 | // | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | R | S | W | | ||
| 400 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 401 | // | J | : | ! | = | ` | Caps |^Shift| B | P | L | F | V | | ||
| 402 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 403 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 404 | // `-----------------------------------------------------------------------------------' | ||
| 405 | |||
| 406 | [_LSHIFT] = { | ||
| 407 | {S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 408 | {S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 409 | {S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 410 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 411 | }, | ||
| 412 | |||
| 413 | // ,-----------------------------------------------------------------------------------. | ||
| 414 | // | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | M | X | | ||
| 415 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 416 | // | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | S | W | | ||
| 417 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 418 | // | J | : | " | I | / | Caps |^Shift| \ | $ | * | F | V | | ||
| 419 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 420 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 421 | // `-----------------------------------------------------------------------------------' | ||
| 422 | |||
| 423 | [_RSHIFT] = { | ||
| 424 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_M), S(KC_X)}, | ||
| 425 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_S), S(KC_W)}, | ||
| 426 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_F), S(KC_V)}, | ||
| 427 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 428 | }, | ||
| 429 | #endif | ||
| 430 | |||
| 431 | // .................................................................... BEAKL MU | ||
| 432 | #ifdef BEAKLMU | ||
| 433 | // ,-----------------------------------------------------------------------------------. | ||
| 434 | // | Q | Y | O | U | Z | Fn | Caps | G | D | N | M | X | | ||
| 435 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 436 | // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 437 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 438 | // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | | ||
| 439 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 440 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 441 | // `-----------------------------------------------------------------------------------' | ||
| 442 | |||
| 443 | [_BASE] = { | ||
| 444 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 445 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 446 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 447 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 448 | }, | ||
| 449 | |||
| 450 | [_SHIFT] = { | ||
| 451 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 452 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 453 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 454 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 455 | }, | ||
| 456 | |||
| 457 | // ,-----------------------------------------------------------------------------------. | ||
| 458 | // | Q | $ | { | } | Z | Fn | Caps | G | D | N | M | X | | ||
| 459 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 460 | // | K | / | < | > | ~ |Cursor| Mouse| C | T | R | S | W | | ||
| 461 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 462 | // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | | ||
| 463 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 464 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right| | ||
| 465 | // `-----------------------------------------------------------------------------------' | ||
| 466 | |||
| 467 | [_LSHIFT] = { | ||
| 468 | {S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 469 | {S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 470 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 471 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 472 | }, | ||
| 473 | |||
| 474 | // ,-----------------------------------------------------------------------------------. | ||
| 475 | // | Q | Y | O | U | Z | Fn | Caps | G | [ | ] | ^ | X | | ||
| 476 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 477 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 478 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 479 | // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 480 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 481 | // | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 482 | // `-----------------------------------------------------------------------------------' | ||
| 483 | |||
| 484 | [_RSHIFT] = { | ||
| 485 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X)}, | ||
| 486 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, | ||
| 487 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 488 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 489 | }, | ||
| 490 | #endif | ||
| 491 | |||
| 492 | // .................................................................... BEAKL SP | ||
| 493 | #ifdef BEAKLSP | ||
| 494 | // ,-----------------------------------------------------------------------------------. | ||
| 495 | // | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X | | ||
| 496 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 497 | // | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W | | ||
| 498 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 499 | // | J | ; | " | I | , | Num | Regex| B | P | L | F | V | | ||
| 500 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 501 | // | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right| | ||
| 502 | // `-----------------------------------------------------------------------------------' | ||
| 503 | |||
| 504 | [_BASE] = { | ||
| 505 | {KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X }, | ||
| 506 | {HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W }, | ||
| 507 | {KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V }, | ||
| 508 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 509 | }, | ||
| 510 | |||
| 511 | [_SHIFT] = { | ||
| 512 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 513 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 514 | {S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 515 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 516 | }, | ||
| 517 | |||
| 518 | // ,-----------------------------------------------------------------------------------. | ||
| 519 | // | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X | | ||
| 520 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 521 | // | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W | | ||
| 522 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 523 | // | J | : | ! | = | ` | Num | Regex| B | P | L | F | V | | ||
| 524 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 525 | // | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right| | ||
| 526 | // `-----------------------------------------------------------------------------------' | ||
| 527 | |||
| 528 | [_LSHIFT] = { | ||
| 529 | {S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X)}, | ||
| 530 | {S(KC_K), KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W)}, | ||
| 531 | {S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V)}, | ||
| 532 | {OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT }, | ||
| 533 | }, | ||
| 534 | |||
| 535 | // ,-----------------------------------------------------------------------------------. | ||
| 536 | // | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X | | ||
| 537 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 538 | // | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W | | ||
| 539 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 540 | // | J | : | " | I | / | Num | Regex| \ | * | . | P | V | | ||
| 541 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 542 | // | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right| | ||
| 543 | // `-----------------------------------------------------------------------------------' | ||
| 544 | |||
| 545 | [_RSHIFT] = { | ||
| 546 | {S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X)}, | ||
| 547 | {S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W)}, | ||
| 548 | {S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V)}, | ||
| 549 | {OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT }, | ||
| 550 | }, | ||
| 551 | #endif | ||
diff --git a/keyboards/planck/keymaps/sdothum/colemak.h b/keyboards/planck/keymaps/sdothum/colemak.h new file mode 100644 index 000000000..b7e9df22c --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/colemak.h | |||
| @@ -0,0 +1,125 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .............................................................. Colemak Mod-DH | ||
| 5 | #ifdef COLEMAK | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | ; | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Z | X | C | D | V | Caps |^Shift| K | H | , | . | " | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_W, KC_F, KC_P, KC_B, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, | ||
| 18 | {KC_A, KC_R, KC_S, KC_T, KC_G, CNTR_HL, CNTR_HR, KC_M, KC_N, KC_E, KC_I, KC_O }, | ||
| 19 | {KC_Z, KC_X, KC_C, KC_D, KC_V, CNTR_BL, CNTR_BR, KC_K, KC_H, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, | ||
| 25 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 26 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | Z | X | C | D | V | Caps |^Shift| K | H | / | ? | " | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 42 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 43 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | Z | X | C | D | V | Caps |^Shift| K | H | ~ | ` | " | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 59 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 60 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
| 65 | // ..................................................................... ColemaX | ||
| 66 | #ifdef COLEMAX | ||
| 67 | // ,-----------------------------------------------------------------------------------. | ||
| 68 | // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | ; | | ||
| 69 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 70 | // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | | ||
| 71 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 72 | // | X | V | F | D | P | Caps |^Shift| M | H | , | . | " | | ||
| 73 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 74 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 75 | // `-----------------------------------------------------------------------------------' | ||
| 76 | |||
| 77 | [_BASE] = { | ||
| 78 | {KC_Q, KC_W, KC_C, KC_G, KC_Z, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN}, | ||
| 79 | {KC_A, KC_R, KC_S, KC_T, KC_B, CNTR_HL, CNTR_HR, KC_K, KC_N, KC_E, KC_I, KC_O }, | ||
| 80 | {KC_X, KC_V, KC_F, KC_D, KC_P, CNTR_BL, CNTR_BR, KC_M, KC_H, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 81 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 82 | }, | ||
| 83 | |||
| 84 | [_SHIFT] = { | ||
| 85 | {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN}, | ||
| 86 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 87 | {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 88 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 89 | }, | ||
| 90 | |||
| 91 | // ,-----------------------------------------------------------------------------------. | ||
| 92 | // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 93 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 94 | // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | | ||
| 95 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 96 | // | X | V | F | D | P | Caps |^Shift| M | H | / | ? | " | | ||
| 97 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 98 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 99 | // `-----------------------------------------------------------------------------------' | ||
| 100 | |||
| 101 | [_LSHIFT] = { | ||
| 102 | {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 103 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 104 | {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 105 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 106 | }, | ||
| 107 | |||
| 108 | // ,-----------------------------------------------------------------------------------. | ||
| 109 | // | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : | | ||
| 110 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 111 | // | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O | | ||
| 112 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 113 | // | X | V | F | D | P | Caps |^Shift| M | H | ~ | ` | " | | ||
| 114 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 115 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 116 | // `-----------------------------------------------------------------------------------' | ||
| 117 | |||
| 118 | [_RSHIFT] = { | ||
| 119 | {S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN}, | ||
| 120 | {S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O)}, | ||
| 121 | {S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 122 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 123 | }, | ||
| 124 | #endif | ||
| 125 | |||
diff --git a/keyboards/planck/keymaps/sdothum/common/chord_layout.h b/keyboards/planck/keymaps/sdothum/common/chord_layout.h new file mode 100644 index 000000000..2c785d56c --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/chord_layout.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // .................................................................. Short Cuts | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | | Copy | Paste| | | | | | | | | | ||
| 8 | // |--------------------------------------------------------------+------+------+------| | ||
| 9 | // | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | | Nak | Eot | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | | | | f() | | | | | | | ||
| 14 | // | | | | | | | | f() | | | | | see _PLOVER | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_EDIT] = { | ||
| 18 | {_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 19 | {UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______}, | ||
| 20 | {_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 21 | {_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______}, | ||
| 22 | }, | ||
| 23 | |||
| 24 | // ................................................................ Adjust Layer | ||
| 25 | |||
| 26 | // ,-----------------------------------------------------------------------------------. | ||
| 27 | // |Plover| | | | | | | | | | | | | ||
| 28 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 29 | // |Aud on| | | | | | | | | | | | | ||
| 30 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 31 | // | Reset| | | | | | | | | | | | | ||
| 32 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 33 | // | | | | f() | | | | | f() | | | | | ||
| 34 | // `-----------------------------------------------------------------------------------' | ||
| 35 | |||
| 36 | [_ADJUST] = { | ||
| 37 | {PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 38 | {AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 39 | {RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}, | ||
| 40 | {_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 41 | }, | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/init.h b/keyboards/planck/keymaps/sdothum/common/init.h new file mode 100644 index 000000000..6366a19f6 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/init.h | |||
| @@ -0,0 +1,56 @@ | |||
| 1 | |||
| 2 | // ....................................................................... Audio | ||
| 3 | |||
| 4 | void matrix_init_user(void) | ||
| 5 | { | ||
| 6 | #ifdef STENO_ENABLE | ||
| 7 | steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI | ||
| 8 | #endif | ||
| 9 | #ifdef AUDIO_ENABLE | ||
| 10 | startup_user(); | ||
| 11 | #endif | ||
| 12 | } | ||
| 13 | |||
| 14 | #ifdef AUDIO_ENABLE | ||
| 15 | #ifdef BACKLIGHT_ENABLE | ||
| 16 | void led_set_user(uint8_t usb_led) | ||
| 17 | { | ||
| 18 | static uint8_t old_usb_led = 0; | ||
| 19 | _delay_ms(10); // gets rid of tick | ||
| 20 | if (!is_playing_notes()) { | ||
| 21 | if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 22 | // if capslock LED is turning on | ||
| 23 | PLAY_SONG(song_caps_on); | ||
| 24 | } | ||
| 25 | else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) { | ||
| 26 | // if capslock LED is turning off | ||
| 27 | PLAY_SONG(song_caps_off); | ||
| 28 | } | ||
| 29 | } | ||
| 30 | old_usb_led = usb_led; | ||
| 31 | } | ||
| 32 | #endif | ||
| 33 | |||
| 34 | void startup_user(void) | ||
| 35 | { | ||
| 36 | _delay_ms(20); // gets rid of tick | ||
| 37 | PLAY_SONG(song_startup); | ||
| 38 | } | ||
| 39 | |||
| 40 | void shutdown_user(void) | ||
| 41 | { | ||
| 42 | PLAY_SONG(song_goodbye); | ||
| 43 | _delay_ms(150); | ||
| 44 | stop_all_notes(); | ||
| 45 | } | ||
| 46 | |||
| 47 | void music_on_user(void) | ||
| 48 | { | ||
| 49 | music_scale_user(); | ||
| 50 | } | ||
| 51 | |||
| 52 | void music_scale_user(void) | ||
| 53 | { | ||
| 54 | PLAY_SONG(music_scale); | ||
| 55 | } | ||
| 56 | #endif | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/keycode_functions.h b/keyboards/planck/keymaps/sdothum/common/keycode_functions.h new file mode 100644 index 000000000..08c5deca5 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/keycode_functions.h | |||
| @@ -0,0 +1,656 @@ | |||
| 1 | |||
| 2 | // .......................................................... Keycode Primitives | ||
| 3 | |||
| 4 | // register simple key press | ||
| 5 | void tap_key(uint16_t keycode) | ||
| 6 | { | ||
| 7 | register_code (keycode); | ||
| 8 | unregister_code(keycode); | ||
| 9 | } | ||
| 10 | |||
| 11 | void shift_key(uint16_t keycode) | ||
| 12 | { | ||
| 13 | register_code (KC_LSFT); | ||
| 14 | tap_key (keycode); | ||
| 15 | unregister_code(KC_LSFT); | ||
| 16 | } | ||
| 17 | |||
| 18 | #define SHIFT 1 | ||
| 19 | #define NOSHIFT 0 | ||
| 20 | |||
| 21 | static uint16_t key_timer = 0; | ||
| 22 | |||
| 23 | // key press for thumb_layer() and lt_shift() macros | ||
| 24 | bool key_press(uint8_t shift, uint16_t keycode) | ||
| 25 | { | ||
| 26 | if (keycode) { | ||
| 27 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 28 | if (shift) { | ||
| 29 | shift_key(keycode); | ||
| 30 | } | ||
| 31 | else { | ||
| 32 | tap_key(keycode); | ||
| 33 | } | ||
| 34 | return true; | ||
| 35 | } | ||
| 36 | } | ||
| 37 | return false; | ||
| 38 | } | ||
| 39 | |||
| 40 | // ALT_T, CTL_T, GUI_T, SFT_T for shifted keycodes | ||
| 41 | void mt_shift(keyrecord_t *record, uint16_t modifier, uint16_t modifier2, uint16_t keycode) | ||
| 42 | { | ||
| 43 | if (record->event.pressed) { | ||
| 44 | key_timer = timer_read(); | ||
| 45 | register_code(modifier); | ||
| 46 | if (modifier2) { | ||
| 47 | register_code(modifier2); | ||
| 48 | } | ||
| 49 | } | ||
| 50 | else { | ||
| 51 | unregister_code(modifier); | ||
| 52 | if (modifier2) { | ||
| 53 | unregister_code(modifier2); | ||
| 54 | } | ||
| 55 | if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 56 | shift_key(keycode); | ||
| 57 | } | ||
| 58 | key_timer = 0; | ||
| 59 | } | ||
| 60 | } | ||
| 61 | |||
| 62 | // ................................................................... Mod Masks | ||
| 63 | |||
| 64 | // tap dance persistant mods, see process_record_user() | ||
| 65 | // keyboard_report->mods (?) appears to be cleared by tap dance | ||
| 66 | static uint8_t mods = 0; | ||
| 67 | |||
| 68 | void tap_mods(keyrecord_t *record, uint16_t keycode) | ||
| 69 | { | ||
| 70 | if (record->event.pressed) { | ||
| 71 | mods |= MOD_BIT(keycode); | ||
| 72 | } | ||
| 73 | else { | ||
| 74 | mods &= ~(MOD_BIT(keycode)); | ||
| 75 | } | ||
| 76 | } | ||
| 77 | |||
| 78 | // (un)register modifiers | ||
| 79 | void modifier(void (*f)(uint8_t)) | ||
| 80 | { | ||
| 81 | if (mods & MOD_BIT(KC_LCTL)) { | ||
| 82 | (*f)(KC_LCTL); | ||
| 83 | } | ||
| 84 | if (mods & MOD_BIT(KC_LGUI)) { | ||
| 85 | (*f)(KC_LGUI); | ||
| 86 | } | ||
| 87 | if (mods & MOD_BIT(KC_LALT)) { | ||
| 88 | (*f)(KC_LALT); | ||
| 89 | } | ||
| 90 | } | ||
| 91 | |||
| 92 | // .................................................... Triple Dance Shift/Layer | ||
| 93 | |||
| 94 | static uint8_t dt_shift = 0; | ||
| 95 | |||
| 96 | void double_shift(uint16_t keycode, uint8_t layer) | ||
| 97 | { | ||
| 98 | tap_key (keycode); | ||
| 99 | if (DT_SHIFT) { | ||
| 100 | // set_oneshot_mods(MOD_LSFT); | ||
| 101 | // layer_on(layer); | ||
| 102 | layer_on (_SHIFT); | ||
| 103 | set_oneshot_layer(_SHIFT, ONESHOT_START); | ||
| 104 | dt_shift = 1; | ||
| 105 | } | ||
| 106 | else { | ||
| 107 | layer_on(layer); | ||
| 108 | } | ||
| 109 | } | ||
| 110 | |||
| 111 | // tap dance LT (LAYER, KEY) emulation with <KEY><DOWN> -> <KEY><SHIFT> and auto-repeat extensions! | ||
| 112 | void tap_shift(qk_tap_dance_state_t *state, uint16_t keycode, uint8_t layer) | ||
| 113 | { | ||
| 114 | // double tap plus down | ||
| 115 | if (state->count > 2) { | ||
| 116 | // double enter shift | ||
| 117 | if (keycode == KC_ENT) { | ||
| 118 | tap_key (keycode); | ||
| 119 | double_shift(keycode, layer); | ||
| 120 | } | ||
| 121 | // repeating keycode | ||
| 122 | else { | ||
| 123 | register_code(keycode); | ||
| 124 | } | ||
| 125 | } | ||
| 126 | // tap plus down (or double tap): keycode (one shot) shift | ||
| 127 | else if (state->count > 1) { | ||
| 128 | double_shift(keycode, layer); | ||
| 129 | } | ||
| 130 | // down: shift | ||
| 131 | else if (state->pressed) { | ||
| 132 | layer_on(layer); | ||
| 133 | } | ||
| 134 | // tap: keycode | ||
| 135 | else { | ||
| 136 | modifier(register_code); | ||
| 137 | tap_key (keycode); | ||
| 138 | modifier(unregister_code); | ||
| 139 | } | ||
| 140 | } | ||
| 141 | |||
| 142 | void tap_reset(uint16_t keycode, uint8_t layer) | ||
| 143 | { | ||
| 144 | unregister_code(keycode); | ||
| 145 | if (DT_SHIFT && dt_shift) { | ||
| 146 | clear_oneshot_layer_state(ONESHOT_PRESSED); | ||
| 147 | dt_shift = 0; | ||
| 148 | } | ||
| 149 | else { | ||
| 150 | layer_off(layer); | ||
| 151 | } | ||
| 152 | } | ||
| 153 | |||
| 154 | // augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid <ENTER><SHIFT> sequences | ||
| 155 | void enter(qk_tap_dance_state_t *state, void *user_data) | ||
| 156 | { | ||
| 157 | tap_shift(state, KC_ENT, _RSHIFT); | ||
| 158 | } | ||
| 159 | |||
| 160 | void enter_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 161 | { | ||
| 162 | tap_reset(KC_ENT, _RSHIFT); | ||
| 163 | } | ||
| 164 | |||
| 165 | // augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid <SPACE><SHIFT> sequences | ||
| 166 | void space(qk_tap_dance_state_t *state, void *user_data) | ||
| 167 | { | ||
| 168 | tap_shift(state, KC_SPC, _LSHIFT); | ||
| 169 | } | ||
| 170 | |||
| 171 | void space_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 172 | { | ||
| 173 | tap_reset(KC_SPC, _LSHIFT); | ||
| 174 | } | ||
| 175 | |||
| 176 | // ......................................................... Triple Dance Insert | ||
| 177 | |||
| 178 | void double_max(uint8_t count, uint8_t shift, uint16_t keycode) | ||
| 179 | { | ||
| 180 | if (shift) { | ||
| 181 | shift_key(keycode); | ||
| 182 | if (count > 1) { | ||
| 183 | shift_key(keycode); | ||
| 184 | } | ||
| 185 | } | ||
| 186 | else { | ||
| 187 | tap_key(keycode); | ||
| 188 | if (count > 1) { | ||
| 189 | tap_key(keycode); | ||
| 190 | } | ||
| 191 | } | ||
| 192 | } | ||
| 193 | |||
| 194 | void colon(qk_tap_dance_state_t *state, void *user_data) | ||
| 195 | { | ||
| 196 | if (state->count > 2) { | ||
| 197 | tap_key (KC_SPC); | ||
| 198 | shift_key(KC_SCLN); | ||
| 199 | shift_key(KC_SCLN); | ||
| 200 | tap_key (KC_SPC); | ||
| 201 | } | ||
| 202 | else { | ||
| 203 | double_max(state->count, SHIFT, KC_SCLN); | ||
| 204 | } | ||
| 205 | reset_tap_dance(state); | ||
| 206 | } | ||
| 207 | |||
| 208 | void eql(qk_tap_dance_state_t *state, void *user_data) | ||
| 209 | { | ||
| 210 | if (state->count > 2) { | ||
| 211 | tap_key(KC_SPC); | ||
| 212 | tap_key(KC_SLSH); | ||
| 213 | tap_key(KC_EQL); | ||
| 214 | tap_key(KC_SPC); | ||
| 215 | } | ||
| 216 | else { | ||
| 217 | double_max(state->count, NOSHIFT, KC_EQL); | ||
| 218 | } | ||
| 219 | reset_tap_dance(state); | ||
| 220 | } | ||
| 221 | |||
| 222 | void greater(qk_tap_dance_state_t *state, void *user_data) | ||
| 223 | { | ||
| 224 | if (state->count > 2) { | ||
| 225 | tap_key (KC_SPC); | ||
| 226 | tap_key (KC_MINS); | ||
| 227 | shift_key(KC_DOT); | ||
| 228 | tap_key (KC_SPC); | ||
| 229 | } | ||
| 230 | else { | ||
| 231 | double_max(state->count, SHIFT, KC_DOT); | ||
| 232 | } | ||
| 233 | reset_tap_dance(state); | ||
| 234 | } | ||
| 235 | |||
| 236 | void lesser(qk_tap_dance_state_t *state, void *user_data) | ||
| 237 | { | ||
| 238 | if (state->count > 2) { | ||
| 239 | tap_key (KC_SPC); | ||
| 240 | shift_key(KC_COMM); | ||
| 241 | tap_key (KC_MINS); | ||
| 242 | tap_key (KC_SPC); | ||
| 243 | } | ||
| 244 | else { | ||
| 245 | double_max(state->count, SHIFT, KC_COMM); | ||
| 246 | } | ||
| 247 | reset_tap_dance(state); | ||
| 248 | } | ||
| 249 | |||
| 250 | void tilde(qk_tap_dance_state_t *state, void *user_data) | ||
| 251 | { | ||
| 252 | // double tap plus down: repeating keycode | ||
| 253 | if (state->count > 2) { | ||
| 254 | register_code(KC_LSFT); | ||
| 255 | register_code(KC_GRV); | ||
| 256 | } | ||
| 257 | // tap: keycode | ||
| 258 | else { | ||
| 259 | shift_key(KC_GRV); | ||
| 260 | // double tap: unix home directory | ||
| 261 | if (state->count > 1) { | ||
| 262 | tap_key(KC_SLSH); | ||
| 263 | } | ||
| 264 | } | ||
| 265 | } | ||
| 266 | |||
| 267 | void tilde_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 268 | { | ||
| 269 | unregister_code(KC_GRV); | ||
| 270 | unregister_code(KC_LSFT); | ||
| 271 | } | ||
| 272 | |||
| 273 | // ............................................................. Tap Dance Pairs | ||
| 274 | |||
| 275 | // tap dance shift rules | ||
| 276 | #define S_NEVER 0 | ||
| 277 | #define S_SINGLE 1 | ||
| 278 | #define S_DOUBLE 2 | ||
| 279 | #define S_ALWAYS S_SINGLE | S_DOUBLE | ||
| 280 | |||
| 281 | void symbol_pair(uint8_t shift, uint16_t left, uint16_t right) | ||
| 282 | { | ||
| 283 | if (shift & S_DOUBLE) { | ||
| 284 | shift_key(left); | ||
| 285 | shift_key(right); | ||
| 286 | } | ||
| 287 | else { | ||
| 288 | tap_key(left); | ||
| 289 | tap_key(right); | ||
| 290 | } | ||
| 291 | } | ||
| 292 | |||
| 293 | #define CLOSE 1 | ||
| 294 | |||
| 295 | // tap dance symbol pairs | ||
| 296 | void tap_pair(qk_tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close) | ||
| 297 | { | ||
| 298 | // triple tap: left right with cursor between symbol pair a la vim :-) | ||
| 299 | if (state->count > 2) { | ||
| 300 | symbol_pair(shift, left, right); | ||
| 301 | tap_key (KC_LEFT); | ||
| 302 | } | ||
| 303 | // double tap: left right | ||
| 304 | else if (state->count > 1) { | ||
| 305 | symbol_pair(shift, left, right); | ||
| 306 | } | ||
| 307 | // down: modifier | ||
| 308 | else if (state->pressed) { | ||
| 309 | if (modifier) { | ||
| 310 | register_code(modifier); | ||
| 311 | } | ||
| 312 | } | ||
| 313 | // tap: left (close: right) | ||
| 314 | else { | ||
| 315 | if (shift & S_SINGLE) { | ||
| 316 | shift_key(close ? right : left); | ||
| 317 | } | ||
| 318 | else { | ||
| 319 | tap_key(close ? right : left); | ||
| 320 | } | ||
| 321 | } | ||
| 322 | if (!modifier) { | ||
| 323 | reset_tap_dance(state); | ||
| 324 | } | ||
| 325 | } | ||
| 326 | |||
| 327 | void doublequote(qk_tap_dance_state_t *state, void *user_data) | ||
| 328 | { | ||
| 329 | tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0); | ||
| 330 | } | ||
| 331 | |||
| 332 | void grave(qk_tap_dance_state_t *state, void *user_data) | ||
| 333 | { | ||
| 334 | tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0); | ||
| 335 | } | ||
| 336 | |||
| 337 | void lbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 338 | { | ||
| 339 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0); | ||
| 340 | } | ||
| 341 | |||
| 342 | void lcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 343 | { | ||
| 344 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0); | ||
| 345 | } | ||
| 346 | |||
| 347 | void lparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 348 | { | ||
| 349 | tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0); | ||
| 350 | } | ||
| 351 | |||
| 352 | void lparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 353 | { | ||
| 354 | unregister_code(KC_LCTL); | ||
| 355 | } | ||
| 356 | |||
| 357 | void quote(qk_tap_dance_state_t *state, void *user_data) | ||
| 358 | { | ||
| 359 | tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0); | ||
| 360 | } | ||
| 361 | |||
| 362 | void rangle(qk_tap_dance_state_t *state, void *user_data) | ||
| 363 | { | ||
| 364 | tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE); | ||
| 365 | } | ||
| 366 | |||
| 367 | void rbrace(qk_tap_dance_state_t *state, void *user_data) | ||
| 368 | { | ||
| 369 | tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 370 | } | ||
| 371 | |||
| 372 | void rcurly(qk_tap_dance_state_t *state, void *user_data) | ||
| 373 | { | ||
| 374 | tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE); | ||
| 375 | } | ||
| 376 | |||
| 377 | void rparen(qk_tap_dance_state_t *state, void *user_data) | ||
| 378 | { | ||
| 379 | tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE); | ||
| 380 | } | ||
| 381 | |||
| 382 | void rparen_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 383 | { | ||
| 384 | unregister_code(KC_LCTL); | ||
| 385 | } | ||
| 386 | |||
| 387 | // ............................................................ Tap Dance Insert | ||
| 388 | |||
| 389 | void comma(qk_tap_dance_state_t *state, void *user_data) | ||
| 390 | { | ||
| 391 | tap_key(KC_COMM); | ||
| 392 | if (state->count > 1) { | ||
| 393 | tap_key(KC_SPC); | ||
| 394 | } | ||
| 395 | reset_tap_dance(state); | ||
| 396 | } | ||
| 397 | |||
| 398 | void dot(qk_tap_dance_state_t *state, void *user_data) | ||
| 399 | { | ||
| 400 | if (state->count > 1) { | ||
| 401 | shift_key(KC_COLN); | ||
| 402 | } | ||
| 403 | else { | ||
| 404 | tap_key(KC_DOT); | ||
| 405 | } | ||
| 406 | reset_tap_dance(state); | ||
| 407 | } | ||
| 408 | |||
| 409 | // compile time macro string, see functions/hardware planck script | ||
| 410 | void private(qk_tap_dance_state_t *state, void *user_data) | ||
| 411 | { | ||
| 412 | if (state->count > 1) { | ||
| 413 | #ifdef PRIVATE_STRING | ||
| 414 | #include "private_string.h" | ||
| 415 | #endif | ||
| 416 | } | ||
| 417 | reset_tap_dance(state); | ||
| 418 | } | ||
| 419 | |||
| 420 | // config.h defined string | ||
| 421 | void send(qk_tap_dance_state_t *state, void *user_data) | ||
| 422 | { | ||
| 423 | if (state->count > 1) { | ||
| 424 | SEND_STRING(PUBLIC_STRING); | ||
| 425 | } | ||
| 426 | reset_tap_dance(state); | ||
| 427 | } | ||
| 428 | |||
| 429 | // .......................................................... Tap Dance One Shot | ||
| 430 | |||
| 431 | void caps(qk_tap_dance_state_t *state, void *user_data) | ||
| 432 | { | ||
| 433 | if (state->count > 1) { | ||
| 434 | tap_key(KC_CAPS); | ||
| 435 | } | ||
| 436 | else { | ||
| 437 | set_oneshot_mods(MOD_LSFT); | ||
| 438 | register_code (KC_LSFT); // on hold down | ||
| 439 | } | ||
| 440 | } | ||
| 441 | |||
| 442 | void caps_reset(qk_tap_dance_state_t *state, void *user_data) | ||
| 443 | { | ||
| 444 | unregister_code(KC_LSFT); | ||
| 445 | } | ||
| 446 | |||
| 447 | // ................................................................... Tap Dance | ||
| 448 | |||
| 449 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 450 | [_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset) | ||
| 451 | ,[_COLN] = ACTION_TAP_DANCE_FN (colon) | ||
| 452 | ,[_COMM] = ACTION_TAP_DANCE_FN (comma) | ||
| 453 | ,[_DOT] = ACTION_TAP_DANCE_FN (dot) | ||
| 454 | ,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote) | ||
| 455 | ,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset) | ||
| 456 | ,[_EQL] = ACTION_TAP_DANCE_FN (eql) | ||
| 457 | ,[_GRV] = ACTION_TAP_DANCE_FN (grave) | ||
| 458 | ,[_GT] = ACTION_TAP_DANCE_FN (greater) | ||
| 459 | ,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace) | ||
| 460 | ,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly) | ||
| 461 | ,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset) | ||
| 462 | ,[_LT] = ACTION_TAP_DANCE_FN (lesser) | ||
| 463 | ,[_PRIV] = ACTION_TAP_DANCE_FN (private) | ||
| 464 | ,[_QUOT] = ACTION_TAP_DANCE_FN (quote) | ||
| 465 | ,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace) | ||
| 466 | ,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly) | ||
| 467 | ,[_RNGL] = ACTION_TAP_DANCE_FN (rangle) | ||
| 468 | ,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset) | ||
| 469 | ,[_SEND] = ACTION_TAP_DANCE_FN (send) | ||
| 470 | ,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset) | ||
| 471 | ,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset) | ||
| 472 | }; | ||
| 473 | |||
| 474 | // .............................................................. Dynamic Layers | ||
| 475 | |||
| 476 | #define LEFT 1 | ||
| 477 | #define RIGHT 2 | ||
| 478 | static uint8_t thumb = 0; | ||
| 479 | |||
| 480 | // LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user() | ||
| 481 | // up, up -> _BASE | ||
| 482 | // up, down -> _SYMBOL | ||
| 483 | // down, up -> _NUMBER | ||
| 484 | // down, down -> _MOUSE // see layer keycodes that raise mouse layer | ||
| 485 | #define THUMBS_DOWN _MOUSE // layer | ||
| 486 | |||
| 487 | static uint8_t overlayer = 0; | ||
| 488 | |||
| 489 | // left right thumb layer combinations | ||
| 490 | void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer) | ||
| 491 | { | ||
| 492 | if (record->event.pressed) { | ||
| 493 | // layer_on via tap_layer(), see process_record_user() | ||
| 494 | key_timer = timer_read(); | ||
| 495 | thumb = thumb | side; | ||
| 496 | } | ||
| 497 | else { | ||
| 498 | layer_off(thumb_dn_layer); | ||
| 499 | // opposite thumb_layer() thumb may have switched effective layer! | ||
| 500 | if (overlayer) { | ||
| 501 | layer_off(overlayer); | ||
| 502 | overlayer = 0; | ||
| 503 | } | ||
| 504 | if (!key_press(shift, keycode)) { | ||
| 505 | layer_off(THUMBS_DOWN); // both thumbs needed | ||
| 506 | // opposite thumb down? see left right combination layer table above | ||
| 507 | if (thumb & (side == LEFT ? RIGHT : LEFT)) { | ||
| 508 | layer_on(thumb_up_layer); | ||
| 509 | overlayer = thumb_up_layer; | ||
| 510 | } | ||
| 511 | } | ||
| 512 | clear_mods(); | ||
| 513 | thumb = thumb & ~side; | ||
| 514 | key_timer = 0; | ||
| 515 | } | ||
| 516 | } | ||
| 517 | |||
| 518 | // #ifdef STENO_ENABLE | ||
| 519 | // // LT for steno keycode | ||
| 520 | // void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 521 | // { | ||
| 522 | // if (record->event.pressed) { | ||
| 523 | // key_timer = timer_read(); | ||
| 524 | // if (keycode) { | ||
| 525 | // process_steno(keycode, record); | ||
| 526 | // } | ||
| 527 | // layer_on(layer); | ||
| 528 | // } | ||
| 529 | // else { | ||
| 530 | // layer_off(layer); | ||
| 531 | // if (keycode) { | ||
| 532 | // if (timer_elapsed(key_timer) < TAPPING_TERM) { | ||
| 533 | // process_steno(keycode, record); | ||
| 534 | // } | ||
| 535 | // else { | ||
| 536 | // // clear pressed state (request push of updated) process_steno.c and .h | ||
| 537 | // // steno_clear_state(); | ||
| 538 | // } | ||
| 539 | // } | ||
| 540 | // key_timer = 0; | ||
| 541 | // } | ||
| 542 | // } | ||
| 543 | // #endif | ||
| 544 | |||
| 545 | // LT for S(keycode) | ||
| 546 | void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer) | ||
| 547 | { | ||
| 548 | if (record->event.pressed) { | ||
| 549 | key_timer = timer_read(); | ||
| 550 | layer_on(layer); | ||
| 551 | } | ||
| 552 | else { | ||
| 553 | layer_off(layer); | ||
| 554 | // for shifted keycodes, hence, LT_SHIFT | ||
| 555 | key_press(SHIFT, keycode); | ||
| 556 | clear_mods(); | ||
| 557 | key_timer = 0; | ||
| 558 | } | ||
| 559 | } | ||
| 560 | |||
| 561 | // set layer asap to overcome macro latency errors, notably tap dance and LT usage | ||
| 562 | // this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer() | ||
| 563 | void tap_layer(keyrecord_t *record, uint8_t layer) | ||
| 564 | { | ||
| 565 | if (record->event.pressed) { | ||
| 566 | layer_on(layer); | ||
| 567 | } | ||
| 568 | else { | ||
| 569 | layer_off(layer); | ||
| 570 | } | ||
| 571 | } | ||
| 572 | |||
| 573 | // ..................................................................... Keymaps | ||
| 574 | |||
| 575 | // void persistant_default_layer_set(uint16_t default_layer) | ||
| 576 | // { | ||
| 577 | // eeconfig_update_default_layer(default_layer); | ||
| 578 | // default_layer_set (default_layer); | ||
| 579 | // } | ||
| 580 | |||
| 581 | void clear_layers(void) | ||
| 582 | { | ||
| 583 | uint8_t layer; | ||
| 584 | for (layer = 0; layer < _END_LAYERS; layer++) { | ||
| 585 | layer_off(layer); | ||
| 586 | } | ||
| 587 | } | ||
| 588 | |||
| 589 | #ifdef CENTER_TT | ||
| 590 | static uint16_t tt_keycode = 0; // current TT keycode | ||
| 591 | |||
| 592 | void clear_tt(void) | ||
| 593 | { | ||
| 594 | if (tt_keycode == KC_CAPS) { | ||
| 595 | tap_key(KC_CAPS); // clear capslock | ||
| 596 | } | ||
| 597 | tt_keycode = 0; | ||
| 598 | clear_layers(); | ||
| 599 | set_single_persistent_default_layer(_BASE); | ||
| 600 | } | ||
| 601 | #endif | ||
| 602 | |||
| 603 | // txbolt plover run state | ||
| 604 | static uint8_t plover = 0; | ||
| 605 | |||
| 606 | void base_layer(void) | ||
| 607 | { | ||
| 608 | #ifdef AUDIO_ENABLE | ||
| 609 | if (plover) { | ||
| 610 | PLAY_SONG(song_plover_gb); | ||
| 611 | } | ||
| 612 | else { | ||
| 613 | PLAY_SONG(song_qwerty); | ||
| 614 | } | ||
| 615 | #endif | ||
| 616 | clear_layers(); | ||
| 617 | set_single_persistent_default_layer(_BASE); | ||
| 618 | } | ||
| 619 | |||
| 620 | void toggle_plover(uint8_t state) | ||
| 621 | { | ||
| 622 | if (plover != state) { | ||
| 623 | #ifdef PLOVER_KEYBIND | ||
| 624 | #include "plover_keybind.h" | ||
| 625 | #endif | ||
| 626 | plover = state; | ||
| 627 | } | ||
| 628 | } | ||
| 629 | |||
| 630 | void steno(keyrecord_t *record) | ||
| 631 | { | ||
| 632 | if (record->event.pressed) { | ||
| 633 | #ifdef AUDIO_ENABLE | ||
| 634 | PLAY_SONG(song_plover); | ||
| 635 | #endif | ||
| 636 | clear_layers(); | ||
| 637 | layer_on(_PLOVER); | ||
| 638 | if (!eeconfig_is_enabled()) { | ||
| 639 | eeconfig_init(); | ||
| 640 | } | ||
| 641 | keymap_config.raw = eeconfig_read_keymap(); | ||
| 642 | keymap_config.nkro = 1; | ||
| 643 | eeconfig_update_keymap(keymap_config.raw); | ||
| 644 | if (!plover) { | ||
| 645 | toggle_plover(1); | ||
| 646 | } | ||
| 647 | } | ||
| 648 | } | ||
| 649 | |||
| 650 | void steno_exit(keyrecord_t *record) | ||
| 651 | { | ||
| 652 | if (record->event.pressed) { | ||
| 653 | base_layer(); | ||
| 654 | toggle_plover(0); | ||
| 655 | } | ||
| 656 | } | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h b/keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h new file mode 100644 index 000000000..4824b82a0 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/number_fkey_layout.h | |||
| @@ -0,0 +1,87 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | #ifdef SHIFT_SYMBOLS | ||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | | f() | | | | 0 | = | | | | | ||
| 14 | // | | | | f() | | | | = | 0 | | | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_NUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 23 | #else | ||
| 24 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | #else | ||
| 28 | // .-----------------------------------------------------------------------------------. | ||
| 29 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 30 | // |-----------------------------------------------------------------------------------| | ||
| 31 | // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | | # | X | G | | | | , | 1 | 2 | 3 | + | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | f() | | | | 0 | = | | | | | ||
| 36 | // | | | | f() | | | | = | 0 | | | | | ||
| 37 | // '-----------------------------------------------------------------------------------' | ||
| 38 | |||
| 39 | [_NUMBER] = { | ||
| 40 | {_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 41 | {OS_CTL, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 42 | {_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 43 | #ifdef THUMB_0 | ||
| 44 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___}, | ||
| 45 | #else | ||
| 46 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___}, | ||
| 47 | #endif | ||
| 48 | }, | ||
| 49 | |||
| 50 | // .-----------------------------------------------------------------------------------. | ||
| 51 | // | | | | | | | | { | & | ? | : | } | | ||
| 52 | // |-----------------------------------------------------------------------------------| | ||
| 53 | // | | | | f() | | | | ( | $ | % | ^ | ) | | ||
| 54 | // |-----------------------------------------------------------------------------------| | ||
| 55 | // | | | | | | | | [ | < | ~ | > | ] | | ||
| 56 | // |-----------------------------------------------------------------------------------| | ||
| 57 | // | | | | f() | | | | \ | | | | | | | ||
| 58 | // '-----------------------------------------------------------------------------------' | ||
| 59 | |||
| 60 | [_NUMSYM] = { | ||
| 61 | {_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR}, | ||
| 62 | {___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN}, | ||
| 63 | {_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC}, | ||
| 64 | {___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___}, | ||
| 65 | }, | ||
| 66 | #endif | ||
| 67 | |||
| 68 | // ............ .................................................. Function Keys | ||
| 69 | |||
| 70 | // .-----------------------------------------------------------------------------------. | ||
| 71 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 76 | // |-----------------------------------------------------------------------------------| | ||
| 77 | // | | | | | | f() | | + | | | | | | ||
| 78 | // | | | | | f() | | | + | | | | | see _PLOVER | ||
| 79 | // '-----------------------------------------------------------------------------------' | ||
| 80 | |||
| 81 | [_FNCKEY] = { | ||
| 82 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 83 | {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 84 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 85 | {_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______}, | ||
| 86 | }, | ||
| 87 | |||
diff --git a/keyboards/planck/keymaps/sdothum/common/plover_keybind.h b/keyboards/planck/keymaps/sdothum/common/plover_keybind.h new file mode 100644 index 000000000..88ec727bf --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/plover_keybind.h | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | |||
| 2 | // simple window manager specific plover keybind hook | ||
| 3 | |||
| 4 | // toggle plover application, see herbstluftwm/config/appbinds | ||
| 5 | register_code (KC_LGUI); | ||
| 6 | shift_key (KC_RGHT); | ||
| 7 | unregister_code(KC_LGUI); | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/sounds.h b/keyboards/planck/keymaps/sdothum/common/sounds.h new file mode 100644 index 000000000..1bfc7a6da --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/sounds.h | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | |||
| 2 | // ................................................................ Audio Sounds | ||
| 3 | |||
| 4 | #ifdef AUDIO_ENABLE | ||
| 5 | float song_startup [][2] = SONG(STARTUP_SOUND); | ||
| 6 | float song_colemak [][2] = SONG(COLEMAK_SOUND); | ||
| 7 | float song_qwerty [][2] = SONG(QWERTY_SOUND); | ||
| 8 | float song_plover [][2] = SONG(PLOVER_SOUND); | ||
| 9 | float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||
| 10 | float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND); | ||
| 11 | float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND); | ||
| 12 | float music_scale [][2] = SONG(MUSIC_SCALE_SOUND); | ||
| 13 | float song_goodbye [][2] = SONG(GOODBYE_SOUND); | ||
| 14 | #endif | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/steno_layout.h b/keyboards/planck/keymaps/sdothum/common/steno_layout.h new file mode 100644 index 000000000..ab4a6fe01 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/steno_layout.h | |||
| @@ -0,0 +1,39 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Plover | ||
| 5 | #ifdef STENO_ENABLE | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | # | # | # | # | # | # | # | # | # | # | # | # | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | | A | O | E | U | | | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_PLOVER] = { | ||
| 17 | {STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC }, | ||
| 18 | {BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR }, | ||
| 19 | {BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR }, | ||
| 20 | {_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______}, | ||
| 21 | }, | ||
| 22 | #else | ||
| 23 | // ,-----------------------------------------------------------------------------------. | ||
| 24 | // | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | ||
| 25 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 26 | // | Base | S | T | P | H | * | * | F | P | L | T | D | | ||
| 27 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 28 | // | Base | S | K | W | R | * | * | R | B | G | S | Z | | ||
| 29 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 30 | // | | A | O | E | U | | | ||
| 31 | // `-----------------------------------------------------------------------------------' | ||
| 32 | |||
| 33 | [_PLOVER] = { | ||
| 34 | {KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, | ||
| 35 | {BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, | ||
| 36 | {BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
| 37 | {_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______}, | ||
| 38 | }, | ||
| 39 | #endif | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h b/keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h new file mode 100644 index 000000000..2edfe1a04 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/symbol_guifn_layout.h | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ..................................................... Symbol Navigation Layer | ||
| 5 | #ifdef SHIFT_SYMBOLS | ||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | ~ | * | & | | | | | Home | Up | End | PgUp | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | Ctrl | ^ | % | $ | | | | | Left | Down | Right| PgDn | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | @ | ! | | | | | | | | | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | | |Adjust| \ | | | | f() | | | | | ||
| 14 | // '-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_SYMBOL] = { | ||
| 17 | {_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 18 | {OS_CTL, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 19 | {_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 20 | {___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 21 | }, | ||
| 22 | #else | ||
| 23 | // .-----------------------------------------------------------------------------------. | ||
| 24 | // | { | . | * | & | } | | | | Home | Up | End | PgUp | | ||
| 25 | // |-----------------------------------------------------------------------------------| | ||
| 26 | // | ( | ^ | % | $ | ) | | | | Left | Down | Right| PgDn | | ||
| 27 | // |-----------------------------------------------------------------------------------| | ||
| 28 | // | [ | # | @ | ! | ] | | | | | | | | | ||
| 29 | // |-----------------------------------------------------------------------------------| | ||
| 30 | // | | | | | | \ | | | | f() | | | | | ||
| 31 | // '-----------------------------------------------------------------------------------' | ||
| 32 | |||
| 33 | [_SYMBOL] = { | ||
| 34 | {KC_LCBR, KC_DOT, KC_ASTR, KC_AMPR, TD_RCBR, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 35 | {SM_LPRN, SM_CIRC, SM_PERC, SM_DLR, TD_RPRN, _______, _______, _______, LT_LFTX, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 36 | {KC_LBRC, KC_HASH, KC_AT, KC_EXLM, TD_RBRC, _______, _______, _______, _______, _______, _______, _______}, | ||
| 37 | {___x___, ___x___, ___x___, SL_PIPE, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 38 | }, | ||
| 39 | |||
| 40 | // .-----------------------------------------------------------------------------------. | ||
| 41 | // | | ? | + | ~ | | | | | | | | | | ||
| 42 | // |-----------------------------------------------------------------------------------| | ||
| 43 | // | | < | = | > | | | | | f() | | | | | ||
| 44 | // |-----------------------------------------------------------------------------------| | ||
| 45 | // | | 3 | 2 | 1 | | | | | | | | | | ||
| 46 | // |-----------------------------------------------------------------------------------| | ||
| 47 | // | | | | | | | | | f() | | | | | ||
| 48 | // '-----------------------------------------------------------------------------------' | ||
| 49 | |||
| 50 | [_SYMREG] = { | ||
| 51 | {___x___, KC_QUES, KC_PLUS, KC_TILD, ___x___, _______, _______, _______, ___x___, ___x___, ___x___, ___x___}, | ||
| 52 | {___x___, KC_LT, KC_EQL, TD_RNGL, ___x___, _______, _______, _______, ___fn__, ___x___, ___x___, ___x___}, | ||
| 53 | {___x___, KC_3, KC_2, KC_1, ___x___, _______, _______, _______, _______, _______, _______, _______}, | ||
| 54 | {___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___}, | ||
| 55 | }, | ||
| 56 | #endif | ||
| 57 | |||
| 58 | // ............................................................... Mouse Actions | ||
| 59 | |||
| 60 | // .-----------------------------------------------------------------------------------. | ||
| 61 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 62 | // |-----------------------------------------------------------------------------------| | ||
| 63 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 64 | // |-----------------------------------------------------------------------------------| | ||
| 65 | // | | | | | | | | | | | | | | ||
| 66 | // |-----------------------------------------------------------------------------------| | ||
| 67 | // | | | | | f() | | | | f() | | | | | ||
| 68 | // '-----------------------------------------------------------------------------------' | ||
| 69 | |||
| 70 | [_MOUSE] = { | ||
| 71 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 72 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 73 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 74 | {_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______}, | ||
| 75 | }, | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/tapdance.h b/keyboards/planck/keymaps/sdothum/common/tapdance.h new file mode 100644 index 000000000..d778286bf --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/tapdance.h | |||
| @@ -0,0 +1,49 @@ | |||
| 1 | |||
| 2 | // tap dance keys | ||
| 3 | enum tap_dance { | ||
| 4 | _CAPS = 0 | ||
| 5 | ,_COLN | ||
| 6 | ,_COMM | ||
| 7 | ,_DOT | ||
| 8 | ,_DQOT | ||
| 9 | ,_ENT | ||
| 10 | ,_EQL | ||
| 11 | ,_GRV | ||
| 12 | ,_GT | ||
| 13 | ,_LBRC | ||
| 14 | ,_LCBR | ||
| 15 | ,_LPRN | ||
| 16 | ,_LT | ||
| 17 | ,_PRIV | ||
| 18 | ,_QUOT | ||
| 19 | ,_RBRC | ||
| 20 | ,_RCBR | ||
| 21 | ,_RNGL | ||
| 22 | ,_RPRN | ||
| 23 | ,_SEND | ||
| 24 | ,_SPC | ||
| 25 | ,_TILD | ||
| 26 | }; | ||
| 27 | |||
| 28 | #define TD_CAPS TD(_CAPS) | ||
| 29 | #define TD_COLN TD(_COLN) | ||
| 30 | #define TD_COMM TD(_COMM) | ||
| 31 | #define TD_DOT TD(_DOT) | ||
| 32 | #define TD_DQOT TD(_DQOT) | ||
| 33 | #define TD_ENT TD(_ENT) | ||
| 34 | #define TD_EQL TD(_EQL) | ||
| 35 | #define TD_GRV TD(_GRV) | ||
| 36 | #define TD_GT TD(_GT) | ||
| 37 | #define TD_LBRC TD(_LBRC) | ||
| 38 | #define TD_LCBR TD(_LCBR) | ||
| 39 | #define TD_LPRN TD(_LPRN) | ||
| 40 | #define TD_LT TD(_LT) | ||
| 41 | #define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h | ||
| 42 | #define TD_QUOT TD(_QUOT) | ||
| 43 | #define TD_RBRC TD(_RBRC) | ||
| 44 | #define TD_RCBR TD(_RCBR) | ||
| 45 | #define TD_RNGL TD(_RNGL) | ||
| 46 | #define TD_RPRN TD(_RPRN) | ||
| 47 | #define TD_SEND TD(_SEND) // config.h defined macro string | ||
| 48 | #define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc | ||
| 49 | #define TD_TILD TD(_TILD) | ||
diff --git a/keyboards/planck/keymaps/sdothum/common/toggle_layout.h b/keyboards/planck/keymaps/sdothum/common/toggle_layout.h new file mode 100644 index 000000000..504a1ff57 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/common/toggle_layout.h | |||
| @@ -0,0 +1,102 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ......................................................... Number Keypad Layer | ||
| 5 | |||
| 6 | // .-----------------------------------------------------------------------------------. | ||
| 7 | // | | F | E | D | | | | / | 7 | 8 | 9 | * | | ||
| 8 | // |-----------------------------------------------------------------------------------| | ||
| 9 | // | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - | | ||
| 10 | // |-----------------------------------------------------------------------------------| | ||
| 11 | // | | # | G | \ | | | | , | 1 | 2 | 3 | + | | ||
| 12 | // |-----------------------------------------------------------------------------------| | ||
| 13 | // | | f() | Space| 0 | = | | | ||
| 14 | // | | f() | Space| = | 0 | | | ||
| 15 | // '-----------------------------------------------------------------------------------' | ||
| 16 | |||
| 17 | [_TTNUMBER] = { | ||
| 18 | {_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR}, | ||
| 19 | {OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS}, | ||
| 20 | {_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS}, | ||
| 21 | #ifdef THUMB_0 | ||
| 22 | {_______, _______, _______, _______, TT_ESC, KC_SPC, KC_0, LT_EQL, _______, _______, _______, _______}, | ||
| 23 | #else | ||
| 24 | {_______, _______, _______, _______, TT_ESC, KC_SPC, KC_EQL, LT_0, _______, _______, _______, _______}, | ||
| 25 | #endif | ||
| 26 | }, | ||
| 27 | |||
| 28 | // ............ .................................................. Function Keys | ||
| 29 | |||
| 30 | // .-----------------------------------------------------------------------------------. | ||
| 31 | // | | | | | | | | | F7 | F8 | F9 | F12 | | ||
| 32 | // |-----------------------------------------------------------------------------------| | ||
| 33 | // | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 | | ||
| 34 | // |-----------------------------------------------------------------------------------| | ||
| 35 | // | | | | | | | | | F1 | F2 | F3 | F10 | | ||
| 36 | // |-----------------------------------------------------------------------------------| | ||
| 37 | // | | f() | | + | | | | ||
| 38 | // '-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_TTFNCKEY] = { | ||
| 41 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 }, | ||
| 42 | {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 }, | ||
| 43 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 }, | ||
| 44 | {_______, _______, _______, _______, TT_ESC, _______, KC_PLUS, _______, _______, _______, _______, _______}, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ....................................................................... Regex | ||
| 48 | |||
| 49 | // ,-----------------------------------------------------------------------------------. | ||
| 50 | // | | ~ | { | } | & | | | % | [ | ] | @ | | | ||
| 51 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 52 | // | | ^ | < | > | ? | | | | | ( | ) | $ | | | ||
| 53 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 54 | // | | : | ! | = | / | | | \ | * | . | # | | | ||
| 55 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 56 | // | | f() | - | + | Space| | | ||
| 57 | // `-----------------------------------------------------------------------------------' | ||
| 58 | |||
| 59 | [_TTREGEX] = { | ||
| 60 | {___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___}, | ||
| 61 | {___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___}, | ||
| 62 | {___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___}, | ||
| 63 | {_______, _______, _______, _______, TT_ESC, KC_MINS, KC_PLUS, KC_SPC, _______, _______, _______, _______}, | ||
| 64 | }, | ||
| 65 | |||
| 66 | // ............................................................ Navigation Layer | ||
| 67 | |||
| 68 | // .-----------------------------------------------------------------------------------. | ||
| 69 | // | | | | | | | | | Home | Up | End | PgUp | | ||
| 70 | // |-----------------------------------------------------------------------------------| | ||
| 71 | // | Ctrl | GUI | Alt | Shift| | | | | Left | Down | Right| PgDn | | ||
| 72 | // |-----------------------------------------------------------------------------------| | ||
| 73 | // | | | | | | | | | | | | | | ||
| 74 | // |-----------------------------------------------------------------------------------| | ||
| 75 | // | | f() | | | | | | ||
| 76 | // '-----------------------------------------------------------------------------------' | ||
| 77 | |||
| 78 | [_TTCURSOR] = { | ||
| 79 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP}, | ||
| 80 | {OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN}, | ||
| 81 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 82 | {_______, _______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______}, | ||
| 83 | }, | ||
| 84 | |||
| 85 | // ............................................................... Mouse Actions | ||
| 86 | |||
| 87 | // .-----------------------------------------------------------------------------------. | ||
| 88 | // | | | | | | | | | Left | Up | Right| Up | | ||
| 89 | // |-----------------------------------------------------------------------------------| | ||
| 90 | // | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down | | ||
| 91 | // |-----------------------------------------------------------------------------------| | ||
| 92 | // | | | | | | | | | | | | | | ||
| 93 | // |-----------------------------------------------------------------------------------| | ||
| 94 | // | | f() | | | | | | ||
| 95 | // '-----------------------------------------------------------------------------------' | ||
| 96 | |||
| 97 | [_TTMOUSE] = { | ||
| 98 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U}, | ||
| 99 | {_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D}, | ||
| 100 | {_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______}, | ||
| 101 | {_______, _______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______}, | ||
| 102 | }, | ||
diff --git a/keyboards/planck/keymaps/sdothum/config.h b/keyboards/planck/keymaps/sdothum/config.h new file mode 100644 index 000000000..4b2cdeece --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/config.h | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | #ifndef CONFIG_USER_H | ||
| 2 | #define CONFIG_USER_H | ||
| 3 | |||
| 4 | #include "../../config.h" | ||
| 5 | |||
| 6 | // required because lower/raise modifiers are redefined by colemak-dh | ||
| 7 | #define PREVENT_STUCK_MODIFIERS | ||
| 8 | |||
| 9 | // tap dance key press termination interval | ||
| 10 | #define TAPPING_TERM 250 | ||
| 11 | |||
| 12 | // smooth mouse motion | ||
| 13 | // #define MOUSEKEY_INTERVAL 20 | ||
| 14 | // #define MOUSEKEY_DELAY 0 | ||
| 15 | // #define MOUSEKEY_TIME_TO_MAX 60 | ||
| 16 | // #define MOUSEKEY_MAX_SPEED 7 | ||
| 17 | // #define MOUSEKEY_WHEEL_DELAY 0 | ||
| 18 | |||
| 19 | // compile time macro string, see functions/hardware planck script (undefine otherwise) | ||
| 20 | #define PRIVATE_STRING | ||
| 21 | |||
| 22 | // compile time macro string, must be in quotes | ||
| 23 | #define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n" | ||
| 24 | |||
| 25 | // thumb key tap-shift() double tap: one shot shift (0) off (1) on | ||
| 26 | #define DT_SHIFT 1 | ||
| 27 | |||
| 28 | // number layer 0 position KEYPAD_0, THUMB_0 | ||
| 29 | #define THUMB_0 | ||
| 30 | |||
| 31 | // home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise) | ||
| 32 | #define SHIFT_SYMBOLS | ||
| 33 | |||
| 34 | // center column TT assignments (undefine for OSM chords) | ||
| 35 | #define CENTER_TT | ||
| 36 | #define TAPPING_TOGGLE 1 | ||
| 37 | |||
| 38 | // home row modifiers | ||
| 39 | #define HOME_MODS | ||
| 40 | // fix dual function timing | ||
| 41 | #define PERMISSIVE_HOLD | ||
| 42 | #define IGNORE_MOD_TAP_INTERRUPT | ||
| 43 | |||
| 44 | // layout ADNW*, BEAKL*, COLEKA*, QWERTY (default) | ||
| 45 | #define BEAKLSP | ||
| 46 | |||
| 47 | // sync app with window manager keybind hook defined in plover_keybind.h | ||
| 48 | #define PLOVER_KEYBIND | ||
| 49 | |||
| 50 | #endif | ||
diff --git a/keyboards/planck/keymaps/sdothum/keymap.c b/keyboards/planck/keymaps/sdothum/keymap.c new file mode 100644 index 000000000..ac509c41d --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/keymap.c | |||
| @@ -0,0 +1,480 @@ | |||
| 1 | // This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
| 2 | // this is the style you want to emulate. | ||
| 3 | // | ||
| 4 | // To flash planck firmware | ||
| 5 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 6 | // Reset keyboard or press hw reset button on base (hole) | ||
| 7 | // | ||
| 8 | // cd qmk_firmware/keyboards/planck | ||
| 9 | // sudo make KEYMAP=sdothum dfu | ||
| 10 | // | ||
| 11 | // sudo make clean (good practice before flashing) | ||
| 12 | // sudo make KEYMAP=sdothum (to compile check) | ||
| 13 | // | ||
| 14 | // Package requirements (for arch linux) | ||
| 15 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 16 | // avr-gcc-atmel | ||
| 17 | // avr-libc-atmel | ||
| 18 | // dfu-programmer | ||
| 19 | // | ||
| 20 | // Notes | ||
| 21 | // ▔▔▔▔▔ | ||
| 22 | // ** E R G O W I D E S P L I T ** Layout | ||
| 23 | // | ||
| 24 | // Autocompletion tap dance key pairs (),[],{} are available from the | ||
| 25 | // number/symbol layer, as well as, numerous (un)shift key values | ||
| 26 | // | ||
| 27 | // The navigation pad provides a single hand right thumb activated cluster | ||
| 28 | // with left hand modifiers | ||
| 29 | // | ||
| 30 | // #define PRIVATE_STRING includes private_string.h, a user defined code | ||
| 31 | // block for the PRIV tap dance e.g. SEND_STRING("secret messape"), | ||
| 32 | // see function private() | ||
| 33 | // | ||
| 34 | // Modifier clusters | ||
| 35 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 36 | // The num and sym keys together access the navigation pad layer | ||
| 37 | // | ||
| 38 | // ,-----------------------------------------------------------------------------------. | ||
| 39 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 40 | // `-----------------------------------------------------------------------------------' | ||
| 41 | // | ||
| 42 | // Hint | ||
| 43 | // ▔▔▔▔ | ||
| 44 | // For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num, | ||
| 45 | // Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and | ||
| 46 | // actuation | ||
| 47 | // | ||
| 48 | // Code | ||
| 49 | // ▔▔▔▔ | ||
| 50 | // This source is shamelessly based on the "default" planck layout | ||
| 51 | // | ||
| 52 | // #ifdef/#endif block structures are not indented, as syntax highlighting | ||
| 53 | // in vim is sufficient for identification | ||
| 54 | // | ||
| 55 | // c++ commenting style is used throughout | ||
| 56 | // | ||
| 57 | // Change history | ||
| 58 | // ▔▔▔▔▔▔▔▔▔▔▔▔▔▔ | ||
| 59 | // See http://thedarnedestthing.com/planck%20constant | ||
| 60 | // See http://thedarnedestthing.com/planck%20done | ||
| 61 | |||
| 62 | |||
| 63 | |||
| 64 | // === N O T E === | ||
| 65 | // | ||
| 66 | // sudo CPATH=<keymap.c directory>/common make ... | ||
| 67 | |||
| 68 | |||
| 69 | #include "config.h" | ||
| 70 | #include "planck.h" | ||
| 71 | #include "action_layer.h" | ||
| 72 | #ifdef STENO_ENABLE | ||
| 73 | #include "keymap_steno.h" | ||
| 74 | #endif | ||
| 75 | #ifdef AUDIO_ENABLE | ||
| 76 | #include "audio.h" | ||
| 77 | #endif | ||
| 78 | #include "eeconfig.h" | ||
| 79 | |||
| 80 | extern keymap_config_t keymap_config; | ||
| 81 | |||
| 82 | enum planck_layers { | ||
| 83 | _BASE = 0 | ||
| 84 | ,_SHIFT | ||
| 85 | ,_LSHIFT | ||
| 86 | ,_RSHIFT | ||
| 87 | ,_PLOVER | ||
| 88 | ,_NUMBER | ||
| 89 | ,_SYMBOL | ||
| 90 | ,_FNCKEY | ||
| 91 | ,_MOUSE | ||
| 92 | #ifdef CENTER_TT | ||
| 93 | ,_TTNUMBER | ||
| 94 | ,_TTREGEX | ||
| 95 | ,_TTFNCKEY | ||
| 96 | ,_TTCURSOR | ||
| 97 | ,_TTMOUSE | ||
| 98 | #endif | ||
| 99 | #ifndef SHIFT_SYMBOLS | ||
| 100 | ,_NUMSYM | ||
| 101 | ,_SYMREG | ||
| 102 | #endif | ||
| 103 | ,_EDIT | ||
| 104 | ,_QWERTY | ||
| 105 | ,_ADJUST | ||
| 106 | ,_END_LAYERS | ||
| 107 | }; | ||
| 108 | |||
| 109 | enum planck_keycodes { | ||
| 110 | BASE = SAFE_RANGE | ||
| 111 | ,BASE1 | ||
| 112 | ,BASE2 | ||
| 113 | ,PLOVER | ||
| 114 | ,PLOEXIT | ||
| 115 | ,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user() | ||
| 116 | ,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user() | ||
| 117 | ,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user() | ||
| 118 | ,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user() | ||
| 119 | ,SM_LPRN // pseudo CTL_T(S(KC_9)) for shifted key-codes, see process_record_user() | ||
| 120 | ,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user() | ||
| 121 | ,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user() | ||
| 122 | ,SL_PIPE // pseudo LT (_ADJUST, S(KC_BSLS)) for shifted key-codes, see process_record_user() | ||
| 123 | ,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user() | ||
| 124 | #ifdef CENTER_TT | ||
| 125 | ,TT_ESC | ||
| 126 | #endif | ||
| 127 | #ifdef STENO_ENABLE | ||
| 128 | ,PS_STNA = STN_A | ||
| 129 | ,PS_STNO = STN_O | ||
| 130 | ,PS_STNE = STN_E | ||
| 131 | ,PS_STNU = STN_U | ||
| 132 | #else | ||
| 133 | ,LT_C = LT (_NUMBER, KC_C) | ||
| 134 | ,LT_V = LT (_FNCKEY, KC_V) | ||
| 135 | ,LT_N = LT (_EDIT, KC_N) | ||
| 136 | ,LT_M = LT (_SYMBOL, KC_M) | ||
| 137 | #endif | ||
| 138 | ,PS_BASE | ||
| 139 | }; | ||
| 140 | |||
| 141 | // modifier keys | ||
| 142 | #define AT_B ALT_T(KC_B) | ||
| 143 | #define AT_DOWN ALT_T(KC_DOWN) | ||
| 144 | #define CT_RGHT CTL_T(KC_RGHT) | ||
| 145 | #define GT_C GUI_T(KC_C) | ||
| 146 | #define GT_UP GUI_T(KC_UP) | ||
| 147 | #define MT_E MT (MOD_LCTL | MOD_LALT, KC_E) | ||
| 148 | #define MT_X MT (MOD_LALT | MOD_LSFT, KC_X) | ||
| 149 | #define ST_A SFT_T(KC_A) | ||
| 150 | #ifdef HOME_MODS | ||
| 151 | #define HOME_K CTL_T(KC_K) | ||
| 152 | #define HOME_H GUI_T(KC_H) | ||
| 153 | #define HOME_E ALT_T(KC_E) | ||
| 154 | #define HOME_A SFT_T(KC_A) | ||
| 155 | #if defined(BEAKLMU) || defined(BEAKLSP) | ||
| 156 | #define HOME_T SFT_T(KC_T) | ||
| 157 | #define HOME_R ALT_T(KC_R) | ||
| 158 | #define HOME_S GUI_T(KC_S) | ||
| 159 | #define HOME_W CTL_T(KC_W) | ||
| 160 | #else | ||
| 161 | #define HOME_T SFT_T(KC_T) | ||
| 162 | #define HOME_S ALT_T(KC_S) | ||
| 163 | #define HOME_N GUI_T(KC_N) | ||
| 164 | #define HOME_B CTL_T(KC_B) | ||
| 165 | #endif | ||
| 166 | #else | ||
| 167 | #define HOME_K KC_K | ||
| 168 | #define HOME_H KC_H | ||
| 169 | #define HOME_E KC_E | ||
| 170 | #define HOME_A KC_A | ||
| 171 | #define HOME_T KC_T | ||
| 172 | #define HOME_S KC_S | ||
| 173 | #define HOME_N KC_N | ||
| 174 | #define HOME_B KC_B | ||
| 175 | #endif | ||
| 176 | |||
| 177 | #define S_DOWN S (KC_DOWN) | ||
| 178 | #define S_LEFT S (KC_LEFT) | ||
| 179 | #define S_RGHT S (KC_RGHT) | ||
| 180 | #define S_TAB S (KC_TAB) | ||
| 181 | #define S_UP S (KC_UP) | ||
| 182 | |||
| 183 | #include "tapdance.h" | ||
| 184 | |||
| 185 | // keycodes | ||
| 186 | #define ___x___ KC_TRNS | ||
| 187 | #define ___fn__ KC_TRNS | ||
| 188 | #ifdef _______ | ||
| 189 | #undef _______ | ||
| 190 | #endif | ||
| 191 | #define _______ KC_NO | ||
| 192 | |||
| 193 | #define COPY LCTL(KC_C) | ||
| 194 | #define CUT LCTL(KC_X) | ||
| 195 | #define EOT LCTL(KC_D) | ||
| 196 | #define NAK LCTL(KC_U) | ||
| 197 | #define PASTE LCTL(KC_V) | ||
| 198 | #define UNDO LCTL(KC_Z) | ||
| 199 | #define TMCOPY LALT(LCTL(KC_C)) | ||
| 200 | #define TMPASTE LALT(LCTL(KC_V)) | ||
| 201 | #define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling | ||
| 202 | #define LT_BSPC LT (_EDIT, KC_BSPC) | ||
| 203 | #define SP_LEFT LT (_EDIT, KC_LEFT) | ||
| 204 | #define LT_ESC LT (_NUMBER, KC_ESC) | ||
| 205 | #define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling | ||
| 206 | #define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling | ||
| 207 | #define LT_TAB LT (_FNCKEY, KC_TAB) | ||
| 208 | #define LT_INS LT (_FNCKEY, KC_INS) | ||
| 209 | #define LT_ALTG LT (_FNCKEY, KC_RALT) | ||
| 210 | #define ADJUST MO (_ADJUST) | ||
| 211 | #define OS_ALT OSM (MOD_LALT) | ||
| 212 | #define OS_CTL OSM (MOD_LCTL) | ||
| 213 | #define OS_GUI OSM (MOD_LGUI) | ||
| 214 | #define OS_SFT OSM (MOD_LSFT) | ||
| 215 | #define OS_CALT OSM (MOD_LALT | MOD_LCTL) | ||
| 216 | #define OS_CGUI OSM (MOD_LGUI | MOD_LCTL) | ||
| 217 | #define OS_CSFT OSM (MOD_LSFT | MOD_LCTL) | ||
| 218 | #define OS_SALT OSM (MOD_LALT | MOD_LSFT) | ||
| 219 | #define OS_SGUI OSM (MOD_LGUI | MOD_LSFT) | ||
| 220 | |||
| 221 | #ifdef CENTER_TT | ||
| 222 | #ifdef BEAKLSP | ||
| 223 | #define CNTR_TL OSM (MOD_LSFT) | ||
| 224 | #else | ||
| 225 | #define CNTR_TL TT (_TTFNCKEY) | ||
| 226 | #endif | ||
| 227 | #define CNTR_TR KC_CAPS | ||
| 228 | #define CNTR_HL TT (_TTCURSOR) | ||
| 229 | #define CNTR_HR TT (_TTMOUSE) | ||
| 230 | #define CNTR_BL TT (_TTNUMBER) | ||
| 231 | #define CNTR_BR TT (_TTREGEX) | ||
| 232 | #else | ||
| 233 | #define CNTR_TL OSM (MOD_LALT | MOD_LCTL) | ||
| 234 | #define CNTR_TR OSM (MOD_LGUI | MOD_LCTL) | ||
| 235 | #define CNTR_HL OSM (MOD_LALT | MOD_LSFT) | ||
| 236 | #define CNTR_HR OSM (MOD_LGUI | MOD_LSFT) | ||
| 237 | #define CNTR_BL TD (_CAPS) | ||
| 238 | #define CNTR_BR OSM (MOD_LSFT | MOD_LCTL) | ||
| 239 | #endif | ||
| 240 | |||
| 241 | #ifdef THUMB_0 | ||
| 242 | #define LT_EQL LT (_ADJUST, KC_EQL) | ||
| 243 | #else | ||
| 244 | #define LT_0 LT (_ADJUST, KC_0) | ||
| 245 | #endif | ||
| 246 | #ifndef SHIFT_SYMBOLS | ||
| 247 | #define LT_A LT (_NUMSYM, KC_A) | ||
| 248 | #define LT_LFTX LT (_SYMREG, KC_LEFT) | ||
| 249 | #endif | ||
| 250 | |||
| 251 | // ........................................................ Default Alpha Layout | ||
| 252 | |||
| 253 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 254 | |||
| 255 | #include "beakl.h" | ||
| 256 | #include "colemak.h" | ||
| 257 | #include "qwerty.h" | ||
| 258 | #include "steno_layout.h" | ||
| 259 | |||
| 260 | // ...................................................... Number / Function Keys | ||
| 261 | |||
| 262 | #include "number_fkey_layout.h" | ||
| 263 | |||
| 264 | // ......................................................... Symbol / Navigation | ||
| 265 | |||
| 266 | #include "symbol_guifn_layout.h" | ||
| 267 | |||
| 268 | // ............................................................... Toggle Layers | ||
| 269 | |||
| 270 | #ifdef CENTER_TT | ||
| 271 | #include "toggle_layout.h" | ||
| 272 | #endif | ||
| 273 | |||
| 274 | // ......................................................... Short Cuts / Adjust | ||
| 275 | |||
| 276 | #include "chord_layout.h" | ||
| 277 | |||
| 278 | }; | ||
| 279 | |||
| 280 | // ...................................................................... Sounds | ||
| 281 | |||
| 282 | #include "sounds.h" | ||
| 283 | |||
| 284 | // ........................................................... User Keycode Trap | ||
| 285 | |||
| 286 | #include "keycode_functions.h" | ||
| 287 | |||
| 288 | #define BASE_1 1 | ||
| 289 | #define BASE_2 2 | ||
| 290 | #define BASE_12 3 | ||
| 291 | static uint8_t base_n = 0; | ||
| 292 | |||
| 293 | bool process_record_user(uint16_t keycode, keyrecord_t *record) | ||
| 294 | { | ||
| 295 | switch (keycode) { | ||
| 296 | case BASE1: | ||
| 297 | if (record->event.pressed) { | ||
| 298 | base_n = base_n | BASE_1; | ||
| 299 | if (base_n == BASE_12) { | ||
| 300 | base_layer(); | ||
| 301 | } | ||
| 302 | } | ||
| 303 | else { | ||
| 304 | base_n = base_n & ~BASE_1; | ||
| 305 | } | ||
| 306 | return false; | ||
| 307 | case BASE2: | ||
| 308 | if (record->event.pressed) { | ||
| 309 | base_n = base_n | BASE_2; | ||
| 310 | if (base_n == BASE_12) { | ||
| 311 | base_layer(); | ||
| 312 | } | ||
| 313 | } | ||
| 314 | else { | ||
| 315 | base_n = base_n & ~BASE_2; | ||
| 316 | } | ||
| 317 | return false; | ||
| 318 | case AT_DOWN: | ||
| 319 | #ifdef HOME_MODS | ||
| 320 | case HOME_E: | ||
| 321 | #if defined(BEAKLMU) || defined(BEAKLSP) | ||
| 322 | case HOME_R: | ||
| 323 | #else | ||
| 324 | case HOME_S: | ||
| 325 | #endif | ||
| 326 | #endif | ||
| 327 | tap_mods(record, KC_LALT); | ||
| 328 | break; | ||
| 329 | case CT_RGHT: | ||
| 330 | #ifdef HOME_MODS | ||
| 331 | case HOME_K: | ||
| 332 | #if defined(BEAKLMU) || defined(BEAKLSP) | ||
| 333 | case HOME_W: | ||
| 334 | #else | ||
| 335 | case HOME_B: | ||
| 336 | #endif | ||
| 337 | #endif | ||
| 338 | tap_mods(record, KC_LCTL); | ||
| 339 | break; | ||
| 340 | case GT_UP: | ||
| 341 | #ifdef HOME_MODS | ||
| 342 | case HOME_H: | ||
| 343 | #if defined(BEAKLMU) || defined(BEAKLSP) | ||
| 344 | case HOME_S: | ||
| 345 | #else | ||
| 346 | case HOME_N: | ||
| 347 | #endif | ||
| 348 | #endif | ||
| 349 | tap_mods(record, KC_LGUI); | ||
| 350 | break; | ||
| 351 | #ifdef HOME_MODS | ||
| 352 | case HOME_A: | ||
| 353 | case HOME_T: | ||
| 354 | tap_mods(record, KC_LSFT); | ||
| 355 | break; | ||
| 356 | #endif | ||
| 357 | #ifdef CENTER_TT | ||
| 358 | case TT_ESC: | ||
| 359 | clear_tt(); // exit TT layer | ||
| 360 | return false; | ||
| 361 | #endif | ||
| 362 | case LT_ESC: | ||
| 363 | #ifdef CENTER_TT | ||
| 364 | if (tt_keycode != 0) { | ||
| 365 | clear_tt(); // exit TT layer | ||
| 366 | return false; | ||
| 367 | } | ||
| 368 | #endif | ||
| 369 | tap_layer(record, _NUMBER); | ||
| 370 | break; | ||
| 371 | case LT_LEFT: | ||
| 372 | case SP_BSPC: | ||
| 373 | tap_layer(record, _SYMBOL); | ||
| 374 | // LT (_SYMBOL, KC_LEFT) left right combination layer | ||
| 375 | thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT); | ||
| 376 | break; | ||
| 377 | case OS_ALT: | ||
| 378 | tap_mods(record, KC_LALT); | ||
| 379 | break; | ||
| 380 | case OS_CTL: | ||
| 381 | tap_mods(record, KC_LCTL); | ||
| 382 | break; | ||
| 383 | case OS_GUI: | ||
| 384 | tap_mods(record, KC_LGUI); | ||
| 385 | break; | ||
| 386 | case SM_CIRC: | ||
| 387 | // GUI_T(S(KC_6)) | ||
| 388 | mt_shift(record, KC_LGUI, 0, KC_6); | ||
| 389 | break; | ||
| 390 | case SM_DLR: | ||
| 391 | // SFT_T(S(KC_4)) | ||
| 392 | mt_shift(record, KC_LSFT, 0, KC_4); | ||
| 393 | break; | ||
| 394 | case SM_G: | ||
| 395 | // MT(MOD_LALT | MOD_LSFT, S(KC_G)) | ||
| 396 | mt_shift(record, KC_LALT, KC_LSFT, KC_G); | ||
| 397 | break; | ||
| 398 | case SM_LPRN: | ||
| 399 | // CTL_T(S(KC_9)) | ||
| 400 | mt_shift(record, KC_LCTL, 0, KC_9); | ||
| 401 | break; | ||
| 402 | case SM_PERC: | ||
| 403 | // ALT_T(S(KC_5)) | ||
| 404 | mt_shift(record, KC_LALT, 0, KC_5); | ||
| 405 | break; | ||
| 406 | case LT_BSLS: | ||
| 407 | tap_layer(record, _MOUSE); | ||
| 408 | // LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS | ||
| 409 | thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL); | ||
| 410 | break; | ||
| 411 | case SL_LEFT: | ||
| 412 | tap_layer(record, _MOUSE); | ||
| 413 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 414 | thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT); | ||
| 415 | break; | ||
| 416 | case SP_DEL: | ||
| 417 | tap_layer(record, _MOUSE); | ||
| 418 | // LT (_MOUSE, S(KC_LEFT)) left right combination layer | ||
| 419 | thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT); | ||
| 420 | break; | ||
| 421 | case SL_PIPE: | ||
| 422 | // LT (_ADJUST, S(KC_BSLS)) emulation | ||
| 423 | lt_shift(record, KC_BSLS, _ADJUST); | ||
| 424 | break; | ||
| 425 | case SL_TAB: | ||
| 426 | // LT (_FNCKEY, S(KC_TAB)) emulation | ||
| 427 | lt_shift(record, KC_TAB, _FNCKEY); | ||
| 428 | break; | ||
| 429 | case TD_ENT: | ||
| 430 | tap_layer(record, _RSHIFT); | ||
| 431 | // LT (_RSHIFT, KC_ENT) emulation, see tap dance enter | ||
| 432 | break; | ||
| 433 | case TD_SPC: | ||
| 434 | tap_layer(record, _LSHIFT); | ||
| 435 | // LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC | ||
| 436 | thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL); | ||
| 437 | break; | ||
| 438 | #ifdef CENTER_TT | ||
| 439 | case CNTR_TL: | ||
| 440 | case CNTR_TR: | ||
| 441 | case CNTR_HL: | ||
| 442 | case CNTR_HR: | ||
| 443 | case CNTR_BL: | ||
| 444 | case CNTR_BR: | ||
| 445 | if (tt_keycode != keycode && tt_keycode != 0) { | ||
| 446 | clear_tt(); // return to base layer first if different TT layer selected | ||
| 447 | } | ||
| 448 | tt_keycode = keycode; | ||
| 449 | break; | ||
| 450 | #endif | ||
| 451 | // #ifdef STENO_ENABLE | ||
| 452 | // case PS_STNA: | ||
| 453 | // stn_layer(record, STN_A, _NUMBER); | ||
| 454 | // break; | ||
| 455 | // case PS_STNO: | ||
| 456 | // stn_layer(record, STN_O, _FNCKEY); | ||
| 457 | // break; | ||
| 458 | // case PS_STNE: | ||
| 459 | // stn_layer(record, STN_E, _EDIT); | ||
| 460 | // break; | ||
| 461 | // case PS_STNU: | ||
| 462 | // stn_layer(record, STN_U, _SYMBOL); | ||
| 463 | // break; | ||
| 464 | // #endif | ||
| 465 | case PS_BASE: | ||
| 466 | if (record->event.pressed) { | ||
| 467 | base_layer(); | ||
| 468 | } | ||
| 469 | return false; | ||
| 470 | case PLOVER: | ||
| 471 | steno(record); | ||
| 472 | return false; | ||
| 473 | case PLOEXIT: | ||
| 474 | steno_exit(record); | ||
| 475 | return false; | ||
| 476 | } | ||
| 477 | return true; | ||
| 478 | } | ||
| 479 | |||
| 480 | #include "init.h" | ||
diff --git a/keyboards/planck/keymaps/sdothum/qwerty.h b/keyboards/planck/keymaps/sdothum/qwerty.h new file mode 100644 index 000000000..d11d0478b --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/qwerty.h | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | |||
| 2 | // const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 3 | |||
| 4 | // ...................................................................... Qwerty | ||
| 5 | #ifdef QWERTY | ||
| 6 | // ,-----------------------------------------------------------------------------------. | ||
| 7 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 8 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 9 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; | | ||
| 10 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 11 | // | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " | | ||
| 12 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 13 | // | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right| | ||
| 14 | // `-----------------------------------------------------------------------------------' | ||
| 15 | |||
| 16 | [_BASE] = { | ||
| 17 | {KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P }, | ||
| 18 | {KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN}, | ||
| 19 | {KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT}, | ||
| 20 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 21 | }, | ||
| 22 | |||
| 23 | [_SHIFT] = { | ||
| 24 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 25 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN}, | ||
| 26 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT}, | ||
| 27 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT}, | ||
| 28 | }, | ||
| 29 | |||
| 30 | // ,-----------------------------------------------------------------------------------. | ||
| 31 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 32 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 33 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | | ||
| 34 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 35 | // | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " | | ||
| 36 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 37 | // | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right| | ||
| 38 | // `-----------------------------------------------------------------------------------' | ||
| 39 | |||
| 40 | [_LSHIFT] = { | ||
| 41 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 42 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, | ||
| 43 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT}, | ||
| 44 | {OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 45 | }, | ||
| 46 | |||
| 47 | // ,-----------------------------------------------------------------------------------. | ||
| 48 | // | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P | | ||
| 49 | // |------+------+------+------+------+-------------+------+------+------+------+------| | ||
| 50 | // | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : | | ||
| 51 | // |------+------+------+------+------+------|------+------+------+------+------+------| | ||
| 52 | // | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " | | ||
| 53 | // |------+------+------+------+------+------+------+------+------+------+------+------| | ||
| 54 | // | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right| | ||
| 55 | // `-----------------------------------------------------------------------------------' | ||
| 56 | |||
| 57 | [_RSHIFT] = { | ||
| 58 | {S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P)}, | ||
| 59 | {S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN}, | ||
| 60 | {S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT}, | ||
| 61 | {OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT }, | ||
| 62 | }, | ||
| 63 | #endif | ||
| 64 | |||
diff --git a/keyboards/planck/keymaps/sdothum/readme.md b/keyboards/planck/keymaps/sdothum/readme.md new file mode 100644 index 000000000..58f73e3b4 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/readme.md | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | # The sdothum extended Default Planck Layout | ||
| 2 | |||
| 3 | - Colemak-DH layout layer with shift/tab key overlays | ||
| 4 | - Number and symbol/function key layer | ||
| 5 | - Hexadecimal keypad layer | ||
| 6 | - Navigation keypad layer | ||
| 7 | - Dynamic macro layer | ||
| 8 | - Autocompletion tap key pairs (),[],{} | ||
| 9 | - Normalized enter and esc key position across keyboard layers | ||
| 10 | - Extensive use of tap keys | ||
diff --git a/keyboards/planck/keymaps/sdothum/rules.mk b/keyboards/planck/keymaps/sdothum/rules.mk new file mode 100644 index 000000000..40f153844 --- /dev/null +++ b/keyboards/planck/keymaps/sdothum/rules.mk | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | # Build Options: | ||
| 2 | # change to "no" to disable the options, or define them in the Makefile in | ||
| 3 | # the appropriate keymap folder that will get included automatically | ||
| 4 | |||
| 5 | BOOTMAGIC_ENABLE = no # virtual DIP switch configuration(+1000) | ||
| 6 | MOUSEKEY_ENABLE = yes # mouse keys(+4700) | ||
| 7 | EXTRAKEY_ENABLE = no # audio control and System control(+450) | ||
| 8 | CONSOLE_ENABLE = no # console for debug(+400) | ||
| 9 | COMMAND_ENABLE = no # commands for debug and configuration | ||
| 10 | NKRO_ENABLE = yes # nkey rollover | ||
| 11 | BACKLIGHT_ENABLE = no # enable keyboard backlight functionality | ||
| 12 | MIDI_ENABLE = no # MIDI controls | ||
| 13 | AUDIO_ENABLE = no # audio output on port C6 | ||
| 14 | UNICODE_ENABLE = no # unicode | ||
| 15 | BLUETOOTH_ENABLE = no # enable Bluetooth with the Adafruit EZ-Key HID | ||
| 16 | RGBLIGHT_ENABLE = no # enable WS2812 RGB underlight, do not enable this with audio at the same time. | ||
| 17 | STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys | ||
| 18 | |||
| 19 | # do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | ||
| 20 | SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend | ||
| 21 | |||
| 22 | TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{} | ||
| 23 | |||
| 24 | ifndef QUANTUM_DIR | ||
| 25 | include ../../../../Makefile | ||
| 26 | endif | ||
