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