2 #include "action_layer.h"
5 extern keymap_config_t keymap_config;
8 _CMODDH, // Colemak Mod-DH Matrix (default layer)
11 _NUMBERS, // Numbers & Symbols
12 _NUMBERS2, // Numbers & Symbols 2 (identical as _NUMBERS; basically used for tri-layer access to _ADJUST)
13 _FUNCTION, // Function
14 _FUNCTION2, // Function 2 (identical as _FUNCTION; used to allow for easier use of space and backspace while using function layer arrows)
16 _CMODDHGM, // Colemak Mod-DH Matrix gaming/vanilla (no dual-role keys with layer access)
17 _QWERTYGM, // QWERTY gaming/vanilla (no dual-role keys with layer access)
18 _ADJUST // Adjust layer
21 enum kinesis_keycodes {
27 SPCFN = LT(_FUNCTION, KC_SPC),
28 BSPCFN = LT(_FUNCTION2, KC_BSPC),
29 ENTNS = LT(_NUMBERS, KC_ENT),
30 DELNS = LT(_NUMBERS2, KC_DEL),
31 CTLESC = CTL_T(KC_ESC),
32 NKROTG = MAGIC_TOGGLE_NKRO
35 #define _______ KC_TRNS
38 //Tap Dance Declarations
53 void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) {
54 if (state->count == 2) {
56 set_oneshot_layer(_ADJUST, ONESHOT_START);
59 void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) {
60 if (state->count == 2) {
62 clear_oneshot_layer_state(ONESHOT_PRESSED);
66 qk_tap_dance_action_t tap_dance_actions[] = {
67 [ADJ] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LAYER_finished, dance_LAYER_reset), // Double-tap to activate Adjust layer via oneshot layer
68 [LBCB] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LCBR), // Left bracket on a single-tap, left brace on a double-tap
69 [RBCB] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_RCBR), // Right bracket on a single-tap, right brace on a double-tap
70 [EQPL] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), // Plus sign on a single-tap, equal sign on a double-tap
71 [PLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQL), // Equal sign on a single-tap, plus sign on a double-tap
72 [MNUN] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), // Minus sign on a single-tap, underscore on a double-tap
73 [SLAS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ASTR), // Slash in a single-tap, asterisk in a double-tap
74 [GVTL] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), // Grave on a single-tap, tilde on a double-tap
75 [PPLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_EQL), // Numpad plus sign on a single-tap, equal sign on a double-tap
76 [PMNUN] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_UNDS), // Numpad minus sign on a single-tap, underscore on a double-tap
77 [PSLPAS] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST) // Numpad slash on a single-tap, numpad asterisk on a double-tap
80 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
81 /* Colemak Mod-DH Matrix
82 * (Defauit layer; keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
83 * ,-----------------------------------------------------------------------------------------------------------.
84 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
85 * `-----------------------------------------------------------------------------------------------------------'
86 * ,-------------------------------------------. ,-------------------------------------------.
87 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
88 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
89 * | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ |
90 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
91 * |Esc/Ctrl| A | R | S | T | G | | M | N | E | I | O | ' |
92 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
93 * |SC Shift| Z | X | C | D | V | | K | H | , | . | / |SC Shift|
94 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
95 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
96 * `---------------------------' `---------------------------'
97 * ,---------------. ,---------------.
98 * |Esc/Ctl| Hyper | | RAlt | RCtl |
99 * ,-------|-------|-------| |-------+-------+-------.
100 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
101 * | / | / |-------| |-------| / | / |
102 * | Fn | Number| Bspc | | Tab |Number2| Fn2 |
103 * `-----------------------' `-----------------------'
107 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
108 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
109 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B,
110 CTLESC, KC_A, KC_R, KC_S, KC_T, KC_G,
111 KC_LSPO, KC_Z, KC_X, KC_C, KC_D, KC_V,
112 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
114 CTLESC, ALL_T(KC_NO),
116 SPCFN, ENTNS, KC_BSPC,
118 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST),
119 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
120 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
121 KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
122 KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
123 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
127 KC_TAB, DELNS, BSPCFN
131 * (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
132 * ,-----------------------------------------------------------------------------------------------------------.
133 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
134 * `-----------------------------------------------------------------------------------------------------------'
135 * ,-------------------------------------------. ,-------------------------------------------.
136 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
137 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
138 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
139 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
140 * |Esc/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' |
141 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
142 * |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift|
143 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
144 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
145 * `---------------------------' `---------------------------'
146 * ,---------------. ,---------------.
147 * |Esc/Ctl| Hyper | | RAlt | RCtl |
148 * ,-------|-------|-------| |-------+-------+-------.
149 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
150 * | / | / |-------| |-------| / | / |
151 * | Fn | Number| Bspc | | Tab |Number2| Fn2 |
152 * `-----------------------' `-----------------------'
156 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
157 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
158 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
159 CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G,
160 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B,
161 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
163 CTLESC, ALL_T(KC_NO),
165 SPCFN, ENTNS, KC_BSPC,
168 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST),
169 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
170 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
171 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
172 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
173 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
177 KC_TAB, DELNS, BSPCFN
181 * (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
182 * ,-----------------------------------------------------------------------------------------------------------.
183 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
184 * `-----------------------------------------------------------------------------------------------------------'
185 * ,-------------------------------------------. ,-------------------------------------------.
186 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
187 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
188 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
189 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
190 * |Esc/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' |
191 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
192 * |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift|
193 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
194 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
195 * `---------------------------' `---------------------------'
196 * ,---------------. ,---------------.
197 * |Esc/Ctl| Hyper | | RAlt | RCtl |
198 * ,-------|-------|-------| |-------+-------+-------.
199 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
200 * | / | / |-------| |-------| / | / |
201 * | Fn | Number| Bspc | | Tab |Number2| Fn2 |
202 * `-----------------------' `-----------------------'
206 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
207 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
208 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G,
209 CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D,
210 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B,
211 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
213 CTLESC, ALL_T(KC_NO),
215 SPCFN, ENTNS, KC_BSPC,
217 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST),
218 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
219 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
220 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
221 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
222 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
226 KC_TAB, DELNS, BSPCFN
229 /* Number/symbol layer
230 * (Multiple characters: single-tap for first, double-tap for second)
231 * ,-----------------------------------------------------------------------------------------------------------.
232 * | | | | | | | | | | | | | | | | | | |
233 * `-----------------------------------------------------------------------------------------------------------'
234 * ,-------------------------------------------. ,-------------------------------------------.
235 * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
236 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
237 * | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | |
238 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
239 * | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | |
240 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
241 * | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | |
242 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
243 * | ( | ) | [ { | ] } | | | | | |
244 * `---------------------------' `---------------------------'
245 * ,---------------. ,---------------.
247 * ,-------|-------|-------| |-------+-------+-------.
249 * | | |-------| |-------| | |
251 * `-----------------------' `-----------------------'
255 _______, _______, _______, _______, _______, _______, _______, _______, _______,
256 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
257 _______, KC_6, KC_7, KC_8, KC_9, KC_0,
258 _______, KC_1, KC_2, KC_3, KC_4, KC_5,
259 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ),
260 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
264 _______, _______, _______,
266 _______, _______, _______, _______, _______, _______, _______, _______, _______,
267 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
268 KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
269 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
270 TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
271 _______, _______, _______, _______,
275 _______, _______, _______
278 [_NUMBERS2] = KEYMAP(
280 _______, _______, _______, _______, _______, _______, _______, _______, _______,
281 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
282 _______, KC_6, KC_7, KC_8, KC_9, KC_0,
283 _______, KC_1, KC_2, KC_3, KC_4, KC_5,
284 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ),
285 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
289 _______, _______, _______,
291 _______, _______, _______, _______, _______, _______, _______, _______, _______,
292 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
293 KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
294 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
295 TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
296 _______, _______, _______, _______,
300 _______, _______, _______
304 * ,-----------------------------------------------------------------------------------------------------------.
305 * | | | | | | | | | | | | | | | | | | |
306 * `-----------------------------------------------------------------------------------------------------------'
307 * ,-------------------------------------------. ,-------------------------------------------.
308 * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
309 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
310 * | | | | Up | | | | | | Up |Ctrl+Y| | |
311 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
312 * | |Ctrl+A| Left | Down | Right|C+A+Tb| | PgUp | Right| Down | Left | Home | |
313 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
314 * | |Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V| Bspc | | PgDn | Mute | Vol- | Vol+ | End | |
315 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
316 * | | | | | | Prev | Play | Next | Stop |
317 * `---------------------------' `---------------------------'
318 * ,---------------. ,---------------.
320 * ,-------|-------|-------| |-------+-------+-------.
322 * | | |-------| |-------| | |
323 * | | | | |C+A+Tab| | |
324 * `-----------------------' `-----------------------'
326 [_FUNCTION] = KEYMAP(
328 _______, _______, _______, _______, _______, _______, _______, _______, _______,
329 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
330 _______, _______, _______, KC_UP, _______, _______,
331 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB),
332 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC,
333 _______, _______, _______, _______,
337 _______, _______, _______,
339 _______, _______, _______, _______, _______, _______, _______, _______, _______,
340 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
341 _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
342 KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
343 KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
344 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
348 LCA(KC_TAB), _______, _______
351 [_FUNCTION2] = KEYMAP(
353 _______, _______, _______, _______, _______, _______, _______, _______, _______,
354 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
355 _______, _______, _______, KC_UP, _______, _______,
356 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB),
357 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC,
358 _______, _______, _______, _______,
362 _______, _______, _______,
364 _______, _______, _______, _______, _______, _______, _______, _______, _______,
365 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
366 _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
367 KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
368 KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
369 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
373 LCA(KC_TAB), _______, _______
377 * (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout)
378 * ,-----------------------------------------------------------------------------------------------------------.
379 * | | | | | | | | | | | | | | | | | | |
380 * `-----------------------------------------------------------------------------------------------------------'
381 * ,-------------------------------------------. ,-------------------------------------------.
382 * | | NumLk| | | | | | Tab | NumLk| KP / | kP *| KP - | |
383 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
384 * | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | |
385 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
386 * | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | |
387 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
388 * | | | KP . |KP/KP*| KP- _| KP+ =| | | KP 1 | KP 2 | KP 3 |KP Ent| |
389 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
390 * | ( | ) | [ { | ] } | | KP 0 | , | KP . |KP Ent|
391 * `---------------------------' `---------------------------'
392 * ,---------------. ,---------------.
394 * ,-------|-------|-------| |-------+-------+-------.
396 * | | |-------| |-------| | |
398 * `-----------------------' `-----------------------'
402 _______, _______, _______, _______, _______, _______, _______, _______, _______,
403 _______, KC_NLCK, _______, _______, _______, _______,
404 _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0,
405 _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
406 _______, _______, KC_PDOT, TD(PSLPAS), TD(PMNUN), TD(PPLEQ),
407 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
411 _______, _______, _______,
413 _______, _______, _______, _______, _______, _______, _______, _______, _______,
414 KC_TAB, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______,
415 _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
416 _______, KC_P4, KC_P5, KC_P6, KC_EQL, _______,
417 _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
418 KC_P0, KC_COMM, KC_PDOT, KC_PENT,
422 _______, _______, _______
425 /* Colemak Mod-DH Matrix gaming/vanilla
426 * (No access to Function or Numbers layers; mainly used for gaming; double-tap the TD(ADJ) above LAlt to access Adjust layer)
427 * ,-----------------------------------------------------------------------------------------------------------.
428 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
429 * `-----------------------------------------------------------------------------------------------------------'
430 * ,-------------------------------------------. ,-------------------------------------------.
431 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
432 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
433 * | Tab | Q | W | F | P | B | | J | L | U | Y | ; | \ |
434 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
435 * | Ctrl | A | R | S | T | G | | M | N | E | I | O | ' |
436 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
437 * | Shift | Z | X | C | D | V | | K | H | , | . | / | Shift |
438 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
439 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
440 * `---------------------------' `---------------------------'
441 * ,---------------. ,---------------.
442 * |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
443 * ,-------|-------|-------| |-------+-------+-------.
444 * | | | LAlt | | RGUI | | |
445 * | Space | Enter |-------| |-------| Delete| Bspc |
446 * | | | Bspc | | Tab | | |
447 * `-----------------------' `-----------------------'
449 [_CMODDHGM] = KEYMAP(
451 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
452 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
453 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B,
454 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_G,
455 KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V,
456 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
460 KC_SPC, KC_ENT, KC_BSPC,
462 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST),
463 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
464 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
465 KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
466 KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
467 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
471 KC_TAB, KC_DEL, KC_BSPC
474 /* QWERTY gaming/vanilla
475 * (No access to Function or Numbers layers; mainly used for gaming; double-tap the TD(ADJ) above LAlt to access Adjust layer)
476 * ,-----------------------------------------------------------------------------------------------------------.
477 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
478 * `-----------------------------------------------------------------------------------------------------------'
479 * ,-------------------------------------------. ,-------------------------------------------.
480 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
481 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
482 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
483 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
484 * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
485 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
486 * | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift |
487 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
488 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
489 * `---------------------------' `---------------------------'
490 * ,---------------. ,---------------.
491 * |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
492 * ,-------|-------|-------| |-------+-------+-------.
493 * | | | LAlt | | RGUI | | |
494 * | Space | Enter |-------| |-------| Delete| Bspc |
495 * | | | Bspc | | Tab | | |
496 * `-----------------------' `-----------------------'
498 [_QWERTYGM] = KEYMAP(
500 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
501 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
502 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
503 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
504 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
505 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
509 KC_SPC, KC_ENT, KC_BSPC,
511 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, TG(_NUMPAD), MO(_ADJUST),
512 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
513 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
514 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
515 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
516 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
520 KC_TAB, KC_DEL, KC_BSPC
524 * (Enter/Number + Delete/Number2 under non-gaming/vanilla layers)
525 * ,-----------------------------------------------------------------------------------------------------------.
526 * | | | | | | | | | | | | | | | | | | |
527 * `-----------------------------------------------------------------------------------------------------------'
528 * ,-------------------------------------------. ,-------------------------------------------.
529 * | |CModDH|Qwerty|Colmak|CMoDGM| QWGM | |Numpad| | | | | RESET |
530 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
531 * | | | | | | | | | | | | | |
532 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
533 * | | | | | | | | |NKROTG| | | | |
534 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
535 * | | | | | | | | | | | | | |
536 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
537 * | | | | | | | | | |
538 * `---------------------------' `---------------------------'
539 * ,---------------. ,---------------.
541 * ,-------|-------|-------| |-------+-------+-------.
543 * | | |-------| |-------| | |
545 * `-----------------------' `-----------------------'
549 _______, _______, _______, _______, _______, _______, _______, _______, _______,
550 _______, CMODDH, QWERTY, COLEMAK, CMODDHGM, QWERTYGM,
551 _______, _______, _______, _______, _______, _______,
552 _______, _______, _______, _______, _______, _______,
553 _______, _______, _______, _______, _______, _______,
554 _______, _______, _______, _______,
558 _______, _______, _______,
560 _______, _______, _______, _______, _______, _______, _______, _______, _______,
561 TG(_NUMPAD), _______, _______, _______, _______, RESET,
562 _______, _______, _______, _______, _______, _______,
563 _______, NKROTG, _______, _______, _______, _______,
564 _______, _______, _______, _______, _______, _______,
565 _______, _______, _______, _______,
569 _______, _______, _______
574 uint32_t layer_state_set_user(uint32_t state) {
575 return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST);
578 void persistent_default_layer_set(uint16_t default_layer) {
579 eeconfig_update_default_layer(default_layer);
580 default_layer_set(default_layer);
583 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
586 if (record->event.pressed) {
587 persistent_default_layer_set(1UL << _CMODDH);
588 layer_off ( _QWERTY);
589 layer_off ( _COLEMAK);
590 layer_off ( _NUMBERS);
591 layer_off ( _NUMBERS2);
592 layer_off ( _FUNCTION);
593 layer_off ( _FUNCTION2);
594 layer_off ( _NUMPAD);
595 layer_off ( _CMODDHGM);
596 layer_off ( _QWERTYGM);
597 layer_off ( _ADJUST);
602 if (record->event.pressed) {
603 persistent_default_layer_set(1UL << _QWERTY);
604 layer_off ( _CMODDH);
605 layer_off ( _COLEMAK);
606 layer_off ( _NUMBERS);
607 layer_off ( _NUMBERS2);
608 layer_off ( _FUNCTION);
609 layer_off ( _FUNCTION2);
610 layer_off ( _NUMPAD);
611 layer_off ( _CMODDHGM);
612 layer_off ( _QWERTYGM);
613 layer_off ( _ADJUST);
618 if (record->event.pressed) {
619 persistent_default_layer_set(1UL << _COLEMAK);
620 layer_off ( _CMODDH);
621 layer_off ( _QWERTY);
622 layer_off ( _NUMBERS);
623 layer_off ( _NUMBERS2);
624 layer_off ( _FUNCTION);
625 layer_off ( _FUNCTION2);
626 layer_off ( _NUMPAD);
627 layer_off ( _CMODDHGM);
628 layer_off ( _QWERTYGM);
629 layer_off ( _ADJUST);
634 if (record->event.pressed) {
635 default_layer_set(1UL << _CMODDHGM);
636 layer_off ( _CMODDH);
637 layer_off ( _QWERTY);
638 layer_off ( _COLEMAK);
639 layer_off ( _NUMBERS);
640 layer_off ( _NUMBERS2);
641 layer_off ( _FUNCTION);
642 layer_off ( _FUNCTION2);
643 layer_off ( _NUMPAD);
644 layer_off ( _QWERTYGM);
645 layer_off ( _ADJUST);
650 if (record->event.pressed) {
651 default_layer_set(1UL << _QWERTYGM);
652 layer_off ( _CMODDH);
653 layer_off ( _QWERTY);
654 layer_off ( _COLEMAK);
655 layer_off ( _NUMBERS);
656 layer_off ( _NUMBERS2);
657 layer_off ( _FUNCTION);
658 layer_off ( _FUNCTION2);
659 layer_off ( _NUMPAD);
660 layer_off ( _CMODDHGM);
661 layer_off ( _ADJUST);