Commit | Line | Data |
---|---|---|
dcb26272 O |
1 | #include QMK_KEYBOARD_H |
2 | #include "debug.h" | |
3 | #include "action_layer.h" | |
4 | #include "version.h" | |
b89e318d O |
5 | #include "keymap_steno.h" |
6 | #ifndef MIDI_ENABLE | |
7 | #error "Midi is not enabled" | |
8 | #endif | |
9 | #define QWERTY 0 // qwerty layer | |
10 | #define HALFQWERTY 1 // mirrored qwerty layer | |
11 | #define DVORAK 2 // dvorak layer | |
12 | #define HALFDVORAK 3 // mirrored dvorak layer | |
87abed68 | 13 | //no layer 4 |
dcb26272 | 14 | #define SYMB 5 // symbols |
7636fdbb O |
15 | #define HALFSYMB 6 // media keys |
16 | #define PLVR 7 // steno plover layout | |
87abed68 O |
17 | #define SHORTCUTS 8 //layer with shortcut keys and other layer nav |
18 | #define FUNCTION 9 //all F-keys, all day | |
19 | #define PROPERSTENO 10 //real steno layout | |
dcb26272 O |
20 | |
21 | enum custom_keycodes { | |
22 | PLACEHOLDER = SAFE_RANGE, // can always be here | |
23 | EPRM, | |
24 | VRSN, | |
25 | RGB_SLD | |
26 | }; | |
27 | ||
28 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |
29 | /* Keymap 0: qwerty | |
30 | * | |
31 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
87abed68 | 32 | * | ESC | 1 | 2 | 3 | 4 | 5 | RMB | | \ | 6 | 7 | 8 | 9 | 0 | BSPC | |
dcb26272 | 33 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
7636fdbb | 34 | * | TAB | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | ' | |
dcb26272 O |
35 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
36 | * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; |ENTER | | |
7636fdbb | 37 | * |--------+------+------+------+------+------| - | | = |------+------+------+------+------+--------| |
dcb26272 O |
38 | * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | |
39 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |
7636fdbb | 40 | * |LCTRL|ALT |CTLShTab|CTL-TAB| LGui| | RGui| UP | DOWN | ALT | RCTRL | |
dcb26272 O |
41 | * `----------------------------------' `----------------------------------' |
42 | * ,-------------. ,-------------. | |
87abed68 | 43 | * |Symbol|LMB | |Plover|HalfSymb| |
dcb26272 | 44 | * ,------|------|------| |------+--------+------. |
b89e318d | 45 | * | | |MU_TOG| | PgUp | | | |
7636fdbb O |
46 | * | Space|DELETE|------| |------| Tab |Enter | |
47 | * |mirror| | End | | PgDn | |mirror| | |
dcb26272 O |
48 | * `--------------------' `----------------------' |
49 | */ | |
50 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | |
51 | // Otherwise, it needs KC_* | |
52 | [QWERTY] = LAYOUT_ergodox( // layer 0 : default | |
53 | // left hand | |
87abed68 O |
54 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BTN2, |
55 | KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_EQL, | |
dcb26272 | 56 | KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, |
7636fdbb O |
57 | KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MINUS, |
58 | KC_LCTRL, KC_LALT, LCTL(LSFT(KC_TAB)),LCTL(KC_TAB), MO(SHORTCUTS), | |
87abed68 | 59 | KC_LGUI, KC_BTN1, |
b89e318d | 60 | MU_ON, |
87abed68 | 61 | KC_SPACE,KC_DEL,KC_END, |
dcb26272 | 62 | // right hand |
87abed68 | 63 | KC_BTN2, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, |
7636fdbb | 64 | KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_SLASH, |
dcb26272 | 65 | KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, |
7636fdbb | 66 | KC_EQL,KC_N, KC_M, KC_COMM,KC_DOT, KC_SLASH, KC_RSFT, |
87abed68 O |
67 | MO(SHORTCUTS), KC_UP,KC_DOWN,KC_RALT, KC_RCTRL, |
68 | KC_BTN1, KC_RGUI, | |
b89e318d | 69 | MU_OFF, |
dcb26272 O |
70 | KC_PGDN,KC_TAB, LT(HALFQWERTY, KC_ENT) |
71 | ), | |
72 | /* Keymap 1: mirrored qwerty | |
73 | * | |
74 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
7636fdbb | 75 | * | BSPC | 0 | 9 | 8 | 7 | 6 | \ | | ` | 5 | 4 | 3 | 2 | 1 | ESC | |
dcb26272 | 76 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
7636fdbb | 77 | * | ' | P | O | I | U | Y | ] | | [ | T | R | E | W | Q | TAB | |
dcb26272 O |
78 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
79 | * | ENTER | ; | L | K | J | H |------| |------| G | F | D | S | A | BSPC | | |
7636fdbb | 80 | * |--------+------+------+------+------+------| - | | = |------+------+------+------+------+--------| |
dcb26272 O |
81 | * | LShift | / | . | , | M | N | | | | B | V | C | X | Z | RShift | |
82 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |
7636fdbb | 83 | * |LCTRL|ALT |CTLShTab|CTL-TAB| LGui| | RGui| UP | DOWN | ALT | RCTRL | |
dcb26272 O |
84 | * `----------------------------------' `----------------------------------' |
85 | * ,-------------. ,-------------. | |
7636fdbb | 86 | * | | | | | | |
dcb26272 O |
87 | * ,------|------|------| |------+--------+------. |
88 | * | | | Home | | PgUp | | | | |
7636fdbb O |
89 | * | Space|DELETE|------| |------| Tab |Enter | |
90 | * |mirror| | End | | PgDn | |mirror| | |
dcb26272 O |
91 | * `--------------------' `----------------------' |
92 | */ | |
93 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | |
94 | // Otherwise, it needs KC_* | |
95 | [HALFQWERTY] = LAYOUT_ergodox( // layer 0 : default | |
96 | // left hand | |
87abed68 O |
97 | KC_BSPC, KC_0, KC_9, KC_8, KC_7, KC_6, KC_TRNS, |
98 | KC_BSLS, KC_P, KC_O, KC_I, KC_U, KC_Y, KC_LBRC, | |
7636fdbb | 99 | KC_ENT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, |
87abed68 | 100 | KC_LSFT, KC_SLASH, KC_DOT, KC_COMM,KC_M, KC_N, KC_RBRC, |
7636fdbb | 101 | KC_LCTRL, KC_LALT, LCTL(LSFT(KC_TAB)),LCTL(KC_TAB), KC_TRNS, |
87abed68 | 102 | KC_TRNS, KC_TRNS, |
b89e318d | 103 | KC_TRNS, |
7636fdbb | 104 | KC_TRANSPARENT,KC_DEL,KC_END, |
dcb26272 | 105 | // right hand |
87abed68 O |
106 | KC_TRNS, KC_5, KC_4, KC_3, KC_2, KC_1, KC_BSPC, |
107 | KC_MINUS, KC_T, KC_R, KC_E, KC_W, KC_Q, KC_BSLS, | |
dcb26272 | 108 | KC_G, KC_F, KC_D, KC_S, KC_A, KC_ENT, |
87abed68 | 109 | KC_EQL,KC_B, KC_V, KC_C, KC_X, KC_Z, KC_RSFT, |
b89e318d | 110 | KC_TRNS, KC_UP,KC_DOWN,KC_RALT, KC_RCTRL, |
7636fdbb | 111 | KC_TRANSPARENT, KC_TRNS, |
b89e318d | 112 | KC_TRNS, |
dcb26272 O |
113 | KC_PGDN,KC_TAB, KC_TRANSPARENT |
114 | ), | |
87abed68 | 115 | /* Keymap 2: dvorak |
dcb26272 O |
116 | * |
117 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
7636fdbb | 118 | * | ESC | 1 | 2 | 3 | 4 | 5 | ` | | \ | 6 | 7 | 8 | 9 | 0 | BSPC | |
dcb26272 | 119 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
7636fdbb | 120 | * | TAB | ' | , | . | P | Y | [ | | ] | F | G | C | R | L | / | |
dcb26272 | 121 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
7636fdbb O |
122 | * | BkSp | A | O | E | U | I |------| |------| D | H | T | N | S |ENTER | |
123 | * |--------+------+------+------+------+------| - | | = |------+------+------+------+------+--------| | |
dcb26272 O |
124 | * | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | RShift | |
125 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |
b89e318d | 126 | * |LCTRL|ALT |CTLShTab|CTL-TAB| LGui| | Mouse| UP | DOWN | ALT | RCTRL | |
dcb26272 O |
127 | * `----------------------------------' `----------------------------------' |
128 | * ,-------------. ,-------------. | |
7636fdbb | 129 | * | Alt | | | |Alt | |
dcb26272 O |
130 | * ,------|------|------| |------+--------+------. |
131 | * | | | Home | | PgUp | | | | |
7636fdbb O |
132 | * | Space|DELETE|------| |------| Tab |Enter | |
133 | * |mirror| | End | | PgDn | |mirror| | |
dcb26272 O |
134 | * `--------------------' `----------------------' |
135 | */ | |
136 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | |
137 | // Otherwise, it needs KC_* | |
87abed68 | 138 | [DVORAK] = LAYOUT_ergodox( // layer 2 : dvorak |
dcb26272 | 139 | // left hand |
87abed68 O |
140 | KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, |
141 | KC_TAB, KC_QUOTE, KC_COMM,KC_DOT, KC_P, KC_Y, KC_MINUS, | |
dcb26272 | 142 | KC_BSPC, KC_A, KC_O, KC_E, KC_U, KC_I, |
87abed68 | 143 | KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_EQL, |
7636fdbb | 144 | KC_LCTRL, KC_LALT, LCTL(LSFT(KC_TAB)),LCTL(KC_TAB), KC_TRNS, |
87abed68 O |
145 | KC_TRNS, KC_TRANSPARENT, |
146 | KC_UP, | |
147 | LT(HALFDVORAK, KC_SPACE),KC_DEL,KC_DOWN, | |
dcb26272 | 148 | // right hand |
87abed68 O |
149 | KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, |
150 | KC_LBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLASH, | |
7636fdbb | 151 | KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT, |
87abed68 | 152 | KC_RBRC,KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, |
b89e318d | 153 | KC_TRNS, KC_UP,KC_DOWN,KC_RALT, KC_RCTRL, |
87abed68 O |
154 | KC_TRANSPARENT, KC_TRANSPARENT, |
155 | KC_PGUP, | |
dcb26272 O |
156 | KC_PGDN,KC_TAB, LT(HALFDVORAK, KC_ENT) |
157 | ), | |
158 | /* Keymap 3: mirrored dvorak | |
159 | * | |
160 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
7636fdbb | 161 | * | BSPC | 0 | 9 | 8 | 7 | 6 | \ | | ` | 5 | 4 | 3 | 2 | 1 | ESC | |
dcb26272 | 162 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
7636fdbb | 163 | * | / | L | R | C | G | F | L1 | | L1 | Y | P | . | , | ' | TAB | |
dcb26272 | 164 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
7636fdbb O |
165 | * | ENTER | S | N | T | H | D |------| |------| I | U | E | O | A |BSPC | |
166 | * |--------+------+------+------+------+------| = | | - |------+------+------+------+------+--------| | |
dcb26272 O |
167 | * | LShift | Z | V | W | M | B | | | | X | K | J | Q | ; | RShift | |
168 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |
b89e318d | 169 | * |LCTRL|ALT |CTLShTab|CTL-TAB| LGui| | MOUSE| UP | DOWN | ALT | RCTRL | |
dcb26272 O |
170 | * `----------------------------------' `----------------------------------' |
171 | * ,-------------. ,-------------. | |
7636fdbb | 172 | * | Alt | | | |Alt | |
dcb26272 O |
173 | * ,------|------|------| |------+--------+------. |
174 | * | | | Home | | PgUp | | | | |
7636fdbb O |
175 | * | Space|DELETE|------| |------| Tab |Enter | |
176 | * |mirror| | End | | PgDn | |mirror| | |
dcb26272 O |
177 | * `--------------------' `----------------------' |
178 | */ | |
179 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | |
180 | // Otherwise, it needs KC_* | |
181 | [HALFDVORAK] = LAYOUT_ergodox( // layer 0 : default | |
182 | // left hand | |
87abed68 O |
183 | KC_BSPC, KC_0, KC_9, KC_8, KC_7, KC_6, KC_TRNS, |
184 | KC_SLASH, KC_L, KC_R, KC_C, KC_G, KC_F, KC_LBRC, | |
dcb26272 | 185 | KC_ENT, KC_S, KC_N, KC_T, KC_H, KC_D, |
87abed68 | 186 | KC_LSFT, KC_Z, KC_V, KC_W, KC_M, KC_B, KC_RBRC, |
7636fdbb O |
187 | KC_LCTRL, KC_LALT, LCTL(LSFT(KC_TAB)),LCTL(KC_TAB), KC_TRNS, |
188 | KC_TRANSPARENT, KC_TRANSPARENT, | |
b89e318d | 189 | KC_TRNS, |
87abed68 | 190 | KC_TRANSPARENT,KC_ENT,KC_TRNS, |
dcb26272 | 191 | // right hand |
87abed68 O |
192 | KC_TRNS, KC_5, KC_4, KC_3, KC_2, KC_5, KC_ESC, |
193 | KC_MINUS, KC_Y, KC_P, KC_DOT, KC_COMM,KC_P, KC_TAB, | |
7636fdbb | 194 | KC_I, KC_U, KC_E, KC_O, KC_A, KC_BSPC, |
87abed68 | 195 | KC_EQL,KC_X, KC_K, KC_J, KC_Q, KC_SCLN, KC_RSFT, |
b89e318d | 196 | KC_TRNS, KC_UP,KC_DOWN,KC_RALT, KC_RCTRL, |
7636fdbb | 197 | KC_TRANSPARENT, KC_TRNS, |
b89e318d | 198 | KC_TRNS, |
87abed68 | 199 | KC_TRNS,KC_TAB, KC_TRANSPARENT |
dcb26272 O |
200 | ), |
201 | /* Keymap 5: Symbol Layer | |
202 | * | |
203 | * ,---------------------------------------------------. ,--------------------------------------------------. | |
7636fdbb | 204 | * |Version | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |BkSp | |
dcb26272 | 205 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| |
7636fdbb | 206 | * | | / | \ | { | } | | | | | | Up | 7 | 8 | 9 | * | / | |
dcb26272 | 207 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
7636fdbb | 208 | * | | ' | ; | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | - | ENTER | |
dcb26272 | 209 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
7636fdbb | 210 | * | | - | = | [ | ] | ~ | | | | & | 1 | 2 | 3 | + | | |
dcb26272 O |
211 | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
212 | * | EPRM | | | | | | | . | 0 | = | | | |
213 | * `-----------------------------------' `----------------------------------' | |
214 | * ,-------------. ,-------------. | |
7636fdbb | 215 | * | | | | | | |
dcb26272 | 216 | * ,------|------|------| |------+------+------. |
dcb26272 | 217 | * | | | | | | | | |
7636fdbb O |
218 | * |mirror| |------| |------| |mirror| |
219 | * |space | | | | | |enter | | |
dcb26272 O |
220 | * `--------------------' `--------------------' |
221 | */ | |
222 | // SYMBOLS | |
223 | [SYMB] = LAYOUT_ergodox( | |
224 | // left hand | |
7636fdbb O |
225 | VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, |
226 | KC_NO,KC_SLASH,KC_BSLS, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS, | |
227 | KC_NO,KC_QUOT,KC_SCLN, KC_LPRN,KC_RPRN,KC_GRV, | |
228 | KC_NO,KC_MINUS,KC_EQL,KC_LBRC,KC_RBRC,KC_TILD,KC_NO, | |
229 | EPRM,KC_NO,KC_NO,KC_NO,KC_TRNS, | |
230 | KC_TRNS,KC_NO, | |
231 | KC_NO, | |
232 | LT(HALFSYMB, KC_SPACE),KC_NO,KC_NO, | |
233 | // right hand | |
234 | KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, | |
235 | KC_NO, KC_UP, KC_KP_7, KC_KP_8, KC_KP_9,KC_KP_ASTERISK, KC_KP_SLASH, | |
236 | KC_DOWN, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_MINUS, KC_KP_ENTER, | |
237 | KC_NO,KC_AMPR,KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_PLUS, KC_NO, | |
b89e318d | 238 | KC_TRNS,KC_DOT, KC_0, KC_KP_EQUAL, KC_NO, |
87abed68 O |
239 | BL_OFF, KC_TRNS, |
240 | BL_ON, | |
7636fdbb O |
241 | KC_NO, KC_NO, LT(HALFSYMB, KC_ENT) |
242 | ), | |
243 | /* Keymap 6: Mirrored Symbol Layer | |
244 | * | |
245 | * ,---------------------------------------------------. ,--------------------------------------------------. | |
246 | * |delete | F12 | F11 | F10 | F9 | F8 | F7 | | F6 | F5 | F4 | F3 | F2 | F1 |BkSp | | |
247 | * |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| | |
248 | * | | | 7 | 8 | 9 | * | / | | | | | { | } | / | \ | | | |
249 | * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |
250 | * | | | 4 | 5 | 6 | - |------| |------| ` | ( | ) | ; | ' | | | |
251 | * |---------+------+------+------+------+------|enter | | |------+------+------+------+------+--------| | |
252 | * | | | 1 | 2 | 3 | + | | | | ~ | [ | ] | = | - | | | |
253 | * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |
254 | * | EPRM | | 0 | . | = | | | | | | | | |
255 | * `-----------------------------------' `----------------------------------' | |
256 | * ,-------------. ,-------------. | |
257 | * | | | | | | | |
258 | * ,------|------|------| |------+------+------. | |
259 | * | | | | | | | | | |
260 | * | | |------| |------| | | | |
261 | * | | | | | | | | | |
262 | * `--------------------' `--------------------' | |
263 | */ | |
264 | // SYMBOLS | |
265 | [HALFSYMB] = LAYOUT_ergodox( | |
266 | // left hand | |
87abed68 | 267 | KC_BSPC, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, |
7636fdbb O |
268 | KC_NO,KC_NO,KC_KP_7, KC_KP_8, KC_KP_9,KC_KP_ASTERISK,KC_KP_SLASH, |
269 | KC_ENTER,KC_NO,KC_KP_4, KC_KP_5, KC_KP_6,KC_KP_MINUS, | |
270 | KC_NO,KC_NO,KC_KP_1, KC_KP_2, KC_KP_3,KC_KP_PLUS,KC_KP_ENTER, | |
271 | EPRM,KC_NO,KC_KP_0,KC_KP_DOT,KC_KP_EQUAL, | |
272 | KC_TRNS,KC_NO, | |
b89e318d | 273 | KC_TRNS, |
7636fdbb | 274 | KC_TRANSPARENT,KC_NO,KC_NO, |
dcb26272 | 275 | // right hand |
87abed68 | 276 | KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_BSPC, |
7636fdbb O |
277 | KC_NO,KC_PIPE,KC_LCBR,KC_RCBR, KC_SLASH, KC_BSLS, KC_NO, |
278 | KC_GRV,KC_LPRN,KC_RPRN, KC_SCLN, KC_QUOT, KC_NO, | |
279 | KC_NO, KC_TILD,KC_LBRC,KC_RBRC, KC_EQL, KC_MINUS, KC_NO, | |
b89e318d | 280 | KC_TRNS,KC_NO, KC_NO, KC_NO, KC_NO, |
7636fdbb | 281 | KC_NO, KC_TRNS, |
b89e318d | 282 | KC_TRNS, |
7636fdbb | 283 | KC_NO, KC_NO, KC_TRANSPARENT |
dcb26272 | 284 | ), |
7636fdbb | 285 | /* Keymap 7: Steno for Plover from https://github.com/shayneholmes/tmk_keyboard/commit/11290f8489013018f778627db725160c745e75bd |
dcb26272 O |
286 | * |
287 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
288 | * | | | | | | | | | | | | | | | | | |
289 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |
7636fdbb | 290 | * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | |
dcb26272 | 291 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
7636fdbb | 292 | * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | |
dcb26272 | 293 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
7636fdbb | 294 | * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | |
dcb26272 | 295 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
7636fdbb | 296 | * | | | | | | | | | | | | |
dcb26272 O |
297 | * `----------------------------------' `----------------------------------' |
298 | * ,-------------. ,-------------. | |
299 | * | | | | | | | |
300 | * ,------|------|------| |------+------+------. | |
7636fdbb O |
301 | * | | | | | | | | |
302 | * | c | v |------| |------| n | m | | |
dcb26272 O |
303 | * | | | | | | | | |
304 | * `--------------------' `--------------------' | |
305 | */ | |
7636fdbb | 306 | |
87abed68 | 307 | [PLVR] = KEYMAP( // layout: layer 7: Steno for Plover |
7636fdbb O |
308 | // left hand |
309 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | |
87abed68 O |
310 | KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, |
311 | KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, | |
312 | KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, | |
7636fdbb | 313 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, |
b89e318d | 314 | KC_TRNS, KC_TRNS, |
87abed68 O |
315 | KC_NO, |
316 | KC_C, KC_V, KC_NO, | |
7636fdbb | 317 | // right hand |
87abed68 O |
318 | KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, |
319 | KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS, | |
320 | KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, | |
321 | KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | |
7636fdbb O |
322 | KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, |
323 | KC_TRNS, KC_TRNS, | |
324 | KC_TRNS, | |
87abed68 | 325 | KC_NO, KC_N, KC_M |
b89e318d | 326 | ), |
87abed68 | 327 | |
b89e318d O |
328 | /* Keymap 8: shortcuts |
329 | * | |
330 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
331 | * | ESC | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | BSPC | | |
332 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| | |
333 | * | TAB | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ | | |
334 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |
335 | * | BkSp | A | S | D | F | G |------| |------| H | J | K | L | ; |ENTER | | |
336 | * |--------+------+------+------+------+------| - | | = |------+------+------+------+------+--------| | |
337 | * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift | | |
338 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' | |
339 | * |LCTRL|ALT |CTLShTab|CTL-TAB| | | RGui| UP | DOWN | ALT | RCTRL | | |
340 | * `----------------------------------' `----------------------------------' | |
341 | * ,-------------. ,-------------. | |
87abed68 | 342 | * |SYMBOLS|Dvorak| |Steno |Plover| |
b89e318d O |
343 | * ,------|------|------| |------+--------+------. |
344 | * | | | Home | | PgUp | | | | |
345 | * | Space|DELETE|------| |------| Tab |Enter | | |
346 | * |mirror| | End | | PgDn | |mirror| | |
347 | * `--------------------' `----------------------' | |
348 | */ | |
349 | // If it accepts an argument (i.e, is a function), it doesn't need KC_. | |
350 | // Otherwise, it needs KC_* | |
351 | [SHORTCUTS] = LAYOUT_ergodox( // layer 0 : default | |
352 | // left hand | |
87abed68 | 353 | RGB_MODE_KNIGHT, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT, |
b89e318d O |
354 | KC_TAB, LCTL(KC_Q), LCTL(KC_W),LCTL(KC_E),LCTL(KC_R),LCTL(KC_T), KC_NO, |
355 | KC_BSPC, LCTL(KC_A), LCTL(KC_S),LCTL(KC_D),LCTL(KC_F),LCTL(KC_G), | |
356 | KC_LSFT, LCTL(KC_Z), LCTL(KC_X),LCTL(KC_C),LCTL(KC_V),LCTL(KC_B), KC_MINUS, | |
87abed68 O |
357 | RESET, KC_LALT, LCTL(LSFT(KC_TAB)),LCTL(KC_TAB), KC_TRANSPARENT, |
358 | TG(SYMB), TG(DVORAK), | |
b89e318d | 359 | |
87abed68 | 360 | TG(FUNCTION), |
b89e318d | 361 | KC_NO,KC_NO,KC_NO, |
87abed68 | 362 | // right hand |
b89e318d | 363 | KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, |
87abed68 O |
364 | TG(SYMB),LCTL(KC_Y),LCTL(KC_U),LCTL(KC_I),LCTL(KC_O),LCTL(KC_P),KC_BSLS, |
365 | LCTL(KC_H),LCTL(KC_J),LCTL(KC_K),LCTL(KC_L),LCTL(KC_SCLN),KC_ENT, | |
366 | KC_EQL,LCTL(KC_N),LCTL(KC_M),LCTL(KC_COMM),LCTL(KC_DOT),LCTL(KC_SLASH),KC_RSFT, | |
367 | KC_TRNS, KC_UP,KC_DOWN,KC_RALT, RESET, | |
368 | TG(PROPERSTENO),TG(PLVR), | |
b89e318d O |
369 | KC_NO, |
370 | KC_NO,KC_NO, KC_NO | |
371 | ), | |
87abed68 | 372 | /* Keymap 9: Functions |
b89e318d O |
373 | * |
374 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
87abed68 | 375 | * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F1 | F2 | F3 | F4 | F5 | F6 | |
b89e318d | 376 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
87abed68 | 377 | * | F7 | F8 | F9 | F10 | F11 | F12 | | | | F7 | F8 | F9 | F10 | F11 | F12 | |
b89e318d | 378 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
87abed68 | 379 | * | F13 | F14 | F15 | F16 | F17 | F18 |------| |------| F13 | F14 | F15 | F16 | F17 | F18 | |
b89e318d | 380 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
87abed68 | 381 | * | F19 | F20 | F21 | F22 | F23 | F24 | | | | F19 | F20 | F21 | F22 | F23 | F24 | |
b89e318d O |
382 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
383 | * | | | | | | | | | | | | | |
384 | * `----------------------------------' `----------------------------------' | |
385 | * ,-------------. ,-------------. | |
386 | * | | | | | | | |
387 | * ,------|------|------| |------+------+------. | |
388 | * | | | | | | | | | |
87abed68 | 389 | * | c | v |------| |------| n | m | |
b89e318d O |
390 | * | | | | | | | | |
391 | * `--------------------' `--------------------' | |
392 | */ | |
87abed68 O |
393 | |
394 | [FUNCTION] = LAYOUT_ergodox( // layout: layer 9 | |
395 | // left hand | |
396 | KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, | |
397 | KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, | |
398 | KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, | |
399 | KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_NO, | |
400 | KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, | |
401 | KC_TRNS, KC_TRNS, | |
402 | KC_TRNS, | |
403 | KC_NO, KC_NO, KC_NO, | |
404 | // right hand | |
405 | KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, | |
406 | KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | |
407 | KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, | |
408 | KC_NO,KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, | |
409 | KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, | |
410 | KC_TRNS, KC_TRNS, | |
411 | KC_TRNS, | |
412 | KC_NO, KC_NO, KC_NO | |
dcb26272 | 413 | ), |
87abed68 | 414 | /* Keymap 10: Steno |
7636fdbb O |
415 | * |
416 | * ,--------------------------------------------------. ,--------------------------------------------------. | |
87abed68 | 417 | * | | | | | | | | | | | | | | | | |
7636fdbb | 418 | * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |
87abed68 | 419 | * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | | |
7636fdbb | 420 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |
87abed68 O |
421 | * | | q | w | e | r | t |------| |------| y | u | i | o | p | [ | |
422 | * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| | |
423 | * | | a | s | d | f | g | | | | h | j | k | l | ; | ' | | |
7636fdbb | 424 | * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' |
87abed68 | 425 | * | | | | | | | | | | | | |
7636fdbb O |
426 | * `----------------------------------' `----------------------------------' |
427 | * ,-------------. ,-------------. | |
87abed68 O |
428 | * | | | | | | |
429 | * ,------|------|------| |------+------+------. | |
430 | * | | | | | | | | | |
431 | * | c | v |------| |------| n | m | | |
432 | * | | | | | | | | | |
433 | * `--------------------' `--------------------' | |
7636fdbb | 434 | */ |
7636fdbb | 435 | |
87abed68 O |
436 | [PROPERSTENO] = LAYOUT_ergodox( // layout: layer 10 |
437 | // left hand | |
438 | KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, | |
439 | STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, KC_NO, | |
440 | STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, | |
441 | KC_NO, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, KC_NO, | |
442 | KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, | |
443 | KC_TRNS, KC_TRNS, | |
444 | KC_TRNS, | |
445 | STN_A, STN_O, KC_NO, | |
7636fdbb | 446 | // right hand |
87abed68 O |
447 | KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, |
448 | KC_TRNS, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC, | |
449 | STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, | |
450 | KC_NO,STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, | |
451 | KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, | |
452 | KC_TRNS, KC_TRNS, | |
453 | KC_TRNS, | |
454 | KC_NO, STN_E, STN_U | |
455 | ), | |
456 | ||
dcb26272 O |
457 | }; |
458 | ||
459 | const uint16_t PROGMEM fn_actions[] = { | |
460 | [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) | |
461 | ||
462 | }; | |
463 | ||
464 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | |
465 | { | |
466 | // MACRODOWN only works in this function | |
467 | switch(id) { | |
468 | case 0: | |
469 | if (record->event.pressed) { | |
470 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | |
471 | } | |
472 | break; | |
473 | case 1: | |
474 | if (record->event.pressed) { // For resetting EEPROM | |
475 | eeconfig_init(); | |
476 | } | |
477 | break; | |
478 | } | |
479 | return MACRO_NONE; | |
480 | }; | |
481 | ||
482 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |
483 | switch (keycode) { | |
484 | // dynamically generate these. | |
485 | case EPRM: | |
486 | if (record->event.pressed) { | |
487 | eeconfig_init(); | |
488 | } | |
489 | return false; | |
490 | break; | |
491 | case VRSN: | |
492 | if (record->event.pressed) { | |
493 | SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); | |
494 | } | |
495 | return false; | |
496 | break; | |
497 | case RGB_SLD: | |
498 | if (record->event.pressed) { | |
499 | #ifdef RGBLIGHT_ENABLE | |
500 | rgblight_mode(1); | |
501 | #endif | |
502 | } | |
503 | return false; | |
504 | break; | |
505 | } | |
506 | return true; | |
507 | } | |
508 | ||
509 | // Runs just one time when the keyboard initializes. | |
510 | void matrix_init_user(void) { | |
b89e318d | 511 | steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT |
dcb26272 O |
512 | }; |
513 | ||
514 | ||
515 | // Runs constantly in the background, in a loop. | |
516 | void matrix_scan_user(void) { | |
517 | ||
518 | uint8_t layer = biton32(layer_state); | |
519 | ||
520 | ergodox_board_led_off(); | |
521 | ergodox_right_led_1_off(); | |
522 | ergodox_right_led_2_off(); | |
523 | ergodox_right_led_3_off(); | |
524 | switch (layer) { | |
525 | // TODO: Make this relevant to the ErgoDox EZ. | |
526 | case 1: | |
527 | ergodox_right_led_1_on(); | |
528 | break; | |
529 | case 2: | |
530 | ergodox_right_led_2_on(); | |
531 | break; | |
532 | default: | |
533 | // none | |
534 | break; | |
535 | } | |
536 | ||
537 | }; |