2 #include "action_layer.h"
5 extern keymap_config_t keymap_config;
8 _COLEMAK, // Colemak (default layer)
10 _NUMBERS, // Numbers & Symbols
11 _NUMBERS2, // Numbers & Symbols 2 (identical as _NUMBERS; basically used for tri-layer access to _ADJUST)
12 _FUNCTION, // Function
13 _FUNCTION2, // Function 2 (identical as _FUNCTION; used to allow for easier use of space and backspace while using function layer arrows)
15 _COLEMAKGM, // Colemak gaming/vanilla (no dual-role keys with layer access)
16 _QWERTYGM, // QWERTY gaming/vanilla (no dual-role keys with layer access)
17 _ADJUST, // Adjust layer, accessed via tri-layer feature)
18 _ADJUST2 // Second Adjust layer, accessed outside of tri-layer feature)
21 enum kinesis_keycodes {
27 ADJUST = MO(_ADJUST2),
28 SPCFN = LT(_FUNCTION, KC_SPC),
29 BSPCFN = LT(_FUNCTION2, KC_BSPC),
30 ENTNS = LT(_NUMBERS, KC_ENT),
31 DELNS = LT(_NUMBERS2, KC_DEL),
32 CTLESC = CTL_T(KC_ESC),
33 ALTAPP = ALT_T(KC_APP),
34 NKROTG = MAGIC_TOGGLE_NKRO
37 #define _______ KC_TRNS
40 //Tap Dance Declarations
55 void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) {
56 if (state->count == 2) {
58 set_oneshot_layer(_ADJUST2, ONESHOT_START);
61 void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) {
62 if (state->count == 2) {
64 clear_oneshot_layer_state(ONESHOT_PRESSED);
68 qk_tap_dance_action_t tap_dance_actions[] = {
69 [ADJ] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LAYER_finished, dance_LAYER_reset), // Double-tap to activate Adjust layer via oneshot layer
70 [LBCB] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LCBR), // Left bracket on a single-tap, left brace on a double-tap
71 [RBCB] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_RCBR), // Right bracket on a single-tap, right brace on a double-tap
72 [EQPL] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), // Plus sign on a single-tap, equal sign on a double-tap
73 [PLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQL), // Equal sign on a single-tap, plus sign on a double-tap
74 [MNUN] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), // Minus sign on a single-tap, underscore on a double-tap
75 [SLAS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ASTR), // Slash in a single-tap, asterisk in a double-tap
76 [GVTL] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), // Grave on a single-tap, tilde on a double-tap
77 [PPLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_EQL), // Numpad plus sign on a single-tap, equal sign on a double-tap
78 [PMNUN] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_UNDS), // Numpad minus sign on a single-tap, underscore on a double-tap
79 [PSLPAS] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST) // Numpad slash on a single-tap, numpad asterisk on a double-tap
82 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
84 / (Identical across layers, unless otherwise noted; Numpad is a toggle; Adjust is mometary)
85 * ,-----------------------------------------------------------------------------------------------------------.
86 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
87 * `-----------------------------------------------------------------------------------------------------------'
91 * (Defauit layer; keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
92 * ,-------------------------------------------. ,-------------------------------------------.
93 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
94 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
95 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
96 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
97 * |Esc/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' |
98 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
99 * |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift|
100 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
101 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
102 * `---------------------------' `---------------------------'
103 * ,---------------. ,---------------.
104 * |Esc/Ctl| Hyper | | RAlt | RCtl |
105 * ,-------|-------|-------| |-------+-------+-------.
106 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
107 * | / | / |-------| |-------| / | / |
108 * | Fn | Number| Bspc | | Enter |Number2| Fn2 |
109 * `-----------------------' `-----------------------'
113 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
114 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
115 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G,
116 CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D,
117 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B,
118 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
120 CTLESC, ALL_T(KC_NO),
122 SPCFN, ENTNS, KC_BSPC,
124 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
125 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
126 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
127 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
128 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
129 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
133 KC_ENT, DELNS, BSPCFN
137 * (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
138 * ,-------------------------------------------. ,-------------------------------------------.
139 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
140 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
141 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
142 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
143 * |Esc/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' |
144 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
145 * |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift|
146 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
147 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
148 * `---------------------------' `---------------------------'
149 * ,---------------. ,---------------.
150 * |Esc/Ctl| Hyper | | RAlt | RCtl |
151 * ,-------|-------|-------| |-------+-------+-------.
152 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
153 * | / | / |-------| |-------| / | / |
154 * | Fn | Number| Bspc | | Enter |Number2| Fn2 |
155 * `-----------------------' `-----------------------'
159 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
160 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
161 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
162 CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G,
163 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B,
164 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
166 CTLESC, ALL_T(KC_NO),
168 SPCFN, ENTNS, KC_BSPC,
171 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
172 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
173 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
174 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
175 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
176 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
180 KC_ENT, DELNS, BSPCFN
183 /* Number/symbol layer
184 * (Multiple characters: single-tap for first, double-tap for second)
185 * ,-------------------------------------------. ,-------------------------------------------.
186 * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
187 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
188 * | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | |
189 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
190 * | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | |
191 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
192 * | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | |
193 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
194 * | ( | ) | [ { | ] } | | | | | |
195 * `---------------------------' `---------------------------'
196 * ,---------------. ,---------------.
198 * ,-------|-------|-------| |-------+-------+-------.
200 * | | |-------| |-------| | |
202 * `-----------------------' `-----------------------'
206 _______, _______, _______, _______, _______, _______, _______, _______, _______,
207 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
208 _______, KC_6, KC_7, KC_8, KC_9, KC_0,
209 _______, KC_1, KC_2, KC_3, KC_4, KC_5,
210 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ),
211 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
215 _______, _______, _______,
217 _______, _______, _______, _______, _______, _______, _______, _______, _______,
218 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
219 KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
220 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
221 TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
222 _______, _______, _______, _______,
226 _______, _______, _______
229 [_NUMBERS2] = KEYMAP(
231 _______, _______, _______, _______, _______, _______, _______, _______, _______,
232 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
233 _______, KC_6, KC_7, KC_8, KC_9, KC_0,
234 _______, KC_1, KC_2, KC_3, KC_4, KC_5,
235 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ),
236 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
240 _______, _______, _______,
242 _______, _______, _______, _______, _______, _______, _______, _______, _______,
243 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
244 KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
245 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
246 TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
247 _______, _______, _______, _______,
251 _______, _______, _______
255 * ,-------------------------------------------. ,-------------------------------------------.
256 * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
257 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
258 * | | | | Up | | | | | | Up |Ctrl+Y| | |
259 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
260 * | |Ctrl+A| Left | Down | Right|C+A+Tb| | PgUp | Right| Down | Left | Home | |
261 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
262 * | |Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V| Bspc | | PgDn | Mute | Vol- | Vol+ | End | |
263 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
264 * | | | | | | Prev | Play | Next | Stop |
265 * `---------------------------' `---------------------------'
266 * ,---------------. ,---------------.
268 * ,-------|-------|-------| |-------+-------+-------.
270 * | | |-------| |-------| | |
272 * `-----------------------' `-----------------------'
274 [_FUNCTION] = KEYMAP(
276 _______, _______, _______, _______, _______, _______, _______, _______, _______,
277 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
278 _______, _______, _______, KC_UP, _______, _______,
279 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB),
280 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC,
281 _______, _______, _______, _______,
285 _______, _______, _______,
287 _______, _______, _______, _______, _______, _______, _______, _______, _______,
288 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
289 _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
290 KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
291 KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
292 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
296 _______, _______, _______
299 [_FUNCTION2] = KEYMAP(
301 _______, _______, _______, _______, _______, _______, _______, _______, _______,
302 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
303 _______, _______, _______, KC_UP, _______, _______,
304 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB),
305 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC,
306 _______, _______, _______, _______,
310 _______, _______, _______,
312 _______, _______, _______, _______, _______, _______, _______, _______, _______,
313 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
314 _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
315 KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
316 KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
317 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
321 _______, _______, _______
325 * (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout)
326 * ,-------------------------------------------. ,-------------------------------------------.
327 * | | NumLk| | | | | | Tab | NumLk| KP / | KP * | KP - | |
328 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
329 * | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | |
330 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
331 * | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | |
332 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
333 * | | | KP . |KP/KP*| KP- _| KP+ =| | | KP 1 | KP 2 | KP 3 |KP Ent| |
334 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
335 * | ( | ) | [ { | ] } | | KP 0 | , | KP . |KP Ent|
336 * `---------------------------' `---------------------------'
337 * ,---------------. ,---------------.
339 * ,-------|-------|-------| |-------+-------+-------.
341 * | | |-------| |-------| | |
342 * | | | | | KP Ent| | |
343 * `-----------------------' `-----------------------'
347 _______, _______, _______, _______, _______, _______, _______, _______, _______,
348 _______, KC_NLCK, _______, _______, _______, _______,
349 _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0,
350 _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
351 _______, _______, KC_PDOT, TD(PSLPAS), TD(PMNUN), TD(PPLEQ),
352 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
356 _______, _______, _______,
358 _______, _______, _______, _______, _______, _______, _______, _______, _______,
359 KC_TAB, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______,
360 _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
361 _______, KC_P4, KC_P5, KC_P6, KC_EQL, _______,
362 _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
363 KC_P0, KC_COMM, KC_PDOT, KC_PENT,
367 _______, _______, _______
370 /* Colemak gaming/vanilla
371 * (No access to Function or Numbers layers; mainly used for gaming; double-tap and hold TD(ADJ) above LAlt to access Adjust layer)
372 * ,-------------------------------------------. ,-------------------------------------------.
373 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
374 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
375 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
376 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
377 * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' |
378 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
379 * | Shift | Z | X | C | V | B | | K | M | , | . | / | Shift |
380 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
381 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
382 * `---------------------------' `---------------------------'
383 * ,---------------. ,---------------.
384 * |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
385 * ,-------|-------|-------| |-------+-------+-------.
386 * | | | LAlt | | RGUI | | |
387 * | Space | Enter |-------| |-------| Delete| Bspc |
388 * | | | Bspc | | Enter | | |
389 * `-----------------------' `-----------------------'
391 [_COLEMAKGM] = KEYMAP(
393 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
394 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
395 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G,
396 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D,
397 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
398 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
402 KC_SPC, KC_ENT, KC_BSPC,
404 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
405 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
406 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
407 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
408 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
409 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
413 KC_ENT, KC_DEL, KC_BSPC
416 /* QWERTY gaming/vanilla
417 * (No access to Function or Numbers layers; mainly used for gaming; double-tap and hold TD(ADJ) above LAlt to access Adjust layer)
418 * ,-------------------------------------------. ,-------------------------------------------.
419 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
420 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
421 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
422 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
423 * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
424 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
425 * | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift |
426 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
427 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
428 * `---------------------------' `---------------------------'
429 * ,---------------. ,---------------.
430 * |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
431 * ,-------|-------|-------| |-------+-------+-------.
432 * | | | LAlt | | RGUI | | |
433 * | Space | Enter |-------| |-------| Delete| Bspc |
434 * | | | Bspc | | Enter | | |
435 * `-----------------------' `-----------------------'
437 [_QWERTYGM] = KEYMAP(
439 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
440 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
441 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
442 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
443 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
444 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
448 KC_SPC, KC_ENT, KC_BSPC,
450 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
451 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
452 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
453 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
454 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
455 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
459 KC_ENT, KC_DEL, KC_BSPC
463 * (Enter/Number + Delete/Number2 under non-gaming/vanilla layers; Numpad is a toggle)
464 * ,-------------------------------------------. ,-------------------------------------------.
465 * | |Colmak|Qwerty| |ClmkGM| QWGM | |Numpad| | | | | RESET |
466 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
467 * | | | | | | | | | | | | | |
468 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
469 * | | | | | | | | |NKROTG| | | | |
470 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
471 * | | | | | | | | | | | | | |
472 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
473 * | | | | | | | | | |
474 * `---------------------------' `---------------------------'
475 * ,---------------. ,---------------.
477 * ,-------|-------|-------| |-------+-------+-------.
479 * | | |-------| |-------| | |
481 * `-----------------------' `-----------------------'
485 _______, _______, _______, _______, _______, _______, _______, _______, _______,
486 _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM,
487 _______, _______, _______, _______, _______, _______,
488 _______, _______, _______, _______, _______, _______,
489 _______, _______, _______, _______, _______, _______,
490 _______, _______, _______, _______,
494 _______, _______, _______,
496 _______, _______, _______, _______, _______, _______, _______, _______, _______,
497 NUMPAD, _______, _______, _______, _______, RESET,
498 _______, _______, _______, _______, _______, _______,
499 _______, NKROTG, _______, _______, _______, _______,
500 _______, _______, _______, _______, _______, _______,
501 _______, _______, _______, _______,
505 _______, _______, _______
510 _______, _______, _______, _______, _______, _______, _______, _______, _______,
511 _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM,
512 _______, _______, _______, _______, _______, _______,
513 _______, _______, _______, _______, _______, _______,
514 _______, _______, _______, _______, _______, _______,
515 _______, _______, _______, _______,
519 _______, _______, _______,
521 _______, _______, _______, _______, _______, _______, _______, _______, _______,
522 NUMPAD, _______, _______, _______, _______, RESET,
523 _______, _______, _______, _______, _______, _______,
524 _______, NKROTG, _______, _______, _______, _______,
525 _______, _______, _______, _______, _______, _______,
526 _______, _______, _______, _______,
530 _______, _______, _______
535 uint32_t layer_state_set_user(uint32_t state) {
536 return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST);
539 void persistent_default_layer_set(uint16_t default_layer) {
540 eeconfig_update_default_layer(default_layer);
541 default_layer_set(default_layer);
544 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
547 if (record->event.pressed) {
548 persistent_default_layer_set(1UL << _COLEMAK);
549 layer_off ( _QWERTY);
550 layer_off ( _NUMBERS);
551 layer_off ( _NUMBERS2);
552 layer_off ( _FUNCTION);
553 layer_off ( _FUNCTION2);
554 layer_off ( _NUMPAD);
555 layer_off ( _COLEMAKGM);
556 layer_off ( _QWERTYGM);
557 layer_off ( _ADJUST);
558 layer_off ( _ADJUST2);
563 if (record->event.pressed) {
564 persistent_default_layer_set(1UL << _QWERTY);
565 layer_off ( _COLEMAK);
566 layer_off ( _NUMBERS);
567 layer_off ( _NUMBERS2);
568 layer_off ( _FUNCTION);
569 layer_off ( _FUNCTION2);
570 layer_off ( _NUMPAD);
571 layer_off ( _COLEMAKGM);
572 layer_off ( _QWERTYGM);
573 layer_off ( _ADJUST);
574 layer_off ( _ADJUST2);
580 if (record->event.pressed) {
581 default_layer_set(1UL << _COLEMAKGM);
582 layer_off ( _QWERTY);
583 layer_off ( _COLEMAK);
584 layer_off ( _NUMBERS);
585 layer_off ( _NUMBERS2);
586 layer_off ( _FUNCTION);
587 layer_off ( _FUNCTION2);
588 layer_off ( _NUMPAD);
589 layer_off ( _QWERTYGM);
590 layer_off ( _ADJUST);
591 layer_off ( _ADJUST2);
596 if (record->event.pressed) {
597 default_layer_set(1UL << _QWERTYGM);
598 layer_off ( _QWERTY);
599 layer_off ( _COLEMAK);
600 layer_off ( _NUMBERS);
601 layer_off ( _NUMBERS2);
602 layer_off ( _FUNCTION);
603 layer_off ( _FUNCTION2);
604 layer_off ( _NUMPAD);
605 layer_off ( _COLEMAKGM);
606 layer_off ( _ADJUST);
607 layer_off ( _ADJUST2);