81 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "quantum.h"
 | |
| extern bool CMD(uint16_t kc);
 | |
| extern bool onMac;
 | |
| 
 | |
| 
 | |
| #define ACTION_TAP_DANCE_DOUBLE_SAFE(kc1, kc2) { \
 | |
|     .fn = { NULL, tap_dance_pair_finished_safe, tap_dance_pair_reset_safe }, \
 | |
|     .user_data = (void *)&((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 (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 tap_dance_pair_finished_safe(tap_dance_state_t *state, void *user_data);
 | |
| void tap_dance_pair_reset_safe(tap_dance_state_t *state, void *user_data);
 | |
| void td_copy_cut (tap_dance_state_t *state, void *user_data);
 | |
| void td_paste(tap_dance_state_t *state, void *user_data);
 | |
| int cur_dance (tap_dance_state_t *state);
 | |
| void dance_cut (tap_dance_state_t *state, void *user_data);
 | |
| void dance_copy (tap_dance_state_t *state, void *user_data);
 | |
| void dance_paste (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)
 | 
