summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Brassel <nick@tzarc.org>2023-05-15 22:27:37 +1000
committerGitHub <noreply@github.com>2023-05-15 22:27:37 +1000
commit5faa23d54ca1e3ab83097f2a07922f48800616e6 (patch)
tree6ed05e5492f3fc8dda210a75b897dd9d4ed8df38
parent433dc6068603e61d466e755aedcea0be96664f95 (diff)
Keymap introspection for combos. (#19670)
-rw-r--r--builddefs/build_test.mk4
-rw-r--r--data/mappings/info_config.hjson4
-rw-r--r--docs/config_options.md2
-rw-r--r--docs/feature_combo.md33
-rw-r--r--docs/ja/config_options.md2
-rw-r--r--docs/ja/feature_combo.md6
-rw-r--r--keyboards/0xcb/splaytoraid/keymaps/pi/config.h1
-rw-r--r--keyboards/0xcb/splaytoraid/keymaps/pi/keymap.c6
-rw-r--r--keyboards/3w6/keymaps/helltm/combos.h4
-rw-r--r--keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h2
-rw-r--r--keyboards/40percentclub/nori/keymaps/wings_36key/config.h2
-rw-r--r--keyboards/40percentclub/nori/keymaps/wings_36key/keymap.c4
-rw-r--r--keyboards/ashpil/modelm_usbc/keymaps/ashpil/config.h1
-rw-r--r--keyboards/ashpil/modelm_usbc/keymaps/ashpil/keymap.c4
-rw-r--r--keyboards/b_sides/rev41lp/keymaps/namnlos/config.h2
-rw-r--r--keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c2
-rw-r--r--keyboards/bluebell/swoop/keymaps/kyek/config.h1
-rw-r--r--keyboards/bluebell/swoop/keymaps/kyek/keymap.c34
-rw-r--r--keyboards/centromere/keymaps/mini_bom/config.h1
-rw-r--r--keyboards/centromere/keymaps/mini_bom/keymap.c14
-rw-r--r--keyboards/chord/zero/keymaps/default/keymap.c2
-rw-r--r--keyboards/converter/usb_usb/keymaps/chriskopher/combo.c2
-rw-r--r--keyboards/converter/usb_usb/keymaps/chriskopher/config.h1
-rw-r--r--keyboards/converter/usb_usb/keymaps/narze/config.h1
-rw-r--r--keyboards/crkbd/keymaps/antosha417/keymap.c8
-rw-r--r--keyboards/crkbd/keymaps/cameronjlarsen/keymap.c7
-rw-r--r--keyboards/crkbd/keymaps/markstos/config.h5
-rw-r--r--keyboards/crkbd/keymaps/markstos/keymap.c4
-rw-r--r--keyboards/crkbd/keymaps/nimishgautam/config.h3
-rw-r--r--keyboards/crkbd/keymaps/nimishgautam/keymap.c64
-rw-r--r--keyboards/crkbd/keymaps/pdl/config.h1
-rw-r--r--keyboards/drhigsby/dubba175/keymaps/default/config.h1
-rw-r--r--keyboards/drhigsby/dubba175/keymaps/default/keymap.c8
-rw-r--r--keyboards/drhigsby/ogurec/keymaps/default/config.h1
-rw-r--r--keyboards/drhigsby/ogurec/keymaps/default/keymap.c6
-rw-r--r--keyboards/drhigsby/packrat/keymaps/3uc/config.h1
-rw-r--r--keyboards/drhigsby/packrat/keymaps/3uc/keymap.c7
-rw-r--r--keyboards/drhigsby/packrat/keymaps/default/config.h1
-rw-r--r--keyboards/drhigsby/packrat/keymaps/default/keymap.c5
-rw-r--r--keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h2
-rw-r--r--keyboards/eu_isolation/keymaps/bigspace/config.h27
-rw-r--r--keyboards/eu_isolation/keymaps/bigspace/keymap.c26
-rw-r--r--keyboards/eu_isolation/keymaps/default/config.h21
-rw-r--r--keyboards/eu_isolation/keymaps/default/keymap.c22
-rw-r--r--keyboards/eu_isolation/keymaps/mit/config.h21
-rw-r--r--keyboards/eu_isolation/keymaps/mit/keymap.c22
-rw-r--r--keyboards/foostan/cornelius/keymaps/pdl/config.h1
-rw-r--r--keyboards/free_willy/keymaps/colemak/config.h1
-rw-r--r--keyboards/free_willy/keymaps/colemak/keymap.c2
-rw-r--r--keyboards/free_willy/keymaps/default/config.h1
-rw-r--r--keyboards/free_willy/keymaps/default/keymap.c2
-rw-r--r--keyboards/gboards/g/keymap_combo.h3
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h1
-rw-r--r--keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/keymap.c2
-rw-r--r--keyboards/handwired/aek64/keymaps/4sstylz/config.h3
-rw-r--r--keyboards/handwired/aek64/keymaps/4sstylz/keymap.c4
-rw-r--r--keyboards/ibnuda/alicia_cook/keymaps/rick/config.h1
-rw-r--r--keyboards/ibnuda/alicia_cook/keymaps/rick/keymap.c2
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/default/config.h1
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/default/keymap.c2
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/default38/config.h1
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/default38/keymap.c2
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/defaultfull/config.h1
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/defaultfull/keymap.c2
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/defaultminidox/config.h1
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/defaultminidox/keymap.c2
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/rick-complicated/config.h1
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/rick-complicated/keymap.c2
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/rick/config.h1
-rw-r--r--keyboards/ibnuda/squiggle/keymaps/rick/keymap.c2
-rw-r--r--keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h1
-rw-r--r--keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c4
-rw-r--r--keyboards/input_club/ergodox_infinity/keymaps/narze/config.h1
-rw-r--r--keyboards/k34/keymaps/default/config.h24
-rw-r--r--keyboards/k34/keymaps/default/keymap.c2
-rw-r--r--keyboards/keebformom/keymaps/default/config.h19
-rw-r--r--keyboards/keebformom/keymaps/default/keymap.c8
-rw-r--r--keyboards/keycapsss/plaid_pad/keymaps/oled/config.h2
-rw-r--r--keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c2
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h1
-rw-r--r--keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c16
-rw-r--r--keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h1
-rw-r--r--keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h3
-rw-r--r--keyboards/kprepublic/jj40/keymaps/stevexyz/config.h2
-rw-r--r--keyboards/lets_split/keymaps/shaymdev/config.h2
-rw-r--r--keyboards/lets_split/keymaps/shaymdev/keymap.c38
-rw-r--r--keyboards/lily58/keymaps/muuko/config.h4
-rw-r--r--keyboards/lily58/keymaps/muuko/keymap.c2
-rw-r--r--keyboards/lily58/keymaps/narze/config.h1
-rw-r--r--keyboards/makenova/omega/omega4/keymaps/default/config.h1
-rw-r--r--keyboards/makenova/omega/omega4/keymaps/default/keymap.c4
-rw-r--r--keyboards/makenova/omega/omega4/keymaps/default_10u_bar/config.h1
-rw-r--r--keyboards/makenova/omega/omega4/keymaps/default_10u_bar/keymap.c4
-rw-r--r--keyboards/makenova/omega/omega4/keymaps/default_6u_bar/config.h1
-rw-r--r--keyboards/makenova/omega/omega4/keymaps/default_6u_bar/keymap.c4
-rw-r--r--keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h2
-rw-r--r--keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c2
-rw-r--r--keyboards/massdrop/alt/keymaps/b_/config.h1
-rw-r--r--keyboards/massdrop/alt/keymaps/pregame/config.h1
-rw-r--r--keyboards/massdrop/ctrl/keymaps/endgame/config.h1
-rw-r--r--keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h1
-rw-r--r--keyboards/massdrop/ctrl/keymaps/xanimos/config.h1
-rw-r--r--keyboards/maxr1998/pulse4k/config.h1
-rw-r--r--keyboards/maxr1998/pulse4k/keymaps/default/keymap.c2
-rw-r--r--keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c2
-rw-r--r--keyboards/nimrod/keymaps/default/config.h1
-rw-r--r--keyboards/nimrod/keymaps/default/keymap.c2
-rw-r--r--keyboards/nimrod/keymaps/default_center_space/config.h1
-rw-r--r--keyboards/nimrod/keymaps/default_center_space/keymap.c2
-rw-r--r--keyboards/nimrod/keymaps/default_left_space/config.h1
-rw-r--r--keyboards/nimrod/keymaps/default_left_space/keymap.c2
-rw-r--r--keyboards/nimrod/keymaps/default_right_space/config.h1
-rw-r--r--keyboards/nimrod/keymaps/default_right_space/keymap.c2
-rw-r--r--keyboards/nimrod/keymaps/default_split_space/config.h1
-rw-r--r--keyboards/nimrod/keymaps/default_split_space/keymap.c2
-rw-r--r--keyboards/orthodox/keymaps/shaymdev/config.h2
-rw-r--r--keyboards/orthodox/keymaps/shaymdev/keymap.c38
-rw-r--r--keyboards/pierce/keymaps/durken1/config.h1
-rw-r--r--keyboards/pierce/keymaps/durken1/keymap.c22
-rw-r--r--keyboards/planck/keymaps/antosha417/keymap.c7
-rw-r--r--keyboards/planck/keymaps/ariccb/keymap.c4
-rw-r--r--keyboards/planck/keymaps/dvz/config.h2
-rw-r--r--keyboards/planck/keymaps/dvz/keymap.c2
-rw-r--r--keyboards/planck/keymaps/narze/config.h1
-rw-r--r--keyboards/planck/keymaps/rootiest/config.h1
-rw-r--r--keyboards/planck/keymaps/rootiest/keymap.c2
-rw-r--r--keyboards/preonic/keymaps/brauner/keymap.c5
-rw-r--r--keyboards/program_yoink/ortho/keymaps/default/config.h3
-rw-r--r--keyboards/program_yoink/ortho/keymaps/default/keymap.c2
-rw-r--r--keyboards/program_yoink/ortho/keymaps/ortho_split/config.h3
-rw-r--r--keyboards/program_yoink/ortho/keymaps/ortho_split/keymap.c2
-rw-r--r--keyboards/program_yoink/staggered/keymaps/default/config.h3
-rw-r--r--keyboards/program_yoink/staggered/keymaps/default/keymap.c2
-rw-r--r--keyboards/program_yoink/staggered/keymaps/split_bar/config.h3
-rw-r--r--keyboards/program_yoink/staggered/keymaps/split_bar/keymap.c2
-rw-r--r--keyboards/projectcain/relic/keymaps/default/config.h1
-rw-r--r--keyboards/projectcain/relic/keymaps/default/keymap.c16
-rw-r--r--keyboards/projectcain/vault35/keymaps/default/config.h1
-rw-r--r--keyboards/projectcain/vault35/keymaps/default/keymap.c48
-rw-r--r--keyboards/projectcain/vault45/keymaps/default/config.h31
-rw-r--r--keyboards/projectcain/vault45/keymaps/default/keymap.c26
-rw-r--r--keyboards/q4z/keymaps/default/config.h1
-rw-r--r--keyboards/q4z/keymaps/default/keymap.c2
-rw-r--r--keyboards/q4z/keymaps/rjboone/config.h2
-rw-r--r--keyboards/q4z/keymaps/rjboone/keymap.c2
-rw-r--r--keyboards/qpockets/eggman/keymaps/default/config.h3
-rw-r--r--keyboards/qpockets/eggman/keymaps/default/keymap.c2
-rw-r--r--keyboards/qpockets/space_space/rev1/keymaps/big_space/config.h3
-rw-r--r--keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c2
-rw-r--r--keyboards/qpockets/space_space/rev1/keymaps/default/config.h3
-rw-r--r--keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c2
-rw-r--r--keyboards/qpockets/space_space/rev2/keymaps/big_space/config.h3
-rw-r--r--keyboards/qpockets/space_space/rev2/keymaps/big_space/keymap.c8
-rw-r--r--keyboards/qpockets/space_space/rev2/keymaps/default/config.h3
-rw-r--r--keyboards/qpockets/space_space/rev2/keymaps/default/keymap.c8
-rw-r--r--keyboards/qpockets/space_space/rev2/keymaps/qpockets/config.h3
-rw-r--r--keyboards/qpockets/space_space/rev2/keymaps/qpockets/keymap.c10
-rw-r--r--keyboards/qpockets/wanten/keymaps/2u_bars/config.h3
-rw-r--r--keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c11
-rw-r--r--keyboards/qpockets/wanten/keymaps/625_bar/config.h3
-rw-r--r--keyboards/qpockets/wanten/keymaps/625_bar/keymap.c11
-rw-r--r--keyboards/qpockets/wanten/keymaps/default/config.h3
-rw-r--r--keyboards/qpockets/wanten/keymaps/default/keymap.c11
-rw-r--r--keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h7
-rw-r--r--keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c5
-rw-r--r--keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c5
-rw-r--r--keyboards/splitkb/kyria/keymaps/cwebster2/config.h4
-rw-r--r--keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c2
-rw-r--r--keyboards/synapse/keymaps/7u_space/config.h3
-rw-r--r--keyboards/synapse/keymaps/7u_space/keymap.c4
-rw-r--r--keyboards/synapse/keymaps/default/config.h3
-rw-r--r--keyboards/synapse/keymaps/default/keymap.c4
-rw-r--r--keyboards/tominabox1/adalyn/keymaps/default/config.h1
-rw-r--r--keyboards/tominabox1/adalyn/keymaps/default/keymap.c2
-rw-r--r--keyboards/tominabox1/le_chiffre/keymaps/default/config.h1
-rw-r--r--keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c2
-rw-r--r--keyboards/tominabox1/qaz/keymaps/default/config.h1
-rw-r--r--keyboards/tominabox1/qaz/keymaps/default/keymap.c2
-rw-r--r--keyboards/tominabox1/qaz/keymaps/default_big_space/config.h1
-rw-r--r--keyboards/tominabox1/qaz/keymaps/default_big_space/keymap.c2
-rw-r--r--keyboards/tominabox1/underscore33/rev1/keymaps/default/config.h1
-rw-r--r--keyboards/tominabox1/underscore33/rev1/keymaps/default/keymap.c2
-rw-r--r--keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/config.h1
-rw-r--r--keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/keymap.c2
-rw-r--r--keyboards/tominabox1/underscore33/rev2/keymaps/default/config.h1
-rw-r--r--keyboards/tominabox1/underscore33/rev2/keymaps/default/keymap.c2
-rw-r--r--keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/config.h1
-rw-r--r--keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/keymap.c2
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/config.h1
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c2
-rw-r--r--keyboards/ymdk/melody96/keymaps/dvz/config.h1
-rw-r--r--keyboards/ymdk/melody96/keymaps/dvz/keymap.c2
-rw-r--r--quantum/keymap_introspection.c21
-rw-r--r--quantum/keymap_introspection.h21
-rw-r--r--quantum/process_keycode/process_combo.c23
-rw-r--r--quantum/process_keycode/process_combo.h2
-rw-r--r--tests/caps_word/caps_word_combo/test.mk1
-rw-r--r--tests/caps_word/caps_word_combo/test_caps_word_combo.cpp23
-rw-r--r--tests/caps_word/caps_word_combo/test_combos.c20
-rw-r--r--tests/combo/test.mk2
-rw-r--r--tests/combo/test_combo.cpp15
-rw-r--r--tests/combo/test_combos.c17
-rw-r--r--tests/test_common/keycode_util.hpp1
-rw-r--r--users/art/funcs/string_funcs.c48
-rw-r--r--users/danielo515/combo.c2
-rw-r--r--users/danielo515/config.h1
-rw-r--r--users/ericgebhart/extensions/keymap_combo.h3
-rw-r--r--users/ibnuda/combo.h4
-rw-r--r--users/ibnuda/config.h3
-rw-r--r--users/issmirnov/config.h1
-rw-r--r--users/issmirnov/issmirnov.c4
-rw-r--r--users/kuchosauronad0/combo.h5
-rw-r--r--users/kuchosauronad0/config.h1
-rw-r--r--users/manna-harbour_miryoku/config.h1
-rw-r--r--users/manna-harbour_miryoku/manna-harbour_miryoku.c2
-rw-r--r--users/muppetjones/config.h2
-rw-r--r--users/muppetjones/features/combos.c3
-rw-r--r--users/narze/superduper.c2
-rw-r--r--users/ninjonas/combos.c4
-rw-r--r--users/ninjonas/config.h2
-rw-r--r--users/pdl/pdl.c2
-rw-r--r--users/talljoe/config.h1
-rw-r--r--users/uqs/uqs.c2
-rw-r--r--users/yet-another-developer/combo.h5
-rw-r--r--users/yet-another-developer/config.h1
-rw-r--r--users/zigotica/combos.c5
226 files changed, 533 insertions, 729 deletions
diff --git a/builddefs/build_test.mk b/builddefs/build_test.mk
index 4230598373..9eead77bea 100644
--- a/builddefs/build_test.mk
+++ b/builddefs/build_test.mk
@@ -75,6 +75,10 @@ $(TEST)_SRC += \
75 tests/test_common/main.cpp \ 75 tests/test_common/main.cpp \
76 $(QUANTUM_PATH)/logging/print.c 76 $(QUANTUM_PATH)/logging/print.c
77 77
78ifneq ($(strip $(INTROSPECTION_KEYMAP_C)),)
79$(TEST)_DEFS += -DINTROSPECTION_KEYMAP_C=\"$(strip $(INTROSPECTION_KEYMAP_C))\"
80endif
81
78$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC) 82$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
79$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC) 83$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
80$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS) 84$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson
index 4a825b7fe5..e53d90da39 100644
--- a/data/mappings/info_config.hjson
+++ b/data/mappings/info_config.hjson
@@ -43,7 +43,6 @@
43 "DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"}, 43 "DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD": {"info_key": "caps_word.double_tap_shift_turns_on", "value_type": "bool"},
44 44
45 // Combos 45 // Combos
46 "COMBO_COUNT": {"info_key": "combo.count", "value_type": "int"},
47 "COMBO_TERM": {"info_key": "combo.term", "value_type": "int"}, 46 "COMBO_TERM": {"info_key": "combo.term", "value_type": "int"},
48 47
49 // Dynamic Keymap 48 // Dynamic Keymap
@@ -182,9 +181,10 @@
182 "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool", "deprecated": true}, 181 "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool", "deprecated": true},
183 "TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool", "deprecated": true}, 182 "TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool", "deprecated": true},
184 "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true}, 183 "UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true},
184 "COMBO_COUNT": {"info_key": "_invalid.combo.count", "invalid": true},
185 185
186 // USB params, need to mark as failure when specified in config.h, rather than deprecated 186 // USB params, need to mark as failure when specified in config.h, rather than deprecated
187 "DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version", "deprecated": true, "replace_with": "`usb.device_version` in info.json"} 187 "DEVICE_VER": {"info_key": "usb.device_version", "value_type": "bcd_version", "deprecated": true, "replace_with": "`usb.device_version` in info.json"},
188 "MANUFACTURER": {"info_key": "manufacturer", "value_type": "str", "deprecated": true, "replace_with": "`manufacturer` in info.json"}, 188 "MANUFACTURER": {"info_key": "manufacturer", "value_type": "str", "deprecated": true, "replace_with": "`manufacturer` in info.json"},
189 "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"}, 189 "PRODUCT": {"info_key": "keyboard_name", "warn_duplicate": false, "value_type": "str", "deprecated": true, "replace_with": "`keyboard_name` in info.json"},
190 "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"}, 190 "PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"},
diff --git a/docs/config_options.md b/docs/config_options.md
index 5ea71d993e..4698260118 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -186,8 +186,6 @@ If you define these options you will enable the associated feature, which may in
186 * how long before oneshot times out 186 * how long before oneshot times out
187* `#define ONESHOT_TAP_TOGGLE 2` 187* `#define ONESHOT_TAP_TOGGLE 2`
188 * how many taps before oneshot toggle is triggered 188 * how many taps before oneshot toggle is triggered
189* `#define COMBO_COUNT 2`
190 * Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. Or leave it undefined and programmatically set the count.
191* `#define COMBO_TERM 200` 189* `#define COMBO_TERM 200`
192 * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined. 190 * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
193* `#define COMBO_MUST_HOLD_MODS` 191* `#define COMBO_MUST_HOLD_MODS`
diff --git a/docs/feature_combo.md b/docs/feature_combo.md
index 075fe252ae..fd241061fb 100644
--- a/docs/feature_combo.md
+++ b/docs/feature_combo.md
@@ -4,15 +4,12 @@ The Combo feature is a chording type solution for adding custom actions. It lets
4 4
5To enable this feature, you need to add `COMBO_ENABLE = yes` to your `rules.mk`. 5To enable this feature, you need to add `COMBO_ENABLE = yes` to your `rules.mk`.
6 6
7Additionally, in your `config.h`, you'll need to specify the number of combos that you'll be using, by adding `#define COMBO_COUNT 1` (replacing 1 with the number that you're using). It is also possible to not define this and instead set the variable `COMBO_LEN` yourself. There's a trick where we don't need to think about this variable at all. More on this later.
8
9
10Then, in your `keymap.c` file, you'll need to define a sequence of keys, terminated with `COMBO_END`, and a structure to list the combination of keys, and its resulting action. 7Then, in your `keymap.c` file, you'll need to define a sequence of keys, terminated with `COMBO_END`, and a structure to list the combination of keys, and its resulting action.
11 8
12```c 9```c
13const uint16_t PROGMEM test_combo1[] = {KC_A, KC_B, COMBO_END}; 10const uint16_t PROGMEM test_combo1[] = {KC_A, KC_B, COMBO_END};
14const uint16_t PROGMEM test_combo2[] = {KC_C, KC_D, COMBO_END}; 11const uint16_t PROGMEM test_combo2[] = {KC_C, KC_D, COMBO_END};
15combo_t key_combos[COMBO_COUNT] = { 12combo_t key_combos[] = {
16 COMBO(test_combo1, KC_ESC), 13 COMBO(test_combo1, KC_ESC),
17 COMBO(test_combo2, LCTL(KC_Z)), // keycodes with modifiers are possible too! 14 COMBO(test_combo2, LCTL(KC_Z)), // keycodes with modifiers are possible too!
18}; 15};
@@ -33,7 +30,7 @@ It is possible to overlap combos. Before, with the example below both combos wou
33```c 30```c
34const uint16_t PROGMEM test_combo1[] = {LSFT_T(KC_A), LT(1, KC_B), COMBO_END}; 31const uint16_t PROGMEM test_combo1[] = {LSFT_T(KC_A), LT(1, KC_B), COMBO_END};
35const uint16_t PROGMEM test_combo2[] = {LSFT_T(KC_A), LT(1, KC_B), KC_C, COMBO_END}; 32const uint16_t PROGMEM test_combo2[] = {LSFT_T(KC_A), LT(1, KC_B), KC_C, COMBO_END};
36combo_t key_combos[COMBO_COUNT] = { 33combo_t key_combos[] = {
37 COMBO(test_combo1, KC_ESC) 34 COMBO(test_combo1, KC_ESC)
38 COMBO(test_combo2, KC_TAB) 35 COMBO(test_combo2, KC_TAB)
39}; 36};
@@ -41,17 +38,15 @@ combo_t key_combos[COMBO_COUNT] = {
41 38
42## Examples 39## Examples
43 40
44A long list of combos can be defined in an `enum` list that ends with `COMBO_LENGTH` and you can leave `COMBO_COUNT` undefined: 41A long list of combos can be defined in an `enum` list:
45 42
46```c 43```c
47enum combos { 44enum combos {
48 AB_ESC, 45 AB_ESC,
49 JK_TAB, 46 JK_TAB,
50 QW_SFT, 47 QW_SFT,
51 SD_LAYER, 48 SD_LAYER
52 COMBO_LENGTH
53}; 49};
54uint16_t COMBO_LEN = COMBO_LENGTH; // remove the COMBO_COUNT define and use this instead!
55 50
56const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END}; 51const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END};
57const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 52const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
@@ -72,9 +67,7 @@ For a more complicated implementation, you can use the `process_combo_event` fun
72enum combo_events { 67enum combo_events {
73 EM_EMAIL, 68 EM_EMAIL,
74 BSPC_LSFT_CLEAR, 69 BSPC_LSFT_CLEAR,
75 COMBO_LENGTH
76}; 70};
77uint16_t COMBO_LEN = COMBO_LENGTH; // remove the COMBO_COUNT define and use this instead!
78 71
79const uint16_t PROGMEM email_combo[] = {KC_E, KC_M, COMBO_END}; 72const uint16_t PROGMEM email_combo[] = {KC_E, KC_M, COMBO_END};
80const uint16_t PROGMEM clear_line_combo[] = {KC_BSPC, KC_LSFT, COMBO_END}; 73const uint16_t PROGMEM clear_line_combo[] = {KC_BSPC, KC_LSFT, COMBO_END};
@@ -259,18 +252,6 @@ bool combo_should_trigger(uint16_t combo_index, combo_t *combo, uint16_t keycode
259} 252}
260``` 253```
261 254
262### Variable Length Combos
263If you leave `COMBO_COUNT` undefined in `config.h`, it allows you to programmatically declare the size of the Combo data structure and avoid updating `COMBO_COUNT`. Instead a variable called `COMBO_LEN` has to be set. It can be set with something similar to the following in `keymap.c`: `uint16_t COMBO_LEN = ARRAY_SIZE(key_combos);` or by adding `COMBO_LENGTH` as the *last* entry in the combo enum and then `uint16_t COMBO_LEN = COMBO_LENGTH;` as such:
264```c
265enum myCombos {
266 ...,
267 COMBO_LENGTH
268};
269uint16_t COMBO_LEN = COMBO_LENGTH;
270```
271Regardless of the method used to declare `COMBO_LEN`, this also requires to convert the `combo_t key_combos[COMBO_COUNT] = {...};` line to `combo_t key_combos[] = {...};`.
272
273
274### Combo timer 255### Combo timer
275 256
276Normally, the timer is started on the first key press and then reset on every subsequent key press within the `COMBO_TERM`. 257Normally, the timer is started on the first key press and then reset on every subsequent key press within the `COMBO_TERM`.
@@ -300,10 +281,8 @@ Here's an example where a combo resolves to two modifiers, and on key releases t
300 281
301```c 282```c
302enum combos { 283enum combos {
303 AB_MODS, 284 AB_MODS
304 COMBO_LENGTH
305}; 285};
306uint16_t COMBO_LEN = COMBO_LENGTH;
307 286
308const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END}; 287const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END};
309 288
@@ -415,6 +394,4 @@ SUBS(TH_THE, "the", KC_T, KC_H) // SUBS uses SEND_STRING to output the give
415... 394...
416``` 395```
417 396
418Now, you can update only one place to add or alter combos. You don't even need to remember to update the `COMBO_COUNT` or the `COMBO_LEN` variables at all. Everything is taken care of. Magic!
419
420For small to huge ready made dictionaries of combos, you can check out http://combos.gboards.ca/. 397For small to huge ready made dictionaries of combos, you can check out http://combos.gboards.ca/.
diff --git a/docs/ja/config_options.md b/docs/ja/config_options.md
index 4f9f1f2770..5e98da5eee 100644
--- a/docs/ja/config_options.md
+++ b/docs/ja/config_options.md
@@ -176,8 +176,6 @@ QMK ã§ã®å…¨ã¦ã®åˆ©ç”¨å¯èƒ½ãªè¨­å®šã«ã¯ãƒ‡ãƒ•ォルトãŒã‚りã¾ã™ã€‚ã
176 * ワンショットãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã™ã‚‹ã¾ã§ã®æ™‚é–“ 176 * ワンショットãŒã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆã™ã‚‹ã¾ã§ã®æ™‚é–“
177* `#define ONESHOT_TAP_TOGGLE 2` 177* `#define ONESHOT_TAP_TOGGLE 2`
178 * ワンショットトグルãŒå¼•ãèµ·ã“ã•れるã¾ã§ã®ã‚¿ãƒƒãƒ—æ•° 178 * ワンショットトグルãŒå¼•ãèµ·ã“ã•れるã¾ã§ã®ã‚¿ãƒƒãƒ—æ•°
179* `#define COMBO_COUNT 2`
180 * [コンボ](ja/feature_combo.md)機能ã§ä½¿ã£ã¦ã„ã‚‹ã‚³ãƒ³ãƒœã®æ•°ã«ã“れを設定ã—ã¾ã™ã€‚
181* `#define COMBO_TERM 200` 179* `#define COMBO_TERM 200`
182 * ã‚³ãƒ³ãƒœã‚­ãƒ¼ãŒæ¤œå‡ºã•れるã¾ã§ã®æ™‚間。定義ã•れã¦ã„ãªã„å ´åˆã¯ã€ãƒ‡ãƒ•ォルト㯠`TAPPING_TERM` ã§ã™ã€‚ 180 * ã‚³ãƒ³ãƒœã‚­ãƒ¼ãŒæ¤œå‡ºã•れるã¾ã§ã®æ™‚間。定義ã•れã¦ã„ãªã„å ´åˆã¯ã€ãƒ‡ãƒ•ォルト㯠`TAPPING_TERM` ã§ã™ã€‚
183* `#define TAP_CODE_DELAY 100` 181* `#define TAP_CODE_DELAY 100`
diff --git a/docs/ja/feature_combo.md b/docs/ja/feature_combo.md
index bd46e88b7f..0c0591e5f7 100644
--- a/docs/ja/feature_combo.md
+++ b/docs/ja/feature_combo.md
@@ -18,7 +18,7 @@
18 18
19```c 19```c
20const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END}; 20const uint16_t PROGMEM test_combo[] = {KC_A, KC_B, COMBO_END};
21combo_t key_combos[COMBO_COUNT] = {COMBO(test_combo, KC_ESC)}; 21combo_t key_combos[] = {COMBO(test_combo, KC_ESC)};
22``` 22```
23 23
24ã“れã¯ã€A 㨠B ã®ã‚­ãƒ¼ã‚’押ã—ãŸå ´åˆã«ã€"Escape" ã‚’é€ä¿¡ã—ã¾ã™ã€‚ 24ã“れã¯ã€A 㨠B ã®ã‚­ãƒ¼ã‚’押ã—ãŸå ´åˆã«ã€"Escape" ã‚’é€ä¿¡ã—ã¾ã™ã€‚
@@ -38,7 +38,7 @@ enum combos {
38const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END}; 38const uint16_t PROGMEM ab_combo[] = {KC_A, KC_B, COMBO_END};
39const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 39const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
40 40
41combo_t key_combos[COMBO_COUNT] = { 41combo_t key_combos[] = {
42 [AB_ESC] = COMBO(ab_combo, KC_ESC), 42 [AB_ESC] = COMBO(ab_combo, KC_ESC),
43 [JK_TAB] = COMBO(jk_combo, KC_TAB) 43 [JK_TAB] = COMBO(jk_combo, KC_TAB)
44}; 44};
@@ -55,7 +55,7 @@ enum combo_events {
55const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; 55const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
56const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; 56const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
57 57
58combo_t key_combos[COMBO_COUNT] = { 58combo_t key_combos[] = {
59 [ZC_COPY] = COMBO_ACTION(copy_combo), 59 [ZC_COPY] = COMBO_ACTION(copy_combo),
60 [XV_PASTE] = COMBO_ACTION(paste_combo), 60 [XV_PASTE] = COMBO_ACTION(paste_combo),
61}; 61};
diff --git a/keyboards/0xcb/splaytoraid/keymaps/pi/config.h b/keyboards/0xcb/splaytoraid/keymaps/pi/config.h
index 52e39aef65..1786ae776d 100644
--- a/keyboards/0xcb/splaytoraid/keymaps/pi/config.h
+++ b/keyboards/0xcb/splaytoraid/keymaps/pi/config.h
@@ -10,7 +10,6 @@
10 10
11 11
12#ifdef COMBO_ENABLE 12#ifdef COMBO_ENABLE
13 #define COMBO_COUNT 9
14 #define COMBO_TERM 20 13 #define COMBO_TERM 20
15 #define COMBO_ONLY_FROM_LAYER 0 14 #define COMBO_ONLY_FROM_LAYER 0
16#endif 15#endif
diff --git a/keyboards/0xcb/splaytoraid/keymaps/pi/keymap.c b/keyboards/0xcb/splaytoraid/keymaps/pi/keymap.c
index 29953eedef..07036b7245 100644
--- a/keyboards/0xcb/splaytoraid/keymaps/pi/keymap.c
+++ b/keyboards/0xcb/splaytoraid/keymaps/pi/keymap.c
@@ -73,7 +73,7 @@ const uint16_t PROGMEM ent_combo[] = {HM_K, HM_L, COMBO_END};
73const uint16_t PROGMEM tab_combo[] = {HM_F, HM_D, COMBO_END}; 73const uint16_t PROGMEM tab_combo[] = {HM_F, HM_D, COMBO_END};
74const uint16_t PROGMEM esc_combo[] = {HM_D, HM_S, COMBO_END}; 74const uint16_t PROGMEM esc_combo[] = {HM_D, HM_S, COMBO_END};
75 75
76combo_t key_combos[COMBO_COUNT] = { 76combo_t key_combos[] = {
77 COMBO(ae_combo, RALT(KC_Q)), 77 COMBO(ae_combo, RALT(KC_Q)),
78 COMBO(ss_combo, RALT(KC_S)), 78 COMBO(ss_combo, RALT(KC_S)),
79 COMBO(ue_combo, RALT(KC_Y)), 79 COMBO(ue_combo, RALT(KC_Y)),
@@ -298,7 +298,3 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
298 [_NUMBERS] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, 298 [_NUMBERS] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
299 [_FUNCTION] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } 299 [_FUNCTION] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }
300}; 300};
301
302
303
304
diff --git a/keyboards/3w6/keymaps/helltm/combos.h b/keyboards/3w6/keymaps/helltm/combos.h
index 85f44cd0d4..99173ecb22 100644
--- a/keyboards/3w6/keymaps/helltm/combos.h
+++ b/keyboards/3w6/keymaps/helltm/combos.h
@@ -19,16 +19,14 @@
19#define CB(name, action, ...) C_##name, 19#define CB(name, action, ...) C_##name,
20enum user_combos { 20enum user_combos {
21#include "combos.def" 21#include "combos.def"
22 COMBO_LENGTH
23}; 22};
24#undef CB 23#undef CB
25uint16_t COMBO_LEN = COMBO_LENGTH;
26 24
27#define CB(name, action, ...) const uint16_t PROGMEM name##_combo[] = {__VA_ARGS__, COMBO_END}; 25#define CB(name, action, ...) const uint16_t PROGMEM name##_combo[] = {__VA_ARGS__, COMBO_END};
28#include "combos.def" 26#include "combos.def"
29#undef CB 27#undef CB
30 28
31combo_t key_combos[COMBO_LENGTH] = { 29combo_t key_combos[] = {
32#define CB(name, action, ...) COMBO(name##_combo, action), 30#define CB(name, action, ...) COMBO(name##_combo, action),
33#include "combos.def" 31#include "combos.def"
34#undef CB 32#undef CB
diff --git a/keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h b/keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h
index 589a67f03d..c97c9c2f4b 100644
--- a/keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h
+++ b/keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h
@@ -37,8 +37,6 @@
37 // how long before oneshot times out 37 // how long before oneshot times out
38 #define ONESHOT_TAP_TOGGLE 2 38 #define ONESHOT_TAP_TOGGLE 2
39 // how many taps before oneshot toggle is triggered 39 // how many taps before oneshot toggle is triggered
40 #define COMBO_COUNT 2
41 // Set this to the number of combos that you're using in the Combo feature.
42 #define COMBO_TERM 200 40 #define COMBO_TERM 200
43 // how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 41 // how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
44 #define TAP_CODE_DELAY 100 42 #define TAP_CODE_DELAY 100
diff --git a/keyboards/40percentclub/nori/keymaps/wings_36key/config.h b/keyboards/40percentclub/nori/keymaps/wings_36key/config.h
index f076ded9ba..0ac12473e0 100644
--- a/keyboards/40percentclub/nori/keymaps/wings_36key/config.h
+++ b/keyboards/40percentclub/nori/keymaps/wings_36key/config.h
@@ -19,7 +19,5 @@
19#define RETRO_TAPPING_PER_KEY 19#define RETRO_TAPPING_PER_KEY
20#define TAPPING_TERM_PER_KEY 20#define TAPPING_TERM_PER_KEY
21 21
22#define COMBO_COUNT 2 // number of combos used
23#define COMBO_TERM 40 // time out for combos in ms 22#define COMBO_TERM 40 // time out for combos in ms
24#define TAPPING_TERM 200 // time out for tap-hold in ms 23#define TAPPING_TERM 200 // time out for tap-hold in ms
25
diff --git a/keyboards/40percentclub/nori/keymaps/wings_36key/keymap.c b/keyboards/40percentclub/nori/keymaps/wings_36key/keymap.c
index 40d59ecf76..fc6b19ff3c 100644
--- a/keyboards/40percentclub/nori/keymaps/wings_36key/keymap.c
+++ b/keyboards/40percentclub/nori/keymaps/wings_36key/keymap.c
@@ -99,14 +99,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
99) 99)
100}; 100};
101 101
102combo_t key_combos[COMBO_COUNT] = { 102combo_t key_combos[] = {
103 COMBO(df_tab, KC_TAB), 103 COMBO(df_tab, KC_TAB),
104 COMBO(jk_alt, KC_LALT), 104 COMBO(jk_alt, KC_LALT),
105}; 105};
106 106
107layer_state_t layer_state_set_user(layer_state_t state) { 107layer_state_t layer_state_set_user(layer_state_t state) {
108 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); 108 return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
109} 109}
110 110
111uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) { 111uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
112 switch (keycode) { 112 switch (keycode) {
diff --git a/keyboards/ashpil/modelm_usbc/keymaps/ashpil/config.h b/keyboards/ashpil/modelm_usbc/keymaps/ashpil/config.h
index d5cef677e8..59cec33010 100644
--- a/keyboards/ashpil/modelm_usbc/keymaps/ashpil/config.h
+++ b/keyboards/ashpil/modelm_usbc/keymaps/ashpil/config.h
@@ -20,5 +20,4 @@
20 20
21 21
22/* Add combos */ 22/* Add combos */
23#define COMBO_COUNT 1
24#define COMBO_TERM 200 23#define COMBO_TERM 200
diff --git a/keyboards/ashpil/modelm_usbc/keymaps/ashpil/keymap.c b/keyboards/ashpil/modelm_usbc/keymaps/ashpil/keymap.c
index 3556aac483..e8df1f0c81 100644
--- a/keyboards/ashpil/modelm_usbc/keymaps/ashpil/keymap.c
+++ b/keyboards/ashpil/modelm_usbc/keymaps/ashpil/keymap.c
@@ -32,7 +32,7 @@ enum combo_events {
32 32
33const uint16_t PROGMEM reset_combo[] = {KC_LCTL, KC_PAUS, COMBO_END}; 33const uint16_t PROGMEM reset_combo[] = {KC_LCTL, KC_PAUS, COMBO_END};
34 34
35combo_t key_combos[COMBO_COUNT] = { 35combo_t key_combos[] = {
36 [CTRL_PAUS_RESET] = COMBO_ACTION(reset_combo), 36 [CTRL_PAUS_RESET] = COMBO_ACTION(reset_combo),
37}; 37};
38 38
@@ -44,4 +44,4 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
44 } 44 }
45 break; 45 break;
46 } 46 }
47} \ No newline at end of file 47}
diff --git a/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h b/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h
index 19b366f4a8..10f5ddf146 100644
--- a/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h
+++ b/keyboards/b_sides/rev41lp/keymaps/namnlos/config.h
@@ -21,8 +21,6 @@
21#define BACKLIGHT_LIMIT_VAL 255 21#define BACKLIGHT_LIMIT_VAL 255
22#define BACKLIGHT_DEFAULT_LEVEL 3 22#define BACKLIGHT_DEFAULT_LEVEL 3
23 23
24#define COMBO_COUNT 3
25
26#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_WINDOWS, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX 24#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_WINDOWS, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
27 25
28#define QUICK_TAP_TERM 0 26#define QUICK_TAP_TERM 0
diff --git a/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c b/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c
index 0642cdc333..c90f7e25a1 100644
--- a/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c
+++ b/keyboards/b_sides/rev41lp/keymaps/namnlos/keymap.c
@@ -65,7 +65,7 @@ const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
65const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; 65const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
66const uint16_t PROGMEM cut_combo[] = {KC_Z, KC_X, COMBO_END}; 66const uint16_t PROGMEM cut_combo[] = {KC_Z, KC_X, COMBO_END};
67 67
68combo_t key_combos[COMBO_COUNT] = { 68combo_t key_combos[] = {
69 [ZC_COPY] = COMBO_ACTION(copy_combo), 69 [ZC_COPY] = COMBO_ACTION(copy_combo),
70 [XV_PASTE] = COMBO_ACTION(paste_combo), 70 [XV_PASTE] = COMBO_ACTION(paste_combo),
71 [ZX_CUT] = COMBO_ACTION(cut_combo), 71 [ZX_CUT] = COMBO_ACTION(cut_combo),
diff --git a/keyboards/bluebell/swoop/keymaps/kyek/config.h b/keyboards/bluebell/swoop/keymaps/kyek/config.h
index e48703e02d..6b06855a5a 100644
--- a/keyboards/bluebell/swoop/keymaps/kyek/config.h
+++ b/keyboards/bluebell/swoop/keymaps/kyek/config.h
@@ -15,4 +15,3 @@
15 */ 15 */
16#pragma once 16#pragma once
17#define ONESHOT_TIMEOUT 1000 17#define ONESHOT_TIMEOUT 1000
18#define COMBO_COUNT 2
diff --git a/keyboards/bluebell/swoop/keymaps/kyek/keymap.c b/keyboards/bluebell/swoop/keymaps/kyek/keymap.c
index 10fde34180..1901c24f27 100644
--- a/keyboards/bluebell/swoop/keymaps/kyek/keymap.c
+++ b/keyboards/bluebell/swoop/keymaps/kyek/keymap.c
@@ -33,7 +33,7 @@ enum combos {
33}; 33};
34const uint16_t PROGMEM accent_combo[] = {KC_SPC, MO(_SYM1), COMBO_END}; 34const uint16_t PROGMEM accent_combo[] = {KC_SPC, MO(_SYM1), COMBO_END};
35const uint16_t PROGMEM settings_combo[] = {MO(_EXT), SFT_T(KC_SPC), COMBO_END}; 35const uint16_t PROGMEM settings_combo[] = {MO(_EXT), SFT_T(KC_SPC), COMBO_END};
36combo_t key_combos[COMBO_COUNT] = { 36combo_t key_combos[] = {
37 [ACC] = COMBO(accent_combo, MO(_ACC)), 37 [ACC] = COMBO(accent_combo, MO(_ACC)),
38 [SET] = COMBO(settings_combo, MO(_SET)), 38 [SET] = COMBO(settings_combo, MO(_SET)),
39}; 39};
@@ -78,37 +78,37 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
78[_EXT] = LAYOUT_split_3x5_3( 78[_EXT] = LAYOUT_split_3x5_3(
79 KC_ESC, _______, _______, _______, _______, KC_PAGE_UP, KC_HOME, KC_UP, KC_END, KC_CAPS, 79 KC_ESC, _______, _______, _______, _______, KC_PAGE_UP, KC_HOME, KC_UP, KC_END, KC_CAPS,
80 OS_ALT, OS_GUI, OS_SFT, OS_CTL, OS_RALT, KC_PAGE_DOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DELETE, 80 OS_ALT, OS_GUI, OS_SFT, OS_CTL, OS_RALT, KC_PAGE_DOWN, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DELETE,
81 UNDO, CUT, COPY, KC_TAB, PASTE, DEL_WORD, KC_BSPC, _______, _______, _______, 81 UNDO, CUT, COPY, KC_TAB, PASTE, DEL_WORD, KC_BSPC, _______, _______, _______,
82 _______, _______, _______, KC_ENT, FNC, _______ 82 _______, _______, _______, KC_ENT, FNC, _______
83), 83),
84[_FNC] = LAYOUT_split_3x5_3( 84[_FNC] = LAYOUT_split_3x5_3(
85 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 85 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
86 OS_ALT, OS_GUI, OS_SFT, OS_CTL, OS_RALT, KC_F11, KC_F12, KC_PSCR, _______, _______, 86 OS_ALT, OS_GUI, OS_SFT, OS_CTL, OS_RALT, KC_F11, KC_F12, KC_PSCR, _______, _______,
87 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 87 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
88 _______, _______, _______, _______, _______, _______ 88 _______, _______, _______, _______, _______, _______
89), 89),
90[_SYM2] = LAYOUT_split_3x5_3( 90[_SYM2] = LAYOUT_split_3x5_3(
91 IT_CIRC, IT_UNDS, IT_PND, IT_EURO, IT_HASH, _______, _______, _______, _______, _______, 91 IT_CIRC, IT_UNDS, IT_PND, IT_EURO, IT_HASH, _______, _______, _______, _______, _______,
92 BACKTICK, TILDE, IT_BSLS, IT_PIPE, IT_AMPR, _______, _______, _______, _______, _______, 92 BACKTICK, TILDE, IT_BSLS, IT_PIPE, IT_AMPR, _______, _______, _______, _______, _______,
93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
94 _______, _______, _______, _______, _______, _______ 94 _______, _______, _______, _______, _______, _______
95), 95),
96[_ACC] = LAYOUT_split_3x5_3( 96[_ACC] = LAYOUT_split_3x5_3(
97 _______, _______, _______, CEGR, _______, _______, _______, _______, _______, _______, 97 _______, _______, _______, CEGR, _______, _______, _______, _______, _______, _______,
98 IT_AGRV, IT_IGRV, IT_OGRV, IT_EGRV, IT_EACU, _______, _______, _______, _______, _______, 98 IT_AGRV, IT_IGRV, IT_OGRV, IT_EGRV, IT_EACU, _______, _______, _______, _______, _______,
99 _______, _______, _______, IT_UGRV, _______, _______, _______, _______, _______, _______, 99 _______, _______, _______, IT_UGRV, _______, _______, _______, _______, _______, _______,
100 _______, _______, _______, _______, _______, _______ 100 _______, _______, _______, _______, _______, _______
101), 101),
102[_SET] = LAYOUT_split_3x5_3( 102[_SET] = LAYOUT_split_3x5_3(
103 _______, _______, _______, RGB_RMOD, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______, 103 _______, _______, _______, RGB_RMOD, RGB_MOD, RGB_VAI, RGB_VAD, _______, _______, _______,
104 _______, _______, _______, RGB_M_B, RGB_M_P, RGB_HUI, RGB_HUD, _______, _______, _______, 104 _______, _______, _______, RGB_M_B, RGB_M_P, RGB_HUI, RGB_HUD, _______, _______, _______,
105 QK_BOOT, _______, _______, RGB_M_R, RGB_TOG, RGB_SAI, RGB_SAD, _______, _______, QK_BOOT, 105 QK_BOOT, _______, _______, RGB_M_R, RGB_TOG, RGB_SAI, RGB_SAD, _______, _______, QK_BOOT,
106 _______, _______, _______, _______, _______, _______ 106 _______, _______, _______, _______, _______, _______
107), 107),
108// [_TEMP] = LAYOUT_split_3x5_3( 108// [_TEMP] = LAYOUT_split_3x5_3(
109// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 109// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
110// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 110// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
111// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 111// _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
112// _______, _______, _______, _______, _______, _______ 112// _______, _______, _______, _______, _______, _______
113// ), 113// ),
114}; 114};
diff --git a/keyboards/centromere/keymaps/mini_bom/config.h b/keyboards/centromere/keymaps/mini_bom/config.h
index 7c40fba2a3..7a79437fab 100644
--- a/keyboards/centromere/keymaps/mini_bom/config.h
+++ b/keyboards/centromere/keymaps/mini_bom/config.h
@@ -17,7 +17,6 @@
17#pragma once 17#pragma once
18 18
19#ifdef COMBO_ENABLE 19#ifdef COMBO_ENABLE
20# define COMBO_COUNT 10
21# define COMBO_TERM 50 20# define COMBO_TERM 50
22#endif 21#endif
23 22
diff --git a/keyboards/centromere/keymaps/mini_bom/keymap.c b/keyboards/centromere/keymaps/mini_bom/keymap.c
index 82e68aafa5..1dd8f60c5a 100644
--- a/keyboards/centromere/keymaps/mini_bom/keymap.c
+++ b/keyboards/centromere/keymaps/mini_bom/keymap.c
@@ -20,7 +20,7 @@
20// Each layer gets a name for readability, which is then used in the keymap matrix below. 20// Each layer gets a name for readability, which is then used in the keymap matrix below.
21// The underscores don't mean anything - you can have a layer called STUFF or any other name. 21// The underscores don't mean anything - you can have a layer called STUFF or any other name.
22// Layer names don't all need to be of the same length, obviously, and you can also skip them 22// Layer names don't all need to be of the same length, obviously, and you can also skip them
23// entirely and just use numbers. 23// entirely and just use numbers.
24 24
25 25
26enum centromere_layers 26enum centromere_layers
@@ -57,7 +57,7 @@ enum centromere_layers
57 * | | | | | | | | 57 * | | | | | | | |
58 * '-------------------------' '-----------------' 58 * '-------------------------' '-----------------'
59 */ 59 */
60 60
61const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 61const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62 62
63/* Keymap 0: Basic layer 63/* Keymap 0: Basic layer
@@ -97,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
97 KC_NO, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_BSLS, KC_NO, 97 KC_NO, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_GRV, KC_TILD, KC_TRNS, KC_TRNS, KC_BSLS, KC_NO,
98 KC_NO, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, KC_NO, 98 KC_NO, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_BTN2, KC_PLUS, KC_MINS, KC_SLSH, KC_ASTR, KC_QUOT, KC_NO,
99 KC_NO, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, KC_NO, 99 KC_NO, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_BTN1, KC_AMPR, KC_EQL, KC_COMM, KC_DOT, KC_MINS, KC_NO,
100 CM_TOGG, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_DEL 100 CM_TOGG, KC_SCLN, KC_EQL, KC_EQL, KC_SCLN, KC_DEL
101 ), 101 ),
102 102
103 /* Keymap 2: Pad/Function layer 103 /* Keymap 2: Pad/Function layer
@@ -115,7 +115,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
115[_NUMB] = LAYOUT( 115[_NUMB] = LAYOUT(
116 KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO, 116 KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NO,
117 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, KC_NO, 117 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_VOLU, KC_NO,
118 KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_VOLD, KC_NO, 118 KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_VOLD, KC_NO,
119 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT 119 KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT
120 ), 120 ),
121 121
@@ -137,8 +137,8 @@ const uint16_t PROGMEM combo_less[] = {KC_H, KC_J, COMBO_END};
137const uint16_t PROGMEM combo_more[] = {KC_K, KC_L, COMBO_END}; 137const uint16_t PROGMEM combo_more[] = {KC_K, KC_L, COMBO_END};
138const uint16_t PROGMEM combo_quot[] = {KC_N, KC_M, COMBO_END}; 138const uint16_t PROGMEM combo_quot[] = {KC_N, KC_M, COMBO_END};
139const uint16_t PROGMEM combo_dash[] = {KC_X, KC_C, COMBO_END}; 139const uint16_t PROGMEM combo_dash[] = {KC_X, KC_C, COMBO_END};
140 140
141combo_t key_combos[COMBO_COUNT] = { 141combo_t key_combos[] = {
142 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 142 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
143 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 143 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
144 [COMBO_ESC] = COMBO(combo_esc,KC_ESC), 144 [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
@@ -148,6 +148,6 @@ combo_t key_combos[COMBO_COUNT] = {
148 [COMBO_LESS] = COMBO(combo_less,KC_LT), 148 [COMBO_LESS] = COMBO(combo_less,KC_LT),
149 [COMBO_MORE] = COMBO(combo_more,KC_GT), 149 [COMBO_MORE] = COMBO(combo_more,KC_GT),
150 [COMBO_QUOT] = COMBO(combo_quot, KC_QUOT), 150 [COMBO_QUOT] = COMBO(combo_quot, KC_QUOT),
151 [COMBO_DASH] = COMBO(combo_dash, KC_MINS), 151 [COMBO_DASH] = COMBO(combo_dash, KC_MINS),
152}; 152};
153#endif 153#endif
diff --git a/keyboards/chord/zero/keymaps/default/keymap.c b/keyboards/chord/zero/keymaps/default/keymap.c
index 0469288fd4..a1edbe0cff 100644
--- a/keyboards/chord/zero/keymaps/default/keymap.c
+++ b/keyboards/chord/zero/keymaps/default/keymap.c
@@ -21,5 +21,3 @@ const uint16_t PROGMEM bootloader_combo[] = {
21combo_t key_combos[] = { 21combo_t key_combos[] = {
22 COMBO(bootloader_combo, QK_BOOTLOADER), 22 COMBO(bootloader_combo, QK_BOOTLOADER),
23}; 23};
24
25uint16_t COMBO_LEN = sizeof(key_combos) / sizeof(key_combos[0]);
diff --git a/keyboards/converter/usb_usb/keymaps/chriskopher/combo.c b/keyboards/converter/usb_usb/keymaps/chriskopher/combo.c
index 68a3eda04c..3b89488648 100644
--- a/keyboards/converter/usb_usb/keymaps/chriskopher/combo.c
+++ b/keyboards/converter/usb_usb/keymaps/chriskopher/combo.c
@@ -27,7 +27,7 @@ const uint16_t PROGMEM sd_combo[] = {KC_S, KC_D, COMBO_END}; // Combo: S + D fo
27const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; // Combo: K + L for Meh modifier 27const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; // Combo: K + L for Meh modifier
28 28
29// Register the combo action 29// Register the combo action
30combo_t key_combos[COMBO_COUNT] = { 30combo_t key_combos[] = {
31 [SD_LAYER_COMBO] = COMBO_ACTION(sd_combo), 31 [SD_LAYER_COMBO] = COMBO_ACTION(sd_combo),
32 [KL_MEH_COMBO] = COMBO_ACTION(kl_combo), 32 [KL_MEH_COMBO] = COMBO_ACTION(kl_combo),
33}; 33};
diff --git a/keyboards/converter/usb_usb/keymaps/chriskopher/config.h b/keyboards/converter/usb_usb/keymaps/chriskopher/config.h
index 04066edc02..8f26d25799 100644
--- a/keyboards/converter/usb_usb/keymaps/chriskopher/config.h
+++ b/keyboards/converter/usb_usb/keymaps/chriskopher/config.h
@@ -20,5 +20,4 @@
20 20
21#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY // Allows configuration of hold on other key press per key in keymap.c 21#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY // Allows configuration of hold on other key press per key in keymap.c
22 22
23#define COMBO_COUNT 2 // Number of defined combos
24#define COMBO_TERM 20 // Delay for combo keys to be chained together 23#define COMBO_TERM 20 // Delay for combo keys to be chained together
diff --git a/keyboards/converter/usb_usb/keymaps/narze/config.h b/keyboards/converter/usb_usb/keymaps/narze/config.h
index fddd9cd376..a7fccc4187 100644
--- a/keyboards/converter/usb_usb/keymaps/narze/config.h
+++ b/keyboards/converter/usb_usb/keymaps/narze/config.h
@@ -24,7 +24,6 @@
24#define TAPPING_TERM 100 24#define TAPPING_TERM 100
25 25
26#define COMBO_TERM 20 26#define COMBO_TERM 20
27#define COMBO_COUNT 1
28 27
29#define PERMISSIVE_HOLD 28#define PERMISSIVE_HOLD
30 29
diff --git a/keyboards/crkbd/keymaps/antosha417/keymap.c b/keyboards/crkbd/keymaps/antosha417/keymap.c
index bdee148485..47771b531e 100644
--- a/keyboards/crkbd/keymaps/antosha417/keymap.c
+++ b/keyboards/crkbd/keymaps/antosha417/keymap.c
@@ -165,11 +165,8 @@ enum combo_events {
165 DELQ_COMBO, 165 DELQ_COMBO,
166 SAVEQ_COMBO, 166 SAVEQ_COMBO,
167 BSPCQ_COMBO, 167 BSPCQ_COMBO,
168 BSPCWQ_COMBO, 168 BSPCWQ_COMBO
169
170 COMBO_LENGTH
171}; 169};
172uint16_t COMBO_LEN = COMBO_LENGTH;
173 170
174const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END}; 171const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END};
175const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END}; 172const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END};
@@ -216,7 +213,7 @@ combo_t key_combos[] = {
216 [SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE), 213 [SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE),
217 [BSPCWQ_COMBO] = COMBO(bspcwq_combo, DELETE_WORD), 214 [BSPCWQ_COMBO] = COMBO(bspcwq_combo, DELETE_WORD),
218}; 215};
219 216
220 217
221#ifdef OLED_ENABLE 218#ifdef OLED_ENABLE
222oled_rotation_t oled_init_user(oled_rotation_t rotation) { 219oled_rotation_t oled_init_user(oled_rotation_t rotation) {
@@ -398,4 +395,3 @@ void matrix_scan_user(void) {
398 #include "mod_tap_keys.h" 395 #include "mod_tap_keys.h"
399 #undef MOD_TAP_KEY 396 #undef MOD_TAP_KEY
400} 397}
401
diff --git a/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c b/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
index e7bccb5c73..54ad19dc0b 100644
--- a/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
+++ b/keyboards/crkbd/keymaps/cameronjlarsen/keymap.c
@@ -30,7 +30,7 @@ enum layers {
30 30
31// One shot mods 31// One shot mods
32enum keycodes { 32enum keycodes {
33 OS_SHFT = QK_USER, 33 OS_SHFT = QK_USER,
34 OS_CTRL, 34 OS_CTRL,
35 OS_ALT, 35 OS_ALT,
36 OS_GUI, 36 OS_GUI,
@@ -159,11 +159,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
159}; 159};
160 160
161enum combo_events { 161enum combo_events {
162 CAPS_COMBO, 162 CAPS_COMBO
163 // Other combos...
164 COMBO_LENGTH
165}; 163};
166uint16_t COMBO_LEN = COMBO_LENGTH;
167 164
168const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END}; 165const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END};
169 166
diff --git a/keyboards/crkbd/keymaps/markstos/config.h b/keyboards/crkbd/keymaps/markstos/config.h
index 5644812e5e..24101724de 100644
--- a/keyboards/crkbd/keymaps/markstos/config.h
+++ b/keyboards/crkbd/keymaps/markstos/config.h
@@ -43,11 +43,9 @@ This is the C configuration file for the keymap
43#define QMK_SPEAKER C6 43#define QMK_SPEAKER C6
44 44
45// When enabled, typing a mod-tap plus second within term will register as the mod-combo 45// When enabled, typing a mod-tap plus second within term will register as the mod-combo
46// Ref: https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#permissive-hold 46// Ref: https://beta.docs.qmk.fm/using-qmk/software-features/tap_hold#permissive-hold
47#define PERMISSIVE_HOLD 47#define PERMISSIVE_HOLD
48 48
49#define COMBO_COUNT 2
50
51// Set the COMBO_TERM so low that I won't type the keys one after each other during normal typing. 49// Set the COMBO_TERM so low that I won't type the keys one after each other during normal typing.
52// They would have be held together intentionally to trigger this. 50// They would have be held together intentionally to trigger this.
53#define COMBO_TERM 40 51#define COMBO_TERM 40
@@ -56,4 +54,3 @@ This is the C configuration file for the keymap
56// I want a relatively low timeout, so if I accidentally type "Shift", I can pause just briefly and move on. 54// I want a relatively low timeout, so if I accidentally type "Shift", I can pause just briefly and move on.
57#define ONESHOT_TAP_TOGGLE 3 /* Tapping this number of times holds the key until tapped once again. */ 55#define ONESHOT_TAP_TOGGLE 3 /* Tapping this number of times holds the key until tapped once again. */
58#define ONESHOT_TIMEOUT 2000 /* Time (in ms) before the one shot key is released */ 56#define ONESHOT_TIMEOUT 2000 /* Time (in ms) before the one shot key is released */
59
diff --git a/keyboards/crkbd/keymaps/markstos/keymap.c b/keyboards/crkbd/keymaps/markstos/keymap.c
index ca5be183b1..1f95ee52b2 100644
--- a/keyboards/crkbd/keymaps/markstos/keymap.c
+++ b/keyboards/crkbd/keymaps/markstos/keymap.c
@@ -18,7 +18,7 @@ enum combos {
18const uint16_t PROGMEM df_combo[] = {KC_D, KC_F, COMBO_END}; 18const uint16_t PROGMEM df_combo[] = {KC_D, KC_F, COMBO_END};
19const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 19const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
20 20
21combo_t key_combos[COMBO_COUNT] = { 21combo_t key_combos[] = {
22 // Add commonly used dash to home row 22 // Add commonly used dash to home row
23 [DF_DASH] = COMBO(df_combo, KC_MINS), 23 [DF_DASH] = COMBO(df_combo, KC_MINS),
24 // For Vim, put Escape on the home row 24 // For Vim, put Escape on the home row
@@ -43,7 +43,7 @@ enum custom_layers {
43#define GUI_ENT GUI_T(KC_ENT) 43#define GUI_ENT GUI_T(KC_ENT)
44#define LOW_TAB LT(_LOWER, KC_TAB) 44#define LOW_TAB LT(_LOWER, KC_TAB)
45#define RSE_BSP LT(_RAISE, KC_BSPC) 45#define RSE_BSP LT(_RAISE, KC_BSPC)
46#define OSM_SFT OSM(MOD_LSFT) 46#define OSM_SFT OSM(MOD_LSFT)
47 47
48 48
49// For _RAISE layer 49// For _RAISE layer
diff --git a/keyboards/crkbd/keymaps/nimishgautam/config.h b/keyboards/crkbd/keymaps/nimishgautam/config.h
index d169988be7..b4c5bc9e0a 100644
--- a/keyboards/crkbd/keymaps/nimishgautam/config.h
+++ b/keyboards/crkbd/keymaps/nimishgautam/config.h
@@ -15,7 +15,6 @@
15 15
16 16
17// combo 17// combo
18#define COMBO_COUNT 7
19#define EXTRA_SHORT_COMBOS 18#define EXTRA_SHORT_COMBOS
20 19
21//Tapping values 20//Tapping values
@@ -68,7 +67,7 @@
68 // NOTE: the below effects are super cool but they go absolutely nuts if you manually set hsv colors (eg with layers) 67 // NOTE: the below effects are super cool but they go absolutely nuts if you manually set hsv colors (eg with layers)
69 68
70 //#define ENABLE_RGB_MATRIX_TYPING_HEATMAP 69 //#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
71 //#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH 70 //#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
72 //#define ENABLE_RGB_MATRIX_SOLID_REACTIVE 71 //#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
73#endif 72#endif
74 73
diff --git a/keyboards/crkbd/keymaps/nimishgautam/keymap.c b/keyboards/crkbd/keymaps/nimishgautam/keymap.c
index 0c0a3e3544..389a5bfdb1 100644
--- a/keyboards/crkbd/keymaps/nimishgautam/keymap.c
+++ b/keyboards/crkbd/keymaps/nimishgautam/keymap.c
@@ -20,7 +20,7 @@ enum custom_key_codes {
20 MOVE_END_LINE_TERMINAL, // move to the end of the line in the terminal 20 MOVE_END_LINE_TERMINAL, // move to the end of the line in the terminal
21 /* macros */ 21 /* macros */
22 PASTE_VIM, // paste in vim from system register 22 PASTE_VIM, // paste in vim from system register
23 ACIRCLE, // å 23 ACIRCLE, // å
24 ADOT, // ä 24 ADOT, // ä
25 ODOT, // ö 25 ODOT, // ö
26 COMPOSE_MACRO, // compose key for mac or linux 26 COMPOSE_MACRO, // compose key for mac or linux
@@ -44,7 +44,7 @@ enum {
44#define SHOW_WINDOWS LCTL(KC_UP) //'Expose' on Mac, overview on linux. Just all the windows 44#define SHOW_WINDOWS LCTL(KC_UP) //'Expose' on Mac, overview on linux. Just all the windows
45#define WINDOW_LEFT LCTL(LGUI(LSFT(KC_LEFT))) //custom shortcut for this feature -- make window take up 50% left screen (using gui and ctl to make it os agnostic) 45#define WINDOW_LEFT LCTL(LGUI(LSFT(KC_LEFT))) //custom shortcut for this feature -- make window take up 50% left screen (using gui and ctl to make it os agnostic)
46#define WINDOW_RIGHT LCTL(LGUI(LSFT(KC_RIGHT))) //custom shortcut for this feature -- make window take up 50% right screen (using gui and ctl to make it os agnostic)/fully custom shortcut, using ctl and gui keys so will need them both irrespective of os 46#define WINDOW_RIGHT LCTL(LGUI(LSFT(KC_RIGHT))) //custom shortcut for this feature -- make window take up 50% right screen (using gui and ctl to make it os agnostic)/fully custom shortcut, using ctl and gui keys so will need them both irrespective of os
47#define SHOW_APP_WINDOWS LCTL(KC_DOWN) 47#define SHOW_APP_WINDOWS LCTL(KC_DOWN)
48#define LOCK_SCREEN LCTL(LGUI(KC_Q)) //manually set this on linux to match osx default 48#define LOCK_SCREEN LCTL(LGUI(KC_Q)) //manually set this on linux to match osx default
49#define EURO LALT(LSFT(KC_2)) 49#define EURO LALT(LSFT(KC_2))
50#define EMOJI_KBD LCTL(LGUI(KC_SPACE)) //manually set this on linux to match osx default, with 'emote' on linux and a custom shortcut (probably better to use compose feature) 50#define EMOJI_KBD LCTL(LGUI(KC_SPACE)) //manually set this on linux to match osx default, with 'emote' on linux and a custom shortcut (probably better to use compose feature)
@@ -86,7 +86,7 @@ const uint16_t PROGMEM adot_combo[] = {KC_BSPC, KC_SPACE, MT(MOD_RALT,KC_L), COM
86// combo - press combo+ ; to get ö 86// combo - press combo+ ; to get ö
87const uint16_t PROGMEM odot_combo[] = {KC_BSPC, KC_SPACE, MT(MOD_LCTL,KC_SCLN),COMBO_END}; 87const uint16_t PROGMEM odot_combo[] = {KC_BSPC, KC_SPACE, MT(MOD_LCTL,KC_SCLN),COMBO_END};
88 88
89combo_t key_combos[COMBO_COUNT] = { 89combo_t key_combos[] = {
90 COMBO(compose_combo, COMPOSE_MACRO), 90 COMBO(compose_combo, COMPOSE_MACRO),
91 COMBO(search_combo, FINDER), 91 COMBO(search_combo, FINDER),
92 COMBO(calculator_combo, CALCULATOR), 92 COMBO(calculator_combo, CALCULATOR),
@@ -113,7 +113,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
113 113
114 [_NUMS] = LAYOUT_split_3x6_3( //numbers 114 [_NUMS] = LAYOUT_split_3x6_3( //numbers
115 //,-----------------------------------------------------. ,-----------------------------------------------------. 115 //,-----------------------------------------------------. ,-----------------------------------------------------.
116 SCREENSHOT, KC_EXCLAIM,KC_AT, KC_HASH, KC_DOLLAR,KC_PERCENT, KC_CIRCUMFLEX, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_PIPE, 116 SCREENSHOT, KC_EXCLAIM,KC_AT, KC_HASH, KC_DOLLAR,KC_PERCENT, KC_CIRCUMFLEX, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_PIPE,
117 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 117 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
118 TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI,KC_PLUS, KC_EQL, KC_4, KC_5, KC_6, KC_BSLS, KC_TRANSPARENT, 118 TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI,KC_PLUS, KC_EQL, KC_4, KC_5, KC_6, KC_BSLS, KC_TRANSPARENT,
119 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 119 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -125,7 +125,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
125 125
126 [_NUM_MASK] = LAYOUT_split_3x6_3( //NUM MASK, so I can still have backspace/enter/tab etc but with the nums, arrows and formatters too 126 [_NUM_MASK] = LAYOUT_split_3x6_3( //NUM MASK, so I can still have backspace/enter/tab etc but with the nums, arrows and formatters too
127 //,-----------------------------------------------------. ,-----------------------------------------------------. 127 //,-----------------------------------------------------. ,-----------------------------------------------------.
128 KC_TRANSPARENT, KC_TRANSPARENT,KC_TRANSPARENT, KC_UP, KC_TRANSPARENT,KC_TRANSPARENT, KC_TRANSPARENT, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_TRANSPARENT, 128 KC_TRANSPARENT, KC_TRANSPARENT,KC_TRANSPARENT, KC_UP, KC_TRANSPARENT,KC_TRANSPARENT, KC_TRANSPARENT, KC_7, KC_8, KC_9, KC_TRANSPARENT, KC_TRANSPARENT,
129 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 129 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
130 TO(_BASE), KC_TRANSPARENT, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRANSPARENT, KC_TRANSPARENT, KC_4, KC_5, KC_6, KC_TRANSPARENT, KC_TRANSPARENT, 130 TO(_BASE), KC_TRANSPARENT, KC_LEFT, KC_DOWN, KC_RIGHT,KC_TRANSPARENT, KC_TRANSPARENT, KC_4, KC_5, KC_6, KC_TRANSPARENT, KC_TRANSPARENT,
131 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 131 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -164,7 +164,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
164 164
165 [_FN_KEYS] = LAYOUT_split_3x6_3( //fn keys, terminal text navigation keys 165 [_FN_KEYS] = LAYOUT_split_3x6_3( //fn keys, terminal text navigation keys
166 //,-----------------------------------------------------. ,-----------------------------------------------------. 166 //,-----------------------------------------------------. ,-----------------------------------------------------.
167 KC_TRANSPARENT, KC_LCBR,KC_LBRC, KC_RBRC, KC_RCBR, MOVE_BEGIN_LINE_TERMINAL, MOVE_END_LINE_TERMINAL, KC_F7, KC_F8, KC_F9, KC_F11, KC_TRANSPARENT, 167 KC_TRANSPARENT, KC_LCBR,KC_LBRC, KC_RBRC, KC_RCBR, MOVE_BEGIN_LINE_TERMINAL, MOVE_END_LINE_TERMINAL, KC_F7, KC_F8, KC_F9, KC_F11, KC_TRANSPARENT,
168 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 168 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
169 TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI, KC_TRANSPARENT, KC_TRANSPARENT, KC_F4, KC_F5, KC_F6, KC_F12, KC_TRANSPARENT, 169 TO(_BASE), KC_LCTL, KC_LALT, KC_RSFT, KC_LGUI, KC_TRANSPARENT, KC_TRANSPARENT, KC_F4, KC_F5, KC_F6, KC_F12, KC_TRANSPARENT,
170 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| 170 //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -173,7 +173,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
173 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_HASH , KC_TRANSPARENT, KC_F10 173 KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT , KC_HASH , KC_TRANSPARENT, KC_F10
174 //`--------------------------' `--------------------------' 174 //`--------------------------' `--------------------------'
175 ) 175 )
176 176
177}; 177};
178 178
179bool process_record_user(uint16_t keycode, keyrecord_t *record) { 179bool process_record_user(uint16_t keycode, keyrecord_t *record) {
@@ -183,19 +183,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
183 183
184 // as of this writing, you can't do a layer tap (LT) 184 // as of this writing, you can't do a layer tap (LT)
185 // and also send a shifted code, like left parens 185 // and also send a shifted code, like left parens
186 // If you call such a function, it'll do the layer shift but 186 // If you call such a function, it'll do the layer shift but
187 // it'll ignore the key code on tap... this is the workaround 187 // it'll ignore the key code on tap... this is the workaround
188 188
189 case LT(_NUMS,KC_LPRN): // Shift to _NUMS layer on hold, but send left paren on press 189 case LT(_NUMS,KC_LPRN): // Shift to _NUMS layer on hold, but send left paren on press
190 if (record->tap.count && record->event.pressed) { 190 if (record->tap.count && record->event.pressed) {
191 tap_code16(KC_LPRN); 191 tap_code16(KC_LPRN);
192 return false; 192 return false;
193 } 193 }
194 break; 194 break;
195 case LT(_NUMS,KC_RPRN): // Shift to _NUMS on hold, send right parens on press 195 case LT(_NUMS,KC_RPRN): // Shift to _NUMS on hold, send right parens on press
196 if (record->tap.count && record->event.pressed) { 196 if (record->tap.count && record->event.pressed) {
197 tap_code16(KC_RPRN); 197 tap_code16(KC_RPRN);
198 return false; 198 return false;
199 } 199 }
200 break; 200 break;
201 201
@@ -203,20 +203,20 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
203 if (record->tap.count && record->event.pressed) { 203 if (record->tap.count && record->event.pressed) {
204 tap_code16(SHOW_WINDOWS); // Intercept tap function 204 tap_code16(SHOW_WINDOWS); // Intercept tap function
205 } else if (record->event.pressed) { 205 } else if (record->event.pressed) {
206 tap_code16(WINDOW_LEFT); // Intercept hold function 206 tap_code16(WINDOW_LEFT); // Intercept hold function
207 } 207 }
208 return false; 208 return false;
209 break; 209 break;
210 210
211 case LT(0, NUMERIC_WIN_RIGHT): 211 case LT(0, NUMERIC_WIN_RIGHT):
212 if (record->tap.count && record->event.pressed) { 212 if (record->tap.count && record->event.pressed) {
213 layer_on(_NUM_MASK);// Intercept tap function 213 layer_on(_NUM_MASK);// Intercept tap function
214 } else if (record->event.pressed) { 214 } else if (record->event.pressed) {
215 tap_code16(WINDOW_RIGHT); // Intercept hold function 215 tap_code16(WINDOW_RIGHT); // Intercept hold function
216 } 216 }
217 return false; 217 return false;
218 break; 218 break;
219 219
220 case PASTE_VIM: 220 case PASTE_VIM:
221 if (record->event.pressed){ 221 if (record->event.pressed){
222 SEND_STRING(SS_TAP(X_ESCAPE)"\"+pi"); 222 SEND_STRING(SS_TAP(X_ESCAPE)"\"+pi");
@@ -225,7 +225,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
225 break; 225 break;
226 226
227 //only read the keymap config if it's one of the below cases (instead of every time) 227 //only read the keymap config if it's one of the below cases (instead of every time)
228 case DEL_WORD: 228 case DEL_WORD:
229 case SELECT_LEFT_WD: 229 case SELECT_LEFT_WD:
230 case SELECT_RIGHT_WD: 230 case SELECT_RIGHT_WD:
231 case SELECT_LEFT_LINE: 231 case SELECT_LEFT_LINE:
@@ -235,7 +235,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
235 case MOVE_LEFT_LINE: 235 case MOVE_LEFT_LINE:
236 case MOVE_RIGHT_LINE: 236 case MOVE_RIGHT_LINE:
237 case PASTE_NOSTYLE: 237 case PASTE_NOSTYLE:
238 case MOVE_BEGIN_LINE_TERMINAL: 238 case MOVE_BEGIN_LINE_TERMINAL:
239 case MOVE_END_LINE_TERMINAL: 239 case MOVE_END_LINE_TERMINAL:
240 case ACIRCLE: 240 case ACIRCLE:
241 case ADOT: 241 case ADOT:
@@ -313,28 +313,28 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
313 if(keymap_config.swap_lctl_lgui){ //Linux 313 if(keymap_config.swap_lctl_lgui){ //Linux
314 tap_code16(LCTL(RSFT(KC_V))); 314 tap_code16(LCTL(RSFT(KC_V)));
315 } else { //osx 315 } else { //osx
316 tap_code16(LGUI(LALT(LSFT(KC_V)))); 316 tap_code16(LGUI(LALT(LSFT(KC_V))));
317 } 317 }
318 break; 318 break;
319 case MOVE_BEGIN_LINE_TERMINAL: 319 case MOVE_BEGIN_LINE_TERMINAL:
320 if(keymap_config.swap_lctl_lgui){ //Linux 320 if(keymap_config.swap_lctl_lgui){ //Linux
321 tap_code16(KC_HOME); 321 tap_code16(KC_HOME);
322 } else { //osx 322 } else { //osx
323 tap_code16(LSFT(KC_HOME)); 323 tap_code16(LSFT(KC_HOME));
324 } 324 }
325 break; 325 break;
326 case MOVE_END_LINE_TERMINAL: 326 case MOVE_END_LINE_TERMINAL:
327 if(keymap_config.swap_lctl_lgui){ //Linux 327 if(keymap_config.swap_lctl_lgui){ //Linux
328 tap_code16(KC_END); 328 tap_code16(KC_END);
329 } else { //osx 329 } else { //osx
330 tap_code16(LSFT(KC_END)); 330 tap_code16(LSFT(KC_END));
331 } 331 }
332 break; 332 break;
333 case ACIRCLE: // å 333 case ACIRCLE: // å
334 if(keymap_config.swap_lctl_lgui){ //Linux 334 if(keymap_config.swap_lctl_lgui){ //Linux
335 SEND_STRING(SS_TAP(X_COMPOSE_KEY)"aa"); 335 SEND_STRING(SS_TAP(X_COMPOSE_KEY)"aa");
336 } else { //osx 336 } else { //osx
337 tap_code16(LALT(KC_A)); 337 tap_code16(LALT(KC_A));
338 } 338 }
339 break; 339 break;
340 case ADOT: // ä 340 case ADOT: // ä
@@ -351,14 +351,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
351 SEND_STRING(SS_LALT("u")"o"); 351 SEND_STRING(SS_LALT("u")"o");
352 } 352 }
353 break; 353 break;
354 case COMPOSE_MACRO: 354 case COMPOSE_MACRO:
355 if(keymap_config.swap_lctl_lgui){ //Linux 355 if(keymap_config.swap_lctl_lgui){ //Linux
356 tap_code16(COMPOSE_KEY); 356 tap_code16(COMPOSE_KEY);
357 } else { //osx 357 } else { //osx
358 tap_code16(COMPOSE_MAC); 358 tap_code16(COMPOSE_MAC);
359 } 359 }
360 break; 360 break;
361 case SCREENSHOT: 361 case SCREENSHOT:
362 if(keymap_config.swap_lctl_lgui){ //Linux 362 if(keymap_config.swap_lctl_lgui){ //Linux
363 tap_code16(KC_PSCR); 363 tap_code16(KC_PSCR);
364 } else { //osx 364 } else { //osx
@@ -381,7 +381,7 @@ void dance_left_finished (tap_dance_state_t *state, void *user_data) {
381 if(keymap_config.swap_lctl_lgui){ //Linux 381 if(keymap_config.swap_lctl_lgui){ //Linux
382 tap_code16(KC_HOME); 382 tap_code16(KC_HOME);
383 } else { //osx 383 } else { //osx
384 tap_code16(LGUI(KC_LEFT)); 384 tap_code16(LGUI(KC_LEFT));
385 } 385 }
386 } else { //2 taps, make a circumflex 386 } else { //2 taps, make a circumflex
387 tap_code16(KC_CIRC); 387 tap_code16(KC_CIRC);
@@ -394,7 +394,7 @@ void dance_right_finished (tap_dance_state_t *state, void *user_data) {
394 if(keymap_config.swap_lctl_lgui){ //Linux 394 if(keymap_config.swap_lctl_lgui){ //Linux
395 tap_code16(KC_END); 395 tap_code16(KC_END);
396 } else { //osx 396 } else { //osx
397 tap_code16(LGUI(KC_RIGHT)); 397 tap_code16(LGUI(KC_RIGHT));
398 } 398 }
399 } else { //2 taps, dollar 399 } else { //2 taps, dollar
400 tap_code16(KC_DOLLAR); 400 tap_code16(KC_DOLLAR);
@@ -429,7 +429,7 @@ void set_lighting_user(void) {
429 led_t led_state = host_keyboard_led_state(); 429 led_t led_state = host_keyboard_led_state();
430 if(led_state.caps_lock){ 430 if(led_state.caps_lock){
431 rgblight_sethsv_noeeprom(HSV_RED); 431 rgblight_sethsv_noeeprom(HSV_RED);
432 } 432 }
433 //rgblight_sethsv(HSV_OFF); 433 //rgblight_sethsv(HSV_OFF);
434 break; 434 break;
435 case _NUMS: 435 case _NUMS:
@@ -482,7 +482,7 @@ void oled_render_general_state(void){
482 else { 482 else {
483 oled_write_ln_P(PSTR("OSX"), false); 483 oled_write_ln_P(PSTR("OSX"), false);
484 } 484 }
485 485
486 //oled_write_ln(get_u8_str(get_current_wpm(), '0'), false); 486 //oled_write_ln(get_u8_str(get_current_wpm(), '0'), false);
487 /* 487 /*
488 led_t led_state = host_keyboard_led_state(); 488 led_t led_state = host_keyboard_led_state();
@@ -492,7 +492,7 @@ void oled_render_general_state(void){
492 //Layer color has to be handled by master 492 //Layer color has to be handled by master
493 493
494 494
495 // led state doesn't have to be handled by master, but 495 // led state doesn't have to be handled by master, but
496 // the keyboard will freeze if you type too fast 496 // the keyboard will freeze if you type too fast
497 // and have this handled on the slave side 497 // and have this handled on the slave side
498 498
@@ -541,7 +541,7 @@ void oled_render_layer_mod_state(void) {
541 break; 541 break;
542 case _FN_KEYS: 542 case _FN_KEYS:
543 oled_write_ln_P(PSTR("Fn"), false); 543 oled_write_ln_P(PSTR("Fn"), false);
544 break; 544 break;
545 default: 545 default:
546 break; 546 break;
547 } 547 }
@@ -575,7 +575,7 @@ void oled_render_layer_mod_state(void) {
575bool oled_task_user(void) { 575bool oled_task_user(void) {
576 if (is_keyboard_master()) { 576 if (is_keyboard_master()) {
577 oled_render_general_state(); 577 oled_render_general_state();
578 } 578 }
579 else { 579 else {
580 oled_render_layer_mod_state(); 580 oled_render_layer_mod_state();
581 } 581 }
diff --git a/keyboards/crkbd/keymaps/pdl/config.h b/keyboards/crkbd/keymaps/pdl/config.h
index b25d48de02..f2a5a522ea 100644
--- a/keyboards/crkbd/keymaps/pdl/config.h
+++ b/keyboards/crkbd/keymaps/pdl/config.h
@@ -26,5 +26,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define TAPPING_TERM 200 26#define TAPPING_TERM 200
27 27
28#define COMBO_PDL 28#define COMBO_PDL
29#define COMBO_COUNT 28
30#define COMBO_TERM 100 29#define COMBO_TERM 100
diff --git a/keyboards/drhigsby/dubba175/keymaps/default/config.h b/keyboards/drhigsby/dubba175/keymaps/default/config.h
index 7a4761b1ae..8f9a59ed69 100644
--- a/keyboards/drhigsby/dubba175/keymaps/default/config.h
+++ b/keyboards/drhigsby/dubba175/keymaps/default/config.h
@@ -15,5 +15,4 @@
15 */ 15 */
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 8
19#define COMBO_TERM 40 18#define COMBO_TERM 40
diff --git a/keyboards/drhigsby/dubba175/keymaps/default/keymap.c b/keyboards/drhigsby/dubba175/keymaps/default/keymap.c
index 37bae5b435..9a701bc9fe 100644
--- a/keyboards/drhigsby/dubba175/keymaps/default/keymap.c
+++ b/keyboards/drhigsby/dubba175/keymaps/default/keymap.c
@@ -42,7 +42,7 @@ const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END};
42const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; 42const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END};
43 43
44 44
45combo_t key_combos[COMBO_COUNT] = { 45combo_t key_combos[] = {
46 [combo_ESC] = COMBO(esc_combo, KC_ESC), 46 [combo_ESC] = COMBO(esc_combo, KC_ESC),
47 [combo_BACK] = COMBO(bspc_combo, KC_BSPC), 47 [combo_BACK] = COMBO(bspc_combo, KC_BSPC),
48 [combo_TAB] = COMBO(tab_combo, KC_TAB), 48 [combo_TAB] = COMBO(tab_combo, KC_TAB),
@@ -71,12 +71,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
71 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, KC_PIPE, KC_BSLS, KC_DQUO, KC_QUOT, 71 KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, KC_PIPE, KC_BSLS, KC_DQUO, KC_QUOT,
72 xxx, xxx, xxx, xxx, KC_PGUP, KC_PGDN 72 xxx, xxx, xxx, xxx, KC_PGUP, KC_PGDN
73 ), 73 ),
74 74
75 [_FN] = LAYOUT( 75 [_FN] = LAYOUT(
76 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 76 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
77 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12, 77 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12,
78 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, 78 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx,
79 xxx, xxx, xxx, xxx, xxx, xxx 79 xxx, xxx, xxx, xxx, xxx, xxx
80 ) 80 )
81 81
82}; 82};
diff --git a/keyboards/drhigsby/ogurec/keymaps/default/config.h b/keyboards/drhigsby/ogurec/keymaps/default/config.h
index 9ff2d89acc..5d9acf020f 100644
--- a/keyboards/drhigsby/ogurec/keymaps/default/config.h
+++ b/keyboards/drhigsby/ogurec/keymaps/default/config.h
@@ -15,5 +15,4 @@
15 */ 15 */
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 7
19#define COMBO_TERM 40 18#define COMBO_TERM 40
diff --git a/keyboards/drhigsby/ogurec/keymaps/default/keymap.c b/keyboards/drhigsby/ogurec/keymaps/default/keymap.c
index 691f5c95a1..42a6f94781 100644
--- a/keyboards/drhigsby/ogurec/keymaps/default/keymap.c
+++ b/keyboards/drhigsby/ogurec/keymaps/default/keymap.c
@@ -40,7 +40,7 @@ const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END};
40const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; 40const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END};
41 41
42 42
43combo_t key_combos[COMBO_COUNT] = { 43combo_t key_combos[] = {
44 [combo_ESC] = COMBO(esc_combo, KC_ESC), 44 [combo_ESC] = COMBO(esc_combo, KC_ESC),
45 [combo_BACK] = COMBO(bspc_combo, KC_BSPC), 45 [combo_BACK] = COMBO(bspc_combo, KC_BSPC),
46 [combo_TAB] = COMBO(tab_combo, KC_TAB), 46 [combo_TAB] = COMBO(tab_combo, KC_TAB),
@@ -68,9 +68,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
68 ), 68 ),
69 69
70 [_FN] = LAYOUT_ortho_3x12( 70 [_FN] = LAYOUT_ortho_3x12(
71 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 71 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
72 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, 72 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx,
73 KC_VOLD, KC_VOLU, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_MRWD, KC_MFFD, xxx, xxx, xxx 73 KC_VOLD, KC_VOLU, KC_MSTP, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_MRWD, KC_MFFD, xxx, xxx, xxx
74 ) 74 )
75 75
76}; 76};
diff --git a/keyboards/drhigsby/packrat/keymaps/3uc/config.h b/keyboards/drhigsby/packrat/keymaps/3uc/config.h
index 9ff2d89acc..5d9acf020f 100644
--- a/keyboards/drhigsby/packrat/keymaps/3uc/config.h
+++ b/keyboards/drhigsby/packrat/keymaps/3uc/config.h
@@ -15,5 +15,4 @@
15 */ 15 */
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 7
19#define COMBO_TERM 40 18#define COMBO_TERM 40
diff --git a/keyboards/drhigsby/packrat/keymaps/3uc/keymap.c b/keyboards/drhigsby/packrat/keymaps/3uc/keymap.c
index f037a47acb..110d76f2cd 100644
--- a/keyboards/drhigsby/packrat/keymaps/3uc/keymap.c
+++ b/keyboards/drhigsby/packrat/keymaps/3uc/keymap.c
@@ -42,7 +42,7 @@ const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END};
42const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; 42const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END};
43 43
44 44
45combo_t key_combos[COMBO_COUNT] = { 45combo_t key_combos[] = {
46 [combo_ESC] = COMBO(esc_combo, KC_ESC), 46 [combo_ESC] = COMBO(esc_combo, KC_ESC),
47 [combo_BACK] = COMBO(bspc_combo, KC_BSPC), 47 [combo_BACK] = COMBO(bspc_combo, KC_BSPC),
48 [combo_TAB] = COMBO(tab_combo, KC_TAB), 48 [combo_TAB] = COMBO(tab_combo, KC_TAB),
@@ -77,7 +77,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
77 xxx, xxx, xxx, xxx, xxx, BASE, xxx, KC_P7, KC_P8, KC_P9, KC_PPLS, 77 xxx, xxx, xxx, xxx, xxx, BASE, xxx, KC_P7, KC_P8, KC_P9, KC_PPLS,
78 xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_P4, KC_P5, KC_P6, KC_PCMM, 78 xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_P4, KC_P5, KC_P6, KC_PCMM,
79 xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_P1, KC_P2, KC_P3, KC_PEQL, 79 xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_P1, KC_P2, KC_P3, KC_PEQL,
80 xxx, xxx, xxx, xxx, KC_P0, KC_PDOT, KC_PENT 80 xxx, xxx, xxx, xxx, KC_P0, KC_PDOT, KC_PENT
81 81
82 ), 82 ),
83 83
@@ -85,8 +85,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
85 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, xxx, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 85 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, xxx, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
86 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12, 86 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12,
87 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, 87 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx,
88 xxx, xxx, xxx, xxx, xxx, xxx, xxx 88 xxx, xxx, xxx, xxx, xxx, xxx, xxx
89 ) 89 )
90 90
91}; 91};
92
diff --git a/keyboards/drhigsby/packrat/keymaps/default/config.h b/keyboards/drhigsby/packrat/keymaps/default/config.h
index 9ff2d89acc..5d9acf020f 100644
--- a/keyboards/drhigsby/packrat/keymaps/default/config.h
+++ b/keyboards/drhigsby/packrat/keymaps/default/config.h
@@ -15,5 +15,4 @@
15 */ 15 */
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 7
19#define COMBO_TERM 40 18#define COMBO_TERM 40
diff --git a/keyboards/drhigsby/packrat/keymaps/default/keymap.c b/keyboards/drhigsby/packrat/keymaps/default/keymap.c
index 74df6a73e6..fbc814b2b4 100644
--- a/keyboards/drhigsby/packrat/keymaps/default/keymap.c
+++ b/keyboards/drhigsby/packrat/keymaps/default/keymap.c
@@ -41,7 +41,7 @@ const uint16_t PROGMEM lprn_combo[] = {KC_X, KC_C, COMBO_END};
41const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END}; 41const uint16_t PROGMEM rprn_combo[] = {KC_COMM, KC_DOT, COMBO_END};
42 42
43 43
44combo_t key_combos[COMBO_COUNT] = { 44combo_t key_combos[] = {
45 [combo_ESC] = COMBO(esc_combo, KC_ESC), 45 [combo_ESC] = COMBO(esc_combo, KC_ESC),
46 [combo_BACK] = COMBO(bspc_combo, KC_BSPC), 46 [combo_BACK] = COMBO(bspc_combo, KC_BSPC),
47 [combo_TAB] = COMBO(tab_combo, KC_TAB), 47 [combo_TAB] = COMBO(tab_combo, KC_TAB),
@@ -74,8 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
74 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, xxx, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 74 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, xxx, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
75 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12, 75 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, KC_F11, KC_F12,
76 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, 76 xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx, xxx,
77 xxx, xxx, xxx, xxx, xxx, xxx 77 xxx, xxx, xxx, xxx, xxx, xxx
78 ) 78 )
79 79
80}; 80};
81
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
index e90d7184ee..05d30392ff 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h
@@ -30,10 +30,8 @@
30#undef ONESHOT_TIMEOUT 30#undef ONESHOT_TIMEOUT
31#define ONESHOT_TIMEOUT 5000 31#define ONESHOT_TIMEOUT 5000
32 32
33#define COMBO_COUNT 4
34#define COMBO_TERM 200 33#define COMBO_TERM 200
35 34
36
37#undef RGBLIGHT_HUE_STEP 35#undef RGBLIGHT_HUE_STEP
38#define RGBLIGHT_HUE_STEP 24 36#define RGBLIGHT_HUE_STEP 24
39 37
diff --git a/keyboards/eu_isolation/keymaps/bigspace/config.h b/keyboards/eu_isolation/keymaps/bigspace/config.h
index 96783a4c87..ad4389af3e 100644
--- a/keyboards/eu_isolation/keymaps/bigspace/config.h
+++ b/keyboards/eu_isolation/keymaps/bigspace/config.h
@@ -1,19 +1,18 @@
1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore 1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
2* 2*
3* This program is free software: you can redistribute it and/or modify 3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or 5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version. 6* (at your option) any later version.
7* 7*
8* This program is distributed in the hope that it will be useful, 8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11* GNU General Public License for more details.
12* You should have received a copy of the GNU General Public License 12* You should have received a copy of the GNU General Public License
13* along with this program. If not, see <http://www.gnu.org/licenses/>. 13* along with this program. If not, see <http://www.gnu.org/licenses/>.
14*/ 14*/
15 15
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 5
19#define COMBO_TERM 175 18#define COMBO_TERM 175
diff --git a/keyboards/eu_isolation/keymaps/bigspace/keymap.c b/keyboards/eu_isolation/keymaps/bigspace/keymap.c
index 8970e217fb..7568659de0 100644
--- a/keyboards/eu_isolation/keymaps/bigspace/keymap.c
+++ b/keyboards/eu_isolation/keymaps/bigspace/keymap.c
@@ -1,16 +1,16 @@
1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore 1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
2* 2*
3* This program is free software: you can redistribute it and/or modify 3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or 5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version. 6* (at your option) any later version.
7* 7*
8* This program is distributed in the hope that it will be useful, 8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11* GNU General Public License for more details.
12* You should have received a copy of the GNU General Public License 12* You should have received a copy of the GNU General Public License
13* along with this program. If not, see <http://www.gnu.org/licenses/>. 13* along with this program. If not, see <http://www.gnu.org/licenses/>.
14*/ 14*/
15 15
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
@@ -31,7 +31,7 @@ enum WOMBO_COMBOS {
31const uint16_t PROGMEM VOLUME_UP_COMBO[] = { KC_F1, KC_F2, COMBO_END }; 31const uint16_t PROGMEM VOLUME_UP_COMBO[] = { KC_F1, KC_F2, COMBO_END };
32const uint16_t PROGMEM VOLUME_DN_COMBO[] = { KC_F3, KC_F4, COMBO_END }; 32const uint16_t PROGMEM VOLUME_DN_COMBO[] = { KC_F3, KC_F4, COMBO_END };
33 33
34combo_t key_combos[COMBO_COUNT] = { 34combo_t key_combos[] = {
35 [VOLUME_UP] = COMBO(VOLUME_UP_COMBO, KC_VOLU), 35 [VOLUME_UP] = COMBO(VOLUME_UP_COMBO, KC_VOLU),
36 [VOLUME_DOWN] = COMBO(VOLUME_DN_COMBO, KC_VOLD) 36 [VOLUME_DOWN] = COMBO(VOLUME_DN_COMBO, KC_VOLD)
37}; 37};
diff --git a/keyboards/eu_isolation/keymaps/default/config.h b/keyboards/eu_isolation/keymaps/default/config.h
index cb82301892..ad4389af3e 100644
--- a/keyboards/eu_isolation/keymaps/default/config.h
+++ b/keyboards/eu_isolation/keymaps/default/config.h
@@ -1,19 +1,18 @@
1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore 1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
2* 2*
3* This program is free software: you can redistribute it and/or modify 3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or 5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version. 6* (at your option) any later version.
7* 7*
8* This program is distributed in the hope that it will be useful, 8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11* GNU General Public License for more details.
12* You should have received a copy of the GNU General Public License 12* You should have received a copy of the GNU General Public License
13* along with this program. If not, see <http://www.gnu.org/licenses/>. 13* along with this program. If not, see <http://www.gnu.org/licenses/>.
14*/ 14*/
15 15
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 5
19#define COMBO_TERM 175 18#define COMBO_TERM 175
diff --git a/keyboards/eu_isolation/keymaps/default/keymap.c b/keyboards/eu_isolation/keymaps/default/keymap.c
index fc433815ff..65dc381974 100644
--- a/keyboards/eu_isolation/keymaps/default/keymap.c
+++ b/keyboards/eu_isolation/keymaps/default/keymap.c
@@ -1,16 +1,16 @@
1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore 1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
2* 2*
3* This program is free software: you can redistribute it and/or modify 3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or 5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version. 6* (at your option) any later version.
7* 7*
8* This program is distributed in the hope that it will be useful, 8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11* GNU General Public License for more details.
12* You should have received a copy of the GNU General Public License 12* You should have received a copy of the GNU General Public License
13* along with this program. If not, see <http://www.gnu.org/licenses/>. 13* along with this program. If not, see <http://www.gnu.org/licenses/>.
14*/ 14*/
15 15
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
@@ -31,7 +31,7 @@ enum WOMBO_COMBOS {
31const uint16_t PROGMEM VOLUME_UP_COMBO[] = { KC_F1, KC_F2, COMBO_END }; 31const uint16_t PROGMEM VOLUME_UP_COMBO[] = { KC_F1, KC_F2, COMBO_END };
32const uint16_t PROGMEM VOLUME_DN_COMBO[] = { KC_F3, KC_F4, COMBO_END }; 32const uint16_t PROGMEM VOLUME_DN_COMBO[] = { KC_F3, KC_F4, COMBO_END };
33 33
34combo_t key_combos[COMBO_COUNT] = { 34combo_t key_combos[] = {
35 [VOLUME_UP] = COMBO(VOLUME_UP_COMBO, KC_VOLU), 35 [VOLUME_UP] = COMBO(VOLUME_UP_COMBO, KC_VOLU),
36 [VOLUME_DOWN] = COMBO(VOLUME_DN_COMBO, KC_VOLD) 36 [VOLUME_DOWN] = COMBO(VOLUME_DN_COMBO, KC_VOLD)
37}; 37};
diff --git a/keyboards/eu_isolation/keymaps/mit/config.h b/keyboards/eu_isolation/keymaps/mit/config.h
index cb82301892..ad4389af3e 100644
--- a/keyboards/eu_isolation/keymaps/mit/config.h
+++ b/keyboards/eu_isolation/keymaps/mit/config.h
@@ -1,19 +1,18 @@
1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore 1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
2* 2*
3* This program is free software: you can redistribute it and/or modify 3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or 5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version. 6* (at your option) any later version.
7* 7*
8* This program is distributed in the hope that it will be useful, 8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11* GNU General Public License for more details.
12* You should have received a copy of the GNU General Public License 12* You should have received a copy of the GNU General Public License
13* along with this program. If not, see <http://www.gnu.org/licenses/>. 13* along with this program. If not, see <http://www.gnu.org/licenses/>.
14*/ 14*/
15 15
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 5
19#define COMBO_TERM 175 18#define COMBO_TERM 175
diff --git a/keyboards/eu_isolation/keymaps/mit/keymap.c b/keyboards/eu_isolation/keymaps/mit/keymap.c
index 208e61b3e1..68cdaa750a 100644
--- a/keyboards/eu_isolation/keymaps/mit/keymap.c
+++ b/keyboards/eu_isolation/keymaps/mit/keymap.c
@@ -1,16 +1,16 @@
1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore 1/* Copyright 2020 Austin "TuckTuckFloof" Ashmore
2* 2*
3* This program is free software: you can redistribute it and/or modify 3* This program is free software: you can redistribute it and/or modify
4* it under the terms of the GNU General Public License as published by 4* it under the terms of the GNU General Public License as published by
5* the Free Software Foundation, either version 2 of the License, or 5* the Free Software Foundation, either version 2 of the License, or
6* (at your option) any later version. 6* (at your option) any later version.
7* 7*
8* This program is distributed in the hope that it will be useful, 8* This program is distributed in the hope that it will be useful,
9* but WITHOUT ANY WARRANTY; without even the implied warranty of 9* but WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details. 11* GNU General Public License for more details.
12* You should have received a copy of the GNU General Public License 12* You should have received a copy of the GNU General Public License
13* along with this program. If not, see <http://www.gnu.org/licenses/>. 13* along with this program. If not, see <http://www.gnu.org/licenses/>.
14*/ 14*/
15 15
16#include QMK_KEYBOARD_H 16#include QMK_KEYBOARD_H
@@ -31,7 +31,7 @@ enum WOMBO_COMBOS {
31const uint16_t PROGMEM VOLUME_UP_COMBO[] = { KC_F1, KC_F2, COMBO_END }; 31const uint16_t PROGMEM VOLUME_UP_COMBO[] = { KC_F1, KC_F2, COMBO_END };
32const uint16_t PROGMEM VOLUME_DN_COMBO[] = { KC_F3, KC_F4, COMBO_END }; 32const uint16_t PROGMEM VOLUME_DN_COMBO[] = { KC_F3, KC_F4, COMBO_END };
33 33
34combo_t key_combos[COMBO_COUNT] = { 34combo_t key_combos[] = {
35 [VOLUME_UP] = COMBO(VOLUME_UP_COMBO, KC_VOLU), 35 [VOLUME_UP] = COMBO(VOLUME_UP_COMBO, KC_VOLU),
36 [VOLUME_DOWN] = COMBO(VOLUME_DN_COMBO, KC_VOLD) 36 [VOLUME_DOWN] = COMBO(VOLUME_DN_COMBO, KC_VOLD)
37}; 37};
diff --git a/keyboards/foostan/cornelius/keymaps/pdl/config.h b/keyboards/foostan/cornelius/keymaps/pdl/config.h
index b25d48de02..f2a5a522ea 100644
--- a/keyboards/foostan/cornelius/keymaps/pdl/config.h
+++ b/keyboards/foostan/cornelius/keymaps/pdl/config.h
@@ -26,5 +26,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
26#define TAPPING_TERM 200 26#define TAPPING_TERM 200
27 27
28#define COMBO_PDL 28#define COMBO_PDL
29#define COMBO_COUNT 28
30#define COMBO_TERM 100 29#define COMBO_TERM 100
diff --git a/keyboards/free_willy/keymaps/colemak/config.h b/keyboards/free_willy/keymaps/colemak/config.h
index a9f255d42b..e94eb1842b 100644
--- a/keyboards/free_willy/keymaps/colemak/config.h
+++ b/keyboards/free_willy/keymaps/colemak/config.h
@@ -16,5 +16,4 @@
16#pragma once 16#pragma once
17 17
18/* Combos */ 18/* Combos */
19#define COMBO_COUNT 5
20#define COMBO_TERM 50 19#define COMBO_TERM 50
diff --git a/keyboards/free_willy/keymaps/colemak/keymap.c b/keyboards/free_willy/keymaps/colemak/keymap.c
index 5be593ad50..54dba8f02e 100644
--- a/keyboards/free_willy/keymaps/colemak/keymap.c
+++ b/keyboards/free_willy/keymaps/colemak/keymap.c
@@ -63,7 +63,7 @@ const uint16_t PROGMEM combo_esc[] = {KC_N, KC_T, COMBO_END};
63const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 63const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
64const uint16_t PROGMEM combo_ret[] = {KC_LGUI, KC_LALT, COMBO_END}; 64const uint16_t PROGMEM combo_ret[] = {KC_LGUI, KC_LALT, COMBO_END};
65 65
66combo_t key_combos[COMBO_COUNT] = { 66combo_t key_combos[] = {
67 //[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 67 //[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
68 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 68 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
69 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 69 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/free_willy/keymaps/default/config.h b/keyboards/free_willy/keymaps/default/config.h
index a9f255d42b..e94eb1842b 100644
--- a/keyboards/free_willy/keymaps/default/config.h
+++ b/keyboards/free_willy/keymaps/default/config.h
@@ -16,5 +16,4 @@
16#pragma once 16#pragma once
17 17
18/* Combos */ 18/* Combos */
19#define COMBO_COUNT 5
20#define COMBO_TERM 50 19#define COMBO_TERM 50
diff --git a/keyboards/free_willy/keymaps/default/keymap.c b/keyboards/free_willy/keymaps/default/keymap.c
index 0801caf412..de377d7513 100644
--- a/keyboards/free_willy/keymaps/default/keymap.c
+++ b/keyboards/free_willy/keymaps/default/keymap.c
@@ -63,7 +63,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
63const uint16_t PROGMEM combo_esc[] = {KC_J, KC_F, COMBO_END}; 63const uint16_t PROGMEM combo_esc[] = {KC_J, KC_F, COMBO_END};
64const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 64const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
65 65
66combo_t key_combos[COMBO_COUNT] = { 66combo_t key_combos[] = {
67 //[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 67 //[COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
68 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 68 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
69 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 69 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/gboards/g/keymap_combo.h b/keyboards/gboards/g/keymap_combo.h
index c062a298a5..33520d18af 100644
--- a/keyboards/gboards/g/keymap_combo.h
+++ b/keyboards/gboards/g/keymap_combo.h
@@ -41,10 +41,7 @@
41#define TOGG A_ENUM 41#define TOGG A_ENUM
42enum combos { 42enum combos {
43#include "combos.def" 43#include "combos.def"
44 COMBO_LENGTH
45}; 44};
46// Export length to combo module
47uint16_t COMBO_LEN = COMBO_LENGTH;
48 45
49// Bake combos into mem 46// Bake combos into mem
50#undef COMB 47#undef COMB
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h
index da70d56b7b..ece08ecfee 100644
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h
+++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/config.h
@@ -14,7 +14,6 @@
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#define COMBO_COUNT 1
18#define COMBO_TERM 100 17#define COMBO_TERM 100
19 18
20#define RGB_MATRIX_KEYPRESSES 19#define RGB_MATRIX_KEYPRESSES
diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/keymap.c b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/keymap.c
index 30c59e941d..70b60526ce 100644
--- a/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/keymap.c
+++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/mike1808/keymap.c
@@ -17,7 +17,7 @@
17 17
18const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 18const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
19 19
20combo_t key_combos[COMBO_COUNT] = { 20combo_t key_combos[] = {
21 [JK_ESC] = COMBO(jk_combo, KC_ESC), 21 [JK_ESC] = COMBO(jk_combo, KC_ESC),
22}; 22};
23 23
diff --git a/keyboards/handwired/aek64/keymaps/4sstylz/config.h b/keyboards/handwired/aek64/keymaps/4sstylz/config.h
deleted file mode 100644
index 914861332f..0000000000
--- a/keyboards/handwired/aek64/keymaps/4sstylz/config.h
+++ /dev/null
@@ -1,3 +0,0 @@
1#pragma once
2
3#define COMBO_COUNT 1
diff --git a/keyboards/handwired/aek64/keymaps/4sstylz/keymap.c b/keyboards/handwired/aek64/keymaps/4sstylz/keymap.c
index bdfce062d3..8f136b51fd 100644
--- a/keyboards/handwired/aek64/keymaps/4sstylz/keymap.c
+++ b/keyboards/handwired/aek64/keymaps/4sstylz/keymap.c
@@ -15,7 +15,7 @@ enum custom_keycodes {
15}; 15};
16 16
17const uint16_t PROGMEM lock_combo[] = {KC_J, KC_K, KC_L, KC_SCLN, COMBO_END}; 17const uint16_t PROGMEM lock_combo[] = {KC_J, KC_K, KC_L, KC_SCLN, COMBO_END};
18combo_t key_combos[COMBO_COUNT] = {COMBO(lock_combo, LGUI(KC_O))}; 18combo_t key_combos[] = {COMBO(lock_combo, LGUI(KC_O))};
19 19
20// Define the keycodes for one qwerty layer and one Fn layer. 20// Define the keycodes for one qwerty layer and one Fn layer.
21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 21const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32 * │ Ctrl │ Alt │↯ATab │ Space │ Gui │ Alt │ Ctrl │ 32 * │ Ctrl │ Alt │↯ATab │ Space │ Gui │ Alt │ Ctrl │
33 * └──────┴──────┴──────┴──────────────────────────────────────────────────────────────┴──────┴──────┴──────┘ 33 * └──────┴──────┴──────┴──────────────────────────────────────────────────────────────┴──────┴──────┴──────┘
34 * 34 *
35 * Hidden features :  35 * Hidden features :
36 * - Left Shift is also Home on a single tap. 36 * - Left Shift is also Home on a single tap.
37 * - Left Ctrl is also End on a single tap. 37 * - Left Ctrl is also End on a single tap.
38 * - Right Shift is also page-up on a single tap. 38 * - Right Shift is also page-up on a single tap.
diff --git a/keyboards/ibnuda/alicia_cook/keymaps/rick/config.h b/keyboards/ibnuda/alicia_cook/keymaps/rick/config.h
index ccfd50638b..d4b4480810 100644
--- a/keyboards/ibnuda/alicia_cook/keymaps/rick/config.h
+++ b/keyboards/ibnuda/alicia_cook/keymaps/rick/config.h
@@ -16,7 +16,6 @@
16#pragma once 16#pragma once
17 17
18#define COMBO_TERM 50 18#define COMBO_TERM 50
19#define COMBO_COUNT 50
20#define PERMISSIVE_HOLD 19#define PERMISSIVE_HOLD
21#define TAPPING_TERM 175 20#define TAPPING_TERM 175
22#define TAPPING_TERM 175 21#define TAPPING_TERM 175
diff --git a/keyboards/ibnuda/alicia_cook/keymaps/rick/keymap.c b/keyboards/ibnuda/alicia_cook/keymaps/rick/keymap.c
index 88c3784754..9c1f0cb63e 100644
--- a/keyboards/ibnuda/alicia_cook/keymaps/rick/keymap.c
+++ b/keyboards/ibnuda/alicia_cook/keymaps/rick/keymap.c
@@ -188,7 +188,7 @@ const uint16_t PROGMEM rl_r_m_i_combo[] = {RLR, RLM, RLI, COMBO_END};
188// both hand combinations. 188// both hand combinations.
189const uint16_t PROGMEM bl_m_m_combo[] = {LLM, RLM, COMBO_END}; 189const uint16_t PROGMEM bl_m_m_combo[] = {LLM, RLM, COMBO_END};
190 190
191combo_t key_combos[COMBO_COUNT] = { 191combo_t key_combos[] = {
192 // left hand combinations. 192 // left hand combinations.
193 [L_U_PINKY_RING] = COMBO(lu_p_r_combo, KC_TAB), 193 [L_U_PINKY_RING] = COMBO(lu_p_r_combo, KC_TAB),
194 [L_U_RING_MIDDLE] = COMBO(lu_r_m_combo, KC_QUES), 194 [L_U_RING_MIDDLE] = COMBO(lu_r_m_combo, KC_QUES),
diff --git a/keyboards/ibnuda/squiggle/keymaps/default/config.h b/keyboards/ibnuda/squiggle/keymaps/default/config.h
index 6411ba8c66..22ceb2f996 100644
--- a/keyboards/ibnuda/squiggle/keymaps/default/config.h
+++ b/keyboards/ibnuda/squiggle/keymaps/default/config.h
@@ -1,5 +1,4 @@
1#pragma once 1#pragma once
2 2
3#define COMBO_TERM 100 3#define COMBO_TERM 100
4#define COMBO_COUNT 38
5#define PERMISSIVE_HOLD 4#define PERMISSIVE_HOLD
diff --git a/keyboards/ibnuda/squiggle/keymaps/default/keymap.c b/keyboards/ibnuda/squiggle/keymaps/default/keymap.c
index c85099a144..47269b07ff 100644
--- a/keyboards/ibnuda/squiggle/keymaps/default/keymap.c
+++ b/keyboards/ibnuda/squiggle/keymaps/default/keymap.c
@@ -105,7 +105,7 @@ const uint16_t PROGMEM z_slash_combo[] = {KC_Z, KC_SLSH, COMBO_END};
105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END}; 105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END};
106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END}; 106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END};
107 107
108combo_t key_combos[COMBO_COUNT] = { 108combo_t key_combos[] = {
109 // left hand combinations. 109 // left hand combinations.
110 [Q_W] = COMBO(q_w_combo, KC_TAB), 110 [Q_W] = COMBO(q_w_combo, KC_TAB),
111 [W_E] = COMBO(w_e_combo, KC_DQT), 111 [W_E] = COMBO(w_e_combo, KC_DQT),
diff --git a/keyboards/ibnuda/squiggle/keymaps/default38/config.h b/keyboards/ibnuda/squiggle/keymaps/default38/config.h
index fa95320e90..822264ca78 100644
--- a/keyboards/ibnuda/squiggle/keymaps/default38/config.h
+++ b/keyboards/ibnuda/squiggle/keymaps/default38/config.h
@@ -20,5 +20,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20#pragma once 20#pragma once
21 21
22#define COMBO_TERM 100 22#define COMBO_TERM 100
23#define COMBO_COUNT 38
24#define PERMISSIVE_HOLD 23#define PERMISSIVE_HOLD
diff --git a/keyboards/ibnuda/squiggle/keymaps/default38/keymap.c b/keyboards/ibnuda/squiggle/keymaps/default38/keymap.c
index aa51f479ff..8e4685757c 100644
--- a/keyboards/ibnuda/squiggle/keymaps/default38/keymap.c
+++ b/keyboards/ibnuda/squiggle/keymaps/default38/keymap.c
@@ -105,7 +105,7 @@ const uint16_t PROGMEM z_slash_combo[] = {KC_Z, KC_SLSH, COMBO_END};
105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END}; 105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END};
106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END}; 106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END};
107 107
108combo_t key_combos[COMBO_COUNT] = { 108combo_t key_combos[] = {
109 // left hand combinations. 109 // left hand combinations.
110 [Q_W] = COMBO(q_w_combo, KC_TAB), 110 [Q_W] = COMBO(q_w_combo, KC_TAB),
111 [W_E] = COMBO(w_e_combo, KC_DQT), 111 [W_E] = COMBO(w_e_combo, KC_DQT),
diff --git a/keyboards/ibnuda/squiggle/keymaps/defaultfull/config.h b/keyboards/ibnuda/squiggle/keymaps/defaultfull/config.h
index 65eec1d7f8..127f7d0fb8 100644
--- a/keyboards/ibnuda/squiggle/keymaps/defaultfull/config.h
+++ b/keyboards/ibnuda/squiggle/keymaps/defaultfull/config.h
@@ -17,5 +17,4 @@
17#pragma once 17#pragma once
18 18
19#define COMBO_TERM 100 19#define COMBO_TERM 100
20#define COMBO_COUNT 38
21#define PERMISSIVE_HOLD 20#define PERMISSIVE_HOLD
diff --git a/keyboards/ibnuda/squiggle/keymaps/defaultfull/keymap.c b/keyboards/ibnuda/squiggle/keymaps/defaultfull/keymap.c
index 78f9617cf0..0d56ef08a8 100644
--- a/keyboards/ibnuda/squiggle/keymaps/defaultfull/keymap.c
+++ b/keyboards/ibnuda/squiggle/keymaps/defaultfull/keymap.c
@@ -105,7 +105,7 @@ const uint16_t PROGMEM z_slash_combo[] = {KC_Z, KC_SLSH, COMBO_END};
105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END}; 105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END};
106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END}; 106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END};
107 107
108combo_t key_combos[COMBO_COUNT] = { 108combo_t key_combos[] = {
109 // left hand combinations. 109 // left hand combinations.
110 [Q_W] = COMBO(q_w_combo, KC_TAB), 110 [Q_W] = COMBO(q_w_combo, KC_TAB),
111 [W_E] = COMBO(w_e_combo, KC_DQT), 111 [W_E] = COMBO(w_e_combo, KC_DQT),
diff --git a/keyboards/ibnuda/squiggle/keymaps/defaultminidox/config.h b/keyboards/ibnuda/squiggle/keymaps/defaultminidox/config.h
index 6411ba8c66..22ceb2f996 100644
--- a/keyboards/ibnuda/squiggle/keymaps/defaultminidox/config.h
+++ b/keyboards/ibnuda/squiggle/keymaps/defaultminidox/config.h
@@ -1,5 +1,4 @@
1#pragma once 1#pragma once
2 2
3#define COMBO_TERM 100 3#define COMBO_TERM 100
4#define COMBO_COUNT 38
5#define PERMISSIVE_HOLD 4#define PERMISSIVE_HOLD
diff --git a/keyboards/ibnuda/squiggle/keymaps/defaultminidox/keymap.c b/keyboards/ibnuda/squiggle/keymaps/defaultminidox/keymap.c
index 477aa2229e..171f1a373e 100644
--- a/keyboards/ibnuda/squiggle/keymaps/defaultminidox/keymap.c
+++ b/keyboards/ibnuda/squiggle/keymaps/defaultminidox/keymap.c
@@ -105,7 +105,7 @@ const uint16_t PROGMEM z_slash_combo[] = {KC_Z, KC_SLSH, COMBO_END};
105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END}; 105const uint16_t PROGMEM x_comma_combo[] = {KC_X, KC_COMM, COMBO_END};
106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END}; 106const uint16_t PROGMEM j_f_combo[] = {KC_F, KC_J, COMBO_END};
107 107
108combo_t key_combos[COMBO_COUNT] = { 108combo_t key_combos[] = {
109 // left hand combinations. 109 // left hand combinations.
110 [Q_W] = COMBO(q_w_combo, KC_TAB), 110 [Q_W] = COMBO(q_w_combo, KC_TAB),
111 [W_E] = COMBO(w_e_combo, KC_DQT), 111 [W_E] = COMBO(w_e_combo, KC_DQT),
diff --git a/keyboards/ibnuda/squiggle/keymaps/rick-complicated/config.h b/keyboards/ibnuda/squiggle/keymaps/rick-complicated/config.h
index 9920602ab8..2392b46be6 100644
--- a/keyboards/ibnuda/squiggle/keymaps/rick-complicated/config.h
+++ b/keyboards/ibnuda/squiggle/keymaps/rick-complicated/config.h
@@ -1,7 +1,6 @@
1#pragma once 1#pragma once
2 2
3#define COMBO_TERM 100 3#define COMBO_TERM 100
4#define COMBO_COUNT 38
5#define PERMISSIVE_HOLD 4#define PERMISSIVE_HOLD
6 5
7#define LEADER_TIMEOUT 300 6#define LEADER_TIMEOUT 300
diff --git a/keyboards/ibnuda/squiggle/keymaps/rick-complicated/keymap.c b/keyboards/ibnuda/squiggle/keymaps/rick-complicated/keymap.c
index c030738400..b28fc84499 100644
--- a/keyboards/ibnuda/squiggle/keymaps/rick-complicated/keymap.c
+++ b/keyboards/ibnuda/squiggle/keymaps/rick-complicated/keymap.c
@@ -121,7 +121,7 @@ const uint16_t PROGMEM m_b_combo[] = {KC_M, KC_B, COMBO_END};
121// both hand combinations. 121// both hand combinations.
122const uint16_t PROGMEM j_w_combo[] = {KC_J, KC_W, COMBO_END}; 122const uint16_t PROGMEM j_w_combo[] = {KC_J, KC_W, COMBO_END};
123 123
124combo_t key_combos[COMBO_COUNT] = { 124combo_t key_combos[] = {
125 // left hand combinations. 125 // left hand combinations.
126 [COLON_COMMA] = COMBO(colon_comma_combo, KC_TAB), 126 [COLON_COMMA] = COMBO(colon_comma_combo, KC_TAB),
127 [COMMA_DOT] = COMBO(comma_dot_combo, KC_QUES), 127 [COMMA_DOT] = COMBO(comma_dot_combo, KC_QUES),
diff --git a/keyboards/ibnuda/squiggle/keymaps/rick/config.h b/keyboards/ibnuda/squiggle/keymaps/rick/config.h
index 6411ba8c66..22ceb2f996 100644
--- a/keyboards/ibnuda/squiggle/keymaps/rick/config.h
+++ b/keyboards/ibnuda/squiggle/keymaps/rick/config.h
@@ -1,5 +1,4 @@
1#pragma once 1#pragma once
2 2
3#define COMBO_TERM 100 3#define COMBO_TERM 100
4#define COMBO_COUNT 38
5#define PERMISSIVE_HOLD 4#define PERMISSIVE_HOLD
diff --git a/keyboards/ibnuda/squiggle/keymaps/rick/keymap.c b/keyboards/ibnuda/squiggle/keymaps/rick/keymap.c
index f0ab692f28..75ea54c548 100644
--- a/keyboards/ibnuda/squiggle/keymaps/rick/keymap.c
+++ b/keyboards/ibnuda/squiggle/keymaps/rick/keymap.c
@@ -121,7 +121,7 @@ const uint16_t PROGMEM m_b_combo[] = {KC_M, KC_B, COMBO_END};
121// both hand combinations. 121// both hand combinations.
122const uint16_t PROGMEM j_w_combo[] = {KC_J, KC_W, COMBO_END}; 122const uint16_t PROGMEM j_w_combo[] = {KC_J, KC_W, COMBO_END};
123 123
124combo_t key_combos[COMBO_COUNT] = { 124combo_t key_combos[] = {
125 // left hand combinations. 125 // left hand combinations.
126 [COLON_COMMA] = COMBO(colon_comma_combo, KC_TAB), 126 [COLON_COMMA] = COMBO(colon_comma_combo, KC_TAB),
127 [COMMA_DOT] = COMBO(comma_dot_combo, KC_QUES), 127 [COMMA_DOT] = COMBO(comma_dot_combo, KC_QUES),
diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h b/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h
index 4f3cc95f30..2a432a5b2e 100644
--- a/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h
+++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/config.h
@@ -20,5 +20,4 @@
20*/ 20*/
21#pragma once 21#pragma once
22 22
23#define COMBO_COUNT 3
24#define COMBO_TERM 200 23#define COMBO_TERM 200
diff --git a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c
index ae8b42851c..bdcb153413 100644
--- a/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c
+++ b/keyboards/idobao/id80/v2/ansi/keymaps/msf/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS, 29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_INS,
30 _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL, 30 _______, RGB_TOG, _______, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, KC_DEL,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, 31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
32 _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, NK_TOGG, _______, _______, _______, _______, _______, BL_UP, 32 _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, NK_TOGG, _______, _______, _______, _______, _______, BL_UP,
33 _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DOWN, BL_STEP 33 _______, _______, _______, _______, _______, _______, BL_TOGG, BL_DOWN, BL_STEP
34 ), 34 ),
35 [2] = LAYOUT_ansi( 35 [2] = LAYOUT_ansi(
@@ -52,7 +52,7 @@ const uint16_t PROGMEM slashDown_combo[] = {KC_SLSH, KC_DOWN, COMBO_END};
52const uint16_t PROGMEM slashUp_combo[] = {KC_SLSH, KC_UP, COMBO_END}; 52const uint16_t PROGMEM slashUp_combo[] = {KC_SLSH, KC_UP, COMBO_END};
53const uint16_t PROGMEM raltBackspace_combo[] = {KC_RALT, KC_BSPC, COMBO_END}; 53const uint16_t PROGMEM raltBackspace_combo[] = {KC_RALT, KC_BSPC, COMBO_END};
54 54
55combo_t key_combos[COMBO_COUNT] = { 55combo_t key_combos[] = {
56 [SLSHDN_PGDN] = COMBO(slashDown_combo, KC_PGDN), 56 [SLSHDN_PGDN] = COMBO(slashDown_combo, KC_PGDN),
57 [SLSHUP_PGUP] = COMBO(slashUp_combo, KC_PGUP), 57 [SLSHUP_PGUP] = COMBO(slashUp_combo, KC_PGUP),
58 [RALTBKSPC_DELETE] = COMBO(raltBackspace_combo, KC_DEL), 58 [RALTBKSPC_DELETE] = COMBO(raltBackspace_combo, KC_DEL),
diff --git a/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h b/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h
index 3fef45f887..9c9bca5961 100644
--- a/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h
+++ b/keyboards/input_club/ergodox_infinity/keymaps/narze/config.h
@@ -4,7 +4,6 @@
4#define TAPPING_TERM 150 4#define TAPPING_TERM 150
5 5
6#define COMBO_TERM 20 6#define COMBO_TERM 20
7#define COMBO_COUNT 1
8 7
9#define PERMISSIVE_HOLD 8#define PERMISSIVE_HOLD
10 9
diff --git a/keyboards/k34/keymaps/default/config.h b/keyboards/k34/keymaps/default/config.h
index c86bbebdc7..f16dbc0042 100644
--- a/keyboards/k34/keymaps/default/config.h
+++ b/keyboards/k34/keymaps/default/config.h
@@ -1,23 +1,21 @@
1 /* Copyright Wong Jing Ping <@wongjingping> 1 /* Copyright Wong Jing Ping <@wongjingping>
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or 5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version. 6 * (at your option) any later version.
7 * 7 *
8 * This program is distributed in the hope that it will be useful, 8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 * 12 *
13 */ 13 */
14 14
15#pragma once 15#pragma once
16 16
17// use 1 combo 17// use 1 combo
18#define COMBO_COUNT 1
19#define COMBO_TERM 300 18#define COMBO_TERM 300
20 19
21// mod taps for home row mods 20// mod taps for home row mods
22#define TAPPING_TERM_PER_KEY 21#define TAPPING_TERM_PER_KEY
23
diff --git a/keyboards/k34/keymaps/default/keymap.c b/keyboards/k34/keymaps/default/keymap.c
index 6bd8e402da..ae8b7dc340 100644
--- a/keyboards/k34/keymaps/default/keymap.c
+++ b/keyboards/k34/keymaps/default/keymap.c
@@ -33,7 +33,7 @@ enum layer_names {
33 33
34/* combos */ 34/* combos */
35const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 35const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
36combo_t key_combos[COMBO_COUNT] = {COMBO(jk_combo, KC_ESC)}; 36combo_t key_combos[] = {COMBO(jk_combo, KC_ESC)};
37 37
38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 38const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
39 /* Base */ 39 /* Base */
diff --git a/keyboards/keebformom/keymaps/default/config.h b/keyboards/keebformom/keymaps/default/config.h
deleted file mode 100644
index 2c89e93739..0000000000
--- a/keyboards/keebformom/keymaps/default/config.h
+++ /dev/null
@@ -1,19 +0,0 @@
1/* Copyright 2022 Sandipratama <https://github.com/nendezkombet>
2
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7
8This program is distributed in the hope that it will be useful,
9but WITHOUT ANY WARRANTY; without even the implied warranty of
10MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11GNU General Public License for more details.
12
13You should have received a copy of the GNU General Public License
14along with this program. If not, see <http://www.gnu.org/licenses/>.
15*/
16
17#pragma once
18
19#define COMBO_COUNT 7
diff --git a/keyboards/keebformom/keymaps/default/keymap.c b/keyboards/keebformom/keymaps/default/keymap.c
index 1c8180edcc..d51dcd356a 100644
--- a/keyboards/keebformom/keymaps/default/keymap.c
+++ b/keyboards/keebformom/keymaps/default/keymap.c
@@ -60,7 +60,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
60 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_CIRC, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6, 60 KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_CIRC, KC_UNDS, KC_MINS, KC_4, KC_5, KC_6,
61 KC_PERC, KC_AMPR, KC_LBRC, KC_RBRC, KC_ASTR, _______, _______, KC_1, KC_2, KC_3, 61 KC_PERC, KC_AMPR, KC_LBRC, KC_RBRC, KC_ASTR, _______, _______, KC_1, KC_2, KC_3,
62 TO(0), _______, KC_BSLS, KC_PIPE, _______, _______, _______, KC_EQL, KC_0, KC_BSPC 62 TO(0), _______, KC_BSLS, KC_PIPE, _______, _______, _______, KC_EQL, KC_0, KC_BSPC
63), 63),
64 64
65/* THIRD 65/* THIRD
66 * ,---------------------------------------------------------------------. 66 * ,---------------------------------------------------------------------.
@@ -75,10 +75,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
75 */ 75 */
76[_THIRD] = LAYOUT_ortho_4x10( 76[_THIRD] = LAYOUT_ortho_4x10(
77 KC_INS, KC_HOME, KC_PGUP, KC_NO, SGUI(KC_S), LCTL(KC_A), KC_NO, KC_NO, KC_UP, KC_NO, 77 KC_INS, KC_HOME, KC_PGUP, KC_NO, SGUI(KC_S), LCTL(KC_A), KC_NO, KC_NO, KC_UP, KC_NO,
78 KC_DEL, KC_END, KC_PGDN, KC_NO, LCTL(KC_S), LCTL(KC_C), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, 78 KC_DEL, KC_END, KC_PGDN, KC_NO, LCTL(KC_S), LCTL(KC_C), KC_NO, KC_LEFT, KC_DOWN, KC_RGHT,
79 KC_NO, KC_NO, KC_NO, KC_NO, LWIN(KC_E), LCTL(KC_V), KC_NO, KC_NO, KC_NO, KC_NO, 79 KC_NO, KC_NO, KC_NO, KC_NO, LWIN(KC_E), LCTL(KC_V), KC_NO, KC_NO, KC_NO, KC_NO,
80 TO(0), _______, _______, _______, _______, _______, _______, KC_VOLD, _______, KC_VOLU 80 TO(0), _______, _______, _______, _______, _______, _______, KC_VOLD, _______, KC_VOLU
81), 81),
82/* FOURTH 82/* FOURTH
83 * ,---------------------------------------------------------------------. 83 * ,---------------------------------------------------------------------.
84 * |RGB M+| HUD | HUI | | F1 | F2 | F3 | F4 | F5 | F6 | 84 * |RGB M+| HUD | HUI | | F1 | F2 | F3 | F4 | F5 | F6 |
@@ -106,7 +106,7 @@ const uint16_t PROGMEM test_combo4[] = {KC_A, KC_S, COMBO_END};
106const uint16_t PROGMEM test_combo5[] = {KC_G, KC_H, COMBO_END}; 106const uint16_t PROGMEM test_combo5[] = {KC_G, KC_H, COMBO_END};
107const uint16_t PROGMEM test_combo6[] = {KC_B, KC_N, COMBO_END}; 107const uint16_t PROGMEM test_combo6[] = {KC_B, KC_N, COMBO_END};
108const uint16_t PROGMEM test_combo7[] = {KC_O, KC_P, COMBO_END}; 108const uint16_t PROGMEM test_combo7[] = {KC_O, KC_P, COMBO_END};
109combo_t key_combos[COMBO_COUNT] = { 109combo_t key_combos[] = {
110 COMBO(test_combo1, KC_ESC), 110 COMBO(test_combo1, KC_ESC),
111 COMBO(test_combo2, TO(3)), 111 COMBO(test_combo2, TO(3)),
112 COMBO(test_combo3, KC_CAPS), 112 COMBO(test_combo3, KC_CAPS),
diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h b/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h
index 902e9052b7..ddb539fb09 100644
--- a/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h
+++ b/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h
@@ -18,5 +18,3 @@
18 18
19// place overrides here 19// place overrides here
20#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c" 20#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c"
21
22#define COMBO_COUNT 3
diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c b/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c
index ff5c9231ea..371e8e9941 100644
--- a/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c
+++ b/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c
@@ -72,7 +72,7 @@ const uint16_t PROGMEM zeroDot_combo[] = {KC_P0, KC_PDOT, COMBO_END};
72const uint16_t PROGMEM leftDown_combo[] = {KC_LEFT, KC_DOWN, COMBO_END}; 72const uint16_t PROGMEM leftDown_combo[] = {KC_LEFT, KC_DOWN, COMBO_END};
73const uint16_t PROGMEM prevPlay_combo[] = {KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, COMBO_END}; 73const uint16_t PROGMEM prevPlay_combo[] = {KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, COMBO_END};
74 74
75combo_t key_combos[COMBO_COUNT] = { 75combo_t key_combos[] = {
76 [COMBO1] = COMBO_ACTION(zeroDot_combo), 76 [COMBO1] = COMBO_ACTION(zeroDot_combo),
77 [COMBO2] = COMBO_ACTION(leftDown_combo), 77 [COMBO2] = COMBO_ACTION(leftDown_combo),
78 [COMBO3] = COMBO_ACTION(prevPlay_combo), 78 [COMBO3] = COMBO_ACTION(prevPlay_combo),
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
index 3a48491679..72377c2701 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h
@@ -24,7 +24,6 @@
24#define MOUSEKEY_TIME_TO_MAX 64 24#define MOUSEKEY_TIME_TO_MAX 64
25 25
26// The firmware is too large! 26// The firmware is too large!
27#define COMBO_COUNT 1 // number of combo
28#define COMBO_TERM 80 // timeout period for combos to 40ms. 27#define COMBO_TERM 80 // timeout period for combos to 40ms.
29 28
30//disable broken animations 29//disable broken animations
diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
index 423dd14325..09490aa940 100644
--- a/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
+++ b/keyboards/kprepublic/bm40hsrgb/keymaps/34keys/keymap.c
@@ -37,21 +37,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
37 [_Navi] = LAYOUT_planck_mit( 37 [_Navi] = LAYOUT_planck_mit(
38 KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_ESC, KC_NO, KC_NO, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END, 38 KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, KC_ESC, KC_NO, KC_NO, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END,
39 KC_LSFT, HOME_S, HOME_D, HOME_F, KC_TAB, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU, 39 KC_LSFT, HOME_S, HOME_D, HOME_F, KC_TAB, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU,
40 KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_NO, KC_NO, KC_BTN2, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, 40 KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1, KC_NO, KC_NO, KC_BTN2, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
41 KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO 41 KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
42 ), 42 ),
43 [_Numb] = LAYOUT_planck_mit( 43 [_Numb] = LAYOUT_planck_mit(
44 KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, 44 KC_LBRC, KC_7, KC_8, KC_9, KC_RBRC, KC_NO, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO,
45 KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU, 45 KC_SCLN, KC_4, KC_5, KC_6, KC_EQL, KC_NO, KC_NO, KC_ENT, KC_RSFT, HOME_K, HOME_L, HOME_QU,
46 KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KR_HAEN, KC_NO, 46 KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KR_HAEN, KC_NO,
47 KC_NO, KC_NO, KC_NO, KC_0, KC_MINS, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO 47 KC_NO, KC_NO, KC_NO, KC_0, KC_MINS, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
48 ), 48 ),
49 [_Func] = LAYOUT_planck_mit( 49 [_Func] = LAYOUT_planck_mit(
50 KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, 50 KC_F12, KC_F7, KC_F8, KC_F9, KC_PSCR, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO,
51 KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, KC_NO, KC_NO, KC_CAPS, KC_RSFT, HOME_K, HOME_L, HOME_QU, 51 KC_F11, KC_F4, KC_F5, KC_F6, KC_SCRL, KC_NO, KC_NO, KC_CAPS, KC_RSFT, HOME_K, HOME_L, HOME_QU,
52 KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KR_HAEN, KC_NO, 52 KC_F10, KC_F1, KC_F2, KC_F3, KC_PAUS, KC_NO, KC_NO, KC_INS, KC_NO, KC_NO, KR_HAEN, KC_NO,
53 KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO 53 KC_NO, KC_NO, KC_NO, KC_NO, Lay_SPC, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO
54 ), 54 ),
55}; 55};
56 56
57 57
@@ -75,10 +75,8 @@ layer_state_t layer_state_set_user(layer_state_t state) {
75} 75}
76 76
77// COMBO key for HOME ROW modifier 77// COMBO key for HOME ROW modifier
78// modify `config.h` file
79// by adding #define COMBO_COUNT 1 (replacing 1 with the number that you’re using).
80// modify `rules.mk` file 78// modify `rules.mk` file
81// by adding # COMBO_ENABLE = yes 79// by adding # COMBO_ENABLE = yes
82 80
83enum combos { 81enum combos {
84 SFT_HAN, 82 SFT_HAN,
@@ -86,6 +84,6 @@ enum combos {
86 84
87const uint16_t PROGMEM sft_han_combo[] = {LSFT_T(KC_F), LT(_Func,KC_SPC), COMBO_END}; 85const uint16_t PROGMEM sft_han_combo[] = {LSFT_T(KC_F), LT(_Func,KC_SPC), COMBO_END};
88 86
89combo_t key_combos[COMBO_COUNT] = { 87combo_t key_combos[] = {
90 [SFT_HAN] = COMBO(sft_han_combo, KC_LNG1), 88 [SFT_HAN] = COMBO(sft_han_combo, KC_LNG1),
91}; \ No newline at end of file 89};
diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h
index ceb40da092..13eefdef65 100644
--- a/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h
+++ b/keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h
@@ -49,7 +49,6 @@
49// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 49// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
50// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out 50// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out
51// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 51// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
52// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
53// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 52// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
54// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 53// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
55// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 54// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
diff --git a/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h b/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h
index eaff1148d0..06a7409110 100644
--- a/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h
+++ b/keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h
@@ -34,7 +34,6 @@
34// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 34// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
35// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out 35// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out
36// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 36// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
37// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
38// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 37// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
39// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 38// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
40// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 39// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
@@ -75,7 +74,7 @@
75#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation 74#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS // Randomly changes a single key's hue and saturation
76#define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back 75#define DISABLE_RGB_MATRIX_HUE_BREATHING // Hue shifts up a slight ammount at the same time, then shifts back
77#define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left 76#define DISABLE_RGB_MATRIX_HUE_PENDULUM // Hue shifts up a slight ammount in a wave to the right, then back to the left
78#define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right 77#define DISABLE_RGB_MATRIX_HUE_WAVE // Hue shifts up a slight ammount and then back down in a wave to the right
79// =================================================== Requires RGB_MATRIX_FRAMEBUFFER_EFFECTS ============================================================= 78// =================================================== Requires RGB_MATRIX_FRAMEBUFFER_EFFECTS =============================================================
80// #define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM! 79// #define DISABLE_RGB_MATRIX_TYPING_HEATMAP // How hot is your WPM!
81#define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation 80#define DISABLE_RGB_MATRIX_DIGITAL_RAIN // That famous computer simulation
diff --git a/keyboards/kprepublic/jj40/keymaps/stevexyz/config.h b/keyboards/kprepublic/jj40/keymaps/stevexyz/config.h
index 48d86aedf5..46fbfe21c3 100644
--- a/keyboards/kprepublic/jj40/keymaps/stevexyz/config.h
+++ b/keyboards/kprepublic/jj40/keymaps/stevexyz/config.h
@@ -32,8 +32,6 @@
32 // how long before oneshot times out 32 // how long before oneshot times out
33 #define ONESHOT_TAP_TOGGLE 2 33 #define ONESHOT_TAP_TOGGLE 2
34 // how many taps before oneshot toggle is triggered 34 // how many taps before oneshot toggle is triggered
35 #define COMBO_COUNT 2
36 // Set this to the number of combos that you're using in the Combo feature.
37 #define COMBO_TERM 200 35 #define COMBO_TERM 200
38 // how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 36 // how long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
39 #define TAP_CODE_DELAY 100 37 #define TAP_CODE_DELAY 100
diff --git a/keyboards/lets_split/keymaps/shaymdev/config.h b/keyboards/lets_split/keymaps/shaymdev/config.h
index a54a63fd48..3ae9165cfd 100644
--- a/keyboards/lets_split/keymaps/shaymdev/config.h
+++ b/keyboards/lets_split/keymaps/shaymdev/config.h
@@ -50,6 +50,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
50 } 50 }
51#endif 51#endif
52 52
53#define COMBO_COUNT 1
54
55#define TAPPING_TERM 220 53#define TAPPING_TERM 220
diff --git a/keyboards/lets_split/keymaps/shaymdev/keymap.c b/keyboards/lets_split/keymaps/shaymdev/keymap.c
index 19a2c082df..fe919133a9 100644
--- a/keyboards/lets_split/keymaps/shaymdev/keymap.c
+++ b/keyboards/lets_split/keymaps/shaymdev/keymap.c
@@ -35,14 +35,14 @@ enum custom_keycodes {
35#define RAISE MO(_RAISE) 35#define RAISE MO(_RAISE)
36#define RAS RAISE 36#define RAS RAISE
37 37
38enum combos //match combo_count in config.h 38enum combos
39{ 39{
40 EU_ENT, 40 EU_ENT,
41}; 41};
42 42
43const uint16_t PROGMEM eu_combo[] = {KC_E, KC_U, COMBO_END}; 43const uint16_t PROGMEM eu_combo[] = {KC_E, KC_U, COMBO_END};
44 44
45combo_t key_combos[COMBO_COUNT] = { 45combo_t key_combos[] = {
46 [EU_ENT] = COMBO_ACTION(eu_combo), 46 [EU_ENT] = COMBO_ACTION(eu_combo),
47}; 47};
48 48
@@ -58,38 +58,38 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
58 58
59const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 59const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
60 60
61[_DVORAK] = LAYOUT( 61[_DVORAK] = LAYOUT(
62 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, 62 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
63 KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 63 KC_TAB, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
64 KC_EQL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS, 64 KC_EQL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS,
65 XXXXXXX, KC_ENT, KC_LALT, TT(LWR), KC_LSFT, KC_LCTL, KC_BSPC, KC_SPC, TT(RAS), KC_DEL, KC_LGUI, XXXXXXX 65 XXXXXXX, KC_ENT, KC_LALT, TT(LWR), KC_LSFT, KC_LCTL, KC_BSPC, KC_SPC, TT(RAS), KC_DEL, KC_LGUI, XXXXXXX
66), 66),
67 67
68[_QWERTY] = LAYOUT( 68[_QWERTY] = LAYOUT(
69 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 69 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
70 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 70 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
71 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, 71 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI,
72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 72 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
73), 73),
74 74
75[_LOWER] = LAYOUT( 75[_LOWER] = LAYOUT(
76 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, 76 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
77 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_ASTR, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, 77 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_ASTR, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
78 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______, 78 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
79 _______, _______, _______, _______, _______, _______, _______, KC_KP_0, _______, _______, _______, _______ //This kp_0 is blocking the space key.... may want to do something about that. 79 _______, _______, _______, _______, _______, _______, _______, KC_KP_0, _______, _______, _______, _______ //This kp_0 is blocking the space key.... may want to do something about that.
80), 80),
81 81
82[_RAISE] = LAYOUT( 82[_RAISE] = LAYOUT(
83 _______, KC_PSCR, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, 83 _______, KC_PSCR, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX,
84 KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, 84 KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX,
85 _______, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX, 85 _______, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX,
86 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 86 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
87), 87),
88 88
89[_ADJUST] = LAYOUT( 89[_ADJUST] = LAYOUT(
90 TO_DV, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, 90 TO_DV, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
91 RGB_TOG, RGB_MOD, VK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, DVORAK, _______, _______, _______, 91 RGB_TOG, RGB_MOD, VK_TOGG, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, DVORAK, _______, _______, _______,
92 RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, 92 RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY,
93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ 93 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
94) 94)
95 95
diff --git a/keyboards/lily58/keymaps/muuko/config.h b/keyboards/lily58/keymaps/muuko/config.h
index 5d833d34d0..29a0801d2e 100644
--- a/keyboards/lily58/keymaps/muuko/config.h
+++ b/keyboards/lily58/keymaps/muuko/config.h
@@ -33,8 +33,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
33#endif 33#endif
34#define TAPPING_TERM 120 34#define TAPPING_TERM 120
35 35
36#ifdef COMBO_COUNT
37#undef COMBO_COUNT
38#endif
39#define COMBO_COUNT 2
40#define COMBO_TERM 20 36#define COMBO_TERM 20
diff --git a/keyboards/lily58/keymaps/muuko/keymap.c b/keyboards/lily58/keymaps/muuko/keymap.c
index c984202b9e..b5cc97ee38 100644
--- a/keyboards/lily58/keymaps/muuko/keymap.c
+++ b/keyboards/lily58/keymaps/muuko/keymap.c
@@ -36,7 +36,7 @@ static long int oled_timeout = 300000;
36enum combos { ESCAPE_COMBO, DELETE_COMBO }; 36enum combos { ESCAPE_COMBO, DELETE_COMBO };
37const uint16_t PROGMEM escape_combo[] = { KC_GRV, KC_1, COMBO_END }; 37const uint16_t PROGMEM escape_combo[] = { KC_GRV, KC_1, COMBO_END };
38const uint16_t PROGMEM delete_combo[] = { KC_DOT, KC_SLSH, COMBO_END }; 38const uint16_t PROGMEM delete_combo[] = { KC_DOT, KC_SLSH, COMBO_END };
39combo_t key_combos[COMBO_COUNT] = { 39combo_t key_combos[] = {
40 [ESCAPE_COMBO] = COMBO(escape_combo, KC_ESC), 40 [ESCAPE_COMBO] = COMBO(escape_combo, KC_ESC),
41 [DELETE_COMBO] = COMBO(delete_combo, KC_DEL) 41 [DELETE_COMBO] = COMBO(delete_combo, KC_DEL)
42}; 42};
diff --git a/keyboards/lily58/keymaps/narze/config.h b/keyboards/lily58/keymaps/narze/config.h
index 814338c18f..300321b3db 100644
--- a/keyboards/lily58/keymaps/narze/config.h
+++ b/keyboards/lily58/keymaps/narze/config.h
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29// #define EE_HANDS 29// #define EE_HANDS
30 30
31#define COMBO_TERM 20 31#define COMBO_TERM 20
32#define COMBO_COUNT 3
33 32
34#define PERMISSIVE_HOLD 33#define PERMISSIVE_HOLD
35 34
diff --git a/keyboards/makenova/omega/omega4/keymaps/default/config.h b/keyboards/makenova/omega/omega4/keymaps/default/config.h
index c60e064e21..067267521d 100644
--- a/keyboards/makenova/omega/omega4/keymaps/default/config.h
+++ b/keyboards/makenova/omega/omega4/keymaps/default/config.h
@@ -4,7 +4,6 @@
4#pragma once 4#pragma once
5 5
6#ifdef COMBO_ENABLE 6#ifdef COMBO_ENABLE
7# define COMBO_COUNT 4
8# define COMBO_TERM 50 7# define COMBO_TERM 50
9#endif 8#endif
10 9
diff --git a/keyboards/makenova/omega/omega4/keymaps/default/keymap.c b/keyboards/makenova/omega/omega4/keymaps/default/keymap.c
index 583d5a8a3d..cfe3233145 100644
--- a/keyboards/makenova/omega/omega4/keymaps/default/keymap.c
+++ b/keyboards/makenova/omega/omega4/keymaps/default/keymap.c
@@ -28,7 +28,7 @@ const uint16_t PROGMEM combo_ent[] = {ALT_D, GUI_F, COMBO_END};
28const uint16_t PROGMEM combo_tab[] = {KC_C, KC_V, COMBO_END}; 28const uint16_t PROGMEM combo_tab[] = {KC_C, KC_V, COMBO_END};
29const uint16_t PROGMEM combo_del[] = {KC_M, KC_COMM, COMBO_END}; 29const uint16_t PROGMEM combo_del[] = {KC_M, KC_COMM, COMBO_END};
30 30
31combo_t key_combos[COMBO_COUNT] = { 31combo_t key_combos[] = {
32 COMBO(combo_bspc,KC_BSPC), // 1 32 COMBO(combo_bspc,KC_BSPC), // 1
33 COMBO(combo_ent,KC_ENT), // 2 33 COMBO(combo_ent,KC_ENT), // 2
34 COMBO(combo_tab,KC_TAB), // 3 34 COMBO(combo_tab,KC_TAB), // 3
@@ -61,4 +61,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, 61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS,
62 QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 62 QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
63 ) 63 )
64}; \ No newline at end of file 64};
diff --git a/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/config.h b/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/config.h
index c60e064e21..067267521d 100644
--- a/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/config.h
+++ b/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/config.h
@@ -4,7 +4,6 @@
4#pragma once 4#pragma once
5 5
6#ifdef COMBO_ENABLE 6#ifdef COMBO_ENABLE
7# define COMBO_COUNT 4
8# define COMBO_TERM 50 7# define COMBO_TERM 50
9#endif 8#endif
10 9
diff --git a/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/keymap.c b/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/keymap.c
index 2cbc706ee4..b443a57a65 100644
--- a/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/keymap.c
+++ b/keyboards/makenova/omega/omega4/keymaps/default_10u_bar/keymap.c
@@ -29,7 +29,7 @@ const uint16_t PROGMEM combo_ent[] = {ALT_D, GUI_F, COMBO_END};
29const uint16_t PROGMEM combo_tab[] = {KC_C, KC_V, COMBO_END}; 29const uint16_t PROGMEM combo_tab[] = {KC_C, KC_V, COMBO_END};
30const uint16_t PROGMEM combo_del[] = {KC_M, KC_COMM, COMBO_END}; 30const uint16_t PROGMEM combo_del[] = {KC_M, KC_COMM, COMBO_END};
31 31
32combo_t key_combos[COMBO_COUNT] = { 32combo_t key_combos[] = {
33 COMBO(combo_bspc,KC_BSPC), // 1 33 COMBO(combo_bspc,KC_BSPC), // 1
34 COMBO(combo_ent,KC_ENT), // 2 34 COMBO(combo_ent,KC_ENT), // 2
35 COMBO(combo_tab,KC_TAB), // 3 35 COMBO(combo_tab,KC_TAB), // 3
@@ -62,4 +62,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, 62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS,
63 QK_BOOT 63 QK_BOOT
64 ) 64 )
65}; \ No newline at end of file 65};
diff --git a/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/config.h b/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/config.h
index c60e064e21..067267521d 100644
--- a/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/config.h
+++ b/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/config.h
@@ -4,7 +4,6 @@
4#pragma once 4#pragma once
5 5
6#ifdef COMBO_ENABLE 6#ifdef COMBO_ENABLE
7# define COMBO_COUNT 4
8# define COMBO_TERM 50 7# define COMBO_TERM 50
9#endif 8#endif
10 9
diff --git a/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/keymap.c b/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/keymap.c
index e5e9cc05a6..00c135b3f3 100644
--- a/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/keymap.c
+++ b/keyboards/makenova/omega/omega4/keymaps/default_6u_bar/keymap.c
@@ -28,7 +28,7 @@ const uint16_t PROGMEM combo_ent[] = {ALT_D, GUI_F, COMBO_END};
28const uint16_t PROGMEM combo_tab[] = {KC_C, KC_V, COMBO_END}; 28const uint16_t PROGMEM combo_tab[] = {KC_C, KC_V, COMBO_END};
29const uint16_t PROGMEM combo_del[] = {KC_M, KC_COMM, COMBO_END}; 29const uint16_t PROGMEM combo_del[] = {KC_M, KC_COMM, COMBO_END};
30 30
31combo_t key_combos[COMBO_COUNT] = { 31combo_t key_combos[] = {
32 COMBO(combo_bspc,KC_BSPC), // 1 32 COMBO(combo_bspc,KC_BSPC), // 1
33 COMBO(combo_ent,KC_ENT), // 2 33 COMBO(combo_ent,KC_ENT), // 2
34 COMBO(combo_tab,KC_TAB), // 3 34 COMBO(combo_tab,KC_TAB), // 3
@@ -61,4 +61,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS, 61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_TRNS,
62 QK_BOOT, KC_TRNS, KC_TRNS 62 QK_BOOT, KC_TRNS, KC_TRNS
63 ) 63 )
64}; \ No newline at end of file 64};
diff --git a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h
index 98f8d6b071..a7d11feca5 100644
--- a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h
+++ b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/config.h
@@ -2,6 +2,4 @@
2 2
3#define EE_HANDS 3#define EE_HANDS
4 4
5
6#define COMBO_COUNT 10
7#define COMBO_TERM 100 5#define COMBO_TERM 100
diff --git a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c
index e795e76207..33bfc7340e 100644
--- a/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c
+++ b/keyboards/maple_computing/minidox/keymaps/rsthd_combos/keymap.c
@@ -32,7 +32,7 @@ const uint16_t PROGMEM kz_combo[] = {KC_K, KC_Z, COMBO_END};
32const uint16_t PROGMEM dm_combo[] = {KC_D, KC_M, COMBO_END}; 32const uint16_t PROGMEM dm_combo[] = {KC_D, KC_M, COMBO_END};
33const uint16_t PROGMEM bx_combo[] = {KC_B, KC_X, COMBO_END}; 33const uint16_t PROGMEM bx_combo[] = {KC_B, KC_X, COMBO_END};
34 34
35combo_t key_combos[COMBO_COUNT] = { 35combo_t key_combos[] = {
36 [TOP_L] = COMBO(fk_combo, KC_ESC), 36 [TOP_L] = COMBO(fk_combo, KC_ESC),
37 [TOP_R] = COMBO(zl_combo, KC_AT), 37 [TOP_R] = COMBO(zl_combo, KC_AT),
38 [MID_L] = COMBO(hd_combo, KC_TAB), 38 [MID_L] = COMBO(hd_combo, KC_TAB),
diff --git a/keyboards/massdrop/alt/keymaps/b_/config.h b/keyboards/massdrop/alt/keymaps/b_/config.h
index d87bdade68..8607cd8186 100644
--- a/keyboards/massdrop/alt/keymaps/b_/config.h
+++ b/keyboards/massdrop/alt/keymaps/b_/config.h
@@ -37,7 +37,6 @@
37// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 37// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
38// #define ONESHOT_TIMEOUT 3000 // How long before oneshot times out 38// #define ONESHOT_TIMEOUT 3000 // How long before oneshot times out
39// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 39// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
40// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
41// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 40// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
42// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 41// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
43#define TAP_CODE_DELAY 25 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 42#define TAP_CODE_DELAY 25 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
diff --git a/keyboards/massdrop/alt/keymaps/pregame/config.h b/keyboards/massdrop/alt/keymaps/pregame/config.h
index 331b34c9b0..27bf1a8332 100644
--- a/keyboards/massdrop/alt/keymaps/pregame/config.h
+++ b/keyboards/massdrop/alt/keymaps/pregame/config.h
@@ -50,7 +50,6 @@
50// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 50// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
51// #define ONESHOT_TIMEOUT 3000 // How long before oneshot times out 51// #define ONESHOT_TIMEOUT 3000 // How long before oneshot times out
52// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 52// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
53// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
54// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 53// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
55// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 54// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
56// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 55// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
diff --git a/keyboards/massdrop/ctrl/keymaps/endgame/config.h b/keyboards/massdrop/ctrl/keymaps/endgame/config.h
index c8fa629552..34aa3cd666 100644
--- a/keyboards/massdrop/ctrl/keymaps/endgame/config.h
+++ b/keyboards/massdrop/ctrl/keymaps/endgame/config.h
@@ -34,7 +34,6 @@
34// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 34// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
35// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out 35// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out
36// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 36// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
37// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
38// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 37// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
39// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 38// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
40// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 39// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
diff --git a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h
index a17ad45c4c..a17e3e76bf 100644
--- a/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h
+++ b/keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h
@@ -52,7 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 52// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
53// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out 53// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out
54// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 54// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
55// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
56// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 55// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
57// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 56// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
58// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 57// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
diff --git a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h
index 2166f67e8c..0c08219181 100644
--- a/keyboards/massdrop/ctrl/keymaps/xanimos/config.h
+++ b/keyboards/massdrop/ctrl/keymaps/xanimos/config.h
@@ -50,7 +50,6 @@
50// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A. 50// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
51// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out 51// #define ONESHOT_TIMEOUT 300 // How long before oneshot times out
52// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered 52// #define ONESHOT_TAP_TOGGLE 2 // How many taps before oneshot toggle is triggered
53// #define COMBO_COUNT 2 // Set this to the number of combos that you're using in the Combo feature.
54// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined. 53// #define COMBO_TERM 200 // How long for the Combo keys to be detected. Defaults to TAPPING_TERM if not defined.
55// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. 54// #define TAP_CODE_DELAY 100 // Sets the delay between register_code and unregister_code, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
56// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher. 55// #define TAP_HOLD_CAPS_DELAY 80 // Sets the delay for Tap Hold keys (LT, MT) when using KC_CAPS_LOCK keycode, as this has some special handling on MacOS. The value is in milliseconds, and defaults to 80 ms if not defined. For macOS, you may want to set this to 200 or higher.
diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h
index 5da4e44855..0b552acfda 100644
--- a/keyboards/maxr1998/pulse4k/config.h
+++ b/keyboards/maxr1998/pulse4k/config.h
@@ -18,7 +18,6 @@
18#pragma once 18#pragma once
19 19
20/* Combo setup */ 20/* Combo setup */
21#define COMBO_COUNT 1
22#define COMBO_TERM 150 21#define COMBO_TERM 150
23 22
24/* RGB LED Setup */ 23/* RGB LED Setup */
diff --git a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
index 243a96ba74..b190159f24 100644
--- a/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
+++ b/keyboards/maxr1998/pulse4k/keymaps/default/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 ) 34 )
35}; 35};
36 36
37combo_t key_combos[COMBO_COUNT] = { 37combo_t key_combos[] = {
38 [LED_ADJUST] = COMBO_ACTION(led_adjust_combo) 38 [LED_ADJUST] = COMBO_ACTION(led_adjust_combo)
39}; 39};
40 40
diff --git a/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c b/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c
index 2aad1fa346..3f1dfbee3f 100644
--- a/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c
+++ b/keyboards/maxr1998/pulse4k/keymaps/maxr1998/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 ) 34 )
35}; 35};
36 36
37combo_t key_combos[COMBO_COUNT] = { 37combo_t key_combos[] = {
38 [LED_ADJUST] = COMBO_ACTION(led_adjust_combo) 38 [LED_ADJUST] = COMBO_ACTION(led_adjust_combo)
39}; 39};
40 40
diff --git a/keyboards/nimrod/keymaps/default/config.h b/keyboards/nimrod/keymaps/default/config.h
index 9684b5caed..8cafd470cd 100644
--- a/keyboards/nimrod/keymaps/default/config.h
+++ b/keyboards/nimrod/keymaps/default/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19# define COMBO_COUNT 3
20# define COMBO_TERM 150 19# define COMBO_TERM 150
21#endif 20#endif
diff --git a/keyboards/nimrod/keymaps/default/keymap.c b/keyboards/nimrod/keymaps/default/keymap.c
index 47b8f4ac78..a0a2aec6fe 100644
--- a/keyboards/nimrod/keymaps/default/keymap.c
+++ b/keyboards/nimrod/keymaps/default/keymap.c
@@ -51,7 +51,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
51const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 51const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
52const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 52const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
53 53
54combo_t key_combos[COMBO_COUNT] = { 54combo_t key_combos[] = {
55 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 55 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
56 [COMBO_ESC] = COMBO(combo_esc,KC_ESC), 56 [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
57 [COMBO_DEL] = COMBO(combo_del,KC_DEL), 57 [COMBO_DEL] = COMBO(combo_del,KC_DEL),
diff --git a/keyboards/nimrod/keymaps/default_center_space/config.h b/keyboards/nimrod/keymaps/default_center_space/config.h
index 9684b5caed..8cafd470cd 100644
--- a/keyboards/nimrod/keymaps/default_center_space/config.h
+++ b/keyboards/nimrod/keymaps/default_center_space/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19# define COMBO_COUNT 3
20# define COMBO_TERM 150 19# define COMBO_TERM 150
21#endif 20#endif
diff --git a/keyboards/nimrod/keymaps/default_center_space/keymap.c b/keyboards/nimrod/keymaps/default_center_space/keymap.c
index c87ab2cb46..c41f986c7c 100644
--- a/keyboards/nimrod/keymaps/default_center_space/keymap.c
+++ b/keyboards/nimrod/keymaps/default_center_space/keymap.c
@@ -59,7 +59,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
59const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 59const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
60const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 60const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
61 61
62combo_t key_combos[COMBO_COUNT] = { 62combo_t key_combos[] = {
63 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 63 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
64 [COMBO_ESC] = COMBO(combo_esc,KC_ESC), 64 [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
65 [COMBO_DEL] = COMBO(combo_del,KC_DEL), 65 [COMBO_DEL] = COMBO(combo_del,KC_DEL),
diff --git a/keyboards/nimrod/keymaps/default_left_space/config.h b/keyboards/nimrod/keymaps/default_left_space/config.h
index 9684b5caed..8cafd470cd 100644
--- a/keyboards/nimrod/keymaps/default_left_space/config.h
+++ b/keyboards/nimrod/keymaps/default_left_space/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19# define COMBO_COUNT 3
20# define COMBO_TERM 150 19# define COMBO_TERM 150
21#endif 20#endif
diff --git a/keyboards/nimrod/keymaps/default_left_space/keymap.c b/keyboards/nimrod/keymaps/default_left_space/keymap.c
index c1bbd129d9..cf1346cb7f 100644
--- a/keyboards/nimrod/keymaps/default_left_space/keymap.c
+++ b/keyboards/nimrod/keymaps/default_left_space/keymap.c
@@ -59,7 +59,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
59const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 59const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
60const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 60const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
61 61
62combo_t key_combos[COMBO_COUNT] = { 62combo_t key_combos[] = {
63 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 63 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
64 [COMBO_ESC] = COMBO(combo_esc,KC_ESC), 64 [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
65 [COMBO_DEL] = COMBO(combo_del,KC_DEL), 65 [COMBO_DEL] = COMBO(combo_del,KC_DEL),
diff --git a/keyboards/nimrod/keymaps/default_right_space/config.h b/keyboards/nimrod/keymaps/default_right_space/config.h
index 9684b5caed..8cafd470cd 100644
--- a/keyboards/nimrod/keymaps/default_right_space/config.h
+++ b/keyboards/nimrod/keymaps/default_right_space/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19# define COMBO_COUNT 3
20# define COMBO_TERM 150 19# define COMBO_TERM 150
21#endif 20#endif
diff --git a/keyboards/nimrod/keymaps/default_right_space/keymap.c b/keyboards/nimrod/keymaps/default_right_space/keymap.c
index 4bcd41c57b..dcc9358610 100644
--- a/keyboards/nimrod/keymaps/default_right_space/keymap.c
+++ b/keyboards/nimrod/keymaps/default_right_space/keymap.c
@@ -59,7 +59,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
59const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 59const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
60const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 60const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
61 61
62combo_t key_combos[COMBO_COUNT] = { 62combo_t key_combos[] = {
63 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 63 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
64 [COMBO_ESC] = COMBO(combo_esc,KC_ESC), 64 [COMBO_ESC] = COMBO(combo_esc,KC_ESC),
65 [COMBO_DEL] = COMBO(combo_del,KC_DEL), 65 [COMBO_DEL] = COMBO(combo_del,KC_DEL),
diff --git a/keyboards/nimrod/keymaps/default_split_space/config.h b/keyboards/nimrod/keymaps/default_split_space/config.h
index ad0cd6ffdd..8cafd470cd 100644
--- a/keyboards/nimrod/keymaps/default_split_space/config.h
+++ b/keyboards/nimrod/keymaps/default_split_space/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19# define COMBO_COUNT 5
20# define COMBO_TERM 150 19# define COMBO_TERM 150
21#endif 20#endif
diff --git a/keyboards/nimrod/keymaps/default_split_space/keymap.c b/keyboards/nimrod/keymaps/default_split_space/keymap.c
index e0667e4b5a..2b8c5f8125 100644
--- a/keyboards/nimrod/keymaps/default_split_space/keymap.c
+++ b/keyboards/nimrod/keymaps/default_split_space/keymap.c
@@ -69,7 +69,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
69const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 69const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
70const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 70const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
71 71
72combo_t key_combos[COMBO_COUNT] = { 72combo_t key_combos[] = {
73 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 73 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
74 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 74 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
75 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 75 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/orthodox/keymaps/shaymdev/config.h b/keyboards/orthodox/keymaps/shaymdev/config.h
index 7852878ee7..79d7cddec0 100644
--- a/keyboards/orthodox/keymaps/shaymdev/config.h
+++ b/keyboards/orthodox/keymaps/shaymdev/config.h
@@ -48,6 +48,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
48 } 48 }
49#endif 49#endif
50 50
51#define COMBO_COUNT 1
52
53#define TAPPING_TERM 220 51#define TAPPING_TERM 220
diff --git a/keyboards/orthodox/keymaps/shaymdev/keymap.c b/keyboards/orthodox/keymaps/shaymdev/keymap.c
index 495a61c2e4..24fca7661e 100644
--- a/keyboards/orthodox/keymaps/shaymdev/keymap.c
+++ b/keyboards/orthodox/keymaps/shaymdev/keymap.c
@@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21 21
22#include QMK_KEYBOARD_H 22#include QMK_KEYBOARD_H
23 23
24enum orthodox_layers 24enum orthodox_layers
25{ 25{
26 _DVORAK, 26 _DVORAK,
27 _QWERTY, 27 _QWERTY,
@@ -30,14 +30,14 @@ enum orthodox_layers
30 _ADJUST, 30 _ADJUST,
31}; 31};
32 32
33enum combos //match combo_count in config.h 33enum combos
34{ 34{
35 EU_ENT, 35 EU_ENT,
36}; 36};
37 37
38const uint16_t PROGMEM eu_combo[] = {KC_E, KC_U, COMBO_END}; 38const uint16_t PROGMEM eu_combo[] = {KC_E, KC_U, COMBO_END};
39 39
40combo_t key_combos[COMBO_COUNT] = { 40combo_t key_combos[] = {
41 [EU_ENT] = COMBO_ACTION(eu_combo), 41 [EU_ENT] = COMBO_ACTION(eu_combo),
42}; 42};
43 43
@@ -66,33 +66,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
66 66
67 67
68[_DVORAK] = LAYOUT( 68[_DVORAK] = LAYOUT(
69 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, 69 KC_ESC, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
70 KC_TAB, GUI_T(KC_A), ALT_T(KC_O), KC_E, KC_U, KC_I, KC_ENT, KC_LALT, KC_DEL, KC_LGUI, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, 70 KC_TAB, GUI_T(KC_A), ALT_T(KC_O), KC_E, KC_U, KC_I, KC_ENT, KC_LALT, KC_DEL, KC_LGUI, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS,
71 KC_EQL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, TT(LOWER), KC_LSFT, KC_LCTL, KC_BSPC, ALT_T(KC_SPC), TT(RAISE), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS 71 KC_EQL, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, TT(LOWER), KC_LSFT, KC_LCTL, KC_BSPC, ALT_T(KC_SPC), TT(RAISE), KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLS
72), 72),
73 73
74[_QWERTY] = LAYOUT( 74[_QWERTY] = LAYOUT(
75 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 75 KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
76 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, 76 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
77 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT 77 KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT
78), 78),
79 79
80[_LOWER] = LAYOUT( 80[_LOWER] = LAYOUT(
81 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______, 81 _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_AMPR, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
82 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_ASTR, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, 82 _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_ASTR, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
83 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______, _______, _______, _______, _______, KC_KP_0, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______ 83 _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_GRV, _______, _______, _______, _______, _______, KC_KP_0, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______
84), 84),
85 85
86[_RAISE] = LAYOUT( 86[_RAISE] = LAYOUT(
87 _______, KC_PSCR, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, 87 _______, KC_PSCR, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX,
88 KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, 88 KC_CAPS, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, _______, _______, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX,
89 _______, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX 89 _______, KC_NUM, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, XXXXXXX
90), 90),
91 91
92[_ADJUST] = LAYOUT( 92[_ADJUST] = LAYOUT(
93 TO_DV, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLEP, 93 TO_DV, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLEP,
94 RGB_TOG, RGB_MOD, VK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, QWERTY, DVORAK, _______, _______, _______, 94 RGB_TOG, RGB_MOD, VK_TOGG, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, _______, AG_SWAP, QWERTY, DVORAK, _______, _______, _______,
95 RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY 95 RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
96) 96)
97 97
98 98
diff --git a/keyboards/pierce/keymaps/durken1/config.h b/keyboards/pierce/keymaps/durken1/config.h
index 8ff2df3709..ecc59f31bd 100644
--- a/keyboards/pierce/keymaps/durken1/config.h
+++ b/keyboards/pierce/keymaps/durken1/config.h
@@ -25,7 +25,6 @@
25#define PERMISSIVE_HOLD 25#define PERMISSIVE_HOLD
26 26
27// Combo settings 27// Combo settings
28#define COMBO_COUNT 3
29#define COMBO_TERM 35 28#define COMBO_TERM 35
30 29
31#ifdef PS2_DRIVER_USART 30#ifdef PS2_DRIVER_USART
diff --git a/keyboards/pierce/keymaps/durken1/keymap.c b/keyboards/pierce/keymaps/durken1/keymap.c
index a4f77753a8..5bc2f4d307 100644
--- a/keyboards/pierce/keymaps/durken1/keymap.c
+++ b/keyboards/pierce/keymaps/durken1/keymap.c
@@ -17,25 +17,25 @@
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18#include "keymap_swedish.h" 18#include "keymap_swedish.h"
19 19
20enum layers { 20enum layers {
21 BASE, 21 BASE,
22 MBO, 22 MBO,
23 SYM, 23 SYM,
24 NUM, 24 NUM,
25 FN 25 FN
26}; 26};
27 27
28enum combos { 28enum combos {
29 WF_ARNG, 29 WF_ARNG,
30 EI_ADIA, 30 EI_ADIA,
31 UK_ODIA 31 UK_ODIA
32}; 32};
33 33
34#if defined PS2_MOUSE_ENABLE 34#if defined PS2_MOUSE_ENABLE
35#include "ps2_mouse.h" 35#include "ps2_mouse.h"
36#endif 36#endif
37 37
38#if defined AUTO_BUTTONS && defined PS2_MOUSE_ENABLE 38#if defined AUTO_BUTTONS && defined PS2_MOUSE_ENABLE
39 39
40static uint16_t auto_buttons_timer; 40static uint16_t auto_buttons_timer;
41extern int tp_buttons; // mousekey button state set in action.c and used in ps2_mouse.c 41extern int tp_buttons; // mousekey button state set in action.c and used in ps2_mouse.c
@@ -82,7 +82,7 @@ const uint16_t PROGMEM arng_combo[] = {ALT_R, SFT_S, COMBO_END};
82const uint16_t PROGMEM adia_combo[] = {SFT_E, ALT_I, COMBO_END}; 82const uint16_t PROGMEM adia_combo[] = {SFT_E, ALT_I, COMBO_END};
83const uint16_t PROGMEM odia_combo[] = {SE_U, SE_K, COMBO_END}; 83const uint16_t PROGMEM odia_combo[] = {SE_U, SE_K, COMBO_END};
84 84
85combo_t key_combos[COMBO_COUNT] = { 85combo_t key_combos[] = {
86 [WF_ARNG] = COMBO(arng_combo, SE_ARNG), 86 [WF_ARNG] = COMBO(arng_combo, SE_ARNG),
87 [EI_ADIA] = COMBO(adia_combo, SE_ADIA), 87 [EI_ADIA] = COMBO(adia_combo, SE_ADIA),
88 [UK_ODIA] = COMBO(odia_combo, SE_ODIA) 88 [UK_ODIA] = COMBO(odia_combo, SE_ODIA)
diff --git a/keyboards/planck/keymaps/antosha417/keymap.c b/keyboards/planck/keymaps/antosha417/keymap.c
index 2a6caca201..06bc0b8657 100644
--- a/keyboards/planck/keymaps/antosha417/keymap.c
+++ b/keyboards/planck/keymaps/antosha417/keymap.c
@@ -397,11 +397,8 @@ enum combo_events {
397 DELQ_COMBO, 397 DELQ_COMBO,
398 SAVEQ_COMBO, 398 SAVEQ_COMBO,
399 BSPCQ_COMBO, 399 BSPCQ_COMBO,
400 BSPCWQ_COMBO, 400 BSPCWQ_COMBO
401
402 COMBO_LENGTH
403}; 401};
404uint16_t COMBO_LEN = COMBO_LENGTH;
405 402
406const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END}; 403const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END};
407const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END}; 404const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END};
@@ -448,5 +445,3 @@ combo_t key_combos[] = {
448 [SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE), 445 [SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE),
449 [BSPCWQ_COMBO] = COMBO(bspcwq_combo, A(KC_BSPC)), 446 [BSPCWQ_COMBO] = COMBO(bspcwq_combo, A(KC_BSPC)),
450}; 447};
451
452
diff --git a/keyboards/planck/keymaps/ariccb/keymap.c b/keyboards/planck/keymaps/ariccb/keymap.c
index 4237955bb5..5caaf1922e 100644
--- a/keyboards/planck/keymaps/ariccb/keymap.c
+++ b/keyboards/planck/keymaps/ariccb/keymap.c
@@ -511,10 +511,8 @@ enum combo_events {
511 CSS_STYLE, 511 CSS_STYLE,
512 HTML_GENERIC_TAG, 512 HTML_GENERIC_TAG,
513 CTLRGHT, 513 CTLRGHT,
514 CTLLEFT, 514 CTLLEFT
515 COMBO_LENGTH
516}; 515};
517uint16_t COMBO_LEN = COMBO_LENGTH; // remove the COMBO_COUNT define and use this instead!
518 516
519const uint16_t PROGMEM email_combo[] = {KC_E, KC_M, COMBO_END}; 517const uint16_t PROGMEM email_combo[] = {KC_E, KC_M, COMBO_END};
520const uint16_t PROGMEM email_work_combo[] = {KC_E, KC_K, COMBO_END}; 518const uint16_t PROGMEM email_work_combo[] = {KC_E, KC_K, COMBO_END};
diff --git a/keyboards/planck/keymaps/dvz/config.h b/keyboards/planck/keymaps/dvz/config.h
index bcdc3e57d6..ab925009ed 100644
--- a/keyboards/planck/keymaps/dvz/config.h
+++ b/keyboards/planck/keymaps/dvz/config.h
@@ -50,8 +50,6 @@
50// Most tactile encoders have detents every 4 stages 50// Most tactile encoders have detents every 4 stages
51#define ENCODER_RESOLUTION 4 51#define ENCODER_RESOLUTION 4
52 52
53#define COMBO_COUNT 4
54
55#ifdef AUDIO_ENABLE 53#ifdef AUDIO_ENABLE
56 #define DAC_SAMPLE_MAX 65535/2 54 #define DAC_SAMPLE_MAX 65535/2
57#endif 55#endif
diff --git a/keyboards/planck/keymaps/dvz/keymap.c b/keyboards/planck/keymaps/dvz/keymap.c
index d69bf18620..ff57d28cf8 100644
--- a/keyboards/planck/keymaps/dvz/keymap.c
+++ b/keyboards/planck/keymaps/dvz/keymap.c
@@ -30,7 +30,7 @@ const uint16_t PROGMEM oe_combo[] = {KC_O, KC_E, COMBO_END};
30const uint16_t PROGMEM ue_combo[] = {KC_U, KC_E, COMBO_END}; 30const uint16_t PROGMEM ue_combo[] = {KC_U, KC_E, COMBO_END};
31const uint16_t PROGMEM sz_combo[] = {KC_S, DE_Z, COMBO_END}; 31const uint16_t PROGMEM sz_combo[] = {KC_S, DE_Z, COMBO_END};
32 32
33combo_t key_combos[COMBO_COUNT] = { 33combo_t key_combos[] = {
34 [AE] = COMBO(ae_combo, DE_AE), 34 [AE] = COMBO(ae_combo, DE_AE),
35 [OE] = COMBO(oe_combo, DE_OE), 35 [OE] = COMBO(oe_combo, DE_OE),
36 [UE] = COMBO(ue_combo, DE_UE), 36 [UE] = COMBO(ue_combo, DE_UE),
diff --git a/keyboards/planck/keymaps/narze/config.h b/keyboards/planck/keymaps/narze/config.h
index fddd9cd376..a7fccc4187 100644
--- a/keyboards/planck/keymaps/narze/config.h
+++ b/keyboards/planck/keymaps/narze/config.h
@@ -24,7 +24,6 @@
24#define TAPPING_TERM 100 24#define TAPPING_TERM 100
25 25
26#define COMBO_TERM 20 26#define COMBO_TERM 20
27#define COMBO_COUNT 1
28 27
29#define PERMISSIVE_HOLD 28#define PERMISSIVE_HOLD
30 29
diff --git a/keyboards/planck/keymaps/rootiest/config.h b/keyboards/planck/keymaps/rootiest/config.h
index 1cca7e5ba9..3d2d3f38a6 100644
--- a/keyboards/planck/keymaps/rootiest/config.h
+++ b/keyboards/planck/keymaps/rootiest/config.h
@@ -111,7 +111,6 @@
111/* 111/*
112 * COMBO-KEY options 112 * COMBO-KEY options
113 */ 113 */
114#define COMBO_COUNT 2
115#define COMBO_TERM 300 114#define COMBO_TERM 300
116/* 115/*
117 * MACRO per-key options 116 * MACRO per-key options
diff --git a/keyboards/planck/keymaps/rootiest/keymap.c b/keyboards/planck/keymaps/rootiest/keymap.c
index ce3b69ed1f..7e3b8af367 100644
--- a/keyboards/planck/keymaps/rootiest/keymap.c
+++ b/keyboards/planck/keymaps/rootiest/keymap.c
@@ -168,7 +168,7 @@ enum combo_events { ZC_COPY, XV_PASTE };
168const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; 168const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
169const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; 169const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
170 170
171combo_t key_combos[COMBO_COUNT] = { 171combo_t key_combos[] = {
172 [ZC_COPY] = COMBO_ACTION(copy_combo), 172 [ZC_COPY] = COMBO_ACTION(copy_combo),
173 [XV_PASTE] = COMBO_ACTION(paste_combo), 173 [XV_PASTE] = COMBO_ACTION(paste_combo),
174}; 174};
diff --git a/keyboards/preonic/keymaps/brauner/keymap.c b/keyboards/preonic/keymaps/brauner/keymap.c
index 24a350e6d4..398abfa741 100644
--- a/keyboards/preonic/keymaps/brauner/keymap.c
+++ b/keyboards/preonic/keymaps/brauner/keymap.c
@@ -56,17 +56,14 @@ enum combos {
56 COMBO_LBRC_RBRC, /* [|] */ 56 COMBO_LBRC_RBRC, /* [|] */
57 COMBO_LCBR_RCBR, /* {|} */ 57 COMBO_LCBR_RCBR, /* {|} */
58 COMBO_LT_GT, /* <|> */ 58 COMBO_LT_GT, /* <|> */
59 COMBO_MAX,
60}; 59};
61 60
62uint16_t COMBO_LEN = COMBO_MAX;
63
64const uint16_t PROGMEM combo_lprn_rprn[] = {KC_LPRN, KC_RPRN, COMBO_END}; 61const uint16_t PROGMEM combo_lprn_rprn[] = {KC_LPRN, KC_RPRN, COMBO_END};
65const uint16_t PROGMEM combo_lbrc_rbrc[] = {KC_LBRC, KC_RBRC, COMBO_END}; 62const uint16_t PROGMEM combo_lbrc_rbrc[] = {KC_LBRC, KC_RBRC, COMBO_END};
66const uint16_t PROGMEM combo_lcbr_rcbr[] = {KC_LCBR, KC_RCBR, COMBO_END}; 63const uint16_t PROGMEM combo_lcbr_rcbr[] = {KC_LCBR, KC_RCBR, COMBO_END};
67const uint16_t PROGMEM combo_lt_gt[] = {KC_LT, KC_GT, COMBO_END}; 64const uint16_t PROGMEM combo_lt_gt[] = {KC_LT, KC_GT, COMBO_END};
68 65
69combo_t key_combos[COMBO_MAX] = { 66combo_t key_combos[] = {
70 [COMBO_LPRN_RPRN] = COMBO_ACTION(combo_lprn_rprn), 67 [COMBO_LPRN_RPRN] = COMBO_ACTION(combo_lprn_rprn),
71 [COMBO_LBRC_RBRC] = COMBO_ACTION(combo_lbrc_rbrc), 68 [COMBO_LBRC_RBRC] = COMBO_ACTION(combo_lbrc_rbrc),
72 [COMBO_LCBR_RCBR] = COMBO_ACTION(combo_lcbr_rcbr), 69 [COMBO_LCBR_RCBR] = COMBO_ACTION(combo_lcbr_rcbr),
diff --git a/keyboards/program_yoink/ortho/keymaps/default/config.h b/keyboards/program_yoink/ortho/keymaps/default/config.h
index ea7075aecb..eb4161b940 100644
--- a/keyboards/program_yoink/ortho/keymaps/default/config.h
+++ b/keyboards/program_yoink/ortho/keymaps/default/config.h
@@ -20,6 +20,5 @@
20#define TAPPING_TERM 200 20#define TAPPING_TERM 200
21 21
22#ifdef COMBO_ENABLE 22#ifdef COMBO_ENABLE
23# define COMBO_COUNT 10
24# define COMBO_TERM 60 23# define COMBO_TERM 60
25#endif \ No newline at end of file 24#endif
diff --git a/keyboards/program_yoink/ortho/keymaps/default/keymap.c b/keyboards/program_yoink/ortho/keymaps/default/keymap.c
index 6719a38b0a..35f58efc4f 100644
--- a/keyboards/program_yoink/ortho/keymaps/default/keymap.c
+++ b/keyboards/program_yoink/ortho/keymaps/default/keymap.c
@@ -66,7 +66,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
66const uint16_t PROGMEM combo_ent[] = {KC_DOT, KC_SLSH, COMBO_END}; 66const uint16_t PROGMEM combo_ent[] = {KC_DOT, KC_SLSH, COMBO_END};
67 67
68 68
69combo_t key_combos[COMBO_COUNT] = { 69combo_t key_combos[] = {
70 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 70 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
71 71
72}; 72};
diff --git a/keyboards/program_yoink/ortho/keymaps/ortho_split/config.h b/keyboards/program_yoink/ortho/keymaps/ortho_split/config.h
index ea7075aecb..eb4161b940 100644
--- a/keyboards/program_yoink/ortho/keymaps/ortho_split/config.h
+++ b/keyboards/program_yoink/ortho/keymaps/ortho_split/config.h
@@ -20,6 +20,5 @@
20#define TAPPING_TERM 200 20#define TAPPING_TERM 200
21 21
22#ifdef COMBO_ENABLE 22#ifdef COMBO_ENABLE
23# define COMBO_COUNT 10
24# define COMBO_TERM 60 23# define COMBO_TERM 60
25#endif \ No newline at end of file 24#endif
diff --git a/keyboards/program_yoink/ortho/keymaps/ortho_split/keymap.c b/keyboards/program_yoink/ortho/keymaps/ortho_split/keymap.c
index 837dc1e754..7e14d95efc 100644
--- a/keyboards/program_yoink/ortho/keymaps/ortho_split/keymap.c
+++ b/keyboards/program_yoink/ortho/keymaps/ortho_split/keymap.c
@@ -66,7 +66,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
66const uint16_t PROGMEM combo_ent[] = {KC_K, KC_L, COMBO_END}; 66const uint16_t PROGMEM combo_ent[] = {KC_K, KC_L, COMBO_END};
67 67
68 68
69combo_t key_combos[COMBO_COUNT] = { 69combo_t key_combos[] = {
70 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 70 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
71 71
72}; 72};
diff --git a/keyboards/program_yoink/staggered/keymaps/default/config.h b/keyboards/program_yoink/staggered/keymaps/default/config.h
index c4b4470e96..8759b84226 100644
--- a/keyboards/program_yoink/staggered/keymaps/default/config.h
+++ b/keyboards/program_yoink/staggered/keymaps/default/config.h
@@ -20,6 +20,5 @@
20#define TAPPING_TERM 200 20#define TAPPING_TERM 200
21 21
22#ifdef COMBO_ENABLE 22#ifdef COMBO_ENABLE
23# define COMBO_COUNT 10
24# define COMBO_TERM 200 23# define COMBO_TERM 200
25#endif \ No newline at end of file 24#endif
diff --git a/keyboards/program_yoink/staggered/keymaps/default/keymap.c b/keyboards/program_yoink/staggered/keymaps/default/keymap.c
index 8780cad06e..aa7a288705 100644
--- a/keyboards/program_yoink/staggered/keymaps/default/keymap.c
+++ b/keyboards/program_yoink/staggered/keymaps/default/keymap.c
@@ -68,7 +68,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
68const uint16_t PROGMEM combo_slsh[] = {MT(MOD_RSFT, KC_DOT), KC_COMM, COMBO_END}; 68const uint16_t PROGMEM combo_slsh[] = {MT(MOD_RSFT, KC_DOT), KC_COMM, COMBO_END};
69 69
70 70
71combo_t key_combos[COMBO_COUNT] = { 71combo_t key_combos[] = {
72 [COMBO_SLSH] = COMBO(combo_slsh,KC_SLSH), 72 [COMBO_SLSH] = COMBO(combo_slsh,KC_SLSH),
73 73
74}; 74};
diff --git a/keyboards/program_yoink/staggered/keymaps/split_bar/config.h b/keyboards/program_yoink/staggered/keymaps/split_bar/config.h
index 842b3b8011..8759b84226 100644
--- a/keyboards/program_yoink/staggered/keymaps/split_bar/config.h
+++ b/keyboards/program_yoink/staggered/keymaps/split_bar/config.h
@@ -20,6 +20,5 @@
20#define TAPPING_TERM 200 20#define TAPPING_TERM 200
21 21
22#ifdef COMBO_ENABLE 22#ifdef COMBO_ENABLE
23# define COMBO_COUNT 10
24# define COMBO_TERM 200 23# define COMBO_TERM 200
25#endif 24#endif
diff --git a/keyboards/program_yoink/staggered/keymaps/split_bar/keymap.c b/keyboards/program_yoink/staggered/keymaps/split_bar/keymap.c
index d37722e7bc..1053fb7aa4 100644
--- a/keyboards/program_yoink/staggered/keymaps/split_bar/keymap.c
+++ b/keyboards/program_yoink/staggered/keymaps/split_bar/keymap.c
@@ -66,7 +66,7 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
66const uint16_t PROGMEM combo_slsh[] = {MT(MOD_RSFT, KC_DOT), KC_COMM, COMBO_END}; 66const uint16_t PROGMEM combo_slsh[] = {MT(MOD_RSFT, KC_DOT), KC_COMM, COMBO_END};
67 67
68 68
69combo_t key_combos[COMBO_COUNT] = { 69combo_t key_combos[] = {
70 [COMBO_SLSH] = COMBO(combo_slsh,KC_SLSH), 70 [COMBO_SLSH] = COMBO(combo_slsh,KC_SLSH),
71 71
72}; 72};
diff --git a/keyboards/projectcain/relic/keymaps/default/config.h b/keyboards/projectcain/relic/keymaps/default/config.h
index ebe839c4c4..c1d6e02d40 100644
--- a/keyboards/projectcain/relic/keymaps/default/config.h
+++ b/keyboards/projectcain/relic/keymaps/default/config.h
@@ -17,7 +17,6 @@
17#pragma once 17#pragma once
18 18
19#define ENCODER_RESOLUTION 2 19#define ENCODER_RESOLUTION 2
20#define COMBO_COUNT 6
21#define COMBO_TERM 50 20#define COMBO_TERM 50
22#define QUICK_TAP_TERM 0 21#define QUICK_TAP_TERM 0
23#define DISABLE_LEADER 22#define DISABLE_LEADER
diff --git a/keyboards/projectcain/relic/keymaps/default/keymap.c b/keyboards/projectcain/relic/keymaps/default/keymap.c
index f2e61c4b1c..58d36d4e27 100644
--- a/keyboards/projectcain/relic/keymaps/default/keymap.c
+++ b/keyboards/projectcain/relic/keymaps/default/keymap.c
@@ -25,22 +25,22 @@ enum layers{
25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 25const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
26 [BASE] = LAYOUT_all( 26 [BASE] = LAYOUT_all(
27 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 27 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
28 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, 28 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE,
29 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 29 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
30 MO(1), KC_LCTL, MO(1), SFT_T(KC_BSPC), KC_SPACE, KC_SPACE, MO(2), KC_LALT, MO(2) 30 MO(1), KC_LCTL, MO(1), SFT_T(KC_BSPC), KC_SPACE, KC_SPACE, MO(2), KC_LALT, MO(2)
31 ), 31 ),
32 32
33 [NUM] = LAYOUT_all( 33 [NUM] = LAYOUT_all(
34 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_MINUS, KC_BSPC, 34 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_MINUS, KC_BSPC,
35 KC_A, KC_S, KC_D, KC_F, KC_G, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_PLUS, 35 KC_A, KC_S, KC_D, KC_F, KC_G, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_PLUS,
36 SC_LCPO, KC_X, KC_C, KC_V, KC_B, KC_0, KC_1, KC_2, KC_3, SC_RCPC, 36 SC_LCPO, KC_X, KC_C, KC_V, KC_B, KC_0, KC_1, KC_2, KC_3, SC_RCPC,
37 MO(1), KC_LCTL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2) 37 MO(1), KC_LCTL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2)
38 ), 38 ),
39 39
40 [SYM] = LAYOUT_all( 40 [SYM] = LAYOUT_all(
41 S(KC_GRV), KC_GRV, KC_TRNS, S(KC_BSLS), KC_BSLS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), QK_BOOT, 41 S(KC_GRV), KC_GRV, KC_TRNS, S(KC_BSLS), KC_BSLS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), QK_BOOT,
42 S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), 42 S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN),
43 S(KC_LBRC), KC_LBRC, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_RBRC, S(KC_RBRC), 43 S(KC_LBRC), KC_LBRC, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_RBRC, S(KC_RBRC),
44 MO(1), KC_LCTL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2) 44 MO(1), KC_LCTL, KC_TRNS, SFT_T(KC_BSPC), KC_TRNS, KC_SPACE, KC_TRNS, KC_LALT, MO(2)
45 ), 45 ),
46 46
@@ -64,7 +64,7 @@ const uint16_t PROGMEM qw_combo[] = {KC_Q, KC_W, COMBO_END};
64const uint16_t PROGMEM as_combo[] = {KC_A, KC_S, COMBO_END}; 64const uint16_t PROGMEM as_combo[] = {KC_A, KC_S, COMBO_END};
65const uint16_t PROGMEM fj_combo[] = {KC_F, KC_J, COMBO_END}; 65const uint16_t PROGMEM fj_combo[] = {KC_F, KC_J, COMBO_END};
66 66
67combo_t key_combos[COMBO_COUNT] = { 67combo_t key_combos[] = {
68 [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), 68 [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)),
69 [JK_MINUS] = COMBO(jk_combo, KC_MINUS), 69 [JK_MINUS] = COMBO(jk_combo, KC_MINUS),
70 [LQUOTE_ENTER] = COMBO(lquote_combo, KC_ENTER), 70 [LQUOTE_ENTER] = COMBO(lquote_combo, KC_ENTER),
diff --git a/keyboards/projectcain/vault35/keymaps/default/config.h b/keyboards/projectcain/vault35/keymaps/default/config.h
index 885d5ad9cb..672d4a1dde 100644
--- a/keyboards/projectcain/vault35/keymaps/default/config.h
+++ b/keyboards/projectcain/vault35/keymaps/default/config.h
@@ -16,6 +16,5 @@
16 16
17#pragma once 17#pragma once
18 18
19#define COMBO_COUNT 2
20#define COMBO_TERM 50 19#define COMBO_TERM 50
21#define QUICK_TAP_TERM 0 20#define QUICK_TAP_TERM 0
diff --git a/keyboards/projectcain/vault35/keymaps/default/keymap.c b/keyboards/projectcain/vault35/keymaps/default/keymap.c
index 4244edd999..5bb3a622b2 100644
--- a/keyboards/projectcain/vault35/keymaps/default/keymap.c
+++ b/keyboards/projectcain/vault35/keymaps/default/keymap.c
@@ -1,18 +1,18 @@
1 1
2 /* Copyright 2021 projectcain 2 /* Copyright 2021 projectcain
3 * 3 *
4 * This program is free software: you can redistribute it and/or modify 4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or 6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version. 7 * (at your option) any later version.
8 * 8 *
9 * This program is distributed in the hope that it will be useful, 9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>. 15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18#include QMK_KEYBOARD_H 18#include QMK_KEYBOARD_H
@@ -28,24 +28,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
28 [BASE] = LAYOUT_split_4space( 28 [BASE] = LAYOUT_split_4space(
29 29
30 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, 30 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
31 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE, 31 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOTE,
32 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 32 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
33 LALT(KC_TAB), MO(1), SFT_T(KC_BSPC), KC_SPACE, MO(2), QK_BOOT 33 LALT(KC_TAB), MO(1), SFT_T(KC_BSPC), KC_SPACE, MO(2), QK_BOOT
34 ), 34 ),
35 35
36 [NUM] = LAYOUT_split_4space( 36 [NUM] = LAYOUT_split_4space(
37 37
38 KC_PGUP, KC_HOME, KC_UP, KC_END, KC_WBAK, KC_PSLS, KC_7, KC_8, KC_9, KC_PMNS, KC_DEL, 38 KC_PGUP, KC_HOME, KC_UP, KC_END, KC_WBAK, KC_PSLS, KC_7, KC_8, KC_9, KC_PMNS, KC_DEL,
39 KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_WFWD, KC_PAST, KC_4, KC_5, KC_6, KC_PPLS, 39 KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_WFWD, KC_PAST, KC_4, KC_5, KC_6, KC_PPLS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT, 40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_F4), RALT(KC_F4) 41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_F4), RALT(KC_F4)
42 ), 42 ),
43 43
44 [SYM] = LAYOUT_split_4space( 44 [SYM] = LAYOUT_split_4space(
45 45
46 S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T), 46 S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T),
47 S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), 47 S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN),
48 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, 48 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS 49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS
50 ), 50 ),
51 51
@@ -60,7 +60,7 @@ enum combos {
60const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; 60const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END};
61const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 61const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
62 62
63combo_t key_combos[COMBO_COUNT] = { 63combo_t key_combos[] = {
64 [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), 64 [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)),
65 [JK_MINUS] = COMBO(jk_combo, KC_MINUS) 65 [JK_MINUS] = COMBO(jk_combo, KC_MINUS)
66}; 66};
diff --git a/keyboards/projectcain/vault45/keymaps/default/config.h b/keyboards/projectcain/vault45/keymaps/default/config.h
index 4a98bb89d4..6fd8ebf9d5 100644
--- a/keyboards/projectcain/vault45/keymaps/default/config.h
+++ b/keyboards/projectcain/vault45/keymaps/default/config.h
@@ -1,21 +1,20 @@
1 /* Copyright 2021 projectcain 1 /* Copyright 2021 projectcain
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or 5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version. 6 * (at your option) any later version.
7 * 7 *
8 * This program is distributed in the hope that it will be useful, 8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 * 12 *
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#pragma once 17#pragma once
18 18
19#define COMBO_COUNT 2
20#define COMBO_TERM 50 19#define COMBO_TERM 50
21#define QUICK_TAP_TERM 0 20#define QUICK_TAP_TERM 0
diff --git a/keyboards/projectcain/vault45/keymaps/default/keymap.c b/keyboards/projectcain/vault45/keymaps/default/keymap.c
index ec8de8b604..87baccad04 100644
--- a/keyboards/projectcain/vault45/keymaps/default/keymap.c
+++ b/keyboards/projectcain/vault45/keymaps/default/keymap.c
@@ -1,14 +1,14 @@
1 /* Copyright 2021 projectcain 1 /* Copyright 2021 projectcain
2 * 2 *
3 * This program is free software: you can redistribute it and/or modify 3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by 4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or 5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version. 6 * (at your option) any later version.
7 * 7 *
8 * This program is distributed in the hope that it will be useful, 8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details. 11 * GNU General Public License for more details.
12 * */ 12 * */
13 13
14#include QMK_KEYBOARD_H 14#include QMK_KEYBOARD_H
@@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
34 KC_LBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT, KC_RBRC, 34 KC_LBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_PDOT, KC_RBRC,
35 KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_RCTL), RALT(KC_F4), RALT(KC_F4) 35 KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, S(KC_RCTL), RALT(KC_F4), RALT(KC_F4)
36 ), 36 ),
37 37
38 [SYM] = LAYOUT_split_4space( 38 [SYM] = LAYOUT_split_4space(
39 RGB_TOG, S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T), KC_TRNS, 39 RGB_TOG, S(KC_GRV), KC_GRV, KC_BSLS, S(KC_BSLS), KC_TRNS, KC_TRNS, S(KC_MINS), KC_EQL, KC_TRNS, C(KC_W), C(KC_T), KC_TRNS,
40 KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), KC_TRNS, 40 KC_TRNS, S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), KC_SCLN, S(KC_SCLN), KC_TRNS,
@@ -53,7 +53,7 @@ enum combos {
53const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END}; 53const uint16_t PROGMEM kl_combo[] = {KC_K, KC_L, COMBO_END};
54const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END}; 54const uint16_t PROGMEM jk_combo[] = {KC_J, KC_K, COMBO_END};
55 55
56combo_t key_combos[COMBO_COUNT] = { 56combo_t key_combos[] = {
57 [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)), 57 [KL_SLSH] = COMBO(kl_combo, S(KC_SLSH)),
58 [JK_MINUS] = COMBO(jk_combo, KC_MINUS) 58 [JK_MINUS] = COMBO(jk_combo, KC_MINUS)
59}; 59};
diff --git a/keyboards/q4z/keymaps/default/config.h b/keyboards/q4z/keymaps/default/config.h
index c129199230..88392557de 100644
--- a/keyboards/q4z/keymaps/default/config.h
+++ b/keyboards/q4z/keymaps/default/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19#define COMBO_COUNT 5
20#define COMBO_TERM 200 19#define COMBO_TERM 200
21#endif 20#endif
diff --git a/keyboards/q4z/keymaps/default/keymap.c b/keyboards/q4z/keymaps/default/keymap.c
index 45fe8c2dd5..4a7c28acb1 100644
--- a/keyboards/q4z/keymaps/default/keymap.c
+++ b/keyboards/q4z/keymaps/default/keymap.c
@@ -74,7 +74,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_A, KC_S, COMBO_END};
74const uint16_t PROGMEM combo_esc[] = {KC_Q, KC_W, COMBO_END}; 74const uint16_t PROGMEM combo_esc[] = {KC_Q, KC_W, COMBO_END};
75const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 75const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
76 76
77combo_t key_combos[COMBO_COUNT] = { 77combo_t key_combos[] = {
78 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 78 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
79 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 79 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
80 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 80 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/q4z/keymaps/rjboone/config.h b/keyboards/q4z/keymaps/rjboone/config.h
index 7530b24262..9264f33bae 100644
--- a/keyboards/q4z/keymaps/rjboone/config.h
+++ b/keyboards/q4z/keymaps/rjboone/config.h
@@ -18,6 +18,4 @@
18#undef TAPPING_TERM 18#undef TAPPING_TERM
19#define TAPPING_TERM 300 19#define TAPPING_TERM 300
20 20
21#undef COMBO_COUNT
22#define COMBO_COUNT 5
23#define COMBO_TERM 50 21#define COMBO_TERM 50
diff --git a/keyboards/q4z/keymaps/rjboone/keymap.c b/keyboards/q4z/keymaps/rjboone/keymap.c
index 8e764e4735..c54ec014ec 100644
--- a/keyboards/q4z/keymaps/rjboone/keymap.c
+++ b/keyboards/q4z/keymaps/rjboone/keymap.c
@@ -80,7 +80,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_A, KC_S, COMBO_END};
80const uint16_t PROGMEM combo_esc[] = {KC_Q, KC_W, COMBO_END}; 80const uint16_t PROGMEM combo_esc[] = {KC_Q, KC_W, COMBO_END};
81const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 81const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
82 82
83combo_t key_combos[COMBO_COUNT] = { 83combo_t key_combos[] = {
84 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 84 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
85 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 85 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
86 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 86 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/eggman/keymaps/default/config.h b/keyboards/qpockets/eggman/keymaps/default/config.h
index 90d12ee7da..cc4b487fe8 100644
--- a/keyboards/qpockets/eggman/keymaps/default/config.h
+++ b/keyboards/qpockets/eggman/keymaps/default/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif 25#endif
diff --git a/keyboards/qpockets/eggman/keymaps/default/keymap.c b/keyboards/qpockets/eggman/keymaps/default/keymap.c
index 13a34c14b0..9e6ec192c2 100644
--- a/keyboards/qpockets/eggman/keymaps/default/keymap.c
+++ b/keyboards/qpockets/eggman/keymaps/default/keymap.c
@@ -84,7 +84,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
84const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 84const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
85const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 85const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
86 86
87combo_t key_combos[COMBO_COUNT] = { 87combo_t key_combos[] = {
88 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 88 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
89 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 89 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
90 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 90 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/space_space/rev1/keymaps/big_space/config.h b/keyboards/qpockets/space_space/rev1/keymaps/big_space/config.h
index fd24168f47..40d4cc44c4 100644
--- a/keyboards/qpockets/space_space/rev1/keymaps/big_space/config.h
+++ b/keyboards/qpockets/space_space/rev1/keymaps/big_space/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif \ No newline at end of file 25#endif
diff --git a/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c b/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c
index 9755cdec3f..1bbdd632e8 100644
--- a/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c
+++ b/keyboards/qpockets/space_space/rev1/keymaps/big_space/keymap.c
@@ -120,7 +120,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
120const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 120const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
121const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 121const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
122 122
123combo_t key_combos[COMBO_COUNT] = { 123combo_t key_combos[] = {
124 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 124 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
125 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 125 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
126 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 126 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/space_space/rev1/keymaps/default/config.h b/keyboards/qpockets/space_space/rev1/keymaps/default/config.h
index fd24168f47..40d4cc44c4 100644
--- a/keyboards/qpockets/space_space/rev1/keymaps/default/config.h
+++ b/keyboards/qpockets/space_space/rev1/keymaps/default/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif \ No newline at end of file 25#endif
diff --git a/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c b/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c
index 09b74316a8..4b0262d4ed 100644
--- a/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c
+++ b/keyboards/qpockets/space_space/rev1/keymaps/default/keymap.c
@@ -122,7 +122,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
122const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 122const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
123const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 123const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
124 124
125combo_t key_combos[COMBO_COUNT] = { 125combo_t key_combos[] = {
126 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 126 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
127 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 127 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
128 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 128 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/space_space/rev2/keymaps/big_space/config.h b/keyboards/qpockets/space_space/rev2/keymaps/big_space/config.h
index fd24168f47..40d4cc44c4 100644
--- a/keyboards/qpockets/space_space/rev2/keymaps/big_space/config.h
+++ b/keyboards/qpockets/space_space/rev2/keymaps/big_space/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif \ No newline at end of file 25#endif
diff --git a/keyboards/qpockets/space_space/rev2/keymaps/big_space/keymap.c b/keyboards/qpockets/space_space/rev2/keymaps/big_space/keymap.c
index afde5f7b20..3c8b875d47 100644
--- a/keyboards/qpockets/space_space/rev2/keymaps/big_space/keymap.c
+++ b/keyboards/qpockets/space_space/rev2/keymaps/big_space/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -52,14 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
52 KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, 52 KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
53 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, 53 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
54 KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS, 54 KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS,
55 KC_TRNS, KC_TRNS, KC_TRNS 55 KC_TRNS, KC_TRNS, KC_TRNS
56 ), 56 ),
57 57
58 [_NAV] = LAYOUT_big_space( 58 [_NAV] = LAYOUT_big_space(
59 KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC, 59 KC_HOME, KC_UP, KC_END, KC_PGUP, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSPC,
60 KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB, 60 KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TAB,
61 KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_ENT, 61 KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_ENT,
62 KC_TRNS, KC_TRNS, KC_TRNS 62 KC_TRNS, KC_TRNS, KC_TRNS
63 ), 63 ),
64}; 64};
65 65
@@ -71,7 +71,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
71const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 71const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
72const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 72const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
73 73
74combo_t key_combos[COMBO_COUNT] = { 74combo_t key_combos[] = {
75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
76 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 76 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/space_space/rev2/keymaps/default/config.h b/keyboards/qpockets/space_space/rev2/keymaps/default/config.h
index 7fdb8504a6..e398cb5b2d 100644
--- a/keyboards/qpockets/space_space/rev2/keymaps/default/config.h
+++ b/keyboards/qpockets/space_space/rev2/keymaps/default/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif \ No newline at end of file 25#endif
diff --git a/keyboards/qpockets/space_space/rev2/keymaps/default/keymap.c b/keyboards/qpockets/space_space/rev2/keymaps/default/keymap.c
index 7d47cf4f8d..faf9c0f3d4 100644
--- a/keyboards/qpockets/space_space/rev2/keymaps/default/keymap.c
+++ b/keyboards/qpockets/space_space/rev2/keymaps/default/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -46,14 +46,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
46 KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, 46 KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
47 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, 47 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
48 KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS, 48 KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
50 ), 50 ),
51 51
52 [_NAV] = LAYOUT_default( 52 [_NAV] = LAYOUT_default(
53 KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC, 53 KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC,
54 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F7, KC_TAB, 54 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_F4, KC_F5, KC_F6, KC_F7, KC_TAB,
55 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_LCAP, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT, 55 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_LCAP, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT,
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
57 ), 57 ),
58}; 58};
59 59
@@ -67,7 +67,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
67const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 67const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
68const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 68const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
69 69
70combo_t key_combos[COMBO_COUNT] = { 70combo_t key_combos[] = {
71 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 71 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
72 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 72 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
73 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 73 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/config.h b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/config.h
index 31291ecc8f..98cdcbcdb1 100644
--- a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/config.h
+++ b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 25 24# define COMBO_TERM 25
26#endif 25#endif
diff --git a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/keymap.c b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/keymap.c
index c163c6eac9..1c3cdfc61f 100644
--- a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/keymap.c
+++ b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -41,19 +41,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
41 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 41 KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
42 KC_PSCR, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, KC_MPLY 42 KC_PSCR, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, KC_MPLY
43 ), 43 ),
44 44
45 [_SYM] = LAYOUT_default( 45 [_SYM] = LAYOUT_default(
46 KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, 46 KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
47 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, 47 KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
48 KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS, 48 KC_PIPE, KC_BSLS, KC_LPRN, KC_LBRC, KC_SCLN, KC_TRNS, KC_COLN, KC_RBRC, KC_RPRN, KC_PLUS, KC_UNDS,
49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 49 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
50 ), 50 ),
51 51
52 [_NAV] = LAYOUT_default( 52 [_NAV] = LAYOUT_default(
53 KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC, 53 KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_BSPC,
54 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TAB, 54 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TAB,
55 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT, 55 KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_CAPS, KC_F9, KC_F10, KC_F11, KC_F12, KC_ENT,
56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS 56 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
57 ), 57 ),
58}; 58};
59 59
@@ -65,7 +65,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
65const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 65const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
66const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 66const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
67 67
68combo_t key_combos[COMBO_COUNT] = { 68combo_t key_combos[] = {
69 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 69 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
70 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 70 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
71 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 71 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/qpockets/wanten/keymaps/2u_bars/config.h b/keyboards/qpockets/wanten/keymaps/2u_bars/config.h
index 072519ff6c..77051be69b 100644
--- a/keyboards/qpockets/wanten/keymaps/2u_bars/config.h
+++ b/keyboards/qpockets/wanten/keymaps/2u_bars/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 25 24# define COMBO_TERM 25
26#endif 25#endif
diff --git a/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c b/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c
index d8c75895bf..3322fc8923 100644
--- a/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c
+++ b/keyboards/qpockets/wanten/keymaps/2u_bars/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -21,7 +21,7 @@ enum layers{
21 _GAME, 21 _GAME,
22 _SYM, 22 _SYM,
23 _NAV 23 _NAV
24 24
25}; 25};
26 26
27enum combo_events { 27enum combo_events {
@@ -45,14 +45,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 KC_MPRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 45 KC_MPRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
46 SNIP, KC_LGUI, KC_LCTL, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, TG(_GAME), KC_MUTE 46 SNIP, KC_LGUI, KC_LCTL, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, TG(_GAME), KC_MUTE
47 ), 47 ),
48 48
49 [_GAME] = LAYOUT_2u_bars( 49 [_GAME] = LAYOUT_2u_bars(
50 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_Y, KC_U, KC_I, KC_O, KC_P, 50 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_Y, KC_U, KC_I, KC_O, KC_P,
51 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT, 51 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT,
52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
53 KC_LCTL, KC_LGUI, KC_LALT, KC_ESC, KC_SPC, KC_GUP_BSPC, KC_RALT, KC_TRNS, KC_BSPC 53 KC_LCTL, KC_LGUI, KC_LALT, KC_ESC, KC_SPC, KC_GUP_BSPC, KC_RALT, KC_TRNS, KC_BSPC
54 ), 54 ),
55 55
56 [_SYM] = LAYOUT_2u_bars( 56 [_SYM] = LAYOUT_2u_bars(
57 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, 57 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
58 KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, 58 KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
@@ -93,7 +93,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
93const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 93const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
94const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 94const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
95 95
96combo_t key_combos[COMBO_COUNT] = { 96combo_t key_combos[] = {
97 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 97 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
98 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 98 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
99 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 99 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
@@ -101,4 +101,3 @@ combo_t key_combos[COMBO_COUNT] = {
101 [COMBO_DEL] = COMBO(combo_del,KC_DEL) 101 [COMBO_DEL] = COMBO(combo_del,KC_DEL)
102}; 102};
103#endif 103#endif
104
diff --git a/keyboards/qpockets/wanten/keymaps/625_bar/config.h b/keyboards/qpockets/wanten/keymaps/625_bar/config.h
index 072519ff6c..77051be69b 100644
--- a/keyboards/qpockets/wanten/keymaps/625_bar/config.h
+++ b/keyboards/qpockets/wanten/keymaps/625_bar/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 25 24# define COMBO_TERM 25
26#endif 25#endif
diff --git a/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c b/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c
index c9dcfd4af5..1bd1be2f66 100644
--- a/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c
+++ b/keyboards/qpockets/wanten/keymaps/625_bar/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -21,7 +21,7 @@ enum layers{
21 _GAME, 21 _GAME,
22 _SYM, 22 _SYM,
23 _NAV 23 _NAV
24 24
25}; 25};
26 26
27enum combo_events { 27enum combo_events {
@@ -45,14 +45,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 KC_MPRV, KC_DZ, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 45 KC_MPRV, KC_DZ, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
46 SNIP, KC_LGUI, KC_LCTL, KC_UP_SPC, KC_RALT, TG(_GAME) 46 SNIP, KC_LGUI, KC_LCTL, KC_UP_SPC, KC_RALT, TG(_GAME)
47 ), 47 ),
48 48
49 [_GAME] = LAYOUT_625_bar( 49 [_GAME] = LAYOUT_625_bar(
50 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_Y, KC_U, KC_I, KC_O, KC_P, 50 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_Y, KC_U, KC_I, KC_O, KC_P,
51 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT, 51 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT,
52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
53 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_TRNS 53 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_TRNS
54 ), 54 ),
55 55
56 [_SYM] = LAYOUT_625_bar( 56 [_SYM] = LAYOUT_625_bar(
57 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, 57 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
58 KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, 58 KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
@@ -93,7 +93,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
93const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 93const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
94const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 94const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
95 95
96combo_t key_combos[COMBO_COUNT] = { 96combo_t key_combos[] = {
97 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 97 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
98 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 98 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
99 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 99 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
@@ -101,4 +101,3 @@ combo_t key_combos[COMBO_COUNT] = {
101 [COMBO_DEL] = COMBO(combo_del,KC_DEL) 101 [COMBO_DEL] = COMBO(combo_del,KC_DEL)
102}; 102};
103#endif 103#endif
104
diff --git a/keyboards/qpockets/wanten/keymaps/default/config.h b/keyboards/qpockets/wanten/keymaps/default/config.h
index 072519ff6c..77051be69b 100644
--- a/keyboards/qpockets/wanten/keymaps/default/config.h
+++ b/keyboards/qpockets/wanten/keymaps/default/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 25 24# define COMBO_TERM 25
26#endif 25#endif
diff --git a/keyboards/qpockets/wanten/keymaps/default/keymap.c b/keyboards/qpockets/wanten/keymaps/default/keymap.c
index cafcd61d31..13d8a30146 100644
--- a/keyboards/qpockets/wanten/keymaps/default/keymap.c
+++ b/keyboards/qpockets/wanten/keymaps/default/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -21,7 +21,7 @@ enum layers{
21 _GAME, 21 _GAME,
22 _SYM, 22 _SYM,
23 _NAV 23 _NAV
24 24
25}; 25};
26 26
27enum combo_events { 27enum combo_events {
@@ -45,14 +45,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
45 KC_MPRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 45 KC_MPRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
46 SNIP, KC_LGUI, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, TG(_GAME), KC_MUTE 46 SNIP, KC_LGUI, KC_LCTL, KC_DN_BSPC, KC_UP_SPC, KC_RALT, TG(_GAME), KC_MUTE
47 ), 47 ),
48 48
49 [_GAME] = LAYOUT_default( 49 [_GAME] = LAYOUT_default(
50 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_Y, KC_U, KC_I, KC_O, KC_P, 50 KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_Y, KC_U, KC_I, KC_O, KC_P,
51 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT, 51 KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LSFT, KC_H, KC_SJ, KC_K, KC_L, KC_QUOT,
52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, 52 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
53 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_GUP_BSPC, KC_RALT, KC_TRNS, KC_BSPC 53 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_GUP_BSPC, KC_RALT, KC_TRNS, KC_BSPC
54 ), 54 ),
55 55
56 [_SYM] = LAYOUT_default( 56 [_SYM] = LAYOUT_default(
57 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, 57 KC_TRNS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0,
58 KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, 58 KC_TRNS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_TRNS, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS,
@@ -93,7 +93,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
93const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 93const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
94const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 94const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
95 95
96combo_t key_combos[COMBO_COUNT] = { 96combo_t key_combos[] = {
97 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 97 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
98 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 98 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
99 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 99 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
@@ -101,4 +101,3 @@ combo_t key_combos[COMBO_COUNT] = {
101 [COMBO_DEL] = COMBO(combo_del,KC_DEL) 101 [COMBO_DEL] = COMBO(combo_del,KC_DEL)
102}; 102};
103#endif 103#endif
104
diff --git a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h b/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h
index 7e523656b8..e4ece8082b 100644
--- a/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h
+++ b/keyboards/rgbkb/zen/rev1/keymaps/cwebster2/config.h
@@ -17,11 +17,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
17 17
18#pragma once 18#pragma once
19 19
20
21#define EE_HANDS
22
23#ifdef COMBO_ENABLE
24 #define COMBO_COUNT 2
25#endif
26
27#define EE_HANDS 20#define EE_HANDS
diff --git a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
index e5b897dc62..c382eedddc 100644
--- a/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
+++ b/keyboards/splitkb/aurora/sweep/keymaps/flinguenheld/features/combo.c
@@ -96,12 +96,7 @@ enum combos {
96 SHIFT_LEFT, 96 SHIFT_LEFT,
97 ALTGR_LEFT, 97 ALTGR_LEFT,
98 CONTROL_SHIFT_LEFT, 98 CONTROL_SHIFT_LEFT,
99
100 /* Just to replace the define in config.h */
101 COMBO_LENGTH,
102}; 99};
103uint16_t COMBO_LEN = COMBO_LENGTH;
104
105 100
106/* Sequences fo keys */ 101/* Sequences fo keys */
107const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END}; 102const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END};
diff --git a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c
index 294d6a278f..902cb33b54 100644
--- a/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c
+++ b/keyboards/splitkb/kyria/keymaps/cameronjlarsen/keymap.c
@@ -176,11 +176,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
176}; 176};
177 177
178enum combo_events { 178enum combo_events {
179 CAPS_COMBO, 179 CAPS_COMBO
180 // Other combos...
181 COMBO_LENGTH
182}; 180};
183uint16_t COMBO_LEN = COMBO_LENGTH;
184 181
185const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END}; 182const uint16_t PROGMEM caps_combo[] = {KC_F, KC_J, COMBO_END};
186 183
diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/config.h b/keyboards/splitkb/kyria/keymaps/cwebster2/config.h
index 1fa51f23f1..e6fc5e2d0f 100644
--- a/keyboards/splitkb/kyria/keymaps/cwebster2/config.h
+++ b/keyboards/splitkb/kyria/keymaps/cwebster2/config.h
@@ -42,10 +42,6 @@
42 //#define RGBLIGHT_STARTUP_ANIMATION 42 //#define RGBLIGHT_STARTUP_ANIMATION
43#endif 43#endif
44 44
45#ifdef COMBO_ENABLE
46 #define COMBO_COUNT 5
47#endif
48
49#define EE_HANDS 45#define EE_HANDS
50 46
51//#define DEBUG_MATRIX_SCAN_RATE 47//#define DEBUG_MATRIX_SCAN_RATE
diff --git a/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c b/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c
index 9c31e2617c..3a5aa429d5 100644
--- a/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c
+++ b/keyboards/splitkb/kyria/keymaps/cwebster2/keymap.c
@@ -40,7 +40,7 @@ const uint16_t PROGMEM curly_combo[] = { KC_F, KC_P, COMBO_END };
40const uint16_t PROGMEM parens_combo[] = { KC_P, KC_B, COMBO_END }; 40const uint16_t PROGMEM parens_combo[] = { KC_P, KC_B, COMBO_END };
41const uint16_t PROGMEM square_combo[] = { KC_D, KC_V, COMBO_END }; 41const uint16_t PROGMEM square_combo[] = { KC_D, KC_V, COMBO_END };
42 42
43combo_t key_combos[COMBO_COUNT] = { 43combo_t key_combos[] = {
44 [ZX_COPY] = COMBO(copy_combo, LCTL_T(KC_C)), 44 [ZX_COPY] = COMBO(copy_combo, LCTL_T(KC_C)),
45 [CV_PASTE] = COMBO(paste_combo, LCTL_T(KC_V)), 45 [CV_PASTE] = COMBO(paste_combo, LCTL_T(KC_V)),
46 [PB_PARENS] = COMBO(parens_combo, KC_LPRN), 46 [PB_PARENS] = COMBO(parens_combo, KC_LPRN),
diff --git a/keyboards/synapse/keymaps/7u_space/config.h b/keyboards/synapse/keymaps/7u_space/config.h
index 7fdb8504a6..e398cb5b2d 100644
--- a/keyboards/synapse/keymaps/7u_space/config.h
+++ b/keyboards/synapse/keymaps/7u_space/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif \ No newline at end of file 25#endif
diff --git a/keyboards/synapse/keymaps/7u_space/keymap.c b/keyboards/synapse/keymaps/7u_space/keymap.c
index 1791db3abe..b530e91c78 100644
--- a/keyboards/synapse/keymaps/7u_space/keymap.c
+++ b/keyboards/synapse/keymaps/7u_space/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -67,7 +67,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
67const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 67const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
68const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 68const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
69 69
70combo_t key_combos[COMBO_COUNT] = { 70combo_t key_combos[] = {
71 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 71 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
72 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 72 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
73 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 73 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/synapse/keymaps/default/config.h b/keyboards/synapse/keymaps/default/config.h
index 7fdb8504a6..e398cb5b2d 100644
--- a/keyboards/synapse/keymaps/default/config.h
+++ b/keyboards/synapse/keymaps/default/config.h
@@ -21,6 +21,5 @@
21 21
22/*Combos*/ 22/*Combos*/
23#ifdef COMBO_ENABLE 23#ifdef COMBO_ENABLE
24# define COMBO_COUNT 5
25# define COMBO_TERM 50 24# define COMBO_TERM 50
26#endif \ No newline at end of file 25#endif
diff --git a/keyboards/synapse/keymaps/default/keymap.c b/keyboards/synapse/keymaps/default/keymap.c
index adaa51bddb..3428272ee9 100644
--- a/keyboards/synapse/keymaps/default/keymap.c
+++ b/keyboards/synapse/keymaps/default/keymap.c
@@ -13,7 +13,7 @@
13 * You should have received a copy of the GNU General Public License 13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>. 14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */ 15 */
16 16
17#include QMK_KEYBOARD_H 17#include QMK_KEYBOARD_H
18 18
19enum layers{ 19enum layers{
@@ -67,7 +67,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_S, KC_D, COMBO_END};
67const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END}; 67const uint16_t PROGMEM combo_esc[] = {KC_T, KC_Y, COMBO_END};
68const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END}; 68const uint16_t PROGMEM combo_del[] = {KC_Q, KC_W, COMBO_END};
69 69
70combo_t key_combos[COMBO_COUNT] = { 70combo_t key_combos[] = {
71 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 71 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
72 [COMBO_ENT] = COMBO(combo_ent,KC_ENT), 72 [COMBO_ENT] = COMBO(combo_ent,KC_ENT),
73 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 73 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/adalyn/keymaps/default/config.h b/keyboards/tominabox1/adalyn/keymaps/default/config.h
index d8b87f9478..efedd99714 100644
--- a/keyboards/tominabox1/adalyn/keymaps/default/config.h
+++ b/keyboards/tominabox1/adalyn/keymaps/default/config.h
@@ -16,6 +16,5 @@
16#pragma once 16#pragma once
17 17
18#ifdef COMBO_ENABLE 18#ifdef COMBO_ENABLE
19# define COMBO_COUNT 5
20# define COMBO_TERM 200 19# define COMBO_TERM 200
21#endif 20#endif
diff --git a/keyboards/tominabox1/adalyn/keymaps/default/keymap.c b/keyboards/tominabox1/adalyn/keymaps/default/keymap.c
index 21cc74fa9f..b05dc48703 100644
--- a/keyboards/tominabox1/adalyn/keymaps/default/keymap.c
+++ b/keyboards/tominabox1/adalyn/keymaps/default/keymap.c
@@ -61,7 +61,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
61const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 61const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
62const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 62const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
63 63
64combo_t key_combos[COMBO_COUNT] = { 64combo_t key_combos[] = {
65 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 65 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
66 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 66 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
67 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 67 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/config.h b/keyboards/tominabox1/le_chiffre/keymaps/default/config.h
index 67b668d4bb..8f0df1847a 100644
--- a/keyboards/tominabox1/le_chiffre/keymaps/default/config.h
+++ b/keyboards/tominabox1/le_chiffre/keymaps/default/config.h
@@ -15,5 +15,4 @@
15 */ 15 */
16#pragma once 16#pragma once
17 17
18#define COMBO_COUNT 5
19#define COMBO_TERM 30 18#define COMBO_TERM 30
diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c
index c9bc442a67..e9205d94b3 100644
--- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c
+++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c
@@ -80,7 +80,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
80const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 80const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
81const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 81const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
82 82
83combo_t key_combos[COMBO_COUNT] = { 83combo_t key_combos[] = {
84 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 84 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
85 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 85 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
86 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 86 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/qaz/keymaps/default/config.h b/keyboards/tominabox1/qaz/keymaps/default/config.h
index 12482ff6fe..4e92aadf64 100644
--- a/keyboards/tominabox1/qaz/keymaps/default/config.h
+++ b/keyboards/tominabox1/qaz/keymaps/default/config.h
@@ -1,6 +1,5 @@
1#pragma once 1#pragma once
2 2
3#ifdef COMBO_ENABLE 3#ifdef COMBO_ENABLE
4# define COMBO_COUNT 5
5# define COMBO_TERM 200 4# define COMBO_TERM 200
6#endif 5#endif
diff --git a/keyboards/tominabox1/qaz/keymaps/default/keymap.c b/keyboards/tominabox1/qaz/keymaps/default/keymap.c
index cf721292a6..3e0b763f9e 100644
--- a/keyboards/tominabox1/qaz/keymaps/default/keymap.c
+++ b/keyboards/tominabox1/qaz/keymaps/default/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
46const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 46const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
47const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 47const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
48 48
49combo_t key_combos[COMBO_COUNT] = { 49combo_t key_combos[] = {
50 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 50 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
51 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 51 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
52 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 52 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/qaz/keymaps/default_big_space/config.h b/keyboards/tominabox1/qaz/keymaps/default_big_space/config.h
index 12482ff6fe..4e92aadf64 100644
--- a/keyboards/tominabox1/qaz/keymaps/default_big_space/config.h
+++ b/keyboards/tominabox1/qaz/keymaps/default_big_space/config.h
@@ -1,6 +1,5 @@
1#pragma once 1#pragma once
2 2
3#ifdef COMBO_ENABLE 3#ifdef COMBO_ENABLE
4# define COMBO_COUNT 5
5# define COMBO_TERM 200 4# define COMBO_TERM 200
6#endif 5#endif
diff --git a/keyboards/tominabox1/qaz/keymaps/default_big_space/keymap.c b/keyboards/tominabox1/qaz/keymaps/default_big_space/keymap.c
index 13f105add0..ecf28ca9c7 100644
--- a/keyboards/tominabox1/qaz/keymaps/default_big_space/keymap.c
+++ b/keyboards/tominabox1/qaz/keymaps/default_big_space/keymap.c
@@ -46,7 +46,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
46const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 46const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
47const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 47const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
48 48
49combo_t key_combos[COMBO_COUNT] = { 49combo_t key_combos[] = {
50 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 50 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
51 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 51 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
52 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 52 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/underscore33/rev1/keymaps/default/config.h b/keyboards/tominabox1/underscore33/rev1/keymaps/default/config.h
index 82cbcc42cb..cb5bb474b2 100644
--- a/keyboards/tominabox1/underscore33/rev1/keymaps/default/config.h
+++ b/keyboards/tominabox1/underscore33/rev1/keymaps/default/config.h
@@ -16,5 +16,4 @@
16#pragma once 16#pragma once
17 17
18/* Combos */ 18/* Combos */
19#define COMBO_COUNT 5
20#define COMBO_TERM 50 19#define COMBO_TERM 50
diff --git a/keyboards/tominabox1/underscore33/rev1/keymaps/default/keymap.c b/keyboards/tominabox1/underscore33/rev1/keymaps/default/keymap.c
index 517f0aafda..cf4eca1a4b 100644
--- a/keyboards/tominabox1/underscore33/rev1/keymaps/default/keymap.c
+++ b/keyboards/tominabox1/underscore33/rev1/keymaps/default/keymap.c
@@ -71,7 +71,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
73 73
74combo_t key_combos[COMBO_COUNT] = { 74combo_t key_combos[] = {
75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/config.h b/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/config.h
index 82cbcc42cb..cb5bb474b2 100644
--- a/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/config.h
+++ b/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/config.h
@@ -16,5 +16,4 @@
16#pragma once 16#pragma once
17 17
18/* Combos */ 18/* Combos */
19#define COMBO_COUNT 5
20#define COMBO_TERM 50 19#define COMBO_TERM 50
diff --git a/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/keymap.c b/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/keymap.c
index 6b5eda2b45..59bff4940b 100644
--- a/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/keymap.c
+++ b/keyboards/tominabox1/underscore33/rev1/keymaps/default_big_space/keymap.c
@@ -71,7 +71,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
73 73
74combo_t key_combos[COMBO_COUNT] = { 74combo_t key_combos[] = {
75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/underscore33/rev2/keymaps/default/config.h b/keyboards/tominabox1/underscore33/rev2/keymaps/default/config.h
index 82cbcc42cb..cb5bb474b2 100644
--- a/keyboards/tominabox1/underscore33/rev2/keymaps/default/config.h
+++ b/keyboards/tominabox1/underscore33/rev2/keymaps/default/config.h
@@ -16,5 +16,4 @@
16#pragma once 16#pragma once
17 17
18/* Combos */ 18/* Combos */
19#define COMBO_COUNT 5
20#define COMBO_TERM 50 19#define COMBO_TERM 50
diff --git a/keyboards/tominabox1/underscore33/rev2/keymaps/default/keymap.c b/keyboards/tominabox1/underscore33/rev2/keymaps/default/keymap.c
index 2a415b8e94..be37e1bdd2 100644
--- a/keyboards/tominabox1/underscore33/rev2/keymaps/default/keymap.c
+++ b/keyboards/tominabox1/underscore33/rev2/keymaps/default/keymap.c
@@ -71,7 +71,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
73 73
74combo_t key_combos[COMBO_COUNT] = { 74combo_t key_combos[] = {
75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/config.h b/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/config.h
index 82cbcc42cb..cb5bb474b2 100644
--- a/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/config.h
+++ b/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/config.h
@@ -16,5 +16,4 @@
16#pragma once 16#pragma once
17 17
18/* Combos */ 18/* Combos */
19#define COMBO_COUNT 5
20#define COMBO_TERM 50 19#define COMBO_TERM 50
diff --git a/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/keymap.c b/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/keymap.c
index 6b5eda2b45..59bff4940b 100644
--- a/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/keymap.c
+++ b/keyboards/tominabox1/underscore33/rev2/keymaps/default_big_space/keymap.c
@@ -71,7 +71,7 @@ const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END};
71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; 71const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END};
72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; 72const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END};
73 73
74combo_t key_combos[COMBO_COUNT] = { 74combo_t key_combos[] = {
75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC), 75 [COMBO_BSPC] = COMBO(combo_bspc,KC_BSPC),
76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC), 76 [COMBO_NUMBAK] = COMBO(combo_numbak,KC_BSPC),
77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB), 77 [COMBO_TAB] = COMBO(combo_tab,KC_TAB),
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/config.h b/keyboards/xiudi/xd75/keymaps/4sstylz/config.h
index bb939188ca..6241444a84 100644
--- a/keyboards/xiudi/xd75/keymaps/4sstylz/config.h
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/config.h
@@ -24,7 +24,6 @@
24#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_HOME 24#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_HOME
25#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_END 25#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_END
26 26
27#define COMBO_COUNT 1
28#define TAPPING_TERM 175 27#define TAPPING_TERM 175
29 28
30#define BACKLIGHT_BREATHING 29#define BACKLIGHT_BREATHING
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c b/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c
index f21aa059b4..5222497937 100644
--- a/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c
@@ -38,7 +38,7 @@ enum combo_events {
38}; 38};
39 39
40const uint16_t PROGMEM lock_combo[] = {KC_J, KC_K, KC_L, KC_SCLN, COMBO_END}; 40const uint16_t PROGMEM lock_combo[] = {KC_J, KC_K, KC_L, KC_SCLN, COMBO_END};
41combo_t key_combos[COMBO_COUNT] = {COMBO(lock_combo, SCR_LCK)}; 41combo_t key_combos[] = {COMBO(lock_combo, SCR_LCK)};
42 42
43// Layer shorthand 43// Layer shorthand
44#define _QW 0 44#define _QW 0
diff --git a/keyboards/ymdk/melody96/keymaps/dvz/config.h b/keyboards/ymdk/melody96/keymaps/dvz/config.h
index 9c834bdce1..380e11a3a1 100644
--- a/keyboards/ymdk/melody96/keymaps/dvz/config.h
+++ b/keyboards/ymdk/melody96/keymaps/dvz/config.h
@@ -16,7 +16,6 @@
16 16
17#pragma once 17#pragma once
18 18
19#define COMBO_COUNT 4
20#define COMBO_TERM 100 19#define COMBO_TERM 100
21 20
22//#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE 21//#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE
diff --git a/keyboards/ymdk/melody96/keymaps/dvz/keymap.c b/keyboards/ymdk/melody96/keymaps/dvz/keymap.c
index b0f01eead6..20d4d1e510 100644
--- a/keyboards/ymdk/melody96/keymaps/dvz/keymap.c
+++ b/keyboards/ymdk/melody96/keymaps/dvz/keymap.c
@@ -34,7 +34,7 @@ const uint16_t PROGMEM oe_combo[] = {KC_O, KC_E, COMBO_END};
34const uint16_t PROGMEM ue_combo[] = {KC_U, KC_E, COMBO_END}; 34const uint16_t PROGMEM ue_combo[] = {KC_U, KC_E, COMBO_END};
35const uint16_t PROGMEM sz_combo[] = {KC_S, KC_Y, COMBO_END}; 35const uint16_t PROGMEM sz_combo[] = {KC_S, KC_Y, COMBO_END};
36 36
37combo_t key_combos[COMBO_COUNT] = { 37combo_t key_combos[] = {
38 [UML_AE] = COMBO(ae_combo, KC_QUOT), 38 [UML_AE] = COMBO(ae_combo, KC_QUOT),
39 [UML_OE] = COMBO(oe_combo, KC_SCLN), 39 [UML_OE] = COMBO(oe_combo, KC_SCLN),
40 [UML_UE] = COMBO(ue_combo, KC_LBRC), 40 [UML_UE] = COMBO(ue_combo, KC_LBRC),
diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c
index 977b949340..e4a01d2e9a 100644
--- a/quantum/keymap_introspection.c
+++ b/quantum/keymap_introspection.c
@@ -70,3 +70,24 @@ __attribute__((weak)) uint16_t keycode_at_encodermap_location(uint8_t layer_num,
70} 70}
71 71
72#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) 72#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
73
74////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
75// Combos
76
77#if defined(COMBO_ENABLE)
78
79uint16_t combo_count_raw(void) {
80 return sizeof(key_combos) / sizeof(combo_t);
81}
82__attribute__((weak)) uint16_t combo_count(void) {
83 return combo_count_raw();
84}
85
86combo_t* combo_get_raw(uint16_t combo_idx) {
87 return &key_combos[combo_idx];
88}
89__attribute__((weak)) combo_t* combo_get(uint16_t combo_idx) {
90 return combo_get_raw(combo_idx);
91}
92
93#endif // defined(COMBO_ENABLE)
diff --git a/quantum/keymap_introspection.h b/quantum/keymap_introspection.h
index 201de937cb..2012a2b8cc 100644
--- a/quantum/keymap_introspection.h
+++ b/quantum/keymap_introspection.h
@@ -34,3 +34,24 @@ uint16_t keycode_at_encodermap_location_raw(uint8_t layer_num, uint8_t encoder_i
34uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise); 34uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise);
35 35
36#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) 36#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
37
38////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
39// Combos
40
41#if defined(COMBO_ENABLE)
42
43// Forward declaration of combo_t so we don't need to deal with header reordering
44struct combo_t;
45typedef struct combo_t combo_t;
46
47// Get the number of combos defined in the user's keymap, stored in firmware rather than any other persistent storage
48uint16_t combo_count_raw(void);
49// Get the number of combos defined in the user's keymap, potentially stored dynamically
50uint16_t combo_count(void);
51
52// Get the keycode for the encoder mapping location, stored in firmware rather than any other persistent storage
53combo_t* combo_get_raw(uint16_t combo_idx);
54// Get the keycode for the encoder mapping location, potentially stored dynamically
55combo_t* combo_get(uint16_t combo_idx);
56
57#endif // defined(COMBO_ENABLE)
diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c
index 2670ccabed..bbee560be9 100644
--- a/quantum/process_keycode/process_combo.c
+++ b/quantum/process_keycode/process_combo.c
@@ -19,14 +19,7 @@
19#include "process_combo.h" 19#include "process_combo.h"
20#include "action_tapping.h" 20#include "action_tapping.h"
21#include "action.h" 21#include "action.h"
22 22#include "keymap_introspection.h"
23#ifdef COMBO_COUNT
24__attribute__((weak)) combo_t key_combos[COMBO_COUNT];
25uint16_t COMBO_LEN = COMBO_COUNT;
26#else
27extern combo_t key_combos[];
28extern uint16_t COMBO_LEN;
29#endif
30 23
31__attribute__((weak)) void process_combo_event(uint16_t combo_index, bool pressed) {} 24__attribute__((weak)) void process_combo_event(uint16_t combo_index, bool pressed) {}
32 25
@@ -195,8 +188,8 @@ static inline uint16_t _get_combo_term(uint16_t combo_index, combo_t *combo) {
195void clear_combos(void) { 188void clear_combos(void) {
196 uint16_t index = 0; 189 uint16_t index = 0;
197 longest_term = 0; 190 longest_term = 0;
198 for (index = 0; index < COMBO_LEN; ++index) { 191 for (index = 0; index < combo_count(); ++index) {
199 combo_t *combo = &key_combos[index]; 192 combo_t *combo = combo_get(index);
200 if (!COMBO_ACTIVE(combo)) { 193 if (!COMBO_ACTIVE(combo)) {
201 RESET_COMBO_STATE(combo); 194 RESET_COMBO_STATE(combo);
202 } 195 }
@@ -287,7 +280,7 @@ void drop_combo_from_buffer(uint16_t combo_index) {
287 queued_combo_t *qcombo = &combo_buffer[i]; 280 queued_combo_t *qcombo = &combo_buffer[i];
288 281
289 if (qcombo->combo_index == combo_index) { 282 if (qcombo->combo_index == combo_index) {
290 combo_t *combo = &key_combos[combo_index]; 283 combo_t *combo = combo_get(combo_index);
291 DISABLE_COMBO(combo); 284 DISABLE_COMBO(combo);
292 285
293 if (i == combo_buffer_read) { 286 if (i == combo_buffer_read) {
@@ -354,7 +347,7 @@ static inline void apply_combos(void) {
354 // Apply all buffered normal combos. 347 // Apply all buffered normal combos.
355 for (uint8_t i = combo_buffer_read; i != combo_buffer_write; INCREMENT_MOD(i)) { 348 for (uint8_t i = combo_buffer_read; i != combo_buffer_write; INCREMENT_MOD(i)) {
356 queued_combo_t *buffered_combo = &combo_buffer[i]; 349 queued_combo_t *buffered_combo = &combo_buffer[i];
357 combo_t * combo = &key_combos[buffered_combo->combo_index]; 350 combo_t * combo = combo_get(buffered_combo->combo_index);
358 351
359#ifdef COMBO_MUST_TAP_PER_COMBO 352#ifdef COMBO_MUST_TAP_PER_COMBO
360 if (get_combo_must_tap(buffered_combo->combo_index, combo)) { 353 if (get_combo_must_tap(buffered_combo->combo_index, combo)) {
@@ -459,7 +452,7 @@ static bool process_single_combo(combo_t *combo, uint16_t keycode, keyrecord_t *
459 combo_t *drop = NULL; 452 combo_t *drop = NULL;
460 for (uint8_t combo_buffer_i = combo_buffer_read; combo_buffer_i != combo_buffer_write; INCREMENT_MOD(combo_buffer_i)) { 453 for (uint8_t combo_buffer_i = combo_buffer_read; combo_buffer_i != combo_buffer_write; INCREMENT_MOD(combo_buffer_i)) {
461 queued_combo_t *qcombo = &combo_buffer[combo_buffer_i]; 454 queued_combo_t *qcombo = &combo_buffer[combo_buffer_i];
462 combo_t * buffered_combo = &key_combos[qcombo->combo_index]; 455 combo_t * buffered_combo = combo_get(qcombo->combo_index);
463 456
464 if ((drop = overlaps(buffered_combo, combo))) { 457 if ((drop = overlaps(buffered_combo, combo))) {
465 DISABLE_COMBO(drop); 458 DISABLE_COMBO(drop);
@@ -565,8 +558,8 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) {
565 } 558 }
566#endif 559#endif
567 560
568 for (uint16_t idx = 0; idx < COMBO_LEN; ++idx) { 561 for (uint16_t idx = 0; idx < combo_count(); ++idx) {
569 combo_t *combo = &key_combos[idx]; 562 combo_t *combo = combo_get(idx);
570 is_combo_key |= process_single_combo(combo, keycode, record, idx); 563 is_combo_key |= process_single_combo(combo, keycode, record, idx);
571 no_combo_keys_pressed = no_combo_keys_pressed && (NO_COMBO_KEYS_ARE_DOWN || COMBO_ACTIVE(combo) || COMBO_DISABLED(combo)); 564 no_combo_keys_pressed = no_combo_keys_pressed && (NO_COMBO_KEYS_ARE_DOWN || COMBO_ACTIVE(combo) || COMBO_DISABLED(combo));
572 } 565 }
diff --git a/quantum/process_keycode/process_combo.h b/quantum/process_keycode/process_combo.h
index e430c4a5f7..bba5d5ee63 100644
--- a/quantum/process_keycode/process_combo.h
+++ b/quantum/process_keycode/process_combo.h
@@ -37,7 +37,7 @@
37# define COMBO_BUFFER_LENGTH 4 37# define COMBO_BUFFER_LENGTH 4
38#endif 38#endif
39 39
40typedef struct { 40typedef struct combo_t {
41 const uint16_t *keys; 41 const uint16_t *keys;
42 uint16_t keycode; 42 uint16_t keycode;
43#ifdef EXTRA_SHORT_COMBOS 43#ifdef EXTRA_SHORT_COMBOS
diff --git a/tests/caps_word/caps_word_combo/test.mk b/tests/caps_word/caps_word_combo/test.mk
index 9f2e157189..c294864113 100644
--- a/tests/caps_word/caps_word_combo/test.mk
+++ b/tests/caps_word/caps_word_combo/test.mk
@@ -17,3 +17,4 @@ CAPS_WORD_ENABLE = yes
17COMBO_ENABLE = yes 17COMBO_ENABLE = yes
18AUTO_SHIFT_ENABLE = yes 18AUTO_SHIFT_ENABLE = yes
19 19
20INTROSPECTION_KEYMAP_C = test_combos.c
diff --git a/tests/caps_word/caps_word_combo/test_caps_word_combo.cpp b/tests/caps_word/caps_word_combo/test_caps_word_combo.cpp
index 0876cc91a3..2cee203dfd 100644
--- a/tests/caps_word/caps_word_combo/test_caps_word_combo.cpp
+++ b/tests/caps_word/caps_word_combo/test_caps_word_combo.cpp
@@ -38,29 +38,6 @@ using ::testing::AnyOf;
38using ::testing::InSequence; 38using ::testing::InSequence;
39using ::testing::TestParamInfo; 39using ::testing::TestParamInfo;
40 40
41extern "C" {
42// Define some combos to use for the test, including overlapping combos and
43// combos that chord tap-hold keys.
44enum combo_events { AB_COMBO, BC_COMBO, AD_COMBO, DE_COMBO, FGHI_COMBO, COMBO_LENGTH };
45uint16_t COMBO_LEN = COMBO_LENGTH;
46
47const uint16_t ab_combo[] PROGMEM = {KC_A, KC_B, COMBO_END};
48const uint16_t bc_combo[] PROGMEM = {KC_B, KC_C, COMBO_END};
49const uint16_t ad_combo[] PROGMEM = {KC_A, LCTL_T(KC_D), COMBO_END};
50const uint16_t de_combo[] PROGMEM = {LCTL_T(KC_D), LT(1, KC_E), COMBO_END};
51const uint16_t fghi_combo[] PROGMEM = {KC_F, KC_G, KC_H, KC_I, COMBO_END};
52
53// clang-format off
54combo_t key_combos[] = {
55 [AB_COMBO] = COMBO(ab_combo, KC_SPC), // KC_A + KC_B = KC_SPC
56 [BC_COMBO] = COMBO(bc_combo, KC_X), // KC_B + KC_C = KC_X
57 [AD_COMBO] = COMBO(ad_combo, KC_Y), // KC_A + LCTL_T(KC_D) = KC_Y
58 [DE_COMBO] = COMBO(de_combo, KC_Z), // LCTL_T(KC_D) + LT(1, KC_E) = KC_Z
59 [FGHI_COMBO] = COMBO(fghi_combo, KC_W) // KC_F + KC_G + KC_H + KC_I = KC_W
60};
61// clang-format on
62} // extern "C"
63
64namespace { 41namespace {
65 42
66// To test combos thorougly, we test them with pressing the chord keys with 43// To test combos thorougly, we test them with pressing the chord keys with
diff --git a/tests/caps_word/caps_word_combo/test_combos.c b/tests/caps_word/caps_word_combo/test_combos.c
new file mode 100644
index 0000000000..1d07118d50
--- /dev/null
+++ b/tests/caps_word/caps_word_combo/test_combos.c
@@ -0,0 +1,20 @@
1#include <quantum.h>
2
3// Define some combos to use for the test, including overlapping combos and
4// combos that chord tap-hold keys.
5enum combo_events { AB_COMBO, BC_COMBO, AD_COMBO, DE_COMBO, FGHI_COMBO };
6
7const uint16_t ab_combo[] PROGMEM = {KC_A, KC_B, COMBO_END};
8const uint16_t bc_combo[] PROGMEM = {KC_B, KC_C, COMBO_END};
9const uint16_t ad_combo[] PROGMEM = {KC_A, LCTL_T(KC_D), COMBO_END};
10const uint16_t de_combo[] PROGMEM = {LCTL_T(KC_D), LT(1, KC_E), COMBO_END};
11const uint16_t fghi_combo[] PROGMEM = {KC_F, KC_G, KC_H, KC_I, COMBO_END};
12
13// clang-format off
14combo_t key_combos[] = {
15 [AB_COMBO] = COMBO(ab_combo, KC_SPC), // KC_A + KC_B = KC_SPC
16 [BC_COMBO] = COMBO(bc_combo, KC_X), // KC_B + KC_C = KC_X
17 [AD_COMBO] = COMBO(ad_combo, KC_Y), // KC_A + LCTL_T(KC_D) = KC_Y
18 [DE_COMBO] = COMBO(de_combo, KC_Z), // LCTL_T(KC_D) + LT(1, KC_E) = KC_Z
19 [FGHI_COMBO] = COMBO(fghi_combo, KC_W) // KC_F + KC_G + KC_H + KC_I = KC_W
20};
diff --git a/tests/combo/test.mk b/tests/combo/test.mk
index ce6f9fc2b0..4776b9d0c4 100644
--- a/tests/combo/test.mk
+++ b/tests/combo/test.mk
@@ -2,3 +2,5 @@
2# SPDX-License-Identifier: GPL-2.0-or-later 2# SPDX-License-Identifier: GPL-2.0-or-later
3 3
4COMBO_ENABLE = yes 4COMBO_ENABLE = yes
5
6INTROSPECTION_KEYMAP_C = test_combos.c
diff --git a/tests/combo/test_combo.cpp b/tests/combo/test_combo.cpp
index b7aea27f4c..ac852f9d16 100644
--- a/tests/combo/test_combo.cpp
+++ b/tests/combo/test_combo.cpp
@@ -10,21 +10,6 @@
10#include "test_fixture.hpp" 10#include "test_fixture.hpp"
11#include "test_keymap_key.hpp" 11#include "test_keymap_key.hpp"
12 12
13extern "C" {
14enum combos { modtest, osmshift, COMBO_LENGTH };
15uint16_t COMBO_LEN = COMBO_LENGTH;
16
17uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END};
18uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END};
19
20// clang-format off
21combo_t key_combos[] = {
22 [modtest] = COMBO(modtest_combo, RSFT_T(KC_SPACE)),
23 [osmshift] = COMBO(osmshift_combo, OSM(MOD_LSFT))
24};
25// clang-format on
26}
27
28using testing::_; 13using testing::_;
29using testing::InSequence; 14using testing::InSequence;
30 15
diff --git a/tests/combo/test_combos.c b/tests/combo/test_combos.c
new file mode 100644
index 0000000000..8dcb364c6e
--- /dev/null
+++ b/tests/combo/test_combos.c
@@ -0,0 +1,17 @@
1// Copyright 2023 Stefan Kerkmann (@KarlK90)
2// Copyright 2023 @filterpaper
3// Copyright 2023 Nick Brassel (@tzarc)
4// SPDX-License-Identifier: GPL-2.0-or-later
5#include "quantum.h"
6
7enum combos { modtest, osmshift };
8
9uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END};
10uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END};
11
12// clang-format off
13combo_t key_combos[] = {
14 [modtest] = COMBO(modtest_combo, RSFT_T(KC_SPACE)),
15 [osmshift] = COMBO(osmshift_combo, OSM(MOD_LSFT))
16};
17// clang-format on
diff --git a/tests/test_common/keycode_util.hpp b/tests/test_common/keycode_util.hpp
index d5a520d4b2..3143ab364e 100644
--- a/tests/test_common/keycode_util.hpp
+++ b/tests/test_common/keycode_util.hpp
@@ -1,5 +1,6 @@
1#pragma once 1#pragma once
2 2
3#include <cstdint>
3#include <string> 4#include <string>
4 5
5std::string get_keycode_identifier_or_default(uint16_t keycode); 6std::string get_keycode_identifier_or_default(uint16_t keycode);
diff --git a/users/art/funcs/string_funcs.c b/users/art/funcs/string_funcs.c
index 319b1310e4..1ea86779cc 100644
--- a/users/art/funcs/string_funcs.c
+++ b/users/art/funcs/string_funcs.c
@@ -37,10 +37,8 @@ enum combo_events {
37 ED_ENTER, 37 ED_ENTER,
38 38
39 ED_CS_ENTER, 39 ED_CS_ENTER,
40 BSPC_LSFT_CLEAR, 40 BSPC_LSFT_CLEAR
41 COMBO_LENGTH
42}; 41};
43uint16_t COMBO_LEN = COMBO_LENGTH; // do not remove - needed for combos to work
44 42
45const uint16_t PROGMEM combo_up[] = {KC_W, KC_R, COMBO_END}; 43const uint16_t PROGMEM combo_up[] = {KC_W, KC_R, COMBO_END};
46const uint16_t PROGMEM combo_left[] = {KC_S, KC_E, COMBO_END}; 44const uint16_t PROGMEM combo_left[] = {KC_S, KC_E, COMBO_END};
@@ -122,7 +120,7 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
122 tap_code16(A(KC_RIGHT)); 120 tap_code16(A(KC_RIGHT));
123 } 121 }
124 } 122 }
125 break; 123 break;
126 case BSPC_LSFT_CLEAR: 124 case BSPC_LSFT_CLEAR:
127 if (pressed) { 125 if (pressed) {
128 tap_code16(KC_END); 126 tap_code16(KC_END);
@@ -134,7 +132,7 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
134 if (pressed) { 132 if (pressed) {
135 tap_code16(C(S(KC_ENTER))); 133 tap_code16(C(S(KC_ENTER)));
136 } 134 }
137 break; 135 break;
138 } 136 }
139} 137}
140 138
@@ -210,63 +208,63 @@ void send_string_with_translation(char *string) {
210 208
211 case 'w': 209 case 'w':
212 toPrint = 'd'; 210 toPrint = 'd';
213 break; 211 break;
214 case 'e': 212 case 'e':
215 toPrint = 'r'; 213 toPrint = 'r';
216 break; 214 break;
217 case 'r': 215 case 'r':
218 toPrint = 'w'; 216 toPrint = 'w';
219 break; 217 break;
220 case 't': 218 case 't':
221 toPrint = 'b'; 219 toPrint = 'b';
222 break; 220 break;
223 case 'y': 221 case 'y':
224 toPrint = 'j'; 222 toPrint = 'j';
225 break; 223 break;
226 case 'u': 224 case 'u':
227 toPrint = 'f'; 225 toPrint = 'f';
228 break; 226 break;
229 case 'i': 227 case 'i':
230 toPrint = 'u'; 228 toPrint = 'u';
231 break; 229 break;
232 case 'o': 230 case 'o':
233 toPrint = 'p'; 231 toPrint = 'p';
234 break; 232 break;
235 case 'p': 233 case 'p':
236 toPrint = ';'; 234 toPrint = ';';
237 break; 235 break;
238 236
239 case 'd': 237 case 'd':
240 toPrint = 'h'; 238 toPrint = 'h';
241 break; 239 break;
242 case 'f': 240 case 'f':
243 toPrint = 't'; 241 toPrint = 't';
244 break; 242 break;
245 case 'h': 243 case 'h':
246 toPrint = 'y'; 244 toPrint = 'y';
247 break; 245 break;
248 case 'j': 246 case 'j':
249 toPrint = 'n'; 247 toPrint = 'n';
250 break; 248 break;
251 case 'k': 249 case 'k':
252 toPrint = 'e'; 250 toPrint = 'e';
253 break; 251 break;
254 case 'l': 252 case 'l':
255 toPrint = 'o'; 253 toPrint = 'o';
256 break; 254 break;
257 case ';': 255 case ';':
258 toPrint = 'i'; 256 toPrint = 'i';
259 break; 257 break;
260 258
261 case 'b': 259 case 'b':
262 toPrint = 'm'; 260 toPrint = 'm';
263 break; 261 break;
264 case 'n': 262 case 'n':
265 toPrint = 'k'; 263 toPrint = 'k';
266 break; 264 break;
267 case 'm': 265 case 'm':
268 toPrint = 'l'; 266 toPrint = 'l';
269 break; 267 break;
270 } 268 }
271 if (isUpperCase) { 269 if (isUpperCase) {
272 isUpperCase = 0; 270 isUpperCase = 0;
@@ -306,4 +304,4 @@ void send_shifted_strings_add(char *string1, char *string2) {
306 send_string(string2); 304 send_string(string2);
307 char_to_bspace = strlen(string1) + strlen(string2); 305 char_to_bspace = strlen(string1) + strlen(string2);
308 } 306 }
309} \ No newline at end of file 307}
diff --git a/users/danielo515/combo.c b/users/danielo515/combo.c
index b33cb838bc..dae53f6e85 100644
--- a/users/danielo515/combo.c
+++ b/users/danielo515/combo.c
@@ -26,7 +26,7 @@ const uint16_t PROGMEM n_m[] = {KC_N, KC_M, COMBO_END};
26const uint16_t PROGMEM o_p_combo[] = {KC_O, KC_P, COMBO_END}; 26const uint16_t PROGMEM o_p_combo[] = {KC_O, KC_P, COMBO_END};
27const uint16_t PROGMEM m_cm_dot_combo[] = {KC_M, KC_COMMA, KC_DOT, COMBO_END}; 27const uint16_t PROGMEM m_cm_dot_combo[] = {KC_M, KC_COMMA, KC_DOT, COMBO_END};
28 28
29combo_t key_combos[COMBO_COUNT] = { 29combo_t key_combos[] = {
30 [JK_ESC] = COMBO(jk_combo, KC_ESC), 30 [JK_ESC] = COMBO(jk_combo, KC_ESC),
31 [YU_COM] = COMBO(yu_combo, KC_AMPR), 31 [YU_COM] = COMBO(yu_combo, KC_AMPR),
32 [UI_COM] = COMBO(ui_combo, KC_CIRC), 32 [UI_COM] = COMBO(ui_combo, KC_CIRC),
diff --git a/users/danielo515/config.h b/users/danielo515/config.h
index 11007eb27f..c5f9b08389 100644
--- a/users/danielo515/config.h
+++ b/users/danielo515/config.h
@@ -1,7 +1,6 @@
1#pragma once 1#pragma once
2 2
3#if defined(COMBO_ENABLE) 3#if defined(COMBO_ENABLE)
4# define COMBO_COUNT 11
5# define COMBO_TERM 25 4# define COMBO_TERM 25
6#endif // !COMBO_ENABLE 5#endif // !COMBO_ENABLE
7// Timeout settings for leader key 6// Timeout settings for leader key
diff --git a/users/ericgebhart/extensions/keymap_combo.h b/users/ericgebhart/extensions/keymap_combo.h
index cd9684e601..e918fa08ea 100644
--- a/users/ericgebhart/extensions/keymap_combo.h
+++ b/users/ericgebhart/extensions/keymap_combo.h
@@ -52,10 +52,7 @@ void process_combo_event(uint16_t combo_index, bool pressed);
52#define TOGG A_ENUM 52#define TOGG A_ENUM
53enum combos { 53enum combos {
54#include "combos.def" 54#include "combos.def"
55 COMBO_LENGTH
56}; 55};
57// Export length to combo module
58uint16_t COMBO_LEN = COMBO_LENGTH;
59 56
60// Bake combos into mem 57// Bake combos into mem
61#undef COMB 58#undef COMB
diff --git a/users/ibnuda/combo.h b/users/ibnuda/combo.h
index d7e79764a9..c4fd5f12ed 100644
--- a/users/ibnuda/combo.h
+++ b/users/ibnuda/combo.h
@@ -64,7 +64,7 @@ const uint16_t PROGMEM rl_i_ii_combo[] = {RLI, RLII, COMBO_END};
64// both hand combinations. 64// both hand combinations.
65const uint16_t PROGMEM bl_m_m_combo[] = {LLM, RLM, COMBO_END}; 65const uint16_t PROGMEM bl_m_m_combo[] = {LLM, RLM, COMBO_END};
66 66
67combo_t key_combos[COMBO_COUNT] = { 67combo_t key_combos[] = {
68 // left hand combinations. 68 // left hand combinations.
69 [R_U_PINKY_RING] = COMBO(lu_p_r_combo, KC_TAB), 69 [R_U_PINKY_RING] = COMBO(lu_p_r_combo, KC_TAB),
70 [R_U_RING_MIDDLE] = COMBO(lu_r_m_combo, KC_QUES), 70 [R_U_RING_MIDDLE] = COMBO(lu_r_m_combo, KC_QUES),
@@ -93,4 +93,4 @@ combo_t key_combos[COMBO_COUNT] = {
93 93
94 // both hand combinations. 94 // both hand combinations.
95 [B_L_MIDDLE_MIDDLE] = COMBO(bl_m_m_combo, KC_ENT), 95 [B_L_MIDDLE_MIDDLE] = COMBO(bl_m_m_combo, KC_ENT),
96}; \ No newline at end of file 96};
diff --git a/users/ibnuda/config.h b/users/ibnuda/config.h
index c4fec5bc2d..957d24a04c 100644
--- a/users/ibnuda/config.h
+++ b/users/ibnuda/config.h
@@ -1,6 +1,5 @@
1#pragma once 1#pragma once
2 2
3#define COMBO_TERM 50 3#define COMBO_TERM 50
4#define COMBO_COUNT 50
5 4
6#define PERMISSIVE_HOLD \ No newline at end of file 5#define PERMISSIVE_HOLD
diff --git a/users/issmirnov/config.h b/users/issmirnov/config.h
index 5fe78f7a53..a74f6fbc91 100644
--- a/users/issmirnov/config.h
+++ b/users/issmirnov/config.h
@@ -21,7 +21,6 @@
21#define ONESHOT_TIMEOUT 2000 21#define ONESHOT_TIMEOUT 2000
22 22
23// Enable combos for vim 23// Enable combos for vim
24#define COMBO_COUNT 5 // Specify the number of combos used. BE SURE TO INCREMENT AS NEEDED
25#define COMBO_TERM 50 // window in milliseconds to trigger combo 24#define COMBO_TERM 50 // window in milliseconds to trigger combo
26 25
27// Allow more than 4 keys to be sent to the system. Useful for gaming. 26// Allow more than 4 keys to be sent to the system. Useful for gaming.
diff --git a/users/issmirnov/issmirnov.c b/users/issmirnov/issmirnov.c
index 45ef7b19a7..ecfb423ee2 100644
--- a/users/issmirnov/issmirnov.c
+++ b/users/issmirnov/issmirnov.c
@@ -15,9 +15,7 @@ const uint16_t PROGMEM sd_combo[] = {KC_S, KC_D, COMBO_END};
15const uint16_t PROGMEM copy_combo[] = {KC_X, KC_C, COMBO_END}; 15const uint16_t PROGMEM copy_combo[] = {KC_X, KC_C, COMBO_END};
16const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; 16const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
17 17
18 18combo_t key_combos[] = {
19// BE SURE TO UPDATE THE CONFIG.H "COMBO_COUNT" value when you add elements here!
20combo_t key_combos[COMBO_COUNT] = {
21 COMBO(jk_combo, KC_ESC), 19 COMBO(jk_combo, KC_ESC),
22 COMBO(df_combo, KC_COLON), 20 COMBO(df_combo, KC_COLON),
23 COMBO(sd_combo, KC_SLASH), 21 COMBO(sd_combo, KC_SLASH),
diff --git a/users/kuchosauronad0/combo.h b/users/kuchosauronad0/combo.h
index e2ff09ab5a..6fb3eaf58c 100644
--- a/users/kuchosauronad0/combo.h
+++ b/users/kuchosauronad0/combo.h
@@ -1,4 +1,4 @@
1#pragma once 1#pragma once
2#include "quantum.h" 2#include "quantum.h"
3enum combo_events { 3enum combo_events {
4 ZV_COPY, 4 ZV_COPY,
@@ -12,10 +12,9 @@ const uint16_t PROGMEM cut_combo[] = {KC_X, KC_V, COMBO_END};
12const uint16_t PROGMEM paste_combo[] = {KC_C, KC_V, COMBO_END}; 12const uint16_t PROGMEM paste_combo[] = {KC_C, KC_V, COMBO_END};
13const uint16_t PROGMEM sleep_combo[] = {KC_Q, KC_P, COMBO_END}; 13const uint16_t PROGMEM sleep_combo[] = {KC_Q, KC_P, COMBO_END};
14 14
15combo_t key_combos[COMBO_COUNT] = { 15combo_t key_combos[] = {
16 [ZV_COPY] = COMBO_ACTION(copy_combo), 16 [ZV_COPY] = COMBO_ACTION(copy_combo),
17 [XV_CUT] = COMBO_ACTION(cut_combo), 17 [XV_CUT] = COMBO_ACTION(cut_combo),
18 [CV_PASTE] = COMBO_ACTION(paste_combo), 18 [CV_PASTE] = COMBO_ACTION(paste_combo),
19 [QP_SLEEP] = COMBO_ACTION(sleep_combo), 19 [QP_SLEEP] = COMBO_ACTION(sleep_combo),
20}; 20};
21
diff --git a/users/kuchosauronad0/config.h b/users/kuchosauronad0/config.h
index 28e41215b9..58ef7a20f8 100644
--- a/users/kuchosauronad0/config.h
+++ b/users/kuchosauronad0/config.h
@@ -56,7 +56,6 @@
56#endif // !LEADER_ENABLE 56#endif // !LEADER_ENABLE
57 57
58#if defined(COMBO_ENABLE) 58#if defined(COMBO_ENABLE)
59# define COMBO_COUNT 4
60# define COMBO_TERM 150 59# define COMBO_TERM 150
61#endif // !COMBO_ENABLE 60#endif // !COMBO_ENABLE
62 61
diff --git a/users/manna-harbour_miryoku/config.h b/users/manna-harbour_miryoku/config.h
index 3656e9eded..f2bc9c331b 100644
--- a/users/manna-harbour_miryoku/config.h
+++ b/users/manna-harbour_miryoku/config.h
@@ -34,7 +34,6 @@
34 34
35// Thumb Combos 35// Thumb Combos
36#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS) 36#if defined (MIRYOKU_KLUDGE_THUMBCOMBOS)
37 #define COMBO_COUNT 8
38 #define COMBO_TERM 200 37 #define COMBO_TERM 200
39 #define EXTRA_SHORT_COMBOS 38 #define EXTRA_SHORT_COMBOS
40#endif 39#endif
diff --git a/users/manna-harbour_miryoku/manna-harbour_miryoku.c b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
index 389580759b..58b68c2727 100644
--- a/users/manna-harbour_miryoku/manna-harbour_miryoku.c
+++ b/users/manna-harbour_miryoku/manna-harbour_miryoku.c
@@ -74,7 +74,7 @@ const uint16_t PROGMEM thumbcombos_sym[] = {KC_UNDS, KC_LPRN, COMBO_END};
74const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END}; 74const uint16_t PROGMEM thumbcombos_sym[] = {KC_RPRN, KC_UNDS, COMBO_END};
75 #endif 75 #endif
76const uint16_t PROGMEM thumbcombos_fun[] = {KC_SPC, KC_TAB, COMBO_END}; 76const uint16_t PROGMEM thumbcombos_fun[] = {KC_SPC, KC_TAB, COMBO_END};
77combo_t key_combos[COMBO_COUNT] = { 77combo_t key_combos[] = {
78 COMBO(thumbcombos_base_right, LT(U_FUN, KC_DEL)), 78 COMBO(thumbcombos_base_right, LT(U_FUN, KC_DEL)),
79 COMBO(thumbcombos_base_left, LT(U_MEDIA, KC_ESC)), 79 COMBO(thumbcombos_base_left, LT(U_MEDIA, KC_ESC)),
80 COMBO(thumbcombos_nav, KC_DEL), 80 COMBO(thumbcombos_nav, KC_DEL),
diff --git a/users/muppetjones/config.h b/users/muppetjones/config.h
index cbc318d24f..742a97950d 100644
--- a/users/muppetjones/config.h
+++ b/users/muppetjones/config.h
@@ -35,6 +35,4 @@
35 35
36#endif 36#endif
37 37
38
39#define COMBO_COUNT 3
40#define COMBO_TERM 40 38#define COMBO_TERM 40
diff --git a/users/muppetjones/features/combos.c b/users/muppetjones/features/combos.c
index a6d14bb25c..a357b3ad4e 100644
--- a/users/muppetjones/features/combos.c
+++ b/users/muppetjones/features/combos.c
@@ -27,8 +27,7 @@ const uint16_t PROGMEM h_comm_tab[] = {KC_H, KC_COMM, COMBO_END};
27const uint16_t PROGMEM l_u_scln[] = {KC_L, KC_U, COMBO_END}; 27const uint16_t PROGMEM l_u_scln[] = {KC_L, KC_U, COMBO_END};
28const uint16_t PROGMEM j_m_caps[] = {KC_J, KC_M, COMBO_END}; 28const uint16_t PROGMEM j_m_caps[] = {KC_J, KC_M, COMBO_END};
29 29
30// COMBO_COUNT defined in config.h 30combo_t key_combos[] = {
31combo_t key_combos[COMBO_COUNT] = {
32 [H_COMM_TAB] = COMBO(h_comm_tab, KC_TAB), 31 [H_COMM_TAB] = COMBO(h_comm_tab, KC_TAB),
33 [L_U_SCLN] = COMBO(l_u_scln, KC_SCLN), 32 [L_U_SCLN] = COMBO(l_u_scln, KC_SCLN),
34 [J_M_CAPS] = COMBO(j_m_caps, KC_CAPS), 33 [J_M_CAPS] = COMBO(j_m_caps, KC_CAPS),
diff --git a/users/narze/superduper.c b/users/narze/superduper.c
index b497ce2e68..7545685727 100644
--- a/users/narze/superduper.c
+++ b/users/narze/superduper.c
@@ -24,7 +24,7 @@ const uint16_t PROGMEM superduper_combos[SUPERDUPER_COMBO_COUNT][3] = {
24 [_QWOC] = {CM_S, CM_D, COMBO_END}, 24 [_QWOC] = {CM_S, CM_D, COMBO_END},
25}; 25};
26 26
27combo_t key_combos[COMBO_COUNT] = { 27combo_t key_combos[] = {
28 [CB_SUPERDUPER] = COMBO_ACTION(superduper_combos[_QWERTY]), 28 [CB_SUPERDUPER] = COMBO_ACTION(superduper_combos[_QWERTY]),
29}; 29};
30 30
diff --git a/users/ninjonas/combos.c b/users/ninjonas/combos.c
index 8d1cd6510f..3346af4ce4 100644
--- a/users/ninjonas/combos.c
+++ b/users/ninjonas/combos.c
@@ -15,7 +15,7 @@ const uint16_t PROGMEM tab_combo[] = {KC_Q, KC_T, COMBO_END};
15const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END}; 15const uint16_t PROGMEM copy_combo[] = {KC_Z, KC_C, COMBO_END};
16const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END}; 16const uint16_t PROGMEM paste_combo[] = {KC_X, KC_V, COMBO_END};
17 17
18combo_t key_combos[COMBO_COUNT] = { 18combo_t key_combos[] = {
19 [EQ_QUIT] = COMBO_ACTION(quit_combo), 19 [EQ_QUIT] = COMBO_ACTION(quit_combo),
20 [RW_CLOSE] = COMBO_ACTION(close_combo), 20 [RW_CLOSE] = COMBO_ACTION(close_combo),
21 [QT_TAB] = COMBO_ACTION(tab_combo), 21 [QT_TAB] = COMBO_ACTION(tab_combo),
@@ -52,4 +52,4 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
52 break; 52 break;
53 } 53 }
54} 54}
55#endif \ No newline at end of file 55#endif
diff --git a/users/ninjonas/config.h b/users/ninjonas/config.h
index 565e40e841..17bb03865c 100644
--- a/users/ninjonas/config.h
+++ b/users/ninjonas/config.h
@@ -15,8 +15,6 @@
15#define MOUSEKEY_WHEEL_DELAY 0 15#define MOUSEKEY_WHEEL_DELAY 0
16 16
17#ifdef COMBO_ENABLE 17#ifdef COMBO_ENABLE
18 #undef COMBO_COUNT
19 #undef COMBO_TERM 18 #undef COMBO_TERM
20 #define COMBO_COUNT 5
21 #define COMBO_TERM 60 19 #define COMBO_TERM 60
22#endif 20#endif
diff --git a/users/pdl/pdl.c b/users/pdl/pdl.c
index 5b90a0b310..1ad2e02c12 100644
--- a/users/pdl/pdl.c
+++ b/users/pdl/pdl.c
@@ -181,7 +181,7 @@ const uint16_t PROGMEM xcombo_redo[] = {KC_B, KC_H, COMBO_END};
181const uint16_t PROGMEM xcombo_pgup[] = {KC_G, KC_B, COMBO_END}; 181const uint16_t PROGMEM xcombo_pgup[] = {KC_G, KC_B, COMBO_END};
182const uint16_t PROGMEM xcombo_pgdn[] = {KC_G, KC_K, COMBO_END}; 182const uint16_t PROGMEM xcombo_pgdn[] = {KC_G, KC_K, COMBO_END};
183 183
184combo_t key_combos[COMBO_COUNT] = { 184combo_t key_combos[] = {
185 [VCOMBO_PU] = COMBO(vcombo_pu, KC_CIRC), 185 [VCOMBO_PU] = COMBO(vcombo_pu, KC_CIRC),
186 [VCOMBO_NU] = COMBO(vcombo_nu, KC_LBRC), 186 [VCOMBO_NU] = COMBO(vcombo_nu, KC_LBRC),
187 [VCOMBO_EU] = COMBO(vcombo_eu, LSFT(KC_9)), 187 [VCOMBO_EU] = COMBO(vcombo_eu, LSFT(KC_9)),
diff --git a/users/talljoe/config.h b/users/talljoe/config.h
index dcdbbd89f4..6cf0605be3 100644
--- a/users/talljoe/config.h
+++ b/users/talljoe/config.h
@@ -19,5 +19,4 @@
19 19
20#define RESET_LAYER 15 20#define RESET_LAYER 15
21 21
22#define COMBO_COUNT 2
23#define COMBO_TERM 250 22#define COMBO_TERM 250
diff --git a/users/uqs/uqs.c b/users/uqs/uqs.c
index 83733bbe2a..cd5e86bdcb 100644
--- a/users/uqs/uqs.c
+++ b/users/uqs/uqs.c
@@ -125,8 +125,6 @@ const uint16_t PROGMEM my_combos[][4] = {
125 {KC_BTN1, KC_BTN2, KC_BTN3, COMBO_END}, 125 {KC_BTN1, KC_BTN2, KC_BTN3, COMBO_END},
126}; 126};
127 127
128const uint16_t COMBO_LEN = ARRAY_SIZE(my_action_combos) + ARRAY_SIZE(my_combos);
129
130#define MY_ACTION_COMBO(ck) \ 128#define MY_ACTION_COMBO(ck) \
131 [ck] = { .keys = &(my_action_combos[ck][0]) } 129 [ck] = { .keys = &(my_action_combos[ck][0]) }
132#define MY_COMBO(ck) \ 130#define MY_COMBO(ck) \
diff --git a/users/yet-another-developer/combo.h b/users/yet-another-developer/combo.h
index e2ff09ab5a..6fb3eaf58c 100644
--- a/users/yet-another-developer/combo.h
+++ b/users/yet-another-developer/combo.h
@@ -1,4 +1,4 @@
1#pragma once 1#pragma once
2#include "quantum.h" 2#include "quantum.h"
3enum combo_events { 3enum combo_events {
4 ZV_COPY, 4 ZV_COPY,
@@ -12,10 +12,9 @@ const uint16_t PROGMEM cut_combo[] = {KC_X, KC_V, COMBO_END};
12const uint16_t PROGMEM paste_combo[] = {KC_C, KC_V, COMBO_END}; 12const uint16_t PROGMEM paste_combo[] = {KC_C, KC_V, COMBO_END};
13const uint16_t PROGMEM sleep_combo[] = {KC_Q, KC_P, COMBO_END}; 13const uint16_t PROGMEM sleep_combo[] = {KC_Q, KC_P, COMBO_END};
14 14
15combo_t key_combos[COMBO_COUNT] = { 15combo_t key_combos[] = {
16 [ZV_COPY] = COMBO_ACTION(copy_combo), 16 [ZV_COPY] = COMBO_ACTION(copy_combo),
17 [XV_CUT] = COMBO_ACTION(cut_combo), 17 [XV_CUT] = COMBO_ACTION(cut_combo),
18 [CV_PASTE] = COMBO_ACTION(paste_combo), 18 [CV_PASTE] = COMBO_ACTION(paste_combo),
19 [QP_SLEEP] = COMBO_ACTION(sleep_combo), 19 [QP_SLEEP] = COMBO_ACTION(sleep_combo),
20}; 20};
21
diff --git a/users/yet-another-developer/config.h b/users/yet-another-developer/config.h
index e783d08dc5..4836822eb4 100644
--- a/users/yet-another-developer/config.h
+++ b/users/yet-another-developer/config.h
@@ -17,7 +17,6 @@
17#endif // !LEADER_ENABLE 17#endif // !LEADER_ENABLE
18 18
19#if defined(COMBO_ENABLE) 19#if defined(COMBO_ENABLE)
20 #define COMBO_COUNT 4
21 #define COMBO_TERM 150 20 #define COMBO_TERM 150
22#endif // !COMBO_ENABLE 21#endif // !COMBO_ENABLE
23 22
diff --git a/users/zigotica/combos.c b/users/zigotica/combos.c
index a4d4f15618..3f37f3c859 100644
--- a/users/zigotica/combos.c
+++ b/users/zigotica/combos.c
@@ -15,10 +15,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
15 15
16enum combos { 16enum combos {
17 EM_EMAIL, 17 EM_EMAIL,
18 CL_CAPSL, 18 CL_CAPSL
19 COMBO_LENGTH
20}; 19};
21uint16_t COMBO_LEN = COMBO_LENGTH;
22 20
23const uint16_t PROGMEM email_combo[] = {LT(_SYM, KC_E), KC_M, COMBO_END}; 21const uint16_t PROGMEM email_combo[] = {LT(_SYM, KC_E), KC_M, COMBO_END};
24const uint16_t PROGMEM caps_combo[] = {KC_C, KC_L, COMBO_END}; 22const uint16_t PROGMEM caps_combo[] = {KC_C, KC_L, COMBO_END};
@@ -37,4 +35,3 @@ void process_combo_event(uint16_t combo_index, bool pressed) {
37 break; 35 break;
38 } 36 }
39} 37}
40