diff options
Diffstat (limited to 'users/ninjonas/combos.c')
-rw-r--r-- | users/ninjonas/combos.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/users/ninjonas/combos.c b/users/ninjonas/combos.c new file mode 100644 index 000000000..9453ba84d --- /dev/null +++ b/users/ninjonas/combos.c @@ -0,0 +1,55 @@ +#include "ninjonas.h" + +#ifdef COMBO_ENABLE +enum combo_events { + EQ_QUIT, + RW_CLOSE, + QT_TAB, + ZC_COPY, + XV_PASTE +}; + +const uint16_t PROGMEM quit_combo[] = {KC_E, KC_Q, COMBO_END}; +const uint16_t PROGMEM close_combo[] = {KC_R, KC_W, COMBO_END}; +const uint16_t PROGMEM tab_combo[] = {KC_Q, KC_T, COMBO_END}; +const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; +const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; + +combo_t key_combos[COMBO_COUNT] = { + [EQ_QUIT] = COMBO_ACTION(quit_combo), + [RW_CLOSE] = COMBO_ACTION(close_combo), + [QT_TAB] = COMBO_ACTION(tab_combo), + [ZC_COPY] = COMBO_ACTION(copy_combo), + [XV_PASTE] = COMBO_ACTION(paste_combo), +}; + +void process_combo_event(uint8_t combo_index, bool pressed) { + switch(combo_index) { + case EQ_QUIT: + if (pressed) { + tap_code16(LGUI(KC_Q)); + } + break; + case RW_CLOSE: + if (pressed) { + tap_code16(LGUI(KC_W)); + } + break; + case QT_TAB: + if (pressed) { + tap_code16(LGUI(KC_T)); + } + break; + case ZC_COPY: + if (pressed) { + tap_code16(LGUI(KC_C)); + } + break; + case XV_PASTE: + if (pressed) { + tap_code16(LGUI(KC_V)); + } + break; + } +} +#endif
\ No newline at end of file |