1 #include QMK_KEYBOARD_H
3 extern keymap_config_t keymap_config;
6 _COLEMAK, // Colemak (default layer)
8 _COLEMAKGM, // Colemak gaming/vanilla (limited dual-role keys with layer access)
9 _QWERTYGM, // QWERTY gaming/vanilla (limited dual-role keys with layer access)
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 _ADJUST, // Adjust layer (accessed via tri-layer feature)
16 _ADJUST2 // Second Adjust layer (accessed outside of tri-layer feature)
19 enum kinesis_keycodes {
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
35 //Tap Dance Declarations
50 void dance_LAYER_finished(qk_tap_dance_state_t *state, void *user_data) {
51 if (state->count == 2) {
53 set_oneshot_layer(_ADJUST2, ONESHOT_START);
56 void dance_LAYER_reset(qk_tap_dance_state_t *state, void *user_data) {
57 if (state->count == 2) {
59 clear_oneshot_layer_state(ONESHOT_PRESSED);
63 qk_tap_dance_action_t tap_dance_actions[] = {
64 [ADJ] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_LAYER_finished, dance_LAYER_reset), // Double-tap to activate Adjust layer via oneshot layer
65 [LBCB] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_LCBR), // Left bracket on a single-tap, left brace on a double-tap
66 [RBCB] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, KC_RCBR), // Right bracket on a single-tap, right brace on a double-tap
67 [EQPL] = ACTION_TAP_DANCE_DOUBLE(KC_EQL, KC_PLUS), // Plus sign on a single-tap, equal sign on a double-tap
68 [PLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PLUS, KC_EQL), // Equal sign on a single-tap, plus sign on a double-tap
69 [MNUN] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, KC_UNDS), // Minus sign on a single-tap, underscore on a double-tap
70 [SLAS] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_ASTR), // Slash in a single-tap, asterisk in a double-tap
71 [GVTL] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_TILD), // Grave on a single-tap, tilde on a double-tap
72 [PPLEQ] = ACTION_TAP_DANCE_DOUBLE(KC_PPLS, KC_EQL), // Numpad plus sign on a single-tap, equal sign on a double-tap
73 [PMNUN] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_UNDS), // Numpad minus sign on a single-tap, underscore on a double-tap
74 [PSLPAS] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST) // Numpad slash on a single-tap, numpad asterisk on a double-tap
77 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
79 (Defauit layer; keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
80 ,-----------------------------------------------------------------------------------------------------------.
81 | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
82 `-----------------------------------------------------------------------------------------------------------'
83 ,-------------------------------------------. ,-------------------------------------------.
84 | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
85 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
86 | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
87 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
88 |Esc/Ctrl| A | R | S | T | D | | H | N | E | I | O | ' |
89 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
90 |SC Shift| Z | X | C | V | B | | K | M | , | . | / |SC Shift|
91 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
92 | Ins | ` | [ | ] | | Left | Down | Up | Right|
93 `---------------------------' `---------------------------'
94 ,---------------. ,---------------.
95 |Esc/Ctl| Hyper | | RAlt | RCtl |
96 ,-------|-------|-------| |-------+-------+-------.
97 | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
98 | / | / |-------| |-------| / | / |
99 | Fn | Number| Bspc | | Enter |Number2| Fn2 |
100 `-----------------------' `-----------------------'
102 [_COLEMAK] = LAYOUT_pretty(
103 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
104 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
105 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
106 CTLESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
107 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
108 KC_INS, KC_GRV, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
109 CTLESC, ALL_T(KC_NO), KC_RALT, KC_RCTL,
111 SPCFN, ENTNS, KC_BSPC, KC_ENT, DELNS, BSPCFN
115 (Keys separated by /: tap for first, hold for second; uses Space Cadet Shifts)
116 ,-----------------------------------------------------------------------------------------------------------.
117 | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
118 `-----------------------------------------------------------------------------------------------------------'
119 ,-------------------------------------------. ,-------------------------------------------.
120 | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
121 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
122 | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
123 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
124 |Esc/Ctrl| A | S | D | F | G | | H | J | K | L | ; | ' |
125 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
126 |SC Shift| Z | X | C | V | B | | N | M | , | . | / |SC Shift|
127 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
128 | Ins | ` | [ | ] | | Left | Down | Up | Right|
129 `---------------------------' `---------------------------'
130 ,---------------. ,---------------.
131 |Esc/Ctl| Hyper | | RAlt | RCtl |
132 ,-------|-------|-------| |-------+-------+-------.
133 | Space | Enter |App/Alt| | RGUI | Delete| Bspc |
134 | / | / |-------| |-------| / | / |
135 | Fn | Number| Bspc | | Enter |Number2| Fn2 |
136 `-----------------------' `-----------------------'
138 [_QWERTY] = LAYOUT_pretty(
139 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
140 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
141 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
142 CTLESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
143 KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC,
144 KC_INS, KC_GRV, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
145 CTLESC, ALL_T(KC_NO), KC_RALT, KC_RCTL,
147 SPCFN, ENTNS, KC_BSPC, KC_ENT, DELNS, BSPCFN
150 /* Number/symbol layer
151 (Multiple characters: single-tap for first, double-tap for second)
152 ,-----------------------------------------------------------------------------------------------------------.
153 | | | | | | | | | | | | | | | | | | |
154 `-----------------------------------------------------------------------------------------------------------'
155 ,-------------------------------------------. ,-------------------------------------------.
156 | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
157 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
158 | | 6 | 7 | 8 | 9 | 0 | | ^ | & | * | ( | ) | |
159 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
160 | | 1 | 2 | 3 | 4 | 5 | | ! | @ | # | $ | % | |
161 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
162 | | | . | / * | - _ | + = | | ` ~ | [ { | ] } | | | |
163 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
164 | ( | ) | [ { | ] } | | | | | |
165 `---------------------------' `---------------------------'
166 ,---------------. ,---------------.
168 ,-------|-------|-------| |-------+-------+-------.
170 | | |-------| |-------| | |
172 `-----------------------' `-----------------------'
174 [_NUMBERS] = LAYOUT_pretty(
175 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
176 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
177 _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
178 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
179 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ), TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
180 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB), _______, _______, _______, _______,
181 _______, _______, _______, _______,
183 _______, _______, _______, _______, _______, _______
186 [_NUMBERS2] = LAYOUT_pretty(
187 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
188 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
189 _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
190 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______,
191 _______, _______, KC_DOT, TD(SLAS), TD(MNUN), TD(PLEQ), TD(GVTL), TD(LBCB), TD(RBCB), _______, _______, _______,
192 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB), _______, _______, _______, _______,
193 _______, _______, _______, _______,
195 _______, _______, _______, _______, _______, _______
199 ,-----------------------------------------------------------------------------------------------------------.
200 | | | | | | | | | | | | | | | | | | |
201 `-----------------------------------------------------------------------------------------------------------'
202 ,-------------------------------------------. ,-------------------------------------------.
203 | F12 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
204 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
205 | | | | Up | | | | | | Up |Ctrl+Y| | |
206 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
207 | |Ctrl+A| Left | Down | Right|C+A+Tb| | PgUp | Right| Down | Left | Home | |
208 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
209 | |Ctrl+Z|Ctrl+X|Ctrl+C|Ctrl+V| Bspc | | PgDn | Mute | Vol- | Vol+ | End | |
210 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
211 | | | | | | Prev | Play | Next | Stop |
212 `---------------------------' `---------------------------'
213 ,---------------. ,---------------.
215 ,-------|-------|-------| |-------+-------+-------.
217 | | |-------| |-------| | |
219 `-----------------------' `-----------------------'
221 [_FUNCTION] = LAYOUT_pretty(
222 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
223 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
224 _______, _______, _______, KC_UP, _______, _______, _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
225 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB), KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
226 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
227 _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
228 _______, _______, _______, _______,
230 _______, _______, _______, _______, _______, _______
233 [_FUNCTION2] = LAYOUT_pretty(
234 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
235 KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
236 _______, _______, _______, KC_UP, _______, _______, _______, _______, KC_UP, LCTL(KC_Y), _______, _______,
237 _______, LCTL(KC_A), KC_LEFT, KC_DOWN, KC_RGHT, LCA(KC_TAB), KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, _______,
238 _______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_BSPC, KC_PGDN, KC_MUTE, KC_VOLD, KC_VOLU, KC_END, _______,
239 _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP,
240 _______, _______, _______, _______,
242 _______, _______, _______, _______, _______, _______
246 (Left side duplicates layout from the Numbers layer, just with numpad output; right side layout close to PC numpad layout)
247 ,-----------------------------------------------------------------------------------------------------------.
248 | | | | | | | | | | | | | | | | | | |
249 `-----------------------------------------------------------------------------------------------------------'
250 ,-------------------------------------------. ,-------------------------------------------.
251 | | NumLk| | | | | | Tab | NumLk| KP / | KP * | KP - | |
252 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
253 | | KP 6 | KP 7 | KP 8 | KP 9 | KP 0 | | | KP 7 | KP 8 | KP 9 | KP + | |
254 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
255 | | KP 1 | KP 2 | KP 3 | KP 4 | KP 5 | | | KP 4 | KP 5 | KP 6 | = | |
256 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
257 | | | KP . |KP/KP*| KP- _| KP+ =| | | KP 1 | KP 2 | KP 3 |KP Ent| |
258 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
259 | ( | ) | [ { | ] } | | KP 0 | , | KP . |KP Ent|
260 `---------------------------' `---------------------------'
261 ,---------------. ,---------------.
263 ,-------|-------|-------| |-------+-------+-------.
265 | | |-------| |-------| | |
267 `-----------------------' `-----------------------'
269 [_NUMPAD] = LAYOUT_pretty(
270 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
271 _______, KC_NLCK, _______, _______, _______, _______, KC_TAB, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, _______,
272 _______, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
273 _______, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, _______, KC_P4, KC_P5, KC_P6, KC_EQL, _______,
274 _______, _______, KC_PDOT, TD(PSLPAS), TD(PMNUN), TD(PPLEQ), _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
275 KC_LPRN, KC_RPRN, TD(LBCB), TD(RBCB), KC_P0, KC_COMM, KC_PDOT, KC_PENT,
276 _______, _______, _______, _______,
278 _______, _______, _______, _______, _______, _______
281 /* Colemak gaming/vanilla
282 (Limited access to Function or Numbers layers; mainly used for gaming; double-tap and hold TD(ADJ) above LAlt to access Adjust layer)
283 ,-----------------------------------------------------------------------------------------------------------.
284 | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
285 `-----------------------------------------------------------------------------------------------------------'
286 ,-------------------------------------------. ,-------------------------------------------.
287 | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
288 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
289 | Tab | Q | W | F | P | G | | J | L | U | Y | ; | \ |
290 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
291 | Ctrl | A | R | S | T | D | | H | N | E | I | O | ' |
292 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
293 | Shift | Z | X | C | V | B | | K | M | , | . | / | Shift |
294 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
295 | Ins | ` | [ | ] | | Left | Down | Up | Right|
296 `---------------------------' `---------------------------'
297 ,---------------. ,---------------.
298 |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
299 ,-------|-------|-------| |-------+-------+-------.
300 | | | LAlt | | RGUI | | |
301 | Space | Enter |-------| |-------| Delete| Bspc |
302 | | |Bspc/FN| | Ent/NS| | |
303 `-----------------------' `-----------------------'
305 [_COLEMAKGM] = LAYOUT_pretty(
306 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
307 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
308 KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS,
309 KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
310 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
311 KC_INS, KC_GRV, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
312 CTLESC, TD(ADJ), KC_RALT, KC_RCTL,
314 KC_SPC, KC_ENT, BSPCFN, ENTNS, KC_DEL, KC_BSPC
317 /* QWERTY gaming/vanilla
318 (Limited access to Function or Numbers layers; mainly used for gaming; double-tap and hold TD(ADJ) above LAlt to access Adjust layer)
319 ,-----------------------------------------------------------------------------------------------------------.
320 | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PScr| SLck| Paus|Numpd|Adjst|
321 `-----------------------------------------------------------------------------------------------------------'
322 ,-------------------------------------------. ,-------------------------------------------.
323 | = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
324 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
325 | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
326 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
327 | Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
328 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
329 | Shift | Z | X | C | V | B | | N | M | , | . | / | Shift |
330 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
331 | Ins | ` | [ | ] | | Left | Down | Up | Right|
332 `---------------------------' `---------------------------'
333 ,---------------. ,---------------.
334 |Esc/Ctl|TD(ADJ)| | RAlt | RCtl |
335 ,-------|-------|-------| |-------+-------+-------.
336 | | | LAlt | | RGUI | | |
337 | Space | Enter |-------| |-------| Delete| Bspc |
338 | | |Bspc/FN| | Ent/NS| | |
339 `-----------------------' `-----------------------'
341 [_QWERTYGM] = LAYOUT_pretty(
342 KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, NUMPAD, ADJUST,
343 KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
344 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
345 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
346 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
347 KC_INS, KC_GRV, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
348 CTLESC, TD(ADJ), KC_RALT, KC_RCTL,
350 KC_SPC, KC_ENT, BSPCFN, ENTNS, KC_DEL, KC_BSPC
354 (Enter/Number + Delete/Number2 under non-gaming/vanilla layers or press & hold Adjust key on function row; Numpad is a toggle)
355 ,-----------------------------------------------------------------------------------------------------------.
356 | | | | | | | | | | | | | | | | | | |
357 `-----------------------------------------------------------------------------------------------------------'
358 ,-------------------------------------------. ,-------------------------------------------.
359 | |Colmak|Qwerty| |ClmkGM| QWGM | |Numpad| | | | | RESET |
360 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
361 | | | | | | | | | | | | | |
362 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
363 | | | | | | | | | NKRO | | | | |
364 |--------+------+------+------+------+------| |------+------+------+------+------+--------|
365 | | | | | | | | | | | | | |
366 `--------+------+------+------+------+------' `------+------+------+------+------+--------'
368 `---------------------------' `---------------------------'
369 ,---------------. ,---------------.
371 ,-------|-------|-------| |-------+-------+-------.
373 | | |-------| |-------| | |
375 `-----------------------' `-----------------------'
377 [_ADJUST] = LAYOUT_pretty(
378 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
379 _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM, NUMPAD, _______, _______, _______, _______, RESET,
380 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
381 _______, _______, _______, _______, _______, _______, _______, NKROTG, _______, _______, _______, _______,
382 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
383 _______, _______, _______, _______, _______, _______, _______, _______,
384 _______, _______, _______, _______,
386 _______, _______, _______, _______, _______, _______
389 [_ADJUST2] = LAYOUT_pretty(
390 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
391 _______, COLEMAK, QWERTY, _______, COLEMAKGM, QWERTYGM, NUMPAD, _______, _______, _______, _______, RESET,
392 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
393 _______, _______, _______, _______, _______, _______, _______, NKROTG, _______, _______, _______, _______,
394 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
395 _______, _______, _______, _______, _______, _______, _______, _______,
396 _______, _______, _______, _______,
398 _______, _______, _______, _______, _______, _______
403 uint32_t layer_state_set_user(uint32_t state) {
404 return update_tri_layer_state(state, _NUMBERS, _NUMBERS2, _ADJUST);
407 void persistent_default_layer_set(uint16_t default_layer) {
408 eeconfig_update_default_layer(default_layer);
409 default_layer_set(default_layer);
412 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
415 if (record->event.pressed) {
416 default_layer_set(1UL << _COLEMAK);
417 // persistent_default_layer_set(1UL << _COLEMAK);
418 layer_off ( _QWERTY);
419 layer_off ( _NUMBERS);
420 layer_off ( _NUMBERS2);
421 layer_off ( _FUNCTION);
422 layer_off ( _FUNCTION2);
423 layer_off ( _NUMPAD);
424 layer_off ( _COLEMAKGM);
425 layer_off ( _QWERTYGM);
426 layer_off ( _ADJUST);
427 layer_off ( _ADJUST2);
432 if (record->event.pressed) {
433 default_layer_set(1UL << _QWERTY);
434 // persistent_default_layer_set(1UL << _QWERTY);
435 layer_off ( _COLEMAK);
436 layer_off ( _NUMBERS);
437 layer_off ( _NUMBERS2);
438 layer_off ( _FUNCTION);
439 layer_off ( _FUNCTION2);
440 layer_off ( _NUMPAD);
441 layer_off ( _COLEMAKGM);
442 layer_off ( _QWERTYGM);
443 layer_off ( _ADJUST);
444 layer_off ( _ADJUST2);
449 if (record->event.pressed) {
450 default_layer_set(1UL << _COLEMAKGM);
451 layer_off ( _QWERTY);
452 layer_off ( _COLEMAK);
453 layer_off ( _NUMBERS);
454 layer_off ( _NUMBERS2);
455 layer_off ( _FUNCTION);
456 layer_off ( _FUNCTION2);
457 layer_off ( _NUMPAD);
458 layer_off ( _QWERTYGM);
459 layer_off ( _ADJUST);
460 layer_off ( _ADJUST2);
465 if (record->event.pressed) {
466 default_layer_set(1UL << _QWERTYGM);
467 layer_off ( _QWERTY);
468 layer_off ( _COLEMAK);
469 layer_off ( _NUMBERS);
470 layer_off ( _NUMBERS2);
471 layer_off ( _FUNCTION);
472 layer_off ( _FUNCTION2);
473 layer_off ( _NUMPAD);
474 layer_off ( _COLEMAKGM);
475 layer_off ( _ADJUST);
476 layer_off ( _ADJUST2);