3 static td_state_t td_state;
6 bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
10 // determine the tapdance state to return
11 int cur_dance (qk_tap_dance_state_t *state) {
12 if (state->count == 1) {
13 if (state->interrupted || !state->pressed) { return SINGLE_TAP; }
14 else { return SINGLE_HOLD; }
16 if (state->count == 2) { return DOUBLE_TAP; }
17 else { return 3; } // any number higher than the maximum state value you return above
20 // handle the possible states for each tapdance keycode you define:
21 void ctl_copy_finished (qk_tap_dance_state_t *state, void *user_data) {
22 td_state = cur_dance(state);
25 SEND_STRING(SS_LCTRL("c"));
28 register_mods(MOD_BIT(KC_RCTL));
31 SEND_STRING(SS_LCTRL("v"));
35 void ctl_copy_reset (qk_tap_dance_state_t *state, void *user_data) {
40 unregister_mods(MOD_BIT(KC_RCTL));
47 qk_tap_dance_action_t tap_dance_actions[] = {
48 [TD_WIN] = ACTION_TAP_DANCE_DOUBLE(KC_CAD, KC_LOCK),
49 [TD_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_GRV),
50 [TD_RCTL] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctl_copy_finished, ctl_copy_reset)
53 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
56 if (!record->event.pressed) {
57 uint8_t mods = get_mods();
59 send_string_with_delay_P(PSTR("make " QMK_KEYBOARD ":" QMK_KEYMAP), 10);
60 if (mods & MOD_MASK_SHIFT) {
61 //RESET board for flashing if SHIFT held or tapped with KC_MAKE
63 send_string_with_delay_P(PSTR(":dfu-util"), 10);
64 #elif defined(BOOTLOADER_DFU)
65 send_string_with_delay_P(PSTR(":dfu"), 10);
66 #elif defined(BOOTLOADER_HALFKAY)
67 send_string_with_delay_P(PSTR(":teensy"), 10);
68 #elif defined(BOOTLOADER_CATERINA)
69 send_string_with_delay_P(PSTR(":avrdude"), 10);
70 #endif // bootloader options
71 send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
74 if (mods & MOD_MASK_CTRL) {
75 send_string_with_delay_P(PSTR(" -j8 --output-sync"), 10);
77 send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
81 case KC_RDP: //Opens Windows RDP
82 if (!record->event.pressed) {
83 register_code(KC_LGUI);
85 unregister_code(KC_LGUI);
87 send_string_with_delay_P(PSTR("mstsc"), 10);
88 send_string_with_delay_P(PSTR(SS_TAP(X_ENTER)), 10);
92 return process_record_keymap(keycode, record);