bac5ea3ff20abacf362f3602231477d457ade906
[jackhill/qmk/firmware.git] / keyboards / kinesis / keymaps / insertsnideremarks / keymap.c
1 #include QMK_KEYBOARD_H
2
3 extern keymap_config_t keymap_config;
4
5 enum kinesis_layers {
6 _COLEMAK, // Colemak (default layer)
7 _QWERTY, // Qwerty
8 _NUMBERS, // Numbers & Symbols
9 _NUMBERS2, // Numbers & Symbols 2 (identical as _NUMBERS; basically used for tri-layer access to _ADJUST)
10 _FUNCTION, // Function
11 _FUNCTION2, // Function 2 (identical as _FUNCTION; used to allow for easier use of space and backspace while using function layer arrows)
12 _NUMPAD, // Numpad
13 _COLEMAKGM, // Colemak gaming/vanilla (no dual-role keys with layer access)
14 _QWERTYGM, // QWERTY gaming/vanilla (no dual-role keys with layer access)
15 _ADJUST, // Adjust layer, accessed via tri-layer feature)
16 _ADJUST2 // Second Adjust layer, accessed outside of tri-layer feature)
17 };
18
19 enum kinesis_keycodes {
20 COLEMAK = SAFE_RANGE,
21 QWERTY,
22 COLEMAKGM,
23 QWERTYGM,
24 NUMPAD = TG(_NUMPAD),
25 ADJUST = MO(_ADJUST2),
26 SPCFN = LT(_FUNCTION, KC_SPC),
27 BSPCFN = LT(_FUNCTION2, KC_BSPC),
28 ENTNS = LT(_NUMBERS, KC_ENT),
29 DELNS = LT(_NUMBERS2, KC_DEL),
30 CTLESC = CTL_T(KC_ESC),
31 ALTAPP = ALT_T(KC_APP),
32 NKROTG = MAGIC_TOGGLE_NKRO
33 };
34
35 #define _______ KC_TRNS
36 #define XXXXXXX KC_NO
37
38 //Tap Dance Declarations
39 enum {
40 ADJ = 0,
41 LBCB,
42 RBCB,
43 EQPL,
44 PLEQ,
45 MNUN,
46 SLAS,
47 GVTL,
48 PPLEQ,
49 PMNUN,
50 PSLPAS
51 };
52
53 void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) {
54 if (state->count == 2) {
55 layer_on(_ADJUST2);
56 set_oneshot_layer(_ADJUST2, ONESHOT_START);
57 }
58 }
59 void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) {
60 if (state->count == 2) {
61 layer_off(_ADJUST2);
62 clear_oneshot_layer_state(ONESHOT_PRESSED);
63 }
64 }
65
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
78 };
79
80 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
81 /* Fundtion Row Keys
82 / (Identical across layers, unless otherwise noted; Numpad is a toggle; Adjust is mometary)
83 * ,-----------------------------------------------------------------------------------------------------------.
84 * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
85 * `-----------------------------------------------------------------------------------------------------------'
86 */
87
88 /* Colemak
89 * (Defauit layer; keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
90 * ,-------------------------------------------. ,-------------------------------------------.
91 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
92 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
93 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
94 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
95 * |Esc/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' |
96 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
97 * |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift|
98 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
99 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
100 * `---------------------------' `---------------------------'
101 * ,---------------. ,---------------.
102 * |Esc/Ctl| Hyper | | RAlt | RCtl |
103 * ,-------|-------|-------| |-------+-------+-------.
104 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
105 * | / | / |-------| |-------| / | / |
106 * | Fn | Number| Bspc | | Enter |Number2| Fn2 |
107 * `-----------------------' `-----------------------'
108 */
109 [_COLEMAK] = LAYOUT(
110 // Left Hand
111 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
112 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
113 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G,
114 CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D,
115 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B,
116 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
117 //Left Thumb
118 CTLESC, ALL_T(KC_NO),
119 ALTAPP,
120 SPCFN, ENTNS, KC_BSPC,
121 //Right Hand
122 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
123 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
124 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
125 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
126 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
127 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
128 //Right Thumb
129 KC_RALT, KC_RCTL,
130 KC_RGUI,
131 KC_ENT, DELNS, BSPCFN
132 ),
133
134 /* QWERTY
135 * (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
136 * ,-------------------------------------------. ,-------------------------------------------.
137 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
138 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
139 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
140 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
141 * |Esc/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' |
142 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
143 * |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift|
144 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
145 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
146 * `---------------------------' `---------------------------'
147 * ,---------------. ,---------------.
148 * |Esc/Ctl| Hyper | | RAlt | RCtl |
149 * ,-------|-------|-------| |-------+-------+-------.
150 * | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
151 * | / | / |-------| |-------| / | / |
152 * | Fn | Number| Bspc | | Enter |Number2| Fn2 |
153 * `-----------------------' `-----------------------'
154 */
155 [_QWERTY] = LAYOUT(
156 // Left Hand
157 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
158 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
159 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
160 CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G,
161 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B,
162 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
163 //Left Thumb
164 CTLESC, ALL_T(KC_NO),
165 ALTAPP,
166 SPCFN, ENTNS, KC_BSPC,
167
168 //Right Hand
169 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
170 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
171 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
172 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
173 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
174 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
175 //Right Thumb
176 KC_RALT, KC_RCTL,
177 KC_RGUI,
178 KC_ENT, DELNS, BSPCFN
179 ),
180
181 /* Number/symbol layer
182 * (Multiple characters: single-tap for first, double-tap for second)
183 * ,-------------------------------------------. ,-------------------------------------------.
184 * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
185 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
186 * | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | |
187 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
188 * | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | |
189 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
190 * | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | |
191 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
192 * | ( | ) | [ { | ] } | | | | | |
193 * `---------------------------' `---------------------------'
194 * ,---------------. ,---------------.
195 * | | | | | |
196 * ,-------|-------|-------| |-------+-------+-------.
197 * | | | | | | | |
198 * | | |-------| |-------| | |
199 * | | | | | | | |
200 * `-----------------------' `-----------------------'
201 */
202 [_NUMBERS] = LAYOUT(
203 // Left Hand
204 _______, _______, _______, _______, _______, _______, _______, _______, _______,
205 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
206 _______, KC_6, KC_7, KC_8, KC_9, KC_0,
207 _______, KC_1, KC_2, KC_3, KC_4, KC_5,
208 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ),
209 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
210 // Left Thumb
211 _______, _______,
212 _______,
213 _______, _______, _______,
214 // Right Hand
215 _______, _______, _______, _______, _______, _______, _______, _______, _______,
216 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
217 KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
218 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
219 TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
220 _______, _______, _______, _______,
221 // Right Thumb
222 _______, _______,
223 _______,
224 _______, _______, _______
225 ),
226
227 [_NUMBERS2] = LAYOUT(
228 // Left Hand
229 _______, _______, _______, _______, _______, _______, _______, _______, _______,
230 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
231 _______, KC_6, KC_7, KC_8, KC_9, KC_0,
232 _______, KC_1, KC_2, KC_3, KC_4, KC_5,
233 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ),
234 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
235 // Left Thumb
236 _______, _______,
237 _______,
238 _______, _______, _______,
239 // Right Hand
240 _______, _______, _______, _______, _______, _______, _______, _______, _______,
241 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
242 KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
243 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
244 TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
245 _______, _______, _______, _______,
246 // Right Thumb
247 _______, _______,
248 _______,
249 _______, _______, _______
250 ),
251
252 /* Function layer
253 * ,-------------------------------------------. ,-------------------------------------------.
254 * | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
255 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
256 * | | | | Up | | | | | | Up |Ctrl+Y| | |
257 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
258 * | |Ctrl+A| Left | Down | Right|C+A+Tb| | PgUp | Right| Down | Left | Home | |
259 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
260 * | |Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V| Bspc | | PgDn | Mute | Vol- | Vol+ | End | |
261 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
262 * | | | | | | Prev | Play | Next | Stop |
263 * `---------------------------' `---------------------------'
264 * ,---------------. ,---------------.
265 * | | | | | |
266 * ,-------|-------|-------| |-------+-------+-------.
267 * | | | | | | | |
268 * | | |-------| |-------| | |
269 * | | | | | | | |
270 * `-----------------------' `-----------------------'
271 */
272 [_FUNCTION] = LAYOUT(
273 // Left Hand
274 _______, _______, _______, _______, _______, _______, _______, _______, _______,
275 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
276 _______, _______, _______, KC_UP, _______, _______,
277 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB),
278 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC,
279 _______, _______, _______, _______,
280 // Left Thumb
281 _______, _______,
282 _______,
283 _______, _______, _______,
284 // Right Hand
285 _______, _______, _______, _______, _______, _______, _______, _______, _______,
286 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
287 _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
288 KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
289 KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
290 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
291 // Right Thumb
292 _______, _______,
293 _______,
294 _______, _______, _______
295 ),
296
297 [_FUNCTION2] = LAYOUT(
298 // Left Hand
299 _______, _______, _______, _______, _______, _______, _______, _______, _______,
300 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
301 _______, _______, _______, KC_UP, _______, _______,
302 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB),
303 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC,
304 _______, _______, _______, _______,
305 // Left Thumb
306 _______, _______,
307 _______,
308 _______, _______, _______,
309 // Right Hand
310 _______, _______, _______, _______, _______, _______, _______, _______, _______,
311 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
312 _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
313 KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
314 KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
315 KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
316 // Right Thumb
317 _______, _______,
318 _______,
319 _______, _______, _______
320 ),
321
322 /* Numpad layer
323 * (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout)
324 * ,-------------------------------------------. ,-------------------------------------------.
325 * | | NumLk| | | | | | Tab | NumLk| KP / | KP * | KP - | |
326 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
327 * | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | |
328 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
329 * | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | |
330 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
331 * | | | KP . |KP/KP*| KP- _| KP+ =| | | KP 1 | KP 2 | KP 3 |KP Ent| |
332 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
333 * | ( | ) | [ { | ] } | | KP 0 | , | KP . |KP Ent|
334 * `---------------------------' `---------------------------'
335 * ,---------------. ,---------------.
336 * | | | | | |
337 * ,-------|-------|-------| |-------+-------+-------.
338 * | | | | | | | |
339 * | | |-------| |-------| | |
340 * | | | | | KP Ent| | |
341 * `-----------------------' `-----------------------'
342 */
343 [_NUMPAD] = LAYOUT(
344 // Left Hand
345 _______, _______, _______, _______, _______, _______, _______, _______, _______,
346 _______, KC_NLCK, _______, _______, _______, _______,
347 _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0,
348 _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5,
349 _______, _______, KC_PDOT, TD(PSLPAS), TD(PMNUN), TD(PPLEQ),
350 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB),
351 // Left Thumb
352 _______, _______,
353 _______,
354 _______, _______, _______,
355 // Right Hand
356 _______, _______, _______, _______, _______, _______, _______, _______, _______,
357 KC_TAB, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______,
358 _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
359 _______, KC_P4, KC_P5, KC_P6, KC_EQL, _______,
360 _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
361 KC_P0, KC_COMM, KC_PDOT, KC_PENT,
362 // Right Thumb
363 _______, _______,
364 _______,
365 _______, _______, _______
366 ),
367
368 /* Colemak gaming/vanilla
369 * (No access to Function or Numbers layers; mainly used for gaming; double-tap and hold TD(ADJ) above LAlt to access Adjust layer)
370 * ,-------------------------------------------. ,-------------------------------------------.
371 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
372 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
373 * | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
374 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
375 * | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' |
376 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
377 * | Shift | Z | X | C | V | B | | K | M | , | . | / | Shift |
378 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
379 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
380 * `---------------------------' `---------------------------'
381 * ,---------------. ,---------------.
382 * |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
383 * ,-------|-------|-------| |-------+-------+-------.
384 * | | | LAlt | | RGUI | | |
385 * | Space | Enter |-------| |-------| Delete| Bspc |
386 * | | | Bspc | | Enter | | |
387 * `-----------------------' `-----------------------'
388 */
389 [_COLEMAKGM] = LAYOUT(
390 // Left Hand
391 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
392 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
393 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G,
394 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D,
395 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
396 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
397 //Left Thumb
398 CTLESC, TD(ADJ),
399 KC_LALT,
400 KC_SPC, KC_ENT, KC_BSPC,
401 //Right Hand
402 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
403 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
404 KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
405 KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
406 KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
407 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
408 //Right Thumb
409 KC_RALT, KC_RCTL,
410 KC_RGUI,
411 KC_ENT, KC_DEL, KC_BSPC
412 ),
413
414 /* QWERTY gaming/vanilla
415 * (No access to Function or Numbers layers; mainly used for gaming; double-tap and hold TD(ADJ) above LAlt to access Adjust layer)
416 * ,-------------------------------------------. ,-------------------------------------------.
417 * | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
418 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
419 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
420 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
421 * | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
422 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
423 * | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift |
424 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
425 * | Ins | ` | [ | ] | | Left | Down | Up | Right|
426 * `---------------------------' `---------------------------'
427 * ,---------------. ,---------------.
428 * |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
429 * ,-------|-------|-------| |-------+-------+-------.
430 * | | | LAlt | | RGUI | | |
431 * | Space | Enter |-------| |-------| Delete| Bspc |
432 * | | | Bspc | | Enter | | |
433 * `-----------------------' `-----------------------'
434 */
435 [_QWERTYGM] = LAYOUT(
436 // Left Hand
437 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8,
438 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5,
439 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T,
440 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G,
441 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B,
442 KC_INS, KC_GRV, KC_LBRC, KC_RBRC,
443 //Left Thumb
444 CTLESC, TD(ADJ),
445 KC_LALT,
446 KC_SPC, KC_ENT, KC_BSPC,
447 //Right Hand
448 KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
449 KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
450 KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
451 KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
452 KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
453 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
454 //Right Thumb
455 KC_RALT, KC_RCTL,
456 KC_RGUI,
457 KC_ENT, KC_DEL, KC_BSPC
458 ),
459
460 /* Adjust layer
461 * (Enter/Number + Delete/Number2 under non-gaming/vanilla layers; Numpad is a toggle)
462 * ,-------------------------------------------. ,-------------------------------------------.
463 * | |Colmak|Qwerty| |ClmkGM| QWGM | |Numpad| | | | | RESET |
464 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
465 * | | | | | | | | | | | | | |
466 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
467 * | | | | | | | | |NKROTG| | | | |
468 * |--------+------+------+------+------+------| |------+------+------+------+------+--------|
469 * | | | | | | | | | | | | | |
470 * `--------+------+------+------+------+------' `------+------+------+------+------+--------'
471 * | | | | | | | | | |
472 * `---------------------------' `---------------------------'
473 * ,---------------. ,---------------.
474 * | | | | | |
475 * ,-------|-------|-------| |-------+-------+-------.
476 * | | | | | | | |
477 * | | |-------| |-------| | |
478 * | | | | | | | |
479 * `-----------------------' `-----------------------'
480 */
481 [_ADJUST] = LAYOUT(
482 // Left Hand
483 _______, _______, _______, _______, _______, _______, _______, _______, _______,
484 _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM,
485 _______, _______, _______, _______, _______, _______,
486 _______, _______, _______, _______, _______, _______,
487 _______, _______, _______, _______, _______, _______,
488 _______, _______, _______, _______,
489 // Left Thumb
490 _______, _______,
491 _______,
492 _______, _______, _______,
493 // Right Hand
494 _______, _______, _______, _______, _______, _______, _______, _______, _______,
495 NUMPAD, _______, _______, _______, _______, RESET,
496 _______, _______, _______, _______, _______, _______,
497 _______, NKROTG, _______, _______, _______, _______,
498 _______, _______, _______, _______, _______, _______,
499 _______, _______, _______, _______,
500 // Right Thumb
501 _______, _______,
502 _______,
503 _______, _______, _______
504 ),
505
506 [_ADJUST2] = LAYOUT(
507 // Left Hand
508 _______, _______, _______, _______, _______, _______, _______, _______, _______,
509 _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM,
510 _______, _______, _______, _______, _______, _______,
511 _______, _______, _______, _______, _______, _______,
512 _______, _______, _______, _______, _______, _______,
513 _______, _______, _______, _______,
514 // Left Thumb
515 _______, _______,
516 _______,
517 _______, _______, _______,
518 // Right Hand
519 _______, _______, _______, _______, _______, _______, _______, _______, _______,
520 NUMPAD, _______, _______, _______, _______, RESET,
521 _______, _______, _______, _______, _______, _______,
522 _______, NKROTG, _______, _______, _______, _______,
523 _______, _______, _______, _______, _______, _______,
524 _______, _______, _______, _______,
525 // Right Thumb
526 _______, _______,
527 _______,
528 _______, _______, _______
529 )
530
531 };
532
533 uint32_t layer_state_set_user(uint32_t state) {
534 return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST);
535 }
536
537 void persistent_default_layer_set(uint16_t default_layer) {
538 eeconfig_update_default_layer(default_layer);
539 default_layer_set(default_layer);
540 }
541
542 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
543 switch (keycode) {
544 case COLEMAK:
545 if (record->event.pressed) {
546 persistent_default_layer_set(1UL << _COLEMAK);
547 layer_off ( _QWERTY);
548 layer_off ( _NUMBERS);
549 layer_off ( _NUMBERS2);
550 layer_off ( _FUNCTION);
551 layer_off ( _FUNCTION2);
552 layer_off ( _NUMPAD);
553 layer_off ( _COLEMAKGM);
554 layer_off ( _QWERTYGM);
555 layer_off ( _ADJUST);
556 layer_off ( _ADJUST2);
557 }
558 return false;
559 break;
560 case QWERTY:
561 if (record->event.pressed) {
562 persistent_default_layer_set(1UL << _QWERTY);
563 layer_off ( _COLEMAK);
564 layer_off ( _NUMBERS);
565 layer_off ( _NUMBERS2);
566 layer_off ( _FUNCTION);
567 layer_off ( _FUNCTION2);
568 layer_off ( _NUMPAD);
569 layer_off ( _COLEMAKGM);
570 layer_off ( _QWERTYGM);
571 layer_off ( _ADJUST);
572 layer_off ( _ADJUST2);
573
574 }
575 return false;
576 break;
577 case COLEMAKGM:
578 if (record->event.pressed) {
579 default_layer_set(1UL << _COLEMAKGM);
580 layer_off ( _QWERTY);
581 layer_off ( _COLEMAK);
582 layer_off ( _NUMBERS);
583 layer_off ( _NUMBERS2);
584 layer_off ( _FUNCTION);
585 layer_off ( _FUNCTION2);
586 layer_off ( _NUMPAD);
587 layer_off ( _QWERTYGM);
588 layer_off ( _ADJUST);
589 layer_off ( _ADJUST2);
590 }
591 return false;
592 break;
593 case QWERTYGM:
594 if (record->event.pressed) {
595 default_layer_set(1UL << _QWERTYGM);
596 layer_off ( _QWERTY);
597 layer_off ( _COLEMAK);
598 layer_off ( _NUMBERS);
599 layer_off ( _NUMBERS2);
600 layer_off ( _FUNCTION);
601 layer_off ( _FUNCTION2);
602 layer_off ( _NUMPAD);
603 layer_off ( _COLEMAKGM);
604 layer_off ( _ADJUST);
605 layer_off ( _ADJUST2);
606 }
607 return false;
608 break;
609 }
610 return true;
611 }