aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox/keymaps/pvinis/keymap.c171
1 files changed, 108 insertions, 63 deletions
diff --git a/keyboards/ergodox/keymaps/pvinis/keymap.c b/keyboards/ergodox/keymaps/pvinis/keymap.c
index df906201a..87ad70c91 100644
--- a/keyboards/ergodox/keymaps/pvinis/keymap.c
+++ b/keyboards/ergodox/keymaps/pvinis/keymap.c
@@ -13,20 +13,16 @@ enum {
13 QWERTY, 13 QWERTY,
14 CARPALX, 14 CARPALX,
15 SYSCTL, 15 SYSCTL,
16 MOUSE,
16}; 17};
17 18
18// extra keys 19// extra keys
19enum { 20enum {
20 NONE = 0, 21 NONE = 0,
21 22
22 // mouse
23 MS_UL, // up left
24 MS_UR, // up right
25 MS_DL, // down left
26 MS_DR, // down right
27
28 // tap dance 23 // tap dance
29 TD_FLSH, // flash keyboard 24 TD_FLSH, // flash keyboard
25 TD_LAYR, // SYSCTL and MOUSE layer switch
30}; 26};
31 27
32// application selection 28// application selection
@@ -52,7 +48,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52 * | | | | | | | | | | | | 48 * | | | | | | | | | | | |
53 * `----------------------------------' `----------------------------------' 49 * `----------------------------------' `----------------------------------'
54 * ,-------------. ,-------------. 50 * ,-------------. ,-------------.
55 * |BEGIN |QWERTY| |SYSCTL| | 51 * |BEGIN |QWERTY| | | |
56 * ,------|------|------| |------+--------+------. 52 * ,------|------|------| |------+--------+------.
57 * | | |CARPAL| |Slack | | | 53 * | | |CARPAL| |Slack | | |
58 * |Backsp|LShift|------| |------| Enter |Space | 54 * |Backsp|LShift|------| |------| Enter |Space |
@@ -66,9 +62,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66,KC_NO ,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
67,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO 63,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
68 64
69 ,TG(BEGIN) ,TG(QWERTY) 65 ,TG(BEGIN) ,TD(TD_LAYR)
70 ,TG(CARPALX) 66 ,TG(MOUSE)
71 ,KC_BSPC ,KC_LSFT ,TG(SYSCTL) 67 ,KC_BSPC ,KC_LSFT ,TD(TD_LAYR)
72 68
73 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO 69 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
74 ,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
@@ -85,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
85 * a beginner's keymap i currently use. 81 * a beginner's keymap i currently use.
86 * 82 *
87 * ,--------------------------------------------------. ,--------------------------------------------------. 83 * ,--------------------------------------------------. ,--------------------------------------------------.
88 * | | 1 | 2 | 3 | 4 | 5 | 6 | | 6 | 7 | 8 | 9 | 0 | - | = | 84 * | | 1 | 2 | 3 | 4 | 5 | opt | | 6 | 7 | 8 | 9 | 0 | - | = |
89 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 85 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
90 * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | 86 * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ |
91 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 87 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
@@ -104,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
104 * `--------------------' `----------------------' 100 * `--------------------' `----------------------'
105 */ 101 */
106[BEGIN] = KEYMAP( 102[BEGIN] = KEYMAP(
107 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 103 KC_TRNS ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_LALT
108,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC 104,KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_LBRC
109,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G 105,CTL_T(KC_ESC) ,KC_A ,KC_S ,KC_D ,KC_F ,KC_G
110,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN 106,KC_LSFT ,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LPRN
@@ -213,30 +209,73 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
213 ,KC_TRNS ,KC_TRNS ,KC_TRNS 209 ,KC_TRNS ,KC_TRNS ,KC_TRNS
214), 210),
215 211
216
217/* SYSCTL 212/* SYSCTL
218 * a keymap to control my system. 213 * a keymap to control my system.
219 * 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] = KEYMAP(
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_NO ,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 *
220 * ,--------------------------------------------------. ,--------------------------------------------------. 259 * ,--------------------------------------------------. ,--------------------------------------------------.
221 * | | | | | | | | | | | | Mute |VolDn |VolUp | | 260 * | ^ | | | | | | | | | | | | | | |
222 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 261 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
223 * | | | | | | | | | | |MsUpL | MsUp |MsUpR | | | 262 * | | | | | | | | | | | | MsUp | | | |
224 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 263 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
225 * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | Lock | 264 * | | | | | | |------| |------| |MsLeft| MsDn |MsRght| | |
226 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 265 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
227 * | | | | | | | | | | |MsDnL | MsDn | | | Sleep | 266 * | | | | | | | | | | | | | | | |
228 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 267 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
229 * | | | | | | | | | | | Power| 268 * | | | | | | | | | | | |
230 * `----------------------------------' `----------------------------------' 269 * `----------------------------------' `----------------------------------'
231 * ,-------------. ,-------------. 270 * ,-------------. ,-------------.
232 * | | | | |MidClk| 271 * | | | | |MidClk|
233 * ,------|------|------| |------+------+------. 272 * ,------|------|------| |------+------+------.
234 * | | | | | |Left |Right | 273 * | | | | | |Left |Right |
235 * | | |------| |------| Click| Click| 274 * | | |------| |------| Click| Click|
236 * | | | | | | | | 275 * | | | ^ | | | | |
237 * `--------------------' `--------------------' 276 * `--------------------' `--------------------'
238 */ 277 */
239[SYSCTL] = KEYMAP( 278[MOUSE] = KEYMAP(
240 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO 279 KC_TRNS ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
241,KC_NO ,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
242,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
@@ -245,13 +284,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
245 284
246 ,KC_NO ,KC_NO 285 ,KC_NO ,KC_NO
247 ,KC_NO 286 ,KC_NO
248 ,KC_NO ,KC_NO ,KC_NO 287 ,KC_NO ,KC_NO ,KC_TRNS
249 288
250 /*,KC_POP*/,KC_NO ,KC_NO ,KC_NO ,KC_MUTE ,KC_VOLD ,KC_VOLU ,KC_NO 289 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
251 /*,KC_PTRN*/,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
252 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,LCTL(LSFT(KC_PWR)) 291 ,KC_NO ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_NO ,KC_NO
253 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_SLEP 292 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
254 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_PWR 293 ,KC_NO ,KC_NO ,KC_NO ,KC_NO ,KC_NO
255 294
256 ,KC_NO ,KC_NO 295 ,KC_NO ,KC_NO
257 ,KC_NO 296 ,KC_NO
@@ -341,48 +380,29 @@ void matrix_init_user() {
341 ergodox_led_all_off(); 380 ergodox_led_all_off();
342} 381}
343 382
344// extra keys 383// light up leds based on the layer
345const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { 384void matrix_scan_user(void) {
346 switch (id) { 385 uint8_t layer = biton32(layer_state);
347 386
348 // mouse 387 switch(layer) {
349 case MS_UL: 388 case SYSCTL:
350 if (record->event.pressed) { 389 ergodox_right_led_3_on();
351 mousekey_on(KC_MS_UP);
352 mousekey_on(KC_MS_LEFT);
353 } else {
354 mousekey_off(KC_MS_UP);
355 mousekey_off(KC_MS_LEFT);
356 }
357 break;
358 case MS_UR:
359 if (record->event.pressed) {
360 mousekey_on(KC_MS_UP);
361 mousekey_on(KC_MS_RIGHT);
362 } else {
363 mousekey_off(KC_MS_UP);
364 mousekey_off(KC_MS_RIGHT);
365 }
366 break; 390 break;
367 case MS_DL: 391 case MOUSE:
368 if (record->event.pressed) { 392 ergodox_right_led_2_on();
369 mousekey_on(KC_MS_DOWN);
370 mousekey_on(KC_MS_LEFT);
371 } else {
372 mousekey_off(KC_MS_DOWN);
373 mousekey_off(KC_MS_LEFT);
374 }
375 break; 393 break;
376 case MS_DR: 394 default:
377 if (record->event.pressed) { 395 ergodox_right_led_1_off();
378 mousekey_on(KC_MS_DOWN); 396 ergodox_right_led_2_off();
379 mousekey_on(KC_MS_RIGHT); 397 ergodox_right_led_3_off();
380 } else {
381 mousekey_off(KC_MS_DOWN);
382 mousekey_off(KC_MS_RIGHT);
383 }
384 break; 398 break;
385 } 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 }
386 return MACRO_NONE; 406 return MACRO_NONE;
387} 407}
388 408
@@ -425,6 +445,31 @@ void flash_dance_reset(qk_tap_dance_state_t *state, void *user_data) {
425 ergodox_right_led_3_off(); 445 ergodox_right_led_3_off();
426} 446}
427 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
428qk_tap_dance_action_t tap_dance_actions[] = { 472qk_tap_dance_action_t tap_dance_actions[] = {
429 [TD_FLSH] = ACTION_TAP_DANCE_FN_ADVANCED( flash_each_tap, flash_dance_finished, flash_dance_reset ), 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 ),
430}; 475};