tap_dances.c 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "tap_dances.h"
  2. void td_parenthesis (qk_tap_dance_state_t *state, void *user_data) {
  3. if (state->count == 1) {
  4. SEND_STRING ("\(");
  5. reset_tap_dance (state);
  6. }
  7. else if (state->count == 2) {
  8. SEND_STRING("()" SS_TAP(X_LEFT));
  9. //tap_code(KC_2);
  10. //tap_code(KC_3);
  11. //tap_code(KC_LEFT);
  12. reset_tap_dance (state);
  13. }
  14. else if (state->count == 3) {
  15. SEND_STRING("[]" SS_TAP(X_LEFT));
  16. reset_tap_dance (state);
  17. }
  18. else if (state->count == 4) {
  19. SEND_STRING("{}" SS_TAP(X_LEFT));
  20. reset_tap_dance (state);
  21. }
  22. else if (state->count >= 5) {
  23. SEND_STRING("<>" SS_TAP(X_LEFT));
  24. reset_tap_dance (state);
  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. qk_tap_dance_action_t tap_dance_actions[] = {
  35. [TD_RESET] = ACTION_TAP_DANCE_FN(safe_reset),
  36. [TD_NUM1] = ACTION_TAP_DANCE_DOUBLE(KC_1, KC_4),
  37. [TD_NUM2] = ACTION_TAP_DANCE_DOUBLE(KC_2, KC_5),
  38. [TD_NUM3] = ACTION_TAP_DANCE_DOUBLE(KC_3, KC_6),
  39. [TD_QT1] = ACTION_TAP_DANCE_DOUBLE(KC_QUOT, MC_QT1),
  40. [TD_QT2] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_QUOT), MC_QT2),
  41. [TD_QT3] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, MC_QT3),
  42. [TD_TMX] = ACTION_TAP_DANCE_DOUBLE(KC_T, TM_X),
  43. [TD_EOL] = ACTION_TAP_DANCE_DOUBLE(KC_E, MC_EOL), // end of line
  44. [TD_BOL] = ACTION_TAP_DANCE_DOUBLE(KC_A, MC_BOL), // beginning of line
  45. [TD_NW] = ACTION_TAP_DANCE_DOUBLE(KC_F, MC_NW), // next word
  46. [TD_PW] = ACTION_TAP_DANCE_DOUBLE(KC_B, MC_PW), // pevious word
  47. [TD_DW] = ACTION_TAP_DANCE_DOUBLE(KC_W, MC_DW), // pevious word
  48. [TD_SPC] = ACTION_TAP_DANCE_FN(td_parenthesis), // \(, (), [], {}, <>
  49. [TD_PAR] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, MC_PAR), // ()
  50. [TD_SQR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, MC_SQR), // []
  51. [TD_CUR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_LCBR), MC_CUR),// {}
  52. [TD_ABR] = ACTION_TAP_DANCE_DOUBLE(LSFT(KC_COMM), MC_ABR),//
  53. };