aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ergodox/pvinis/keymap.c
diff options
context:
space:
mode:
Diffstat (limited to 'layouts/community/ergodox/pvinis/keymap.c')
-rw-r--r--layouts/community/ergodox/pvinis/keymap.c475
1 files changed, 475 insertions, 0 deletions
diff --git a/layouts/community/ergodox/pvinis/keymap.c b/layouts/community/ergodox/pvinis/keymap.c
new file mode 100644
index 000000000..1bca0398d
--- /dev/null
+++ b/layouts/community/ergodox/pvinis/keymap.c
@@ -0,0 +1,475 @@
1// pvinis' ergodox keymap
2
3#include QMK_KEYBOARD_H
4#include "mousekey.h"
5
6// easier name for left ctrl-alt-gui
7#define ALLM(kc) LCAG(kc)
8
9// layers
10enum {
11 BASE = 0,
12 BEGIN,
13 QWERTY,
14 CARPALX,
15 SYSCTL,
16 MOUSE,
17};
18
19// extra keys
20enum {
21 NONE = 0,
22
23 // tap dance
24 TD_FLSH, // flash keyboard
25 TD_LAYR, // SYSCTL and MOUSE layer switch
26};
27
28// application selection
29// this is sending ctrl-alt-gui-<key>, and this is picked up by hammerspoon
30#define AP_SLCK ALLM(KC_S)
31#define AP_XCOD ALLM(KC_X)
32#define AP_MSGR ALLM(KC_M)
33
34// keymaps
35const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
36/* BASE
37 * the base of the keyboard.
38 *
39 * ,--------------------------------------------------. ,--------------------------------------------------.
40 * |4x FLASH| | | | | | | | | | | | | | |
41 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
42 * | | | | | | | | | | | | | | | |
43 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
44 * | | | | | | |------| |------| | | | | | |
45 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
46 * | | | | | | | | | | | | | | | |
47 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
48 * | | | | | | |SYSCTL| | | | |
49 * `----------------------------------' `----------------------------------'
50 * ,-------------. ,-------------.
51 * |BEGIN |QWERTY| | | |
52 * ,------|------|------| |------+--------+------.
53 * | | |CARPAL| |Slack | | |
54 * |Backsp|LShift|------| |------| Enter |Space |
55 * | | |SYSCTL| |Msngr | | |
56 * `--------------------' `----------------------'
57 */
58[BASE] = LAYOUT_ergodox(
59 TD(TD_FLSH) ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
60,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
61,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
62,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
63,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
64
65 ,TG(BEGIN) ,TD(TD_LAYR)
66 ,TG(MOUSE)
67 ,KC_BSPC ,KC_LSFT ,TD(TD_LAYR)
68
69 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
70 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
71 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
72 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
73 ,MO(SYSCTL) ,KC_NO ,KC_NO ,KC_NO ,KC_NO
74
75 ,TG(SYSCTL) ,KC_NO
76 ,AP_SLCK
77 ,AP_MSGR ,KC_ENT ,KC_SPC
78),
79
80/* BEGIN
81 * a beginner's keymap i currently use.
82 *
83 * ,--------------------------------------------------. ,--------------------------------------------------.
84 * | | 1 | 2 | 3 | 4 | 5 | opt | | 6 | 7 | 8 | 9 | 0 | - | = |
85 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
86 * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
87 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
88 * |Esc/Ctrl| A | S | D | F | G |------| |------| H | J | K | L | ; | Enter |
89 * |--------+------+------+------+------+------| ( | | ) |------+------+------+------+------+--------|
90 * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
91 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
92 * | | ` | Cmd | | Cmd | | | | | ' | |
93 * `----------------------------------' `----------------------------------'
94 * ,-------------. ,-------------.
95 * | | | | | |
96 * ,------|------|------| |------+--------+------.
97 * | | | | | | | |
98 * | | |------| |------| | |
99 * | | | | | | | |
100 * `--------------------' `----------------------'
101 */
102[BEGIN] = LAYOUT_ergodox(
103 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_LALT
104,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
105,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
106,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN
107,KC_TRNS ,KC_GRV ,KC_LGUI ,KC_LEFT ,KC_RIGHT
108
109 ,KC_TRNS ,KC_TRNS
110 ,KC_TRNS
111 ,KC_TRNS ,KC_TRNS ,KC_TRNS
112
113 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_MINS ,KC_EQL
114 ,KC_RBRC ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_BSLS
115 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_ENT
116 ,KC_RPRN ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT
117 ,KC_TRNS ,KC_DOWN ,KC_TRNS ,KC_QUOT ,KC_TRNS
118
119 ,KC_TRNS ,KC_TRNS
120 ,KC_TRNS
121 ,KC_TRNS ,KC_TRNS ,KC_TRNS
122),
123
124/* QWERTY
125 * the default qwerty keymap. not really used, but i'll keep it here for now.
126 *
127 * ,--------------------------------------------------. ,--------------------------------------------------.
128 * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
129 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
130 * | | Q | W | E | R | T | | | | Y | U | I | O | P | |
131 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
132 * | | A | S | D | F | G |------| |------| H | J | K | L | ; | |
133 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
134 * | | Z | X | C | V | B | | | | N | M | , | . | / | |
135 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
136 * | | | | | | | | | | | |
137 * `----------------------------------' `----------------------------------'
138 * ,-------------. ,-------------.
139 * | | | | | |
140 * ,------|------|------| |------+--------+------.
141 * | | | | | | | |
142 * | | |------| |------| | |
143 * | | | | | | | |
144 * `--------------------' `----------------------'
145 */
146[QWERTY] = LAYOUT_ergodox(
147 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
148,KC_TRNS ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_TRNS
149,KC_TRNS ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
150,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_TRNS
151,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
152
153 ,KC_TRNS ,KC_TRNS
154 ,KC_TRNS
155 ,KC_TRNS ,KC_TRNS ,KC_TRNS
156
157 ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
158 ,KC_TRNS ,KC_Y ,KC_U ,KC_I ,KC_O ,KC_P ,KC_TRNS
159 ,KC_H ,KC_J ,KC_K ,KC_L ,KC_SCLN ,KC_TRNS
160 ,KC_TRNS ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
161 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
162
163 ,KC_TRNS ,KC_TRNS
164 ,KC_TRNS
165 ,KC_TRNS ,KC_TRNS ,KC_TRNS
166),
167
168/* CARPALX
169 * the keymap i would like to transition to.
170 *
171 * ,--------------------------------------------------. ,--------------------------------------------------.
172 * | | 1 | 2 | 3 | 4 | 5 | | | RIGHT| 6 | 7 | 8 | 9 | 0 | |
173 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
174 * | | Q | G | M | L | W | | | L1 | Y | F | U | B | ; | |
175 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
176 * | | D | S | T | N | R |------| |------| I | A | E | O | H | |
177 * |--------+------+------+------+------+------| | | Meh |------+------+------+------+------+--------|
178 * | | Z | X | C | V | J | | | | K | P | , | . | / | |
179 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
180 * | | | | | | | Up | | | | |
181 * `----------------------------------' `----------------------------------'
182 * ,-------------. ,-------------.
183 * | | | | | |
184 * ,------|------|------| |------+------+------.
185 * | | | | | | | |
186 * | | |------| |------| | |
187 * | | | | | | | |
188 * `--------------------' `--------------------'
189 */
190[CARPALX] = LAYOUT_ergodox(
191 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_TRNS
192,KC_TRNS ,KC_Q ,KC_G ,KC_M ,KC_L ,KC_W ,KC_TRNS
193,KC_TRNS ,KC_D ,KC_S ,KC_T ,KC_N ,KC_R
194,KC_TRNS ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_J ,KC_TRNS
195,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
196
197 ,KC_TRNS ,KC_TRNS
198 ,KC_TRNS
199 ,KC_TRNS ,KC_TRNS ,KC_TRNS
200
201 ,KC_TRNS ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,KC_TRNS
202 ,KC_TRNS ,KC_Y ,KC_F ,KC_U ,KC_B ,KC_SCLN ,KC_TRNS
203 ,KC_I ,KC_A ,KC_E ,KC_O ,KC_H ,KC_TRNS
204 ,KC_TRNS ,KC_K ,KC_P ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_TRNS
205 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
206
207 ,KC_TRNS ,KC_TRNS
208 ,KC_TRNS
209 ,KC_TRNS ,KC_TRNS ,KC_TRNS
210),
211
212/* SYSCTL
213 * a keymap to control my system.
214 *
215 * ,--------------------------------------------------. ,------------------------------------------------------.
216 * | ^ | | | | | | | | | | | | | | |
217 * |--------+------+------+------+------+-------------| |------+------+------+----------+------+------+--------|
218 * | | | | | | | | | | Mute | Home | Up | End | | |
219 * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
220 * | | | | | | |------| |------|VolUp | Left | Down |Right | | Lock |
221 * |--------+------+------+------+------+------| | | |------+------+----------+------+------+--------|
222 * | | | | | | | | | |VolDn | Prev |Play/Pause| Next | | Sleep |
223 * `--------+------+------+------+------+-------------' `-------------+------+----------+------+------+--------'
224 * | | | | | | | | | | | Power|
225 * `----------------------------------' `--------------------------------------'
226 * ,-------------. ,-------------.
227 * | | | | | |
228 * ,------|------|------| |------+------+------.
229 * | | | | | | | |
230 * | | |------| |------| | |
231 * | | | ^ | | | | |
232 * `--------------------' `--------------------'
233 */
234[SYSCTL] = LAYOUT_ergodox(
235 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
236,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
237,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
238,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
239,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
240
241 ,KC_NO ,KC_NO
242 ,KC_NO
243 ,KC_NO ,KC_NO ,KC_TRNS
244
245 /*,KC_POP /// */,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
246 /* /// ,KC_PTRN*/,KC_NO ,KC_MUTE ,KC_HOME ,KC_UP ,KC_END ,KC_NO ,KC_NO
247 ,KC_VOLU ,KC_LEFT ,KC_DOWN ,KC_RGHT ,KC_NO ,LCTL(LSFT(KC_PWR))
248 ,KC_NO ,KC_VOLD ,KC_MPRV ,KC_MPLY ,KC_MNXT ,KC_NO ,KC_SLEP
249 ,KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_PWR
250
251 ,KC_NO ,KC_NO
252 ,KC_NO
253 ,KC_NO ,KC_NO ,KC_NO
254),
255
256/* MOUSE
257 * a keymap to control my system.
258 *
259 * ,--------------------------------------------------. ,--------------------------------------------------.
260 * | ^ | | | | | | | | | | | | | | |
261 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
262 * | | | | | | | | | | | | MsUp | | | |
263 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
264 * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
265 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
266 * | | | | | | | | | | | | | | | |
267 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
268 * | | | | | | | | | | | |
269 * `----------------------------------' `----------------------------------'
270 * ,-------------. ,-------------.
271 * | | | | |MidClk|
272 * ,------|------|------| |------+------+------.
273 * | | | | | |Left |Right |
274 * | | |------| |------| Click| Click|
275 * | | | ^ | | | | |
276 * `--------------------' `--------------------'
277 */
278[MOUSE] = LAYOUT_ergodox(
279 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
280,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
281,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
282,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
283,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
284
285 ,KC_NO ,KC_NO
286 ,KC_NO
287 ,KC_NO ,KC_NO ,KC_TRNS
288
289 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
290 ,KC_NO ,KC_NO ,KC_NO ,KC_MS_U ,KC_NO ,KC_NO ,KC_NO
291 ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
292 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
293 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
294
295 ,KC_NO ,KC_NO
296 ,KC_NO
297 ,KC_NO ,KC_NO ,KC_NO
298),
299
300/* TEMPLATE
301 * keymap template with transparent and non-transparent keys
302 *
303 * ,--------------------------------------------------. ,--------------------------------------------------.
304 * | | | | | | | | | | | | | | | |
305 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
306 * | | | | | | | | | | | | | | | |
307 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
308 * | | | | | | |------| |------| | | | | | |
309 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
310 * | | | | | | | | | | | | | | | |
311 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
312 * | | | | | | | | | | | |
313 * `----------------------------------' `----------------------------------'
314 * ,-------------. ,-------------.
315 * | | | | | |
316 * ,------|------|------| |------+--------+------.
317 * | | | | | | | |
318 * | | |------| |------| | |
319 * | | | | | | | |
320 * `--------------------' `----------------------'
321 */
322/*
323[TEMPLATE] = LAYOUT_ergodox(
324 KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
325,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
326,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
327,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
328,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
329
330 ,KC_TRNS ,KC_TRNS
331 ,KC_TRNS
332 ,KC_TRNS ,KC_TRNS ,KC_TRNS
333
334 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
335 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
336 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
337 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
338 ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS ,KC_TRNS
339
340 ,KC_TRNS ,KC_TRNS
341 ,KC_TRNS
342 ,KC_TRNS ,KC_TRNS ,KC_TRNS
343),
344[TEMPLATE] = LAYOUT_ergodox(
345 KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
346,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
347,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
348,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
349,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
350
351 ,KC_NO ,KC_NO
352 ,KC_NO
353 ,KC_NO ,KC_NO ,KC_NO
354
355 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
356 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
357 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
358 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
359 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
360
361 ,KC_NO ,KC_NO
362 ,KC_NO
363 ,KC_NO ,KC_NO ,KC_NO
364),
365*/
366};
367
368// keyboard initialization
369void matrix_init_user() {
370 ergodox_led_all_on();
371 for (int i = LED_BRIGHTNESS_HI; i > LED_BRIGHTNESS_LO; i--) {
372 ergodox_led_all_set(i);
373 wait_ms(5);
374 }
375 wait_ms(1000);
376 for (int i = LED_BRIGHTNESS_LO; i > 0; i--) {
377 ergodox_led_all_set(i);
378 wait_ms(10);
379 }
380 ergodox_led_all_off();
381}
382
383// light up leds based on the layer
384void matrix_scan_user(void) {
385 uint8_t layer = biton32(layer_state);
386
387 switch(layer) {
388 case SYSCTL:
389 ergodox_right_led_3_on();
390 break;
391 case MOUSE:
392 ergodox_right_led_2_on();
393 break;
394 default:
395 ergodox_right_led_1_off();
396 ergodox_right_led_2_off();
397 ergodox_right_led_3_off();
398 break;
399 }
400}
401
402// extra keys
403const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
404 switch (id) {
405 }
406 return MACRO_NONE;
407}
408
409// tap dances
410
411// flash keyboard on 4x tap, with leds
412void flash_each_tap(qk_tap_dance_state_t *state, void *user_data) {
413 switch (state->count) {
414 case 1:
415 ergodox_right_led_3_on();
416 break;
417 case 2:
418 ergodox_right_led_2_on();
419 break;
420 case 3:
421 ergodox_right_led_1_on();
422 break;
423 case 4:
424 ergodox_right_led_3_off();
425 wait_ms(50);
426 ergodox_right_led_2_off();
427 wait_ms(50);
428 ergodox_right_led_1_off();
429 break;
430 }
431}
432
433void flash_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
434 if (state->count >= 4) {
435 reset_keyboard();
436 reset_tap_dance(state);
437 }
438}
439
440void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
441 ergodox_right_led_1_off();
442 wait_ms(50);
443 ergodox_right_led_2_off();
444 wait_ms(50);
445 ergodox_right_led_3_off();
446}
447
448// SYSCTL on first tap, MOUSE ON second tap
449void layers_dance_finished(qk_tap_dance_state_t *state, void *user_data) {
450 uint8_t layer = biton32(layer_state);
451
452 switch(state->count) {
453 case 1:
454 switch(layer) {
455 case SYSCTL:
456 layer_off(SYSCTL);
457 break;
458 case MOUSE:
459 layer_off(MOUSE);
460 break;
461 default:
462 layer_on(SYSCTL);
463 break;
464 }
465 break;
466 case 2:
467 layer_on(MOUSE);
468 break;
469 }
470}
471
472qk_tap_dance_action_t tap_dance_actions[] = {
473 [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ),
474 [TD_LAYR] = ACTION_TAP_DANCE_FN_ADVANCED( NULL, layers_dance_finished, NULL ),
475};