#include "quantum.h" extern bool CMD(uint16_t kc); extern bool onMac; #define ACTION_TAP_DANCE_DOUBLE_SAFE(kc1, kc2) { \ .fn = { NULL, qk_tap_dance_pair_finished_safe, qk_tap_dance_pair_reset_safe }, \ .user_data = (void *)&((qk_tap_dance_pair_t) { kc1, kc2 }), \ } #ifdef QUAD_DANCE //Enums used to clearly convey the state of the tap dance enum { SINGLE_TAP = 1, SINGLE_HOLD = 2, DOUBLE_TAP = 3, DOUBLE_HOLD = 4, DOUBLE_SINGLE_TAP = 5 //send SINGLE_TAP twice - NOT DOUBLE_TAP // Add more enums here if you want for triple, quadruple, etc. }; int cur_dance (qk_tap_dance_state_t *state); # endif enum tap_dance { COPY_CUT, PASTE_DANCE, _TD_F1, _TD_F2, _TD_F3, _TD_F4, _TD_F5, _TD_F6, _TD_F7, _TD_F8, _TD_F9, _TD_F10, _TD_F11, _TD_F12, _TD_H_ENTER, _TD_CLN, _TD_SLASH, // old ones LEFT_HOME, J_ENT, H_MINS, RGT_HOME, _TD_COPY, _TD_CUT, _TD_PASTE, }; void qk_tap_dance_pair_finished_safe(qk_tap_dance_state_t *state, void *user_data); void qk_tap_dance_pair_reset_safe(qk_tap_dance_state_t *state, void *user_data); void td_copy_cut (qk_tap_dance_state_t *state, void *user_data); void td_paste(qk_tap_dance_state_t *state, void *user_data); int cur_dance (qk_tap_dance_state_t *state); void dance_cut (qk_tap_dance_state_t *state, void *user_data); void dance_copy (qk_tap_dance_state_t *state, void *user_data); void dance_paste (qk_tap_dance_state_t *state, void *user_data); // Ready to use Tap dance definitions, just put them on your layout #define TD_COPY TD(_TD_COPY) #define TD_CUT TD(_TD_CUT) #define KC_TD_COPY TD(_TD_COPY) // Declarations for macros that add KC_ #define KC_TD_CUT TD(_TD_CUT) #define KC_TD_PASTE TD(_TD_PASTE) #define KC_E_GRV ES_GRV #define TD_F1 TD(_TD_F1) #define TD_F2 TD(_TD_F2) #define TD_F3 TD(_TD_F3) #define TD_F4 TD(_TD_F4) #define TD_F5 TD(_TD_F5) #define TD_F6 TD(_TD_F6) #define TD_F7 TD(_TD_F7) #define TD_F8 TD(_TD_F8) #define TD_F9 TD(_TD_F9) #define TD_F10 TD(_TD_F10) #define TD_F11 TD(_TD_F11) #define TD_F12 TD(_TD_F12) #define H_ENTER TD(_TD_H_ENTER) #define TD_CLN TD(_TD_CLN) #define TD_SLASH TD(_TD_SLASH)