test_combos_repress.c (1140B)
1 // Copyright 2024 @Filios92 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 #include "quantum.h" 4 5 enum combos { alttab, esc }; 6 7 uint16_t const alttab_combo[] = {KC_F, KC_G, COMBO_END}; 8 uint16_t const esc_combo[] = {KC_H, KC_J, COMBO_END}; 9 10 // clang-format off 11 combo_t key_combos[] = { 12 [alttab] = COMBO(alttab_combo, KC_NO), 13 [esc] = COMBO(esc_combo, KC_ESC) 14 }; 15 // clang-format on 16 17 void process_combo_event(uint16_t combo_index, bool pressed) { 18 switch (combo_index) { 19 case alttab: 20 if (pressed) { 21 register_mods(MOD_LALT); 22 tap_code(KC_TAB); 23 } else { 24 unregister_mods(MOD_LALT); 25 } 26 break; 27 } 28 } 29 30 bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) { 31 switch (combo_index) { 32 case alttab: 33 switch (keycode) { 34 case KC_F: 35 tap_code16(S(KC_TAB)); 36 return true; 37 case KC_G: 38 tap_code(KC_TAB); 39 return true; 40 } 41 } 42 return false; 43 }