mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-29 21:08:38 +06:00
185 lines
4.5 KiB
C
185 lines
4.5 KiB
C
#include "tap_dances.h"
|
|
|
|
/*
|
|
void macroTogKey(tap_dance_state_t *state, void *user_data) {
|
|
keyrecord_t kr;
|
|
|
|
if (state->count == 1)
|
|
{
|
|
kr.event.pressed = false;
|
|
process_record_dynamic_macro( DM_PLY1, &kr );
|
|
}
|
|
else if (state->count == 2)
|
|
{
|
|
kr.event.pressed = true;
|
|
process_record_dynamic_macro( DM_RSTP, &kr );
|
|
}
|
|
else if (state->count == 3)
|
|
{
|
|
kr.event.pressed = false;
|
|
process_record_dynamic_macro( QK_DYNAMIC_MACRO_RECORD_START_1, &kr );
|
|
}
|
|
}
|
|
|
|
void macroTogKey2(tap_dance_state_t *state, void *user_data) {
|
|
keyrecord_t kr;
|
|
|
|
if (state->count == 1)
|
|
{
|
|
kr.event.pressed = false;
|
|
process_record_dynamic_macro( DM_PLY2, &kr );
|
|
}
|
|
else if (state->count == 2)
|
|
{
|
|
kr.event.pressed = true;
|
|
process_record_dynamic_macro( DM_RSTP, &kr );
|
|
}
|
|
else if (state->count == 3)
|
|
{
|
|
kr.event.pressed = false;
|
|
process_record_dynamic_macro( DM_REC2, &kr );
|
|
}
|
|
}
|
|
*/
|
|
|
|
void pstinsrt(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
register_code(KC_LALT);
|
|
tap_code(KC_I);
|
|
tap_code(KC_E);
|
|
unregister_code(KC_LALT);
|
|
} else {
|
|
tap_code16(C(KC_V));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void ccopy(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code16(C(KC_X));
|
|
|
|
// SEND_STRING( SS_DOWN(KC_LCTL) SS_TAP(KC_X) SS_UP(KC_LCTL));
|
|
} else {
|
|
tap_code16(C(KC_C));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void pstspecial(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
register_code(KC_LALT);
|
|
tap_code(KC_E);
|
|
tap_code(KC_S);
|
|
unregister_code(KC_LALT);
|
|
tap_code(KC_V);
|
|
} else {
|
|
register_code(KC_LALT);
|
|
tap_code(KC_E);
|
|
tap_code(KC_S);
|
|
unregister_code(KC_LALT);
|
|
tap_code(KC_T);
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void deldel(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
register_code(KC_LALT);
|
|
tap_code(KC_E);
|
|
tap_code(KC_D);
|
|
unregister_code(KC_LALT);
|
|
} else {
|
|
tap_code(KC_DEL);
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void findreplace(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code16(C(KC_H));
|
|
} else {
|
|
tap_code16(C(KC_F));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void cyclawin(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code16(C(S(KC_F6)));
|
|
} else {
|
|
tap_code16(C(KC_F6));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void SCRNSNP(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code16(A(KC_PSCR));
|
|
} else {
|
|
tap_code(KC_LGUI);
|
|
tap_code(KC_S);
|
|
tap_code(KC_N);
|
|
tap_code16(C(KC_N));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void mcccpy(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code16(G(KC_X));
|
|
} else {
|
|
tap_code16(G(KC_C));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void mcpstin(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code16(G(KC_I));
|
|
} else {
|
|
tap_code16(G(KC_V));
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void enttab(tap_dance_state_t *state, void *user_data) {
|
|
if (state->count > 1) {
|
|
tap_code(KC_ENT);
|
|
} else {
|
|
tap_code(KC_TAB);
|
|
}
|
|
reset_tap_dance(state);
|
|
}
|
|
|
|
void rgb_toggle(tap_dance_state_t *state, void *user_data) {
|
|
#ifdef RGBLIGHT_ENABLE
|
|
if (state->count == 1) {
|
|
rgblight_step();
|
|
} else {
|
|
rgblight_increase_hue();
|
|
}
|
|
#endif
|
|
}
|
|
|
|
// Tap Dance Definitions
|
|
tap_dance_action_t tap_dance_actions[] = {
|
|
[TD_PSTI] = ACTION_TAP_DANCE_FN(pstinsrt),
|
|
[TD_PTSP] = ACTION_TAP_DANCE_FN(pstspecial),
|
|
[TD_FNDR] = ACTION_TAP_DANCE_FN(findreplace),
|
|
[TD_CCPY] = ACTION_TAP_DANCE_FN(ccopy),
|
|
[TD_DDEL] = ACTION_TAP_DANCE_FN(deldel),
|
|
[TD_ACCW] = ACTION_TAP_DANCE_FN(cyclawin),
|
|
[TD_CAPESC] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
|
|
[TD_DTEX] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EXLM),
|
|
[TD_COMQUES] = ACTION_TAP_DANCE_DOUBLE(KC_COMM, KC_QUES),
|
|
[TD_MINPLS] = ACTION_TAP_DANCE_DOUBLE(KC_PMNS, KC_PPLS),
|
|
[TD_DIVMLT] = ACTION_TAP_DANCE_DOUBLE(KC_PSLS, KC_PAST),
|
|
[TD_DOTEQL] = ACTION_TAP_DANCE_DOUBLE(KC_DOT, KC_EQL),
|
|
[TD_SCNSP] = ACTION_TAP_DANCE_FN(SCRNSNP),
|
|
[TD_MCCCPY] = ACTION_TAP_DANCE_FN(mcccpy),
|
|
[TD_MCPSTIN] = ACTION_TAP_DANCE_FN(mcpstin),
|
|
[TD_ENTAB] = ACTION_TAP_DANCE_FN(enttab),
|
|
[TD_XSPC] = ACTION_TAP_DANCE_DOUBLE(KC_SPACE, KC_X),
|
|
[TD_RGB] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rgb_toggle, NULL)
|
|
};
|