diff options
Diffstat (limited to 'tests/combo/combo_repress/test_combos_repress.c')
-rw-r--r-- | tests/combo/combo_repress/test_combos_repress.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/combo/combo_repress/test_combos_repress.c b/tests/combo/combo_repress/test_combos_repress.c new file mode 100644 index 0000000000..73fa77b0aa --- /dev/null +++ b/tests/combo/combo_repress/test_combos_repress.c @@ -0,0 +1,43 @@ +// Copyright 2024 @Filios92 +// SPDX-License-Identifier: GPL-2.0-or-later +#include "quantum.h" + +enum combos { alttab, esc }; + +uint16_t const alttab_combo[] = {KC_F, KC_G, COMBO_END}; +uint16_t const esc_combo[] = {KC_H, KC_J, COMBO_END}; + +// clang-format off +combo_t key_combos[] = { + [alttab] = COMBO(alttab_combo, KC_NO), + [esc] = COMBO(esc_combo, KC_ESC) +}; +// clang-format on + +void process_combo_event(uint16_t combo_index, bool pressed) { + switch (combo_index) { + case alttab: + if (pressed) { + register_mods(MOD_LALT); + tap_code(KC_TAB); + } else { + unregister_mods(MOD_LALT); + } + break; + } +} + +bool process_combo_key_repress(uint16_t combo_index, combo_t *combo, uint8_t key_index, uint16_t keycode) { + switch (combo_index) { + case alttab: + switch (keycode) { + case KC_F: + tap_code16(S(KC_TAB)); + return true; + case KC_G: + tap_code(KC_TAB); + return true; + } + } + return false; +} |