diff options
Diffstat (limited to 'users/yet-another-developer/tap_dances.c')
| -rw-r--r-- | users/yet-another-developer/tap_dances.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/users/yet-another-developer/tap_dances.c b/users/yet-another-developer/tap_dances.c new file mode 100644 index 000000000..66dcc60fa --- /dev/null +++ b/users/yet-another-developer/tap_dances.c | |||
| @@ -0,0 +1,55 @@ | |||
| 1 | #include "tap_dances.h" | ||
| 2 | |||
| 3 | void td_parenthesis (qk_tap_dance_state_t *state, void *user_data) { | ||
| 4 | if (state->count == 1) { | ||
| 5 | // SEND_STRING ("\("); | ||
| 6 | tap_code(KC_QUOT); | ||
| 7 | reset_tap_dance (state); | ||
| 8 | } | ||
| 9 | else if (state->count == 2) { | ||
| 10 | SEND_STRING("()" SS_TAP(X_LEFT)); | ||
| 11 | reset_tap_dance (state); | ||
| 12 | } | ||
| 13 | else if (state->count == 3) { | ||
| 14 | SEND_STRING("[]" SS_TAP(X_LEFT)); | ||
| 15 | reset_tap_dance (state); | ||
| 16 | } | ||
| 17 | else if (state->count == 4) { | ||
| 18 | SEND_STRING("{}" SS_TAP(X_LEFT)); | ||
| 19 | reset_tap_dance (state); | ||
| 20 | } | ||
| 21 | else if (state->count >= 5) { | ||
| 22 | SEND_STRING("<>" SS_TAP(X_LEFT)); | ||
| 23 | reset_tap_dance (state); | ||
| 24 | } | ||
| 25 | } | ||
| 26 | |||
| 27 | void safe_reset(qk_tap_dance_state_t *state, void *user_data) { | ||
| 28 | if (state->count >= 3) { | ||
| 29 | // Reset the keyboard if you tap the key more than three times | ||
| 30 | reset_keyboard(); | ||
| 31 | reset_tap_dance(state); | ||
| 32 | } | ||
| 33 | } | ||
| 34 | |||
| 35 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 36 | [TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset), | ||
| 37 | [TD_NUM1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_4), | ||
| 38 | [TD_NUM2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_5), | ||
| 39 | [TD_NUM3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_6), | ||
| 40 | [TD_QT1] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, MC_QT1), | ||
| 41 | [TD_QT2] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_QUOT), MC_QT2), | ||
| 42 | [TD_QT3] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, MC_QT3), | ||
| 43 | |||
| 44 | [TD_EOL] = ACTION_TAP_DANCE_DOUBLE(KC_E, MC_EOL), // end of line | ||
| 45 | [TD_BOL] = ACTION_TAP_DANCE_DOUBLE(KC_A, MC_BOL), // beginning of line | ||
| 46 | [TD_NW] = ACTION_TAP_DANCE_DOUBLE(KC_F, MC_NW), // next word | ||
| 47 | [TD_PW] = ACTION_TAP_DANCE_DOUBLE(KC_B, MC_PW), // pevious word | ||
| 48 | [TD_DW] = ACTION_TAP_DANCE_DOUBLE(KC_W, MC_DW), // pevious word | ||
| 49 | |||
| 50 | [TD_SPC] = ACTION_TAP_DANCE_FN(td_parenthesis), // \(, (), [], {}, <> | ||
| 51 | [TD_PAR] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, MC_PAR), // () | ||
| 52 | [TD_SQR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, MC_SQR), // [] | ||
| 53 | [TD_CUR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_LCBR), MC_CUR),// {} | ||
| 54 | [TD_ABR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_COMM), MC_ABR),// | ||
| 55 | }; | ||
