You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1 KiB

  1. #include "quantum.h"
  2. extern bool CMD(uint16_t kc);
  3. extern bool onMac;
  4. #define ACTION_TAP_DANCE_DOUBLE_SAFE(kc1, kc2) { \
  5. .fn = { NULL, qk_tap_dance_pair_finished_safe, qk_tap_dance_pair_reset_safe }, \
  6. .user_data = (void *)&((qk_tap_dance_pair_t) { kc1, kc2 }), \
  7. }
  8. #ifdef QUAD_DANCE
  9. //Enums used to clearly convey the state of the tap dance
  10. enum {
  11. SINGLE_TAP = 1,
  12. SINGLE_HOLD = 2,
  13. DOUBLE_TAP = 3,
  14. DOUBLE_HOLD = 4,
  15. DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP
  16. // Add more enums here if you want for triple, quadruple, etc.
  17. };
  18. int cur_dance (qk_tap_dance_state_t *state);
  19. # endif
  20. enum tap_dance {
  21. COPY_CUT,
  22. PASTE_DANCE,
  23. _TD_F1,
  24. _TD_F2,
  25. _TD_F3,
  26. _TD_F4,
  27. _TD_F5,
  28. _TD_F6,
  29. _TD_F7,
  30. _TD_F8,
  31. _TD_F9,
  32. _TD_F10,
  33. _TD_F11,
  34. _TD_F12,
  35. _TD_H_ENTER,
  36. _TD_CLN,
  37. _TD_SLASH,
  38. // old ones
  39. LEFT_HOME,
  40. J_ENT,
  41. H_MINS,
  42. RGT_HOME,
  43. _TD_COPY,
  44. _TD_CUT,
  45. _TD_PASTE,
  46. };
  47. void qk_tap_dance_pair_finished_safe(qk_tap_dance_state_t *state, void *user_data);
  48. void qk_tap_dance_pair_reset_safe(qk_tap_dance_state_t *state, void *user_data);
  49. void td_copy_cut (qk_tap_dance_state_t *state, void *user_data);
  50. void td_paste(qk_tap_dance_state_t *state, void *user_data);
  51. int cur_dance (qk_tap_dance_state_t *state);
  52. void dance_cut (qk_tap_dance_state_t *state, void *user_data);
  53. void dance_copy (qk_tap_dance_state_t *state, void *user_data);
  54. void dance_paste (qk_tap_dance_state_t *state, void *user_data);
  55. // Ready to use Tap dance definitions, just put them on your layout
  56. #define TD_COPY TD(_TD_COPY)
  57. #define TD_CUT TD(_TD_CUT)
  58. #define KC_TD_COPY TD(_TD_COPY) // Declarations for macros that add KC_
  59. #define KC_TD_CUT TD(_TD_CUT)
  60. #define KC_TD_PASTE TD(_TD_PASTE)
  61. #define KC_E_GRV ES_GRV
  62. #define TD_F1 TD(_TD_F1)
  63. #define TD_F2 TD(_TD_F2)
  64. #define TD_F3 TD(_TD_F3)
  65. #define TD_F4 TD(_TD_F4)
  66. #define TD_F5 TD(_TD_F5)
  67. #define TD_F6 TD(_TD_F6)
  68. #define TD_F7 TD(_TD_F7)
  69. #define TD_F8 TD(_TD_F8)
  70. #define TD_F9 TD(_TD_F9)
  71. #define TD_F10 TD(_TD_F10)
  72. #define TD_F11 TD(_TD_F11)
  73. #define TD_F12 TD(_TD_F12)
  74. #define H_ENTER TD(_TD_H_ENTER)
  75. #define TD_CLN TD(_TD_CLN)
  76. #define TD_SLASH TD(_TD_SLASH)