diff options
| -rw-r--r-- | keyboards/ergodox/keymaps/pvinis/keymap.c | 171 |
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 |
| 19 | enum { | 20 | enum { |
| 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 |
| 345 | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { | 384 | void 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 | ||
| 403 | const 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 | ||
| 449 | void 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 | |||
| 428 | qk_tap_dance_action_t tap_dance_actions[] = { | 472 | qk_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 | }; |
