aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common_features.mk11
-rw-r--r--docs/config_options.md4
-rw-r--r--docs/feature_leader_key.md8
-rw-r--r--docs/understanding_qmk.md2
-rw-r--r--keyboards/1upkeyboards/1up60rgb/config.h3
-rw-r--r--keyboards/1upkeyboards/sweet16/config.h7
-rw-r--r--keyboards/acr60/config.h3
-rw-r--r--keyboards/alf/x2/config.h5
-rwxr-xr-xkeyboards/alpha/config.h2
-rwxr-xr-xkeyboards/alu84/config.h3
-rw-r--r--keyboards/at101_blackheart/config.h3
-rw-r--r--keyboards/atreus/keymaps/jeremy/keymap.c2
-rw-r--r--keyboards/atreus/keymaps/khitsule/config.h4
-rw-r--r--keyboards/atreus/keymaps/xk/config.h3
-rw-r--r--keyboards/atreus62/keymaps/mneme/config.h1
-rw-r--r--keyboards/atreus62/keymaps/mneme/rules.mk1
-rw-r--r--keyboards/bfo9000/keymaps/andylikescandy6x18/config.h3
-rwxr-xr-xkeyboards/bigseries/1key/config.h3
-rwxr-xr-xkeyboards/bigseries/2key/config.h3
-rwxr-xr-xkeyboards/bigseries/3key/config.h3
-rwxr-xr-xkeyboards/bigseries/4key/config.h3
-rwxr-xr-xkeyboards/bigswitch/config.h2
-rw-r--r--keyboards/catch22/config.h3
-rw-r--r--keyboards/chimera_ergo/config.h2
-rw-r--r--keyboards/chimera_ls/config.h2
-rw-r--r--keyboards/chimera_ortho/config.h2
-rw-r--r--keyboards/chocopad/config.h6
-rw-r--r--keyboards/clueboard/60/config.h3
-rw-r--r--keyboards/clueboard/66/keymaps/bloodlvst/config.h1
-rw-r--r--keyboards/comet46/config.h2
-rwxr-xr-xkeyboards/contra/config.h4
-rw-r--r--keyboards/contra/keymaps/ryanm101/config.h5
-rwxr-xr-xkeyboards/crawlpad/config.h3
-rw-r--r--keyboards/crkbd/keymaps/default/config.h1
-rw-r--r--keyboards/dichotemy/config.h2
-rw-r--r--keyboards/dilly/config.h6
-rw-r--r--keyboards/dz60/config.h3
-rw-r--r--keyboards/dz60/keymaps/LEdiodes/config.h3
-rw-r--r--keyboards/ergodone/config.h2
-rw-r--r--keyboards/ergodox_ez/config.h2
-rw-r--r--keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk3
-rw-r--r--keyboards/ergodox_ez/keymaps/vim/vim.h1
-rw-r--r--keyboards/ergodox_infinity/keymaps/gordon/config.h2
-rw-r--r--keyboards/ergodox_infinity/keymaps/narze/config.h1
-rw-r--r--keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk3
-rw-r--r--keyboards/ergoinu/config.h2
-rw-r--r--keyboards/ergotravel/keymaps/ckofy/config.h3
-rw-r--r--keyboards/felix/config.h4
-rw-r--r--keyboards/four_banger/config.h5
-rw-r--r--keyboards/fourier/keymaps/jennetters/config.h5
-rwxr-xr-xkeyboards/fractal/config.h4
-rw-r--r--keyboards/frosty_flake/keymaps/nikchi/rules.mk3
-rw-r--r--keyboards/gh80_3000/config.h6
-rw-r--r--keyboards/gherkin/config.h6
-rw-r--r--keyboards/gherkin/keymaps/talljoe_gherkin/config.h4
-rw-r--r--keyboards/gonnerd/keymaps/gam3cat/config.h1
-rw-r--r--keyboards/hadron/keymaps/default/config.h1
-rw-r--r--keyboards/hadron/keymaps/side_numpad/config.h1
-rw-r--r--keyboards/handwired/MS_sculpt_mobile/config.h8
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/config.h2
-rw-r--r--keyboards/handwired/dactyl/config.h2
-rw-r--r--keyboards/handwired/kbod/config.h4
-rw-r--r--keyboards/handwired/promethium/keymaps/default/config.h2
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/config.h2
-rw-r--r--keyboards/handwired/space_oddity/config.h4
-rw-r--r--keyboards/helix/pico/config.h1
-rw-r--r--keyboards/helix/rev1/keymaps/OLED_sample/config.h3
-rw-r--r--keyboards/helix/rev2/config.h1
-rw-r--r--keyboards/hhkb/keymaps/blakedietz/rules.mk1
-rw-r--r--keyboards/infinity60/config.h2
-rw-r--r--keyboards/iris/keymaps/davidrambo/config.h1
-rw-r--r--keyboards/iris/keymaps/jennetters/config.h5
-rw-r--r--keyboards/iris/keymaps/krusli/config.h2
-rw-r--r--keyboards/iris/keymaps/xyverz/config.h2
-rw-r--r--keyboards/jc65/v32u4/keymaps/gam3cat/config.h1
-rw-r--r--keyboards/jj40/keymaps/ajp10304/config.h8
-rw-r--r--keyboards/jj40/keymaps/fun40/config.h1
-rw-r--r--keyboards/jj40/keymaps/krusli/config.h1
-rw-r--r--keyboards/jj40/keymaps/oscillope/config.h1
-rw-r--r--keyboards/jj40/keymaps/suzuken/config.h1
-rw-r--r--keyboards/jj40/keymaps/waples/config.h1
-rw-r--r--keyboards/jm60/config.h2
-rw-r--r--keyboards/k_type/config.h2
-rw-r--r--keyboards/katana60/config.h3
-rw-r--r--keyboards/kbd75/config.h3
-rw-r--r--keyboards/kinesis/keymaps/insertsnideremarks/config.h1
-rw-r--r--keyboards/lets_split/keymaps/OLED_sample/config.h2
-rw-r--r--keyboards/lets_split/keymaps/adam/config.h1
-rw-r--r--keyboards/lets_split/keymaps/khord/config.h3
-rw-r--r--keyboards/lets_split/keymaps/piemod/config.h1
-rw-r--r--keyboards/lets_split/keymaps/waples/config.h2
-rw-r--r--keyboards/lets_split/keymaps/xk/config.h1
-rw-r--r--keyboards/m10a/keymaps/gam3cat/config.h2
-rwxr-xr-xkeyboards/mechmini/v2/config.h3
-rw-r--r--keyboards/melody96/config.h3
-rw-r--r--keyboards/minidox/keymaps/alairock/config.h1
-rw-r--r--keyboards/minidox/keymaps/khitsule/config.h4
-rw-r--r--keyboards/mint60/config.h1
-rw-r--r--keyboards/mitosis/config.h2
-rw-r--r--keyboards/niu_mini/config.h3
-rwxr-xr-xkeyboards/novelpad/config.h3
-rw-r--r--keyboards/noxary/268/config.h5
-rw-r--r--keyboards/ok60/config.h3
-rw-r--r--keyboards/omnikey_blackheart/config.h6
-rwxr-xr-xkeyboards/paladin64/config.h2
-rw-r--r--keyboards/pegasushoof/keymaps/citadel/config.h3
-rw-r--r--keyboards/planck/keymaps/ajp10304/config.h8
-rw-r--r--keyboards/planck/keymaps/altgr/config.h3
-rw-r--r--keyboards/planck/keymaps/am/config.h3
-rw-r--r--keyboards/planck/keymaps/andylikescandy/config.h3
-rw-r--r--keyboards/planck/keymaps/bone2planck/config.h8
-rw-r--r--keyboards/planck/keymaps/davidrambo/config.h5
-rw-r--r--keyboards/planck/keymaps/dshields/config.h1
-rw-r--r--keyboards/planck/keymaps/espynn/keymap.c1
-rw-r--r--keyboards/planck/keymaps/experimental/config.h2
-rw-r--r--keyboards/planck/keymaps/experimental/rules.mk3
-rw-r--r--keyboards/planck/keymaps/hiea/config.h3
-rw-r--r--keyboards/planck/keymaps/hieax/config.h3
-rwxr-xr-xkeyboards/planck/keymaps/ishtob/config.h2
-rw-r--r--keyboards/planck/keymaps/jarred/config.h4
-rw-r--r--keyboards/planck/keymaps/jeremy-dev/keymap.c1
-rw-r--r--keyboards/planck/keymaps/kmontag42/rules.mk1
-rw-r--r--keyboards/planck/keymaps/lae3/config.h8
-rw-r--r--keyboards/planck/keymaps/mitch/config.h3
-rw-r--r--keyboards/planck/keymaps/mitch/readme.md4
-rw-r--r--keyboards/planck/keymaps/narze/config.h3
-rw-r--r--keyboards/planck/keymaps/neo2planck/config.h8
-rw-r--r--keyboards/planck/keymaps/priyadi/config.h2
-rw-r--r--keyboards/planck/keymaps/sdothum/config.h3
-rw-r--r--keyboards/planck/keymaps/steno/config.h4
-rw-r--r--keyboards/planck/keymaps/tehwalris/config.h4
-rw-r--r--keyboards/planck/keymaps/vifon/config.h3
-rw-r--r--keyboards/planck/keymaps/yale/config.h11
-rw-r--r--keyboards/planck/keymaps/zach/config.h1
-rw-r--r--keyboards/planck/rev6/config.h3
-rw-r--r--keyboards/playkbtw/ca66/config.h2
-rw-r--r--keyboards/playkbtw/pk60/config.h5
-rw-r--r--keyboards/preonic/keymaps/bucktooth/config.h1
-rw-r--r--keyboards/preonic/keymaps/jacwib/config.h1
-rw-r--r--keyboards/preonic/keymaps/kuatsure/rules.mk1
-rw-r--r--keyboards/preonic/keymaps/that_canadian/config.h8
-rw-r--r--keyboards/preonic/keymaps/zach/config.h1
-rw-r--r--keyboards/preonic/rev3/config.h3
-rw-r--r--keyboards/prime_r/config.h4
-rw-r--r--keyboards/rorschach/keymaps/insertsnideremarks/config.h1
-rw-r--r--keyboards/s60_x/keymaps/bluebear/config.h3
-rw-r--r--keyboards/s60_x/rgb/config.h5
-rw-r--r--keyboards/s65_plus/config.h3
-rw-r--r--keyboards/s65_x/config.h4
-rwxr-xr-xkeyboards/sx60/config.h4
-rw-r--r--keyboards/telophase/config.h2
-rw-r--r--keyboards/tetris/config.h5
-rw-r--r--keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h1
-rw-r--r--keyboards/tokyo60/config.h3
-rw-r--r--keyboards/tomato/config.h3
-rw-r--r--keyboards/uk78/config.h3
-rw-r--r--keyboards/viterbi/keymaps/drashna/config.h2
-rw-r--r--keyboards/whitefox/config.h2
-rw-r--r--keyboards/xd60/keymaps/kmontag42/rules.mk1
-rw-r--r--keyboards/xd75/keymaps/davidrambo/config.h3
-rw-r--r--keyboards/xd75/keymaps/tdl-jturner/config.h1
-rw-r--r--keyboards/xmmx/config.h6
-rw-r--r--keyboards/ymd96/keymaps/hgoel89/config.h1
-rw-r--r--keyboards/z150_blackheart/config.h6
-rw-r--r--keyboards/zeal60/keymaps/tusing/config.h4
-rwxr-xr-xkeyboards/zlant/config.h3
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/config.h1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/config.h1
-rw-r--r--layouts/community/60_hhkb/talljoe-hhkb/config.h1
-rw-r--r--layouts/community/ergodox/adam/config.h1
-rw-r--r--layouts/community/ergodox/albert/rules.mk3
-rw-r--r--layouts/community/ergodox/algernon/rules.mk1
-rw-r--r--layouts/community/ergodox/alphadox/config.h1
-rw-r--r--layouts/community/ergodox/deadcyclo/rules.mk1
-rw-r--r--layouts/community/ergodox/erez_experimental/rules.mk3
-rw-r--r--layouts/community/ergodox/familiar/rules.mk1
-rw-r--r--layouts/community/ergodox/mclennon_osx/README.md4
-rw-r--r--layouts/community/ergodox/techtomas/readme.md2
-rw-r--r--layouts/community/ortho_4x12/symbolic/config.h4
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/config.h1
-rw-r--r--quantum/process_keycode/process_chording.c76
-rw-r--r--quantum/process_keycode/process_chording.h32
-rw-r--r--quantum/process_keycode/process_leader.c2
-rw-r--r--quantum/quantum.c7
-rw-r--r--quantum/quantum.h7
-rw-r--r--quantum/quantum_keycodes.h6
-rw-r--r--tmk_core/common/action.c2
-rw-r--r--tmk_core/common/action.h2
-rw-r--r--tmk_core/common/action_layer.c4
-rw-r--r--tmk_core/common/action_layer.h2
-rw-r--r--users/333fred/333fred_config.h1
-rw-r--r--users/bocaj/config.h1
-rw-r--r--users/drashna/config.h5
-rwxr-xr-xusers/ishtob/config.h3
-rw-r--r--users/replicaJunction/config.h6
-rw-r--r--users/talljoe/config.h1
-rw-r--r--users/wanleg/config.h2
-rw-r--r--users/zer09/config.h2
198 files changed, 91 insertions, 599 deletions
diff --git a/common_features.mk b/common_features.mk
index c637582d4..7af778980 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -221,7 +221,6 @@ ifeq ($(strip $(USB_HID_ENABLE)), yes)
221 include $(TMK_DIR)/protocol/usb_hid.mk 221 include $(TMK_DIR)/protocol/usb_hid.mk
222endif 222endif
223 223
224
225ifeq ($(strip $(HD44780_ENABLE)), yes) 224ifeq ($(strip $(HD44780_ENABLE)), yes)
226 SRC += drivers/avr/hd44780.c 225 SRC += drivers/avr/hd44780.c
227 OPT_DEFS += -DHD44780_ENABLE 226 OPT_DEFS += -DHD44780_ENABLE
@@ -232,11 +231,15 @@ ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
232 SRC += $(QUANTUM_DIR)/dynamic_keymap.c 231 SRC += $(QUANTUM_DIR)/dynamic_keymap.c
233endif 232endif
234 233
234ifeq ($(strip $(LEADER_ENABLE)), yes)
235 SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
236 OPT_DEFS += -DLEADER_ENABLE
237endif
238
235QUANTUM_SRC:= \ 239QUANTUM_SRC:= \
236 $(QUANTUM_DIR)/quantum.c \ 240 $(QUANTUM_DIR)/quantum.c \
237 $(QUANTUM_DIR)/keymap_common.c \ 241 $(QUANTUM_DIR)/keymap_common.c \
238 $(QUANTUM_DIR)/keycode_config.c \ 242 $(QUANTUM_DIR)/keycode_config.c
239 $(QUANTUM_DIR)/process_keycode/process_leader.c
240 243
241ifndef CUSTOM_MATRIX 244ifndef CUSTOM_MATRIX
242 ifeq ($(strip $(SPLIT_KEYBOARD)), yes) 245 ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
@@ -251,5 +254,5 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
251 QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \ 254 QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
252 $(QUANTUM_DIR)/split_common/split_util.c \ 255 $(QUANTUM_DIR)/split_common/split_util.c \
253 $(QUANTUM_DIR)/split_common/i2c.c \ 256 $(QUANTUM_DIR)/split_common/i2c.c \
254 $(QUANTUM_DIR)/split_common/serial.c 257 $(QUANTUM_DIR)/split_common/serial.c
255endif 258endif
diff --git a/docs/config_options.md b/docs/config_options.md
index eaaa59872..072857727 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -119,8 +119,8 @@ If you define these options you will enable the associated feature, which may in
119 119
120* `#define FORCE_NKRO` 120* `#define FORCE_NKRO`
121 * NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots. 121 * NKRO by default requires to be turned on, this forces it on during keyboard startup regardless of EEPROM setting. NKRO can still be turned off but will be turned on again if the keyboard reboots.
122* `#define PREVENT_STUCK_MODIFIERS` 122* `#define STRICT_LAYER_RELEASE`
123 * stores the layer a key press came from so the same layer is used when the key is released, regardless of which layers are enabled 123 * force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases)
124 124
125## Behaviors That Can Be Configured 125## Behaviors That Can Be Configured
126 126
diff --git a/docs/feature_leader_key.md b/docs/feature_leader_key.md
index 46633b287..0c3f4a133 100644
--- a/docs/feature_leader_key.md
+++ b/docs/feature_leader_key.md
@@ -39,3 +39,11 @@ void matrix_scan_user(void) {
39As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences. 39As you can see, you have a few function. You can use `SEQ_ONE_KEY` for single-key sequences (Leader followed by just one key), and `SEQ_TWO_KEYS`, `SEQ_THREE_KEYS` up to `SEQ_FIVE_KEYS` for longer sequences.
40 40
41Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously. 41Each of these accepts one or more keycodes as arguments. This is an important point: You can use keycodes from **any layer on your keyboard**. That layer would need to be active for the leader macro to fire, obviously.
42
43## Adding Leader Key Support in the `rules.mk`
44
45To add support for Leader Key you simply need to add a single line to your keymap's `rules.mk`:
46
47```
48LEADER_ENABLE = yes
49```
diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md
index bf695d008..35596cc69 100644
--- a/docs/understanding_qmk.md
+++ b/docs/understanding_qmk.md
@@ -129,6 +129,7 @@ Comparing against our keymap we can see that the pressed key is KC_NLCK. From he
129<!-- FIXME: Magic happens between here and process_record --> 129<!-- FIXME: Magic happens between here and process_record -->
130 130
131##### Process Record 131##### Process Record
132
132The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is listed below, using cluecard whenever we need to look at the keyboard/keymap level functions. Depending on options set in rule.mk or elsewhere, only a subset of the functions below will be included in final firmware. 133The `process_record()` function itself is deceptively simple, but hidden within is a gateway to overriding functionality at various levels of QMK. The chain of events is listed below, using cluecard whenever we need to look at the keyboard/keymap level functions. Depending on options set in rule.mk or elsewhere, only a subset of the functions below will be included in final firmware.
133 134
134* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/08c682c193f43e5d54df990680ae93fc2e06150a/tmk_core/common/action.c#L172) 135* [`void process_record(keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/08c682c193f43e5d54df990680ae93fc2e06150a/tmk_core/common/action.c#L172)
@@ -146,7 +147,6 @@ The `process_record()` function itself is deceptively simple, but hidden within
146 * [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_music.c#L114) 147 * [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_music.c#L114)
147 * [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_tap_dance.c#L136) 148 * [`bool process_tap_dance(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_tap_dance.c#L136)
148 * [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_leader.c#L38) 149 * [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_leader.c#L38)
149 * [`bool process_chording(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_chording.c#L41)
150 * [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_combo.c#L115) 150 * [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_combo.c#L115)
151 * [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_unicode.c#L22) 151 * [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_unicode.c#L22)
152 * [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_ucis.c#L91) 152 * [`bool process_ucis(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_ucis.c#L91)
diff --git a/keyboards/1upkeyboards/1up60rgb/config.h b/keyboards/1upkeyboards/1up60rgb/config.h
index bfdf354af..ee49211b4 100644
--- a/keyboards/1upkeyboards/1up60rgb/config.h
+++ b/keyboards/1upkeyboards/1up60rgb/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN E2 46#define RGB_DI_PIN E2
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/1upkeyboards/sweet16/config.h b/keyboards/1upkeyboards/sweet16/config.h
index 77d9e276d..20d99651d 100644
--- a/keyboards/1upkeyboards/sweet16/config.h
+++ b/keyboards/1upkeyboards/sweet16/config.h
@@ -9,7 +9,7 @@
9#define DEVICE_VER 0x0001 9#define DEVICE_VER 0x0001
10#define MANUFACTURER 1up Keyboards 10#define MANUFACTURER 1up Keyboards
11#define PRODUCT Sweet16 11#define PRODUCT Sweet16
12#define DESCRIPTION 4x4 grid 12#define DESCRIPTION 4x4 grid
13 13
14/* key matrix size */ 14/* key matrix size */
15#define MATRIX_ROWS 4 15#define MATRIX_ROWS 4
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN B1 46#define RGB_DI_PIN B1
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
55#define RGBLIGHT_VAL_STEP 8 52#define RGBLIGHT_VAL_STEP 8
56#endif 53#endif
57 54
58#endif \ No newline at end of file 55#endif
diff --git a/keyboards/acr60/config.h b/keyboards/acr60/config.h
index c44ba737e..3066f349d 100644
--- a/keyboards/acr60/config.h
+++ b/keyboards/acr60/config.h
@@ -41,9 +41,6 @@
41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
42) 42)
43 43
44/* prevent stuck modifiers */
45#define PREVENT_STUCK_MODIFIERS
46
47#define RGB_DI_PIN E2 44#define RGB_DI_PIN E2
48#define RGBLIGHT_ANIMATIONS 45#define RGBLIGHT_ANIMATIONS
49#define RGBLED_NUM 20 46#define RGBLED_NUM 20
diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h
index 31212ce33..f2106fa88 100644
--- a/keyboards/alf/x2/config.h
+++ b/keyboards/alf/x2/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN E2 46#define RGB_DI_PIN E2
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
55#define RGBLIGHT_VAL_STEP 8 52#define RGBLIGHT_VAL_STEP 8
56#endif 53#endif
57 54
58#endif \ No newline at end of file 55#endif
diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h
index 029527563..1e16f5ca3 100755
--- a/keyboards/alpha/config.h
+++ b/keyboards/alpha/config.h
@@ -43,8 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48 46
49#define RGB_DI_PIN F4 47#define RGB_DI_PIN F4
50#ifdef RGB_DI_PIN 48#ifdef RGB_DI_PIN
diff --git a/keyboards/alu84/config.h b/keyboards/alu84/config.h
index 9e013dbcc..9d2dca409 100755
--- a/keyboards/alu84/config.h
+++ b/keyboards/alu84/config.h
@@ -59,9 +59,6 @@
59 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 59 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
60) 60)
61 61
62/* prevent stuck modifiers */
63#define PREVENT_STUCK_MODIFIERS
64
65#define RGB_DI_PIN E2 62#define RGB_DI_PIN E2
66#ifdef RGB_DI_PIN 63#ifdef RGB_DI_PIN
67#define RGBLED_NUM 16 64#define RGBLED_NUM 16
diff --git a/keyboards/at101_blackheart/config.h b/keyboards/at101_blackheart/config.h
index 6a809a02f..237cb095e 100644
--- a/keyboards/at101_blackheart/config.h
+++ b/keyboards/at101_blackheart/config.h
@@ -38,6 +38,3 @@
38#define IS_COMMAND() ( \ 38#define IS_COMMAND() ( \
39 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 39 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
40) 40)
41
42/* prevent stuck modifiers */
43#define PREVENT_STUCK_MODIFIERS \ No newline at end of file
diff --git a/keyboards/atreus/keymaps/jeremy/keymap.c b/keyboards/atreus/keymaps/jeremy/keymap.c
index 42bef9d80..890980f41 100644
--- a/keyboards/atreus/keymaps/jeremy/keymap.c
+++ b/keyboards/atreus/keymaps/jeremy/keymap.c
@@ -4,8 +4,6 @@
4#include "action_layer.h" 4#include "action_layer.h"
5#include "keymap_colemak.h" 5#include "keymap_colemak.h"
6 6
7#define PREVENT_STUCK_MODIFIERS
8
9// Each layer gets a name for readability, which is then used in the keymap matrix below. 7// Each layer gets a name for readability, which is then used in the keymap matrix below.
10#define ALPH 0 8#define ALPH 0
11#define NUMS 1 9#define NUMS 1
diff --git a/keyboards/atreus/keymaps/khitsule/config.h b/keyboards/atreus/keymaps/khitsule/config.h
index 19714ec7d..c74909a9f 100644
--- a/keyboards/atreus/keymaps/khitsule/config.h
+++ b/keyboards/atreus/keymaps/khitsule/config.h
@@ -3,8 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7
8#define IGNORE_MOD_TAP_INTERRUPT 6#define IGNORE_MOD_TAP_INTERRUPT
9 7
10#endif \ No newline at end of file 8#endif
diff --git a/keyboards/atreus/keymaps/xk/config.h b/keyboards/atreus/keymaps/xk/config.h
index 2f8110167..a8b9c8805 100644
--- a/keyboards/atreus/keymaps/xk/config.h
+++ b/keyboards/atreus/keymaps/xk/config.h
@@ -30,8 +30,7 @@ the Free Software Foundation, either version 2 of the License, or
30#define MOUSEKEY_WHEEL_MAX_SPEED 8 30#define MOUSEKEY_WHEEL_MAX_SPEED 8
31#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 31#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
32 32
33#define PREVENT_STUCK_MODIFIERS
34#define IGNORE_MOD_TAP_INTERRUPT 33#define IGNORE_MOD_TAP_INTERRUPT
35#define PERMISSIVE_HOLD 34#define PERMISSIVE_HOLD
36 35
37#endif \ No newline at end of file 36#endif
diff --git a/keyboards/atreus62/keymaps/mneme/config.h b/keyboards/atreus62/keymaps/mneme/config.h
index 73eb0fa33..a89bf5503 100644
--- a/keyboards/atreus62/keymaps/mneme/config.h
+++ b/keyboards/atreus62/keymaps/mneme/config.h
@@ -1,6 +1,5 @@
1#define ONESHOT_TIMEOUT 3000 1#define ONESHOT_TIMEOUT 3000
2#define TAPPING_TERM 200 2#define TAPPING_TERM 200
3#define PREVENT_STUCK_MODIFIERS
4#define FORCE_NKRO 3#define FORCE_NKRO
5#define LEADER_TIMEOUT 1000 4#define LEADER_TIMEOUT 1000
6 5
diff --git a/keyboards/atreus62/keymaps/mneme/rules.mk b/keyboards/atreus62/keymaps/mneme/rules.mk
index 046aec273..160ce6edb 100644
--- a/keyboards/atreus62/keymaps/mneme/rules.mk
+++ b/keyboards/atreus62/keymaps/mneme/rules.mk
@@ -3,3 +3,4 @@ NKRO_ENABLE = true
3MOUSEKEY_ENABLE = no 3MOUSEKEY_ENABLE = no
4EXTRAKEY_ENABLE = yes 4EXTRAKEY_ENABLE = yes
5CONSOLE_ENABLE = no 5CONSOLE_ENABLE = no
6LEADER_ENABLE = yes
diff --git a/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h b/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
index 9d124a98e..be57e385e 100644
--- a/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
+++ b/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
@@ -37,7 +37,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
37 37
38 #define PERMISSIVE_HOLD 38 #define PERMISSIVE_HOLD
39 39
40 #define PREVENT_STUCK_MODIFIERS
41
42
43#endif 40#endif
diff --git a/keyboards/bigseries/1key/config.h b/keyboards/bigseries/1key/config.h
index 4e30276fc..966f2062c 100755
--- a/keyboards/bigseries/1key/config.h
+++ b/keyboards/bigseries/1key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
47 false \ 47 false \
48) 48)
49 49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52
53#ifdef RGBLIGHT_ENABLE 50#ifdef RGBLIGHT_ENABLE
54#define RGB_DI_PIN D3 51#define RGB_DI_PIN D3
55#define RGBLIGHT_ANIMATIONS 52#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigseries/2key/config.h b/keyboards/bigseries/2key/config.h
index 83c8e3141..79b9ed378 100755
--- a/keyboards/bigseries/2key/config.h
+++ b/keyboards/bigseries/2key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
47 false \ 47 false \
48) 48)
49 49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52
53#ifdef RGBLIGHT_ENABLE 50#ifdef RGBLIGHT_ENABLE
54#define RGB_DI_PIN D3 51#define RGB_DI_PIN D3
55#define RGBLIGHT_ANIMATIONS 52#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigseries/3key/config.h b/keyboards/bigseries/3key/config.h
index e10b14db4..9963a8219 100755
--- a/keyboards/bigseries/3key/config.h
+++ b/keyboards/bigseries/3key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
47 false \ 47 false \
48) 48)
49 49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52
53#ifdef RGBLIGHT_ENABLE 50#ifdef RGBLIGHT_ENABLE
54#define RGB_DI_PIN D3 51#define RGB_DI_PIN D3
55#define RGBLIGHT_ANIMATIONS 52#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigseries/4key/config.h b/keyboards/bigseries/4key/config.h
index 3ebcfe091..a222512d3 100755
--- a/keyboards/bigseries/4key/config.h
+++ b/keyboards/bigseries/4key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
47 false \ 47 false \
48) 48)
49 49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52
53#ifdef RGBLIGHT_ENABLE 50#ifdef RGBLIGHT_ENABLE
54#define RGB_DI_PIN D3 51#define RGB_DI_PIN D3
55#define RGBLIGHT_ANIMATIONS 52#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigswitch/config.h b/keyboards/bigswitch/config.h
index cc290fd79..a0ef6b555 100755
--- a/keyboards/bigswitch/config.h
+++ b/keyboards/bigswitch/config.h
@@ -47,8 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
47 false \ 47 false \
48) 48)
49 49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52 50
53#ifdef RGBLIGHT_ENABLE 51#ifdef RGBLIGHT_ENABLE
54#define RGB_DI_PIN D3 52#define RGB_DI_PIN D3
diff --git a/keyboards/catch22/config.h b/keyboards/catch22/config.h
index cb7ca7d84..f151e7048 100644
--- a/keyboards/catch22/config.h
+++ b/keyboards/catch22/config.h
@@ -46,9 +46,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
46 false \ 46 false \
47) 47)
48 48
49/* prevent stuck modifiers */
50#define PREVENT_STUCK_MODIFIERS
51
52#ifdef RGBLIGHT_ENABLE 49#ifdef RGBLIGHT_ENABLE
53#define RGB_DI_PIN F6 50#define RGB_DI_PIN F6
54#define RGBLIGHT_ANIMATIONS 51#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/chimera_ergo/config.h b/keyboards/chimera_ergo/config.h
index 86ee23718..8ce195cc0 100644
--- a/keyboards/chimera_ergo/config.h
+++ b/keyboards/chimera_ergo/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/chimera_ls/config.h b/keyboards/chimera_ls/config.h
index d92878026..254dad306 100644
--- a/keyboards/chimera_ls/config.h
+++ b/keyboards/chimera_ls/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/chimera_ortho/config.h b/keyboards/chimera_ortho/config.h
index 44c6212b1..4bf85eb88 100644
--- a/keyboards/chimera_ortho/config.h
+++ b/keyboards/chimera_ortho/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/chocopad/config.h b/keyboards/chocopad/config.h
index bf861ccda..2163ff8bc 100644
--- a/keyboards/chocopad/config.h
+++ b/keyboards/chocopad/config.h
@@ -40,10 +40,6 @@
40 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 40 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
41) 41)
42 42
43/* prevent stuck modifiers */
44#define PREVENT_STUCK_MODIFIERS
45
46
47#ifdef RGB_DI_PIN 43#ifdef RGB_DI_PIN
48#define RGBLIGHT_ANIMATIONS 44#define RGBLIGHT_ANIMATIONS
49#define RGBLIGHT_HUE_STEP 8 45#define RGBLIGHT_HUE_STEP 8
@@ -56,4 +52,4 @@
56#define ws2812_PORTREG PORTD 52#define ws2812_PORTREG PORTD
57#define ws2812_DDRREG DDRD 53#define ws2812_DDRREG DDRD
58 54
59#endif \ No newline at end of file 55#endif
diff --git a/keyboards/clueboard/60/config.h b/keyboards/clueboard/60/config.h
index 5c5a86296..a862d2cda 100644
--- a/keyboards/clueboard/60/config.h
+++ b/keyboards/clueboard/60/config.h
@@ -49,9 +49,6 @@
49/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 49/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
50#define DEBOUNCE 6 50#define DEBOUNCE 6
51 51
52/* Prevent modifiers from being stuck on after layer changes. */
53#define PREVENT_STUCK_MODIFIERS
54
55/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
56//#define LOCKING_SUPPORT_ENABLE 53//#define LOCKING_SUPPORT_ENABLE
57/* Locking resynchronize hack */ 54/* Locking resynchronize hack */
diff --git a/keyboards/clueboard/66/keymaps/bloodlvst/config.h b/keyboards/clueboard/66/keymaps/bloodlvst/config.h
index 320401dbd..456936cf9 100644
--- a/keyboards/clueboard/66/keymaps/bloodlvst/config.h
+++ b/keyboards/clueboard/66/keymaps/bloodlvst/config.h
@@ -3,6 +3,5 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define DISABLE_SPACE_CADET_ROLLOVER 6#define DISABLE_SPACE_CADET_ROLLOVER
8#endif 7#endif
diff --git a/keyboards/comet46/config.h b/keyboards/comet46/config.h
index 90d923f90..2421f5341 100644
--- a/keyboards/comet46/config.h
+++ b/keyboards/comet46/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h
index 85077ed46..c6bb374da 100755
--- a/keyboards/contra/config.h
+++ b/keyboards/contra/config.h
@@ -43,10 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49
50#ifdef RGB_DI_PIN 46#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 47#define RGBLIGHT_ANIMATIONS
52#define RGBLED_NUM 0 48#define RGBLED_NUM 0
diff --git a/keyboards/contra/keymaps/ryanm101/config.h b/keyboards/contra/keymaps/ryanm101/config.h
index 9a458b892..224a4a37d 100644
--- a/keyboards/contra/keymaps/ryanm101/config.h
+++ b/keyboards/contra/keymaps/ryanm101/config.h
@@ -3,7 +3,6 @@
3 3
4#include "config_common.h" 4#include "config_common.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define TAPPING_TERM 200 6#define TAPPING_TERM 200
8 7
9#ifdef AUDIO_ENABLE 8#ifdef AUDIO_ENABLE
@@ -28,7 +27,7 @@
28/* enable basic MIDI features: 27/* enable basic MIDI features:
29 - MIDI notes can be sent when in Music mode is on 28 - MIDI notes can be sent when in Music mode is on
30*/ 29*/
31 30
32#define MIDI_BASIC 31#define MIDI_BASIC
33 32
34/* enable advanced MIDI features: 33/* enable advanced MIDI features:
@@ -42,4 +41,4 @@
42/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 41/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
43//#define MIDI_TONE_KEYCODE_OCTAVES 2 42//#define MIDI_TONE_KEYCODE_OCTAVES 2
44 43
45#endif \ No newline at end of file 44#endif
diff --git a/keyboards/crawlpad/config.h b/keyboards/crawlpad/config.h
index a07c79cd2..c72be83f2 100755
--- a/keyboards/crawlpad/config.h
+++ b/keyboards/crawlpad/config.h
@@ -40,9 +40,6 @@
40 false \ 40 false \
41) 41)
42 42
43/* prevent stuck modifiers */
44#define PREVENT_STUCK_MODIFIERS
45
46#ifdef RGBLIGHT_ENABLE 43#ifdef RGBLIGHT_ENABLE
47#define RGB_DI_PIN D3 44#define RGB_DI_PIN D3
48#define RGBLIGHT_ANIMATIONS 45#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/crkbd/keymaps/default/config.h b/keyboards/crkbd/keymaps/default/config.h
index 8d25f7cbc..c573530f7 100644
--- a/keyboards/crkbd/keymaps/default/config.h
+++ b/keyboards/crkbd/keymaps/default/config.h
@@ -36,7 +36,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
36 36
37#define USE_SERIAL_PD2 37#define USE_SERIAL_PD2
38 38
39#define PREVENT_STUCK_MODIFIERS
40#define TAPPING_FORCE_HOLD 39#define TAPPING_FORCE_HOLD
41#define TAPPING_TERM 100 40#define TAPPING_TERM 100
42 41
diff --git a/keyboards/dichotemy/config.h b/keyboards/dichotemy/config.h
index b3bd6d942..1d92cf74e 100644
--- a/keyboards/dichotemy/config.h
+++ b/keyboards/dichotemy/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/dilly/config.h b/keyboards/dilly/config.h
index 97a6e533b..d9ca4597c 100644
--- a/keyboards/dilly/config.h
+++ b/keyboards/dilly/config.h
@@ -43,10 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49
50#ifdef RGB_DI_PIN 46#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 47#define RGBLIGHT_ANIMATIONS
52#define RGBLIGHT_HUE_STEP 8 48#define RGBLIGHT_HUE_STEP 8
@@ -59,4 +55,4 @@
59#define ws2812_PORTREG PORTD 55#define ws2812_PORTREG PORTD
60#define ws2812_DDRREG DDRD 56#define ws2812_DDRREG DDRD
61 57
62#endif \ No newline at end of file 58#endif
diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h
index 8e1a5ae5f..e58eae085 100644
--- a/keyboards/dz60/config.h
+++ b/keyboards/dz60/config.h
@@ -41,9 +41,6 @@
41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
42) 42)
43 43
44/* prevent stuck modifiers */
45#define PREVENT_STUCK_MODIFIERS
46
47#define RGB_DI_PIN E2 44#define RGB_DI_PIN E2
48#define RGBLIGHT_ANIMATIONS 45#define RGBLIGHT_ANIMATIONS
49#define RGBLED_NUM 16 46#define RGBLED_NUM 16
diff --git a/keyboards/dz60/keymaps/LEdiodes/config.h b/keyboards/dz60/keymaps/LEdiodes/config.h
index bb78d9bb6..4f991b9ca 100644
--- a/keyboards/dz60/keymaps/LEdiodes/config.h
+++ b/keyboards/dz60/keymaps/LEdiodes/config.h
@@ -41,9 +41,6 @@
41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
42) 42)
43 43
44/* prevent stuck modifiers */
45#define PREVENT_STUCK_MODIFIERS
46
47#define RGB_DI_PIN E2 44#define RGB_DI_PIN E2
48#define RGBLIGHT_ANIMATIONS 45#define RGBLIGHT_ANIMATIONS
49#define RGBLED_NUM 16 46#define RGBLED_NUM 16
diff --git a/keyboards/ergodone/config.h b/keyboards/ergodone/config.h
index 1feff26aa..2c764d782 100644
--- a/keyboards/ergodone/config.h
+++ b/keyboards/ergodone/config.h
@@ -53,8 +53,6 @@
53/* Set 0 if debouncing isn't needed */ 53/* Set 0 if debouncing isn't needed */
54#define DEBOUNCE 5 54#define DEBOUNCE 5
55 55
56#define PREVENT_STUCK_MODIFIERS
57
58#define USB_MAX_POWER_CONSUMPTION 500 56#define USB_MAX_POWER_CONSUMPTION 500
59 57
60/* NKRO */ 58/* NKRO */
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h
index 07a9b5497..7a350183b 100644
--- a/keyboards/ergodox_ez/config.h
+++ b/keyboards/ergodox_ez/config.h
@@ -97,8 +97,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
97 */ 97 */
98#define DEBOUNCE 15 98#define DEBOUNCE 15
99 99
100#define PREVENT_STUCK_MODIFIERS
101
102#define USB_MAX_POWER_CONSUMPTION 500 100#define USB_MAX_POWER_CONSUMPTION 500
103 101
104// RGB backlight 102// RGB backlight
diff --git a/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk b/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
index 38112a906..db5e5d155 100644
--- a/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
@@ -13,6 +13,7 @@ AUTOLOG_ENABLE = no
13RGBLIGHT_ENABLE = yes 13RGBLIGHT_ENABLE = yes
14RGBLIGHT_ANIMATION = yes 14RGBLIGHT_ANIMATION = yes
15EXTRAKEY_ENABLE = yes 15EXTRAKEY_ENABLE = yes
16LEADER_ENABLE = yes
16 17
17OPT_DEFS += -DUSER_PRINT 18OPT_DEFS += -DUSER_PRINT
18 19
@@ -31,4 +32,4 @@ OPT_DEFS += -DKEYMAP_VERSION=\"$(KEYMAP_VERSION)\\\#$(KEYMAP_BRANCH)\"
31 32
32ifndef QUANTUM_DIR 33ifndef QUANTUM_DIR
33 include ../../../../Makefile 34 include ../../../../Makefile
34endif \ No newline at end of file 35endif
diff --git a/keyboards/ergodox_ez/keymaps/vim/vim.h b/keyboards/ergodox_ez/keymaps/vim/vim.h
index e9b682fd3..7565c6e3e 100644
--- a/keyboards/ergodox_ez/keymaps/vim/vim.h
+++ b/keyboards/ergodox_ez/keymaps/vim/vim.h
@@ -9,7 +9,6 @@
9 9
10#define PRESS(keycode) register_code16(keycode) 10#define PRESS(keycode) register_code16(keycode)
11#define RELEASE(keycode) unregister_code16(keycode) 11#define RELEASE(keycode) unregister_code16(keycode)
12#define PREVENT_STUCK_MODIFIERS
13 12
14uint16_t VIM_QUEUE = KC_NO; 13uint16_t VIM_QUEUE = KC_NO;
15 14
diff --git a/keyboards/ergodox_infinity/keymaps/gordon/config.h b/keyboards/ergodox_infinity/keymaps/gordon/config.h
index 88d495b12..772ce0bac 100644
--- a/keyboards/ergodox_infinity/keymaps/gordon/config.h
+++ b/keyboards/ergodox_infinity/keymaps/gordon/config.h
@@ -15,8 +15,6 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#define PREVENT_STUCK_MODIFIERS
19
20#undef IGNORE_MOD_TAP_INTERRUPT 18#undef IGNORE_MOD_TAP_INTERRUPT
21#define IGNORE_MOD_TAP_INTERRUPT 19#define IGNORE_MOD_TAP_INTERRUPT
22 20
diff --git a/keyboards/ergodox_infinity/keymaps/narze/config.h b/keyboards/ergodox_infinity/keymaps/narze/config.h
index 8174edd35..551327a12 100644
--- a/keyboards/ergodox_infinity/keymaps/narze/config.h
+++ b/keyboards/ergodox_infinity/keymaps/narze/config.h
@@ -13,7 +13,6 @@
13 13
14#define IGNORE_MOD_TAP_INTERRUPT 14#define IGNORE_MOD_TAP_INTERRUPT
15#define PERMISSIVE_HOLD 15#define PERMISSIVE_HOLD
16#define PREVENT_STUCK_MODIFIERS
17 16
18#undef MOUSEKEY_DELAY 17#undef MOUSEKEY_DELAY
19#define MOUSEKEY_DELAY 100 18#define MOUSEKEY_DELAY 100
diff --git a/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk b/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
index 75624bb8c..74505bd69 100644
--- a/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
+++ b/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
@@ -1,2 +1,3 @@
1BACKLIGHT_ENABLE = yes 1BACKLIGHT_ENABLE = yes
2UNICODE_ENABLE = yes \ No newline at end of file 2UNICODE_ENABLE = yes
3LEADER_ENABLE = yes
diff --git a/keyboards/ergoinu/config.h b/keyboards/ergoinu/config.h
index 4b7c58400..de72635b1 100644
--- a/keyboards/ergoinu/config.h
+++ b/keyboards/ergoinu/config.h
@@ -31,8 +31,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
31#define PRODUCT ergoinu 31#define PRODUCT ergoinu
32#define DESCRIPTION An (Not Portable But Small) Ergonomic split keyboard 32#define DESCRIPTION An (Not Portable But Small) Ergonomic split keyboard
33 33
34
35#define PREVENT_STUCK_MODIFIERS
36#define TAPPING_FORCE_HOLD 34#define TAPPING_FORCE_HOLD
37#define TAPPING_TERM 100 35#define TAPPING_TERM 100
38 36
diff --git a/keyboards/ergotravel/keymaps/ckofy/config.h b/keyboards/ergotravel/keymaps/ckofy/config.h
index caae080d7..41ec06657 100644
--- a/keyboards/ergotravel/keymaps/ckofy/config.h
+++ b/keyboards/ergotravel/keymaps/ckofy/config.h
@@ -33,9 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
33 33
34#define TAPPING_TOGGLE 2 34#define TAPPING_TOGGLE 2
35 35
36// required if modifiers are defined in layers besided the default one.
37#define PREVENT_STUCK_MODIFIERS
38
39#undef RGBLED_NUM 36#undef RGBLED_NUM
40#define RGBLIGHT_ANIMATIONS 37#define RGBLIGHT_ANIMATIONS
41#define RGBLED_NUM 12 38#define RGBLED_NUM 12
diff --git a/keyboards/felix/config.h b/keyboards/felix/config.h
index f70089af4..003fe87dc 100644
--- a/keyboards/felix/config.h
+++ b/keyboards/felix/config.h
@@ -42,8 +42,6 @@
42 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 42 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
43) 43)
44 44
45/* prevent stuck modifiers */
46#define PREVENT_STUCK_MODIFIERS
47 45
48/* there is no rgb underglow by default. */ 46/* there is no rgb underglow by default. */
49#define RGB_DI_PIN 47#define RGB_DI_PIN
@@ -53,4 +51,4 @@
53#define RGBLIGHT_SAT_STEP 8 51#define RGBLIGHT_SAT_STEP 8
54#define RGBLIGHT_VAL_STEP 8 52#define RGBLIGHT_VAL_STEP 8
55 53
56#endif \ No newline at end of file 54#endif
diff --git a/keyboards/four_banger/config.h b/keyboards/four_banger/config.h
index 96011cbdf..8dceff5db 100644
--- a/keyboards/four_banger/config.h
+++ b/keyboards/four_banger/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN E6 46#define RGB_DI_PIN E6
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
55#define RGBLIGHT_VAL_STEP 8 52#define RGBLIGHT_VAL_STEP 8
56#endif 53#endif
57 54
58#endif \ No newline at end of file 55#endif
diff --git a/keyboards/fourier/keymaps/jennetters/config.h b/keyboards/fourier/keymaps/jennetters/config.h
index 87cda7b5c..5f99c65ad 100644
--- a/keyboards/fourier/keymaps/jennetters/config.h
+++ b/keyboards/fourier/keymaps/jennetters/config.h
@@ -22,10 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
22 22
23#define TAPPING_TERM 100 23#define TAPPING_TERM 100
24 24
25/* Try to prevent sticky keys */
26#define PREVENT_STUCK_MODIFIERS
27
28/* Use I2C or Serial, not both */ 25/* Use I2C or Serial, not both */
29 26
30#define USE_SERIAL 27#define USE_SERIAL
31// #define USE_I2C \ No newline at end of file 28// #define USE_I2C
diff --git a/keyboards/fractal/config.h b/keyboards/fractal/config.h
index 30b703b6e..1a5901f98 100755
--- a/keyboards/fractal/config.h
+++ b/keyboards/fractal/config.h
@@ -43,10 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49
50#ifdef RGB_DI_PIN 46#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 47#define RGBLIGHT_ANIMATIONS
52#define RGBLED_NUM 0 48#define RGBLED_NUM 0
diff --git a/keyboards/frosty_flake/keymaps/nikchi/rules.mk b/keyboards/frosty_flake/keymaps/nikchi/rules.mk
index ad86e82d2..b21eb6404 100644
--- a/keyboards/frosty_flake/keymaps/nikchi/rules.mk
+++ b/keyboards/frosty_flake/keymaps/nikchi/rules.mk
@@ -1,5 +1,5 @@
1# Build Options 1# Build Options
2# change to "no" to disable the options, or define them in the Makefile in 2# change to "no" to disable the options, or define them in the Makefile in
3# the appropriate keymap folder that will get included automatically 3# the appropriate keymap folder that will get included automatically
4# 4#
5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) 5BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
@@ -17,6 +17,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
17RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 17RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
18SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 18SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
19TAP_DANCE_ENABLE = yes 19TAP_DANCE_ENABLE = yes
20LEADER_ENABLE = yes
20 21
21ifndef QUANTUM_DIR 22ifndef QUANTUM_DIR
22 include ../../../../Makefile 23 include ../../../../Makefile
diff --git a/keyboards/gh80_3000/config.h b/keyboards/gh80_3000/config.h
index 83d30129a..ca72aba5a 100644
--- a/keyboards/gh80_3000/config.h
+++ b/keyboards/gh80_3000/config.h
@@ -43,10 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49
50#ifdef RGB_DI_PIN 46#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 47#define RGBLIGHT_ANIMATIONS
52#define RGBLED_NUM 0 48#define RGBLED_NUM 0
@@ -55,4 +51,4 @@
55#define RGBLIGHT_VAL_STEP 8 51#define RGBLIGHT_VAL_STEP 8
56#endif 52#endif
57 53
58#endif \ No newline at end of file 54#endif
diff --git a/keyboards/gherkin/config.h b/keyboards/gherkin/config.h
index 4607962d7..34f38e35c 100644
--- a/keyboards/gherkin/config.h
+++ b/keyboards/gherkin/config.h
@@ -43,10 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49
50#ifdef RGB_DI_PIN 46#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 47#define RGBLIGHT_ANIMATIONS
52#define RGBLED_NUM 0 48#define RGBLED_NUM 0
@@ -55,4 +51,4 @@
55#define RGBLIGHT_VAL_STEP 8 51#define RGBLIGHT_VAL_STEP 8
56#endif 52#endif
57 53
58#endif \ No newline at end of file 54#endif
diff --git a/keyboards/gherkin/keymaps/talljoe_gherkin/config.h b/keyboards/gherkin/keymaps/talljoe_gherkin/config.h
index 3e9e692d3..7fa3bf328 100644
--- a/keyboards/gherkin/keymaps/talljoe_gherkin/config.h
+++ b/keyboards/gherkin/keymaps/talljoe_gherkin/config.h
@@ -3,6 +3,4 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS 6#endif
7
8#endif \ No newline at end of file
diff --git a/keyboards/gonnerd/keymaps/gam3cat/config.h b/keyboards/gonnerd/keymaps/gam3cat/config.h
index a3819d3a5..d86da86e4 100644
--- a/keyboards/gonnerd/keymaps/gam3cat/config.h
+++ b/keyboards/gonnerd/keymaps/gam3cat/config.h
@@ -1,7 +1,6 @@
1#include "../../config.h" 1#include "../../config.h"
2//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut. 2//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut.
3#define GRAVE_ESC_CTRL_OVERRIDE 3#define GRAVE_ESC_CTRL_OVERRIDE
4#define PREVENT_STUCK_MODIFIERS
5 4
6//Delay matrix scan for tap dance, reduce to activate modifier keys faster. 5//Delay matrix scan for tap dance, reduce to activate modifier keys faster.
7//#define TAPPING_TERM 200 6//#define TAPPING_TERM 200
diff --git a/keyboards/hadron/keymaps/default/config.h b/keyboards/hadron/keymaps/default/config.h
index 0f349ad93..09922b61b 100644
--- a/keyboards/hadron/keymaps/default/config.h
+++ b/keyboards/hadron/keymaps/default/config.h
@@ -5,7 +5,6 @@
5 5
6#define LEADER_TIMEOUT 300 6#define LEADER_TIMEOUT 300
7//#define BACKLIGHT_BREATHING 7//#define BACKLIGHT_BREATHING
8#define PREVENT_STUCK_MODIFIERS
9 8
10#define USE_I2C 9#define USE_I2C
11#define SSD1306OLED 10#define SSD1306OLED
diff --git a/keyboards/hadron/keymaps/side_numpad/config.h b/keyboards/hadron/keymaps/side_numpad/config.h
index 0f349ad93..09922b61b 100644
--- a/keyboards/hadron/keymaps/side_numpad/config.h
+++ b/keyboards/hadron/keymaps/side_numpad/config.h
@@ -5,7 +5,6 @@
5 5
6#define LEADER_TIMEOUT 300 6#define LEADER_TIMEOUT 300
7//#define BACKLIGHT_BREATHING 7//#define BACKLIGHT_BREATHING
8#define PREVENT_STUCK_MODIFIERS
9 8
10#define USE_I2C 9#define USE_I2C
11#define SSD1306OLED 10#define SSD1306OLED
diff --git a/keyboards/handwired/MS_sculpt_mobile/config.h b/keyboards/handwired/MS_sculpt_mobile/config.h
index f89514278..c3bdf333e 100644
--- a/keyboards/handwired/MS_sculpt_mobile/config.h
+++ b/keyboards/handwired/MS_sculpt_mobile/config.h
@@ -28,10 +28,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define DESCRIPTION 6000 28#define DESCRIPTION 6000
29 29
30/* key matrix size */ 30/* key matrix size */
31#define MATRIX_ROWS 8 31#define MATRIX_ROWS 8
32#define MATRIX_COLS 18 32#define MATRIX_COLS 18
33 33
34#ifdef ASTAR 34#ifdef ASTAR
35#define PRODUCT sculpt mobile astar 35#define PRODUCT sculpt mobile astar
36 /*0 1 2 3 4 5 6 7 8 */ 36 /*0 1 2 3 4 5 6 7 8 */
37#define MATRIX_ROW_PINS {D7, C6, D4, D0, D1, D3, D2, E2} 37#define MATRIX_ROW_PINS {D7, C6, D4, D0, D1, D3, D2, E2}
@@ -95,6 +95,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
95//#define NO_ACTION_MACRO 95//#define NO_ACTION_MACRO
96//#define NO_ACTION_FUNCTION 96//#define NO_ACTION_FUNCTION
97 97
98#define PREVENT_STUCK_MODIFIERS
99
100#endif 98#endif
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
index 6916d1a7d..f5e6bbabe 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
@@ -3,8 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7
8#undef MATRIX_ROW_PINS 6#undef MATRIX_ROW_PINS
9#undef MATRIX_COL_PINS 7#undef MATRIX_COL_PINS
10 8
diff --git a/keyboards/handwired/dactyl/config.h b/keyboards/handwired/dactyl/config.h
index a990cc720..08931ecd3 100644
--- a/keyboards/handwired/dactyl/config.h
+++ b/keyboards/handwired/dactyl/config.h
@@ -63,8 +63,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
63/* Set 0 if debouncing isn't needed */ 63/* Set 0 if debouncing isn't needed */
64#define DEBOUNCE 15 64#define DEBOUNCE 15
65 65
66#define PREVENT_STUCK_MODIFIERS
67
68#define USB_MAX_POWER_CONSUMPTION 500 66#define USB_MAX_POWER_CONSUMPTION 500
69 67
70#endif 68#endif
diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h
index f3d0c8bf2..a3f3e3908 100644
--- a/keyboards/handwired/kbod/config.h
+++ b/keyboards/handwired/kbod/config.h
@@ -48,7 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
48 48
49/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ 49/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
50#define DIODE_DIRECTION COL2ROW 50#define DIODE_DIRECTION COL2ROW
51 51
52// #define BACKLIGHT_PIN B7 52// #define BACKLIGHT_PIN B7
53// #define BACKLIGHT_BREATHING 53// #define BACKLIGHT_BREATHING
54// #define BACKLIGHT_LEVELS 3 54// #define BACKLIGHT_LEVELS 3
@@ -159,8 +159,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
159//#define NO_ACTION_MACRO 159//#define NO_ACTION_MACRO
160//#define NO_ACTION_FUNCTION 160//#define NO_ACTION_FUNCTION
161 161
162#define PREVENT_STUCK_MODIFIERS
163
164#undef TAPPING_TOGGLE 162#undef TAPPING_TOGGLE
165#define TAPPING_TOGGLE 2 163#define TAPPING_TOGGLE 2
166 164
diff --git a/keyboards/handwired/promethium/keymaps/default/config.h b/keyboards/handwired/promethium/keymaps/default/config.h
index fa86e2247..2064f3676 100644
--- a/keyboards/handwired/promethium/keymaps/default/config.h
+++ b/keyboards/handwired/promethium/keymaps/default/config.h
@@ -11,8 +11,6 @@
11/* skip bootmagic and eeconfig */ 11/* skip bootmagic and eeconfig */
12#define BOOTMAGIC_KEY_SKIP KC_SPACE 12#define BOOTMAGIC_KEY_SKIP KC_SPACE
13 13
14#define PREVENT_STUCK_MODIFIERS
15
16#define RGBSPS_ENABLE 14#define RGBSPS_ENABLE
17#define RGBSPS_DEMO_ENABLE 15#define RGBSPS_DEMO_ENABLE
18 16
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h
index fa86e2247..2064f3676 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/config.h
+++ b/keyboards/handwired/promethium/keymaps/priyadi/config.h
@@ -11,8 +11,6 @@
11/* skip bootmagic and eeconfig */ 11/* skip bootmagic and eeconfig */
12#define BOOTMAGIC_KEY_SKIP KC_SPACE 12#define BOOTMAGIC_KEY_SKIP KC_SPACE
13 13
14#define PREVENT_STUCK_MODIFIERS
15
16#define RGBSPS_ENABLE 14#define RGBSPS_ENABLE
17#define RGBSPS_DEMO_ENABLE 15#define RGBSPS_DEMO_ENABLE
18 16
diff --git a/keyboards/handwired/space_oddity/config.h b/keyboards/handwired/space_oddity/config.h
index 9c9361ced..46d854099 100644
--- a/keyboards/handwired/space_oddity/config.h
+++ b/keyboards/handwired/space_oddity/config.h
@@ -49,10 +49,6 @@
49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
50) 50)
51 51
52/* prevent stuck modifiers */
53#define PREVENT_STUCK_MODIFIERS
54
55
56#ifdef RGB_DI_PIN 52#ifdef RGB_DI_PIN
57#define RGBLIGHT_ANIMATIONS 53#define RGBLIGHT_ANIMATIONS
58#define RGBLED_NUM 0 54#define RGBLED_NUM 0
diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h
index b49f0173b..41edfcbc2 100644
--- a/keyboards/helix/pico/config.h
+++ b/keyboards/helix/pico/config.h
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define DESCRIPTION A split keyboard for the cheap makers 28#define DESCRIPTION A split keyboard for the cheap makers
29 29
30 30
31#define PREVENT_STUCK_MODIFIERS
32#define TAPPING_FORCE_HOLD 31#define TAPPING_FORCE_HOLD
33#define TAPPING_TERM 100 32#define TAPPING_TERM 100
34 33
diff --git a/keyboards/helix/rev1/keymaps/OLED_sample/config.h b/keyboards/helix/rev1/keymaps/OLED_sample/config.h
index 0e1b787a5..5e8989d96 100644
--- a/keyboards/helix/rev1/keymaps/OLED_sample/config.h
+++ b/keyboards/helix/rev1/keymaps/OLED_sample/config.h
@@ -35,7 +35,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
35 35
36#define SSD1306OLED 36#define SSD1306OLED
37 37
38#define PREVENT_STUCK_MODIFIERS 38#define USE_SERIAL_PD2
39
39#define TAPPING_FORCE_HOLD 40#define TAPPING_FORCE_HOLD
40#define TAPPING_TERM 100 41#define TAPPING_TERM 100
41 42
diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h
index 058236122..b354d312d 100644
--- a/keyboards/helix/rev2/config.h
+++ b/keyboards/helix/rev2/config.h
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
28#define DESCRIPTION A split keyboard for the cheap makers 28#define DESCRIPTION A split keyboard for the cheap makers
29 29
30 30
31#define PREVENT_STUCK_MODIFIERS
32#define TAPPING_FORCE_HOLD 31#define TAPPING_FORCE_HOLD
33#define TAPPING_TERM 100 32#define TAPPING_TERM 100
34 33
diff --git a/keyboards/hhkb/keymaps/blakedietz/rules.mk b/keyboards/hhkb/keymaps/blakedietz/rules.mk
index 7c16b2c98..7d97e7a52 100644
--- a/keyboards/hhkb/keymaps/blakedietz/rules.mk
+++ b/keyboards/hhkb/keymaps/blakedietz/rules.mk
@@ -1,2 +1,3 @@
1TAP_DANCE_ENABLE = no 1TAP_DANCE_ENABLE = no
2UNICODE_ENABLE = no 2UNICODE_ENABLE = no
3LEADER_ENABLE = yes
diff --git a/keyboards/infinity60/config.h b/keyboards/infinity60/config.h
index 8306c8f7e..c1e9ec5b1 100644
--- a/keyboards/infinity60/config.h
+++ b/keyboards/infinity60/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef CONFIG_H 18#ifndef CONFIG_H
19#define CONFIG_H 19#define CONFIG_H
20 20
21#define PREVENT_STUCK_MODIFIERS
22
23/* USB Device descriptor parameter */ 21/* USB Device descriptor parameter */
24#define VENDOR_ID 0x1c11 22#define VENDOR_ID 0x1c11
25#define PRODUCT_ID 0xb04d 23#define PRODUCT_ID 0xb04d
diff --git a/keyboards/iris/keymaps/davidrambo/config.h b/keyboards/iris/keymaps/davidrambo/config.h
index 01e078e32..2cdff4213 100644
--- a/keyboards/iris/keymaps/davidrambo/config.h
+++ b/keyboards/iris/keymaps/davidrambo/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
27 27
28/* Select hand configuration */ 28/* Select hand configuration */
29#define PERMISSIVE_HOLD 29#define PERMISSIVE_HOLD
30#define PREVENT_STUCK_MODIFIERS
31#define MASTER_LEFT 30#define MASTER_LEFT
32// #define MASTER_RIGHT 31// #define MASTER_RIGHT
33// #define EE_HANDS 32// #define EE_HANDS
diff --git a/keyboards/iris/keymaps/jennetters/config.h b/keyboards/iris/keymaps/jennetters/config.h
index a3c0634f5..42f91bd02 100644
--- a/keyboards/iris/keymaps/jennetters/config.h
+++ b/keyboards/iris/keymaps/jennetters/config.h
@@ -19,9 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
19 19
20#define TAPPING_TERM 150 20#define TAPPING_TERM 150
21 21
22/* Try to prevent sticky keys */
23#define PREVENT_STUCK_MODIFIERS
24
25/* Use I2C or Serial, not both */ 22/* Use I2C or Serial, not both */
26 23
27#define USE_SERIAL 24#define USE_SERIAL
@@ -38,4 +35,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
38#define RGBLED_NUM 12 35#define RGBLED_NUM 12
39#define RGBLIGHT_HUE_STEP 8 36#define RGBLIGHT_HUE_STEP 8
40#define RGBLIGHT_SAT_STEP 8 37#define RGBLIGHT_SAT_STEP 8
41#define RGBLIGHT_VAL_STEP 8 \ No newline at end of file 38#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/iris/keymaps/krusli/config.h b/keyboards/iris/keymaps/krusli/config.h
index a53c746ad..72e35c472 100644
--- a/keyboards/iris/keymaps/krusli/config.h
+++ b/keyboards/iris/keymaps/krusli/config.h
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20 20
21#include "config_common.h" 21#include "config_common.h"
22 22
23// #define PREVENT_STUCK_MODIFIERS
24
25/* Use I2C or Serial, not both */ 23/* Use I2C or Serial, not both */
26 24
27#define USE_SERIAL 25#define USE_SERIAL
diff --git a/keyboards/iris/keymaps/xyverz/config.h b/keyboards/iris/keymaps/xyverz/config.h
index 0c61a8eac..b820a0753 100644
--- a/keyboards/iris/keymaps/xyverz/config.h
+++ b/keyboards/iris/keymaps/xyverz/config.h
@@ -23,8 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
23#define USE_SERIAL 23#define USE_SERIAL
24#define EE_HANDS 24#define EE_HANDS
25 25
26#define PREVENT_STUCK_MODIFIERS
27
28#undef PRODUCT 26#undef PRODUCT
29#define PRODUCT Iris Keyboard 27#define PRODUCT Iris Keyboard
30 28
diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/config.h b/keyboards/jc65/v32u4/keymaps/gam3cat/config.h
index a3819d3a5..d86da86e4 100644
--- a/keyboards/jc65/v32u4/keymaps/gam3cat/config.h
+++ b/keyboards/jc65/v32u4/keymaps/gam3cat/config.h
@@ -1,7 +1,6 @@
1#include "../../config.h" 1#include "../../config.h"
2//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut. 2//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut.
3#define GRAVE_ESC_CTRL_OVERRIDE 3#define GRAVE_ESC_CTRL_OVERRIDE
4#define PREVENT_STUCK_MODIFIERS
5 4
6//Delay matrix scan for tap dance, reduce to activate modifier keys faster. 5//Delay matrix scan for tap dance, reduce to activate modifier keys faster.
7//#define TAPPING_TERM 200 6//#define TAPPING_TERM 200
diff --git a/keyboards/jj40/keymaps/ajp10304/config.h b/keyboards/jj40/keymaps/ajp10304/config.h
deleted file mode 100644
index 11cafbefc..000000000
--- a/keyboards/jj40/keymaps/ajp10304/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif
diff --git a/keyboards/jj40/keymaps/fun40/config.h b/keyboards/jj40/keymaps/fun40/config.h
index 89807d84a..f2b5d264e 100644
--- a/keyboards/jj40/keymaps/fun40/config.h
+++ b/keyboards/jj40/keymaps/fun40/config.h
@@ -4,6 +4,5 @@
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define FORCE_NKRO 6#define FORCE_NKRO
7#define PREVENT_STUCK_MODIFIERS
8 7
9#endif 8#endif
diff --git a/keyboards/jj40/keymaps/krusli/config.h b/keyboards/jj40/keymaps/krusli/config.h
index 6d98a37a6..e710dbbb6 100644
--- a/keyboards/jj40/keymaps/krusli/config.h
+++ b/keyboards/jj40/keymaps/krusli/config.h
@@ -3,7 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7// #define TAPPING_TERM 300 6// #define TAPPING_TERM 300
8 7
9#endif 8#endif
diff --git a/keyboards/jj40/keymaps/oscillope/config.h b/keyboards/jj40/keymaps/oscillope/config.h
index d7f991fa9..e812903de 100644
--- a/keyboards/jj40/keymaps/oscillope/config.h
+++ b/keyboards/jj40/keymaps/oscillope/config.h
@@ -3,7 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define TAPPING_TERM 200 6#define TAPPING_TERM 200
8 7
9#endif 8#endif
diff --git a/keyboards/jj40/keymaps/suzuken/config.h b/keyboards/jj40/keymaps/suzuken/config.h
index 52aaa8f24..b1d74e1e6 100644
--- a/keyboards/jj40/keymaps/suzuken/config.h
+++ b/keyboards/jj40/keymaps/suzuken/config.h
@@ -3,7 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define TAPPING_TERM 300 6#define TAPPING_TERM 300
8 7
9#endif 8#endif
diff --git a/keyboards/jj40/keymaps/waples/config.h b/keyboards/jj40/keymaps/waples/config.h
index 52aaa8f24..b1d74e1e6 100644
--- a/keyboards/jj40/keymaps/waples/config.h
+++ b/keyboards/jj40/keymaps/waples/config.h
@@ -3,7 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define TAPPING_TERM 300 6#define TAPPING_TERM 300
8 7
9#endif 8#endif
diff --git a/keyboards/jm60/config.h b/keyboards/jm60/config.h
index 847cf2078..cb5c90bb1 100644
--- a/keyboards/jm60/config.h
+++ b/keyboards/jm60/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef CONFIG_H 18#ifndef CONFIG_H
19#define CONFIG_H 19#define CONFIG_H
20 20
21#define PREVENT_STUCK_MODIFIERS
22
23/* USB Device descriptor parameter */ 21/* USB Device descriptor parameter */
24#define VENDOR_ID 0xFEED 22#define VENDOR_ID 0xFEED
25#define PRODUCT_ID 0x6464 23#define PRODUCT_ID 0x6464
diff --git a/keyboards/k_type/config.h b/keyboards/k_type/config.h
index d19e0ff64..4937d9ad9 100644
--- a/keyboards/k_type/config.h
+++ b/keyboards/k_type/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef CONFIG_H 18#ifndef CONFIG_H
19#define CONFIG_H 19#define CONFIG_H
20 20
21#define PREVENT_STUCK_MODIFIERS
22
23/* USB Device descriptor parameter */ 21/* USB Device descriptor parameter */
24#define VENDOR_ID 0x1c11 22#define VENDOR_ID 0x1c11
25#define PRODUCT_ID 0xb04d 23#define PRODUCT_ID 0xb04d
diff --git a/keyboards/katana60/config.h b/keyboards/katana60/config.h
index 169cffb42..aaf2b5d54 100644
--- a/keyboards/katana60/config.h
+++ b/keyboards/katana60/config.h
@@ -48,7 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
48 48
49/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ 49/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
50#define DIODE_DIRECTION ROW2COL 50#define DIODE_DIRECTION ROW2COL
51 51
52// #define BACKLIGHT_PIN B7 52// #define BACKLIGHT_PIN B7
53// #define BACKLIGHT_BREATHING 53// #define BACKLIGHT_BREATHING
54// #define BACKLIGHT_LEVELS 3 54// #define BACKLIGHT_LEVELS 3
@@ -111,7 +111,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
111) 111)
112 112
113#define TAPPING_TERM 200 113#define TAPPING_TERM 200
114#define PREVENT_STUCK_MODIFIERS
115 114
116/* control how magic key switches layers */ 115/* control how magic key switches layers */
117//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true 116//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
diff --git a/keyboards/kbd75/config.h b/keyboards/kbd75/config.h
index f76d9082f..726afcaf6 100644
--- a/keyboards/kbd75/config.h
+++ b/keyboards/kbd75/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN E2 46#define RGB_DI_PIN E2
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/config.h b/keyboards/kinesis/keymaps/insertsnideremarks/config.h
index 3548fa348..9ce094be5 100644
--- a/keyboards/kinesis/keymaps/insertsnideremarks/config.h
+++ b/keyboards/kinesis/keymaps/insertsnideremarks/config.h
@@ -5,7 +5,6 @@
5#include "../../config.h" 5#include "../../config.h"
6 6
7// place overrides here 7// place overrides here
8#define PREVENT_STUCK_MODIFIERS
9#define IGNORE_MOD_TAP_INTERRUPT 8#define IGNORE_MOD_TAP_INTERRUPT
10#define TAPPING_TERM 175 9#define TAPPING_TERM 175
11#define TAPPING_TOGGLE 2 10#define TAPPING_TOGGLE 2
diff --git a/keyboards/lets_split/keymaps/OLED_sample/config.h b/keyboards/lets_split/keymaps/OLED_sample/config.h
index e8632fe61..6aa909d28 100644
--- a/keyboards/lets_split/keymaps/OLED_sample/config.h
+++ b/keyboards/lets_split/keymaps/OLED_sample/config.h
@@ -38,8 +38,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
38#define SSD1306OLED 38#define SSD1306OLED
39//#define OLED_ROTATE180 39//#define OLED_ROTATE180
40 40
41
42#define PREVENT_STUCK_MODIFIERS
43#define TAPPING_FORCE_HOLD 41#define TAPPING_FORCE_HOLD
44#define TAPPING_TERM 100 42#define TAPPING_TERM 100
45 43
diff --git a/keyboards/lets_split/keymaps/adam/config.h b/keyboards/lets_split/keymaps/adam/config.h
index ff29eb1bd..59a2e5db7 100644
--- a/keyboards/lets_split/keymaps/adam/config.h
+++ b/keyboards/lets_split/keymaps/adam/config.h
@@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
43 43
44#undef TAPPING_TERM 44#undef TAPPING_TERM
45#define TAPPING_TERM 200 //At 500 some bad logic takes hold 45#define TAPPING_TERM 200 //At 500 some bad logic takes hold
46#define PREVENT_STUCK_MODIFIERS
47#define IGNORE_MOD_TAP_INTERRUPT 46#define IGNORE_MOD_TAP_INTERRUPT
48#define PERMISSIVE_HOLD 47#define PERMISSIVE_HOLD
49 48
diff --git a/keyboards/lets_split/keymaps/khord/config.h b/keyboards/lets_split/keymaps/khord/config.h
index 4ebdbad76..71ec20dbc 100644
--- a/keyboards/lets_split/keymaps/khord/config.h
+++ b/keyboards/lets_split/keymaps/khord/config.h
@@ -25,9 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
25 25
26#define TAPPING_TERM 150 26#define TAPPING_TERM 150
27 27
28/* prevent stuck modifiers */
29#define PREVENT_STUCK_MODIFIERS
30
31/* Use I2C or Serial, not both */ 28/* Use I2C or Serial, not both */
32 29
33#define USE_SERIAL 30#define USE_SERIAL
diff --git a/keyboards/lets_split/keymaps/piemod/config.h b/keyboards/lets_split/keymaps/piemod/config.h
index 001b62e41..1b3fd7544 100644
--- a/keyboards/lets_split/keymaps/piemod/config.h
+++ b/keyboards/lets_split/keymaps/piemod/config.h
@@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
43#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 1 43#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 1
44 44
45// Typing Options 45// Typing Options
46#define PREVENT_STUCK_MODIFIERS
47#define QMK_KEYS_PER_SCAN 4 46#define QMK_KEYS_PER_SCAN 4
48 47
49#endif 48#endif
diff --git a/keyboards/lets_split/keymaps/waples/config.h b/keyboards/lets_split/keymaps/waples/config.h
index 98ebeff45..5221fd011 100644
--- a/keyboards/lets_split/keymaps/waples/config.h
+++ b/keyboards/lets_split/keymaps/waples/config.h
@@ -12,6 +12,4 @@
12// #define MASTER_RIGHT 12// #define MASTER_RIGHT
13#define EE_HANDS // We like to have choices I guess 13#define EE_HANDS // We like to have choices I guess
14 14
15#define PREVENT_STUCK_MODIFIERS // When switching layers, this will release all mods
16
17#endif 15#endif
diff --git a/keyboards/lets_split/keymaps/xk/config.h b/keyboards/lets_split/keymaps/xk/config.h
index c75ed12cc..a5cd51857 100644
--- a/keyboards/lets_split/keymaps/xk/config.h
+++ b/keyboards/lets_split/keymaps/xk/config.h
@@ -37,7 +37,6 @@ the Free Software Foundation, either version 2 of the License, or
37#define EE_HANDS 37#define EE_HANDS
38 38
39 39
40#define PREVENT_STUCK_MODIFIERS
41#define IGNORE_MOD_TAP_INTERRUPT 40#define IGNORE_MOD_TAP_INTERRUPT
42#define PERMISSIVE_HOLD 41#define PERMISSIVE_HOLD
43 42
diff --git a/keyboards/m10a/keymaps/gam3cat/config.h b/keyboards/m10a/keymaps/gam3cat/config.h
deleted file mode 100644
index 73bc50bc2..000000000
--- a/keyboards/m10a/keymaps/gam3cat/config.h
+++ /dev/null
@@ -1,2 +0,0 @@
1#include "../../config.h"
2#define PREVENT_STUCK_MODIFIERS
diff --git a/keyboards/mechmini/v2/config.h b/keyboards/mechmini/v2/config.h
index 58c751e0f..e0922bb7e 100755
--- a/keyboards/mechmini/v2/config.h
+++ b/keyboards/mechmini/v2/config.h
@@ -62,9 +62,6 @@
62 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 62 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
63) 63)
64 64
65/* prevent stuck modifiers */
66#define PREVENT_STUCK_MODIFIERS
67
68#define RGB_DI_PIN E2 65#define RGB_DI_PIN E2
69#ifdef RGB_DI_PIN 66#ifdef RGB_DI_PIN
70#define RGBLIGHT_ANIMATIONS 67#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/melody96/config.h b/keyboards/melody96/config.h
index 6083dcf75..67123a7e5 100644
--- a/keyboards/melody96/config.h
+++ b/keyboards/melody96/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN E2 46#define RGB_DI_PIN E2
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/minidox/keymaps/alairock/config.h b/keyboards/minidox/keymaps/alairock/config.h
index 445606031..3649fdd12 100644
--- a/keyboards/minidox/keymaps/alairock/config.h
+++ b/keyboards/minidox/keymaps/alairock/config.h
@@ -36,5 +36,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
36#define RGBLIGHT_HUE_STEP 10 36#define RGBLIGHT_HUE_STEP 10
37#define RGBLIGHT_SAT_STEP 17 37#define RGBLIGHT_SAT_STEP 17
38#define RGBLIGHT_VAL_STEP 17 38#define RGBLIGHT_VAL_STEP 17
39#define PREVENT_STUCK_MODIFIERS
40#endif 39#endif
diff --git a/keyboards/minidox/keymaps/khitsule/config.h b/keyboards/minidox/keymaps/khitsule/config.h
index 702354864..645e80ee8 100644
--- a/keyboards/minidox/keymaps/khitsule/config.h
+++ b/keyboards/minidox/keymaps/khitsule/config.h
@@ -1,8 +1,6 @@
1#ifndef CONFIG_USER_H 1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H 2#define CONFIG_USER_H
3 3
4#define PREVENT_STUCK_MODIFIERS
5
6#define IGNORE_MOD_TAP_INTERRUPT 4#define IGNORE_MOD_TAP_INTERRUPT
7 5
8#endif \ No newline at end of file 6#endif
diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h
index 37b69e93a..51c586e63 100644
--- a/keyboards/mint60/config.h
+++ b/keyboards/mint60/config.h
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
29#define PRODUCT Mint60 29#define PRODUCT Mint60
30#define DESCRIPTION A row staggered split keyboard 30#define DESCRIPTION A row staggered split keyboard
31 31
32#define PREVENT_STUCK_MODIFIERS
33#define TAPPING_FORCE_HOLD 32#define TAPPING_FORCE_HOLD
34#define TAPPING_TERM 100 33#define TAPPING_TERM 100
35 34
diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h
index 6101ee123..5cfd2e4b1 100644
--- a/keyboards/mitosis/config.h
+++ b/keyboards/mitosis/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/niu_mini/config.h b/keyboards/niu_mini/config.h
index 2f2230616..b9d3ed4e9 100644
--- a/keyboards/niu_mini/config.h
+++ b/keyboards/niu_mini/config.h
@@ -64,9 +64,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
64 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 64 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
65) 65)
66 66
67/* prevent stuck modifiers */
68#define PREVENT_STUCK_MODIFIERS
69
70#define RGB_DI_PIN E2 67#define RGB_DI_PIN E2
71#ifdef RGB_DI_PIN 68#ifdef RGB_DI_PIN
72#define RGBLIGHT_ANIMATIONS 69#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/novelpad/config.h b/keyboards/novelpad/config.h
index 0d6a71343..3a47c0eb6 100755
--- a/keyboards/novelpad/config.h
+++ b/keyboards/novelpad/config.h
@@ -53,9 +53,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
53 false \ 53 false \
54) 54)
55 55
56/* prevent stuck modifiers */
57#define PREVENT_STUCK_MODIFIERS
58
59#define BACKLIGHT_LEVELS 10 56#define BACKLIGHT_LEVELS 10
60#define BACKLIGHT_PIN B7 57#define BACKLIGHT_PIN B7
61 58
diff --git a/keyboards/noxary/268/config.h b/keyboards/noxary/268/config.h
index b2cb95e95..7eec79a1b 100644
--- a/keyboards/noxary/268/config.h
+++ b/keyboards/noxary/268/config.h
@@ -60,9 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
61) 61)
62 62
63/* prevent stuck modifiers */
64#define PREVENT_STUCK_MODIFIERS
65
66/* ws2812b options */ 63/* ws2812b options */
67#define RGB_DI_PIN B5 64#define RGB_DI_PIN B5
68#ifdef RGB_DI_PIN 65#ifdef RGB_DI_PIN
@@ -73,4 +70,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
73#define RGBLIGHT_VAL_STEP 16 70#define RGBLIGHT_VAL_STEP 16
74#endif 71#endif
75 72
76#endif \ No newline at end of file 73#endif
diff --git a/keyboards/ok60/config.h b/keyboards/ok60/config.h
index 61c2fa0ed..db7b74e58 100644
--- a/keyboards/ok60/config.h
+++ b/keyboards/ok60/config.h
@@ -71,9 +71,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
71 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 71 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
72) 72)
73 73
74/* prevent stuck modifiers */
75#define PREVENT_STUCK_MODIFIERS
76
77#define RGB_DI_PIN F6 74#define RGB_DI_PIN F6
78#define RGBLIGHT_ANIMATIONS 75#define RGBLIGHT_ANIMATIONS
79#define RGBLED_NUM 10 76#define RGBLED_NUM 10
diff --git a/keyboards/omnikey_blackheart/config.h b/keyboards/omnikey_blackheart/config.h
index 14b4a5f17..94412cfa6 100644
--- a/keyboards/omnikey_blackheart/config.h
+++ b/keyboards/omnikey_blackheart/config.h
@@ -45,10 +45,6 @@
45/* force n-key rollover*/ 45/* force n-key rollover*/
46#define FORCE_NKRO 46#define FORCE_NKRO
47 47
48/* prevent stuck modifiers */
49#define PREVENT_STUCK_MODIFIERS
50
51
52#ifdef RGB_DI_PIN 48#ifdef RGB_DI_PIN
53#define RGBLIGHT_ANIMATIONS 49#define RGBLIGHT_ANIMATIONS
54#define RGBLED_NUM 0 50#define RGBLED_NUM 0
@@ -57,4 +53,4 @@
57#define RGBLIGHT_VAL_STEP 8 53#define RGBLIGHT_VAL_STEP 8
58#endif 54#endif
59 55
60#endif \ No newline at end of file 56#endif
diff --git a/keyboards/paladin64/config.h b/keyboards/paladin64/config.h
index 27f54bf16..a5280f4d4 100755
--- a/keyboards/paladin64/config.h
+++ b/keyboards/paladin64/config.h
@@ -110,8 +110,6 @@
110 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 110 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
111) 111)
112 112
113/* prevent stuck modifiers */
114#define PREVENT_STUCK_MODIFIERS
115#define RGB_DI_PIN D0 113#define RGB_DI_PIN D0
116#ifdef RGB_DI_PIN 114#ifdef RGB_DI_PIN
117#define RGBLIGHT_ANIMATIONS 115#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/pegasushoof/keymaps/citadel/config.h b/keyboards/pegasushoof/keymaps/citadel/config.h
index e8eafe2e1..2d27ff392 100644
--- a/keyboards/pegasushoof/keymaps/citadel/config.h
+++ b/keyboards/pegasushoof/keymaps/citadel/config.h
@@ -8,7 +8,4 @@
8#undef PRODUCT 8#undef PRODUCT
9#define PRODUCT Pegasus Hoof Citadel 9#define PRODUCT Pegasus Hoof Citadel
10 10
11/* necessary option for this keymap, because CAPS is redefined in Layer 0 */
12#define PREVENT_STUCK_MODIFIERS
13
14#endif 11#endif
diff --git a/keyboards/planck/keymaps/ajp10304/config.h b/keyboards/planck/keymaps/ajp10304/config.h
deleted file mode 100644
index 11cafbefc..000000000
--- a/keyboards/planck/keymaps/ajp10304/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif
diff --git a/keyboards/planck/keymaps/altgr/config.h b/keyboards/planck/keymaps/altgr/config.h
index d55258c02..e517a8b24 100644
--- a/keyboards/planck/keymaps/altgr/config.h
+++ b/keyboards/planck/keymaps/altgr/config.h
@@ -3,9 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6// required because lower/raise modifiers are redefined by colemak-dh
7#define PREVENT_STUCK_MODIFIERS
8
9// tap dance key press termination interval 6// tap dance key press termination interval
10#define TAPPING_TERM 250 7#define TAPPING_TERM 250
11 8
diff --git a/keyboards/planck/keymaps/am/config.h b/keyboards/planck/keymaps/am/config.h
index b2b87045b..1ae457e3b 100644
--- a/keyboards/planck/keymaps/am/config.h
+++ b/keyboards/planck/keymaps/am/config.h
@@ -1,8 +1,5 @@
1#pragma once 1#pragma once
2 2
3/* Prevent stuck modifiers */
4#define PREVENT_STUCK_MODIFIERS
5
6#ifdef AUDIO_ENABLE 3#ifdef AUDIO_ENABLE
7 #define STARTUP_SONG SONG(PLANCK_SOUND) 4 #define STARTUP_SONG SONG(PLANCK_SOUND)
8 5
diff --git a/keyboards/planck/keymaps/andylikescandy/config.h b/keyboards/planck/keymaps/andylikescandy/config.h
index 0de5f3db0..01169db2a 100644
--- a/keyboards/planck/keymaps/andylikescandy/config.h
+++ b/keyboards/planck/keymaps/andylikescandy/config.h
@@ -17,9 +17,6 @@
17 17
18#define PERMISSIVE_HOLD 18#define PERMISSIVE_HOLD
19 19
20#define PREVENT_STUCK_MODIFIERS
21
22
23/* 20/*
24 * MIDI options 21 * MIDI options
25 */ 22 */
diff --git a/keyboards/planck/keymaps/bone2planck/config.h b/keyboards/planck/keymaps/bone2planck/config.h
deleted file mode 100644
index 3e9e692d3..000000000
--- a/keyboards/planck/keymaps/bone2planck/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/davidrambo/config.h b/keyboards/planck/keymaps/davidrambo/config.h
index c3bebf579..2decb3dc8 100644
--- a/keyboards/planck/keymaps/davidrambo/config.h
+++ b/keyboards/planck/keymaps/davidrambo/config.h
@@ -3,7 +3,6 @@
3#define CONFIG_USER_H 3#define CONFIG_USER_H
4#define TAPPING_TERM 200 4#define TAPPING_TERM 200
5#include "../../config.h" 5#include "../../config.h"
6#define PERMISSIVE_HOLD 6#define PERMISSIVE_HOLD
7#define PREVENT_STUCK_MODIFIERS
8 7
9#endif \ No newline at end of file 8#endif
diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h
index 480ba453a..9ba854ef0 100644
--- a/keyboards/planck/keymaps/dshields/config.h
+++ b/keyboards/planck/keymaps/dshields/config.h
@@ -10,7 +10,6 @@
10 10
11#define _______ KC_TRNS 11#define _______ KC_TRNS
12#define XXXXXXX KC_NO 12#define XXXXXXX KC_NO
13#define PREVENT_STUCK_MODIFIERS
14 13
15#define USB_MAX_POWER_CONSUMPTION 100 14#define USB_MAX_POWER_CONSUMPTION 100
16#define ONESHOT_TAP_TOGGLE 2 15#define ONESHOT_TAP_TOGGLE 2
diff --git a/keyboards/planck/keymaps/espynn/keymap.c b/keyboards/planck/keymaps/espynn/keymap.c
index 9cf508af6..5615a78bf 100644
--- a/keyboards/planck/keymaps/espynn/keymap.c
+++ b/keyboards/planck/keymaps/espynn/keymap.c
@@ -5,7 +5,6 @@
5#ifdef BACKLIGHT_ENABLE 5#ifdef BACKLIGHT_ENABLE
6 #include "backlight.h" 6 #include "backlight.h"
7#endif 7#endif
8#define PREVENT_STUCK_MODIFIERS
9extern keymap_config_t keymap_config; 8extern keymap_config_t keymap_config;
10 9
11// Symbolic names for macro IDs. 10// Symbolic names for macro IDs.
diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h
index 0864b5fbc..86cc4760b 100644
--- a/keyboards/planck/keymaps/experimental/config.h
+++ b/keyboards/planck/keymaps/experimental/config.h
@@ -5,8 +5,6 @@
5 5
6#define LEADER_TIMEOUT 300 6#define LEADER_TIMEOUT 300
7#define BACKLIGHT_BREATHING 7#define BACKLIGHT_BREATHING
8#define PREVENT_STUCK_MODIFIERS
9
10 8
11/* ws2812 RGB LED */ 9/* ws2812 RGB LED */
12#define RGB_DI_PIN B1 10#define RGB_DI_PIN B1
diff --git a/keyboards/planck/keymaps/experimental/rules.mk b/keyboards/planck/keymaps/experimental/rules.mk
index b135dfca0..168d3cb9f 100644
--- a/keyboards/planck/keymaps/experimental/rules.mk
+++ b/keyboards/planck/keymaps/experimental/rules.mk
@@ -18,10 +18,11 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
18RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. 18RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
19SWAP_HANDS_ENABLE = yes # Enable one-hand typing 19SWAP_HANDS_ENABLE = yes # Enable one-hand typing
20STENO_ENABLE = yes # Enable TX Bolt protocol for Stenography, requires VIRTSER and may not work with mouse keys 20STENO_ENABLE = yes # Enable TX Bolt protocol for Stenography, requires VIRTSER and may not work with mouse keys
21LEADER_ENABLE = yes
21 22
22# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 23# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
23SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 24SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
24 25
25ifndef QUANTUM_DIR 26ifndef QUANTUM_DIR
26 include ../../../../Makefile 27 include ../../../../Makefile
27endif \ No newline at end of file 28endif
diff --git a/keyboards/planck/keymaps/hiea/config.h b/keyboards/planck/keymaps/hiea/config.h
index 9bb5e0873..655cdf5db 100644
--- a/keyboards/planck/keymaps/hiea/config.h
+++ b/keyboards/planck/keymaps/hiea/config.h
@@ -3,9 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6// required because lower/raise modifiers are redefined by colemak-dh
7#define PREVENT_STUCK_MODIFIERS
8
9// tap dance key press termination interval 6// tap dance key press termination interval
10#define TAPPING_TERM 250 7#define TAPPING_TERM 250
11 8
diff --git a/keyboards/planck/keymaps/hieax/config.h b/keyboards/planck/keymaps/hieax/config.h
index 9bb5e0873..655cdf5db 100644
--- a/keyboards/planck/keymaps/hieax/config.h
+++ b/keyboards/planck/keymaps/hieax/config.h
@@ -3,9 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6// required because lower/raise modifiers are redefined by colemak-dh
7#define PREVENT_STUCK_MODIFIERS
8
9// tap dance key press termination interval 6// tap dance key press termination interval
10#define TAPPING_TERM 250 7#define TAPPING_TERM 250
11 8
diff --git a/keyboards/planck/keymaps/ishtob/config.h b/keyboards/planck/keymaps/ishtob/config.h
index e58ade0b0..688607634 100755
--- a/keyboards/planck/keymaps/ishtob/config.h
+++ b/keyboards/planck/keymaps/ishtob/config.h
@@ -2,7 +2,6 @@
2#ifndef USERSPACE_CONFIG_H 2#ifndef USERSPACE_CONFIG_H
3#define USERSPACE_CONFIG_H 3#define USERSPACE_CONFIG_H
4 4
5
6#ifdef AUDIO_ENABLE 5#ifdef AUDIO_ENABLE
7 6
8// #define STARTUP_SONG SONG(E1M1_DOOM) 7// #define STARTUP_SONG SONG(E1M1_DOOM)
@@ -24,7 +23,6 @@
24#define FORCE_NKRO 23#define FORCE_NKRO
25 24
26#define LEADER_TIMEOUT 300 25#define LEADER_TIMEOUT 300
27#define PREVENT_STUCK_MODIFIERS
28 26
29#undef DEBOUNCE 27#undef DEBOUNCE
30#define DEBOUNCE 0 28#define DEBOUNCE 0
diff --git a/keyboards/planck/keymaps/jarred/config.h b/keyboards/planck/keymaps/jarred/config.h
index f98b8935e..9e8f404c1 100644
--- a/keyboards/planck/keymaps/jarred/config.h
+++ b/keyboards/planck/keymaps/jarred/config.h
@@ -19,8 +19,6 @@
19 19
20#include "config_common.h" 20#include "config_common.h"
21 21
22#define PREVENT_STUCK_MODIFIERS
23
24#ifdef AUDIO_ENABLE 22#ifdef AUDIO_ENABLE
25 #define STARTUP_SONG SONG(PLANCK_SOUND) 23 #define STARTUP_SONG SONG(PLANCK_SOUND)
26#endif 24#endif
@@ -34,6 +32,6 @@
34 32
35#define MOUSEKEY_WHEEL_DELAY 0 33#define MOUSEKEY_WHEEL_DELAY 0
36#define MOUSEKEY_WHEEL_MAX_SPEED 4 34#define MOUSEKEY_WHEEL_MAX_SPEED 4
37#define MOUSEKEY_WHEEL_TIME_TO_MAX 255 35#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
38 36
39#endif 37#endif
diff --git a/keyboards/planck/keymaps/jeremy-dev/keymap.c b/keyboards/planck/keymaps/jeremy-dev/keymap.c
index 5aea44329..89b7e6b84 100644
--- a/keyboards/planck/keymaps/jeremy-dev/keymap.c
+++ b/keyboards/planck/keymaps/jeremy-dev/keymap.c
@@ -1,7 +1,6 @@
1// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer. 1// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
2 2
3// Configuration options 3// Configuration options
4#define PREVENT_STUCK_MODIFIERS
5 4
6#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example" 5#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
7#include "planck.h" 6#include "planck.h"
diff --git a/keyboards/planck/keymaps/kmontag42/rules.mk b/keyboards/planck/keymaps/kmontag42/rules.mk
index b9f73934a..0c100076b 100644
--- a/keyboards/planck/keymaps/kmontag42/rules.mk
+++ b/keyboards/planck/keymaps/kmontag42/rules.mk
@@ -1,4 +1,5 @@
1UNICODE_ENABLE = yes 1UNICODE_ENABLE = yes
2LEADER_ENABLE = yes
2 3
3ifndef QUANTUM_DIR 4ifndef QUANTUM_DIR
4 include ../../../../Makefile 5 include ../../../../Makefile
diff --git a/keyboards/planck/keymaps/lae3/config.h b/keyboards/planck/keymaps/lae3/config.h
deleted file mode 100644
index a28634e69..000000000
--- a/keyboards/planck/keymaps/lae3/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef LAE3_KEYMAP_H
2#define LAE3_KEYMAP_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif
diff --git a/keyboards/planck/keymaps/mitch/config.h b/keyboards/planck/keymaps/mitch/config.h
index 10591b3c8..bb7989d90 100644
--- a/keyboards/planck/keymaps/mitch/config.h
+++ b/keyboards/planck/keymaps/mitch/config.h
@@ -1,6 +1,5 @@
1#include "../../config.h" 1#include "../../config.h"
2#define PREVENT_STUCK_MODIFIERS
3 2
4// for the broken board 3// for the broken board
5#undef MATRIX_COL_PINS 4#undef MATRIX_COL_PINS
6#define MATRIX_COL_PINS { F1, F0, B0, B2, F4, F5, F6, F7, D4, D6, B4, D7 } \ No newline at end of file 5#define MATRIX_COL_PINS { F1, F0, B0, B2, F4, F5, F6, F7, D4, D6, B4, D7 }
diff --git a/keyboards/planck/keymaps/mitch/readme.md b/keyboards/planck/keymaps/mitch/readme.md
index 3869304f4..9ed1133ef 100644
--- a/keyboards/planck/keymaps/mitch/readme.md
+++ b/keyboards/planck/keymaps/mitch/readme.md
@@ -20,7 +20,3 @@ rest of the symbols, mostly mapped with the ten key numbers.
20 20
21The normal right shift key uses the `MT` macro to trigger Enter on tap and right 21The normal right shift key uses the `MT` macro to trigger Enter on tap and right
22shift when held. 22shift when held.
23
24This keymap sets the `PREVENT_STUCK_MODIFIERS` flag to avoid the occasional WTF
25moments when using a modifier keys and accidentally releasing them after moving
26to a new layer.
diff --git a/keyboards/planck/keymaps/narze/config.h b/keyboards/planck/keymaps/narze/config.h
index e081a93b5..19d784b2b 100644
--- a/keyboards/planck/keymaps/narze/config.h
+++ b/keyboards/planck/keymaps/narze/config.h
@@ -33,10 +33,9 @@
33 33
34#define IGNORE_MOD_TAP_INTERRUPT 34#define IGNORE_MOD_TAP_INTERRUPT
35#define PERMISSIVE_HOLD 35#define PERMISSIVE_HOLD
36#define PREVENT_STUCK_MODIFIERS
37 36
38#define SUPER_DUPER_SOUND S__NOTE(_B1) 37#define SUPER_DUPER_SOUND S__NOTE(_B1)
39 38
40#define MOUSEKEY_DELAY 100 39#define MOUSEKEY_DELAY 100
41 40
42#endif \ No newline at end of file 41#endif
diff --git a/keyboards/planck/keymaps/neo2planck/config.h b/keyboards/planck/keymaps/neo2planck/config.h
deleted file mode 100644
index 3e9e692d3..000000000
--- a/keyboards/planck/keymaps/neo2planck/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/priyadi/config.h b/keyboards/planck/keymaps/priyadi/config.h
index 448ae3b90..876d057bf 100644
--- a/keyboards/planck/keymaps/priyadi/config.h
+++ b/keyboards/planck/keymaps/priyadi/config.h
@@ -11,8 +11,6 @@
11/* skip bootmagic and eeconfig */ 11/* skip bootmagic and eeconfig */
12#define BOOTMAGIC_KEY_SKIP KC_SPACE 12#define BOOTMAGIC_KEY_SKIP KC_SPACE
13 13
14#define PREVENT_STUCK_MODIFIERS
15
16#define UNICODE_TYPE_DELAY 0 14#define UNICODE_TYPE_DELAY 0
17 15
18#define LAYOUT_DVORAK 16#define LAYOUT_DVORAK
diff --git a/keyboards/planck/keymaps/sdothum/config.h b/keyboards/planck/keymaps/sdothum/config.h
index 4b2cdeece..8bed79e6f 100644
--- a/keyboards/planck/keymaps/sdothum/config.h
+++ b/keyboards/planck/keymaps/sdothum/config.h
@@ -3,9 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6// required because lower/raise modifiers are redefined by colemak-dh
7#define PREVENT_STUCK_MODIFIERS
8
9// tap dance key press termination interval 6// tap dance key press termination interval
10#define TAPPING_TERM 250 7#define TAPPING_TERM 250
11 8
diff --git a/keyboards/planck/keymaps/steno/config.h b/keyboards/planck/keymaps/steno/config.h
index 1879ab007..4f99c7eb8 100644
--- a/keyboards/planck/keymaps/steno/config.h
+++ b/keyboards/planck/keymaps/steno/config.h
@@ -15,8 +15,6 @@
15 15
16#define MUSIC_MASK (keycode != KC_NO) 16#define MUSIC_MASK (keycode != KC_NO)
17 17
18#define PREVENT_STUCK_MODIFIERS
19
20/* 18/*
21 * MIDI options 19 * MIDI options
22 */ 20 */
@@ -41,4 +39,4 @@
41/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 39/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
42//#define MIDI_TONE_KEYCODE_OCTAVES 2 40//#define MIDI_TONE_KEYCODE_OCTAVES 2
43 41
44#endif \ No newline at end of file 42#endif
diff --git a/keyboards/planck/keymaps/tehwalris/config.h b/keyboards/planck/keymaps/tehwalris/config.h
index 4725e1426..c5d55b969 100644
--- a/keyboards/planck/keymaps/tehwalris/config.h
+++ b/keyboards/planck/keymaps/tehwalris/config.h
@@ -3,8 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7
8#ifdef AUDIO_ENABLE 6#ifdef AUDIO_ENABLE
9 // #define STARTUP_SONG SONG(PLANCK_SOUND) 7 // #define STARTUP_SONG SONG(PLANCK_SOUND)
10 #define STARTUP_SONG SONG(NO_SOUND) 8 #define STARTUP_SONG SONG(NO_SOUND)
@@ -27,7 +25,7 @@
27/* enable basic MIDI features: 25/* enable basic MIDI features:
28 - MIDI notes can be sent when in Music mode is on 26 - MIDI notes can be sent when in Music mode is on
29*/ 27*/
30 28
31#define MIDI_BASIC 29#define MIDI_BASIC
32 30
33/* enable advanced MIDI features: 31/* enable advanced MIDI features:
diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h
index 4cb4a1235..be395faad 100644
--- a/keyboards/planck/keymaps/vifon/config.h
+++ b/keyboards/planck/keymaps/vifon/config.h
@@ -26,9 +26,6 @@
26/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ 26/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
27//#define MIDI_TONE_KEYCODE_OCTAVES 2 27//#define MIDI_TONE_KEYCODE_OCTAVES 2
28 28
29/* prevent the modifiers from being stuck, sacrificing some memory */
30#define PREVENT_STUCK_MODIFIERS
31
32/* A larger buffer for the dynamic macros as this keymap is not taking 29/* A larger buffer for the dynamic macros as this keymap is not taking
33 * up that much memory. 30 * up that much memory.
34 */ 31 */
diff --git a/keyboards/planck/keymaps/yale/config.h b/keyboards/planck/keymaps/yale/config.h
deleted file mode 100644
index 8a916bbd0..000000000
--- a/keyboards/planck/keymaps/yale/config.h
+++ /dev/null
@@ -1,11 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif
9
10
11
diff --git a/keyboards/planck/keymaps/zach/config.h b/keyboards/planck/keymaps/zach/config.h
index 19a3856a3..dc79bad06 100644
--- a/keyboards/planck/keymaps/zach/config.h
+++ b/keyboards/planck/keymaps/zach/config.h
@@ -55,7 +55,6 @@
55//#define NO_ACTION_ONESHOT 55//#define NO_ACTION_ONESHOT
56#define NO_ACTION_MACRO 56#define NO_ACTION_MACRO
57#define NO_ACTION_FUNCTION 57#define NO_ACTION_FUNCTION
58#define PREVENT_STUCK_MODIFIERS
59//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality 58//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality
60//#define SPACE_CADET // Parenthesis on L/R shift 59//#define SPACE_CADET // Parenthesis on L/R shift
61 60
diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h
index 0e462180b..afd69f7d8 100644
--- a/keyboards/planck/rev6/config.h
+++ b/keyboards/planck/rev6/config.h
@@ -50,9 +50,6 @@
50/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 50/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
51#define DEBOUNCE 6 51#define DEBOUNCE 6
52 52
53/* Prevent modifiers from being stuck on after layer changes. */
54#define PREVENT_STUCK_MODIFIERS
55
56/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 53/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
57//#define LOCKING_SUPPORT_ENABLE 54//#define LOCKING_SUPPORT_ENABLE
58/* Locking resynchronize hack */ 55/* Locking resynchronize hack */
diff --git a/keyboards/playkbtw/ca66/config.h b/keyboards/playkbtw/ca66/config.h
index c35718042..53bbe95e3 100644
--- a/keyboards/playkbtw/ca66/config.h
+++ b/keyboards/playkbtw/ca66/config.h
@@ -42,8 +42,6 @@
42 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 42 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
43) 43)
44 44
45/* prevent stuck modifiers */
46#define PREVENT_STUCK_MODIFIERS
47 45
48#define RGB_DI_PIN B1 46#define RGB_DI_PIN B1
49#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
diff --git a/keyboards/playkbtw/pk60/config.h b/keyboards/playkbtw/pk60/config.h
index 06101349c..601e3c8a5 100644
--- a/keyboards/playkbtw/pk60/config.h
+++ b/keyboards/playkbtw/pk60/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN E2 46#define RGB_DI_PIN E2
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
55#define RGBLIGHT_VAL_STEP 8 52#define RGBLIGHT_VAL_STEP 8
56#endif 53#endif
57 54
58#endif \ No newline at end of file 55#endif
diff --git a/keyboards/preonic/keymaps/bucktooth/config.h b/keyboards/preonic/keymaps/bucktooth/config.h
index b98883120..23e9e0ed2 100644
--- a/keyboards/preonic/keymaps/bucktooth/config.h
+++ b/keyboards/preonic/keymaps/bucktooth/config.h
@@ -4,6 +4,5 @@
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define FORCE_NKRO 1 6#define FORCE_NKRO 1
7#define PREVENT_STUCK_MODIFIERS
8 7
9#endif 8#endif
diff --git a/keyboards/preonic/keymaps/jacwib/config.h b/keyboards/preonic/keymaps/jacwib/config.h
index b98883120..23e9e0ed2 100644
--- a/keyboards/preonic/keymaps/jacwib/config.h
+++ b/keyboards/preonic/keymaps/jacwib/config.h
@@ -4,6 +4,5 @@
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define FORCE_NKRO 1 6#define FORCE_NKRO 1
7#define PREVENT_STUCK_MODIFIERS
8 7
9#endif 8#endif
diff --git a/keyboards/preonic/keymaps/kuatsure/rules.mk b/keyboards/preonic/keymaps/kuatsure/rules.mk
index 76d73acef..9369f99a9 100644
--- a/keyboards/preonic/keymaps/kuatsure/rules.mk
+++ b/keyboards/preonic/keymaps/kuatsure/rules.mk
@@ -1 +1,2 @@
1BACKLIGHT_ENABLE = no 1BACKLIGHT_ENABLE = no
2LEADER_ENABLE = yes
diff --git a/keyboards/preonic/keymaps/that_canadian/config.h b/keyboards/preonic/keymaps/that_canadian/config.h
deleted file mode 100644
index 11cafbefc..000000000
--- a/keyboards/preonic/keymaps/that_canadian/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
1#ifndef CONFIG_USER_H
2#define CONFIG_USER_H
3
4#include "../../config.h"
5
6#define PREVENT_STUCK_MODIFIERS
7
8#endif
diff --git a/keyboards/preonic/keymaps/zach/config.h b/keyboards/preonic/keymaps/zach/config.h
index bb8913c7a..40a083da3 100644
--- a/keyboards/preonic/keymaps/zach/config.h
+++ b/keyboards/preonic/keymaps/zach/config.h
@@ -87,7 +87,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
87//#define NO_ACTION_ONESHOT 87//#define NO_ACTION_ONESHOT
88#define NO_ACTION_MACRO 88#define NO_ACTION_MACRO
89#define NO_ACTION_FUNCTION 89#define NO_ACTION_FUNCTION
90#define PREVENT_STUCK_MODIFIERS
91//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality 90//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality
92//#define SPACE_CADET // Parenthesis on L/R shift 91//#define SPACE_CADET // Parenthesis on L/R shift
93 92
diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h
index 3f57c591a..98899dc6a 100644
--- a/keyboards/preonic/rev3/config.h
+++ b/keyboards/preonic/rev3/config.h
@@ -50,9 +50,6 @@
50/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ 50/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
51#define DEBOUNCE 6 51#define DEBOUNCE 6
52 52
53/* Prevent modifiers from being stuck on after layer changes. */
54#define PREVENT_STUCK_MODIFIERS
55
56/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ 53/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
57//#define LOCKING_SUPPORT_ENABLE 54//#define LOCKING_SUPPORT_ENABLE
58/* Locking resynchronize hack */ 55/* Locking resynchronize hack */
diff --git a/keyboards/prime_r/config.h b/keyboards/prime_r/config.h
index b53f14905..ad92199a2 100644
--- a/keyboards/prime_r/config.h
+++ b/keyboards/prime_r/config.h
@@ -60,10 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
61) 61)
62 62
63/* prevent stuck modifiers */
64#define PREVENT_STUCK_MODIFIERS
65
66
67#ifdef RGB_DI_PIN 63#ifdef RGB_DI_PIN
68#define RGBLIGHT_ANIMATIONS 64#define RGBLIGHT_ANIMATIONS
69#define RGBLED_NUM 0 65#define RGBLED_NUM 0
diff --git a/keyboards/rorschach/keymaps/insertsnideremarks/config.h b/keyboards/rorschach/keymaps/insertsnideremarks/config.h
index 90fb5120d..2048232c9 100644
--- a/keyboards/rorschach/keymaps/insertsnideremarks/config.h
+++ b/keyboards/rorschach/keymaps/insertsnideremarks/config.h
@@ -11,7 +11,6 @@
11// #define MASTER_RIGHT 11// #define MASTER_RIGHT
12#define EE_HANDS 12#define EE_HANDS
13 13
14#define PREVENT_STUCK_MODIFIERS
15#define IGNORE_MOD_TAP_INTERRUPT 14#define IGNORE_MOD_TAP_INTERRUPT
16#define TAPPING_TERM 175 15#define TAPPING_TERM 175
17#define TAPPING_TOGGLE 2 16#define TAPPING_TOGGLE 2
diff --git a/keyboards/s60_x/keymaps/bluebear/config.h b/keyboards/s60_x/keymaps/bluebear/config.h
index 35754b523..10bddf0d3 100644
--- a/keyboards/s60_x/keymaps/bluebear/config.h
+++ b/keyboards/s60_x/keymaps/bluebear/config.h
@@ -105,7 +105,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
105// Space Cadet Rollover - if set, allows to tap opposite shift key to cancel erroneous press 105// Space Cadet Rollover - if set, allows to tap opposite shift key to cancel erroneous press
106#define DISABLE_SPACE_CADET_ROLLOVER 106#define DISABLE_SPACE_CADET_ROLLOVER
107 107
108// Prevent stuck modifiers
109#define PREVENT_STUCK_MODIFIERS
110
111#endif 108#endif
diff --git a/keyboards/s60_x/rgb/config.h b/keyboards/s60_x/rgb/config.h
index ec8b0f49e..d9c26658d 100644
--- a/keyboards/s60_x/rgb/config.h
+++ b/keyboards/s60_x/rgb/config.h
@@ -17,9 +17,6 @@
17/* Locking resynchronize hack */ 17/* Locking resynchronize hack */
18#define LOCKING_RESYNC_ENABLE 18#define LOCKING_RESYNC_ENABLE
19 19
20/* prevent stuck modifiers */
21#define PREVENT_STUCK_MODIFIERS
22
23#define RGB_DI_PIN F6 20#define RGB_DI_PIN F6
24#ifdef RGB_DI_PIN 21#ifdef RGB_DI_PIN
25#define RGBLIGHT_ANIMATIONS 22#define RGBLIGHT_ANIMATIONS
@@ -29,4 +26,4 @@
29#define RGBLIGHT_VAL_STEP 8 26#define RGBLIGHT_VAL_STEP 8
30#endif 27#endif
31 28
32#endif \ No newline at end of file 29#endif
diff --git a/keyboards/s65_plus/config.h b/keyboards/s65_plus/config.h
index df60e60a8..60512db46 100644
--- a/keyboards/s65_plus/config.h
+++ b/keyboards/s65_plus/config.h
@@ -49,7 +49,4 @@
49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
50) 50)
51 51
52/* prevent stuck modifiers */
53#define PREVENT_STUCK_MODIFIERS
54
55#endif 52#endif
diff --git a/keyboards/s65_x/config.h b/keyboards/s65_x/config.h
index 8288ef783..367efc526 100644
--- a/keyboards/s65_x/config.h
+++ b/keyboards/s65_x/config.h
@@ -49,8 +49,4 @@
49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 49 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
50) 50)
51 51
52
53/* prevent stuck modifiers */
54#define PREVENT_STUCK_MODIFIERS
55
56#endif 52#endif
diff --git a/keyboards/sx60/config.h b/keyboards/sx60/config.h
index f22fbe8be..52a1cc7a1 100755
--- a/keyboards/sx60/config.h
+++ b/keyboards/sx60/config.h
@@ -46,10 +46,6 @@
46 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 46 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
47) 47)
48 48
49/* prevent stuck modifiers */
50#define PREVENT_STUCK_MODIFIERS
51
52
53#ifdef RGB_DI_PIN 49#ifdef RGB_DI_PIN
54#define RGBLIGHT_ANIMATIONS 50#define RGBLIGHT_ANIMATIONS
55#define RGBLED_NUM 0 51#define RGBLED_NUM 0
diff --git a/keyboards/telophase/config.h b/keyboards/telophase/config.h
index 09655c025..be0a36977 100644
--- a/keyboards/telophase/config.h
+++ b/keyboards/telophase/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
52 * These options are also useful to firmware size reduction. 52 * These options are also useful to firmware size reduction.
53 */ 53 */
54 54
55#define PREVENT_STUCK_MODIFIERS
56
57/* disable debug print */ 55/* disable debug print */
58//#define NO_DEBUG 56//#define NO_DEBUG
59 57
diff --git a/keyboards/tetris/config.h b/keyboards/tetris/config.h
index 9c7f525a7..7e7dac7cf 100644
--- a/keyboards/tetris/config.h
+++ b/keyboards/tetris/config.h
@@ -41,9 +41,6 @@
41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 41 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
42) 42)
43 43
44/* prevent stuck modifiers */
45#define PREVENT_STUCK_MODIFIERS
46
47#define TAPPING_TERM 200 44#define TAPPING_TERM 200
48#define PERMISSIVE_HOLD 45#define PERMISSIVE_HOLD
49 46
@@ -62,4 +59,4 @@
62//#define RGBLIGHT_LIMIT_VAL 128 59//#define RGBLIGHT_LIMIT_VAL 128
63#endif 60#endif
64 61
65#endif \ No newline at end of file 62#endif
diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
index bb2aadfa6..fc9bd3d61 100644
--- a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
+++ b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
@@ -3,7 +3,6 @@
3 3
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define SPACE_COUNT 3 6#define SPACE_COUNT 3
8 7
9#define TEMPLATE( \ 8#define TEMPLATE( \
diff --git a/keyboards/tokyo60/config.h b/keyboards/tokyo60/config.h
index 6e6ab2215..16927be17 100644
--- a/keyboards/tokyo60/config.h
+++ b/keyboards/tokyo60/config.h
@@ -47,9 +47,6 @@
47/* Locking resynchronize hack */ 47/* Locking resynchronize hack */
48#define LOCKING_RESYNC_ENABLE 48#define LOCKING_RESYNC_ENABLE
49 49
50/* prevent stuck modifiers */
51#define PREVENT_STUCK_MODIFIERS
52
53#define RGB_DI_PIN F7 50#define RGB_DI_PIN F7
54#ifdef RGB_DI_PIN 51#ifdef RGB_DI_PIN
55#define RGBLIGHT_ANIMATIONS 52#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/tomato/config.h b/keyboards/tomato/config.h
index f33c13108..185cb326c 100644
--- a/keyboards/tomato/config.h
+++ b/keyboards/tomato/config.h
@@ -34,9 +34,6 @@
34 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 34 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
35) 35)
36 36
37/* prevent stuck modifiers */
38#define PREVENT_STUCK_MODIFIERS
39
40/* eliminate lag on space cadet mods */ 37/* eliminate lag on space cadet mods */
41#define PERMISSIVE_HOLD 38#define PERMISSIVE_HOLD
42 39
diff --git a/keyboards/uk78/config.h b/keyboards/uk78/config.h
index 35f5bf70b..34d672079 100644
--- a/keyboards/uk78/config.h
+++ b/keyboards/uk78/config.h
@@ -60,9 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 60 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
61) 61)
62 62
63/* prevent stuck modifiers */
64#define PREVENT_STUCK_MODIFIERS
65
66/* ws2812b options */ 63/* ws2812b options */
67#define RGB_DI_PIN F6 64#define RGB_DI_PIN F6
68#ifdef RGB_DI_PIN 65#ifdef RGB_DI_PIN
diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h
index 687f80441..a1e361e34 100644
--- a/keyboards/viterbi/keymaps/drashna/config.h
+++ b/keyboards/viterbi/keymaps/drashna/config.h
@@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
53#define NO_MUSIC_MODE 53#define NO_MUSIC_MODE
54#endif 54#endif
55 55
56#undef PREVENT_STUCK_MODIFIERS 56#define STRICT_LAYER_RELEASE
57 57
58#define LAYOUT_ortho_5x7( \ 58#define LAYOUT_ortho_5x7( \
59 L00, L01, L02, L03, L04, L05, L06, \ 59 L00, L01, L02, L03, L04, L05, L06, \
diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h
index 9f021fb51..a8047cf54 100644
--- a/keyboards/whitefox/config.h
+++ b/keyboards/whitefox/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
18#ifndef CONFIG_H 18#ifndef CONFIG_H
19#define CONFIG_H 19#define CONFIG_H
20 20
21#define PREVENT_STUCK_MODIFIERS
22
23/* USB Device descriptor parameter */ 21/* USB Device descriptor parameter */
24#define VENDOR_ID 0x1c11 22#define VENDOR_ID 0x1c11
25#define PRODUCT_ID 0xb04d 23#define PRODUCT_ID 0xb04d
diff --git a/keyboards/xd60/keymaps/kmontag42/rules.mk b/keyboards/xd60/keymaps/kmontag42/rules.mk
new file mode 100644
index 000000000..d0d2ef6d5
--- /dev/null
+++ b/keyboards/xd60/keymaps/kmontag42/rules.mk
@@ -0,0 +1 @@
LEADER_ENABLE = yes
diff --git a/keyboards/xd75/keymaps/davidrambo/config.h b/keyboards/xd75/keymaps/davidrambo/config.h
index e87ccde79..f21914703 100644
--- a/keyboards/xd75/keymaps/davidrambo/config.h
+++ b/keyboards/xd75/keymaps/davidrambo/config.h
@@ -20,7 +20,6 @@
20#include "../../config.h" 20#include "../../config.h"
21 21
22#define TAPPING_TERM 200 22#define TAPPING_TERM 200
23#define PERMISSIVE_HOLD 23#define PERMISSIVE_HOLD
24#define PREVENT_STUCK_MODIFIERS
25 24
26#endif 25#endif
diff --git a/keyboards/xd75/keymaps/tdl-jturner/config.h b/keyboards/xd75/keymaps/tdl-jturner/config.h
index 561a48d7e..985247bb2 100644
--- a/keyboards/xd75/keymaps/tdl-jturner/config.h
+++ b/keyboards/xd75/keymaps/tdl-jturner/config.h
@@ -26,7 +26,6 @@
26#define TAPPING_TOGGLE 2 26#define TAPPING_TOGGLE 2
27//#define PERMISSIVE_HOLD 27//#define PERMISSIVE_HOLD
28//#define QMK_KEYS_PER_SCAN 4 28//#define QMK_KEYS_PER_SCAN 4
29#define PREVENT_STUCK_MODIFIERS
30#define FORCE_NKRO 29#define FORCE_NKRO
31 30
32#define MOUSEKEY_INTERVAL 16 31#define MOUSEKEY_INTERVAL 16
diff --git a/keyboards/xmmx/config.h b/keyboards/xmmx/config.h
index f3f893e28..8cb2cf82d 100644
--- a/keyboards/xmmx/config.h
+++ b/keyboards/xmmx/config.h
@@ -43,10 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49
50#ifdef RGB_DI_PIN 46#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 47#define RGBLIGHT_ANIMATIONS
52#define RGBLED_NUM 0 48#define RGBLED_NUM 0
@@ -55,4 +51,4 @@
55#define RGBLIGHT_VAL_STEP 8 51#define RGBLIGHT_VAL_STEP 8
56#endif 52#endif
57 53
58#endif \ No newline at end of file 54#endif
diff --git a/keyboards/ymd96/keymaps/hgoel89/config.h b/keyboards/ymd96/keymaps/hgoel89/config.h
index 52aaa8f24..b1d74e1e6 100644
--- a/keyboards/ymd96/keymaps/hgoel89/config.h
+++ b/keyboards/ymd96/keymaps/hgoel89/config.h
@@ -3,7 +3,6 @@
3 3
4#include "../../config.h" 4#include "../../config.h"
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define TAPPING_TERM 300 6#define TAPPING_TERM 300
8 7
9#endif 8#endif
diff --git a/keyboards/z150_blackheart/config.h b/keyboards/z150_blackheart/config.h
index d2fce9aee..362153652 100644
--- a/keyboards/z150_blackheart/config.h
+++ b/keyboards/z150_blackheart/config.h
@@ -39,14 +39,10 @@
39 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 39 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
40) 40)
41 41
42/* prevent stuck modifiers */
43#define PREVENT_STUCK_MODIFIERS
44
45
46#ifdef RGB_DI_PIN 42#ifdef RGB_DI_PIN
47#define RGBLIGHT_ANIMATIONS 43#define RGBLIGHT_ANIMATIONS
48#define RGBLED_NUM 0 44#define RGBLED_NUM 0
49#define RGBLIGHT_HUE_STEP 8 45#define RGBLIGHT_HUE_STEP 8
50#define RGBLIGHT_SAT_STEP 8 46#define RGBLIGHT_SAT_STEP 8
51#define RGBLIGHT_VAL_STEP 8 47#define RGBLIGHT_VAL_STEP 8
52#endif \ No newline at end of file 48#endif
diff --git a/keyboards/zeal60/keymaps/tusing/config.h b/keyboards/zeal60/keymaps/tusing/config.h
index 93f260946..64aaece50 100644
--- a/keyboards/zeal60/keymaps/tusing/config.h
+++ b/keyboards/zeal60/keymaps/tusing/config.h
@@ -34,7 +34,3 @@
34// Scale brightnes according to BRIGHTNESS_CORRECTION_TABLE in quantum/rgblight.c. 34// Scale brightnes according to BRIGHTNESS_CORRECTION_TABLE in quantum/rgblight.c.
35// This allows to mitigate uneven brightness from LED underglow strips. 35// This allows to mitigate uneven brightness from LED underglow strips.
36// #define LED_BRIGHTNESS_CORRECTION 36// #define LED_BRIGHTNESS_CORRECTION
37
38// Prevent modifiers on layer 1 from persisting after we let go
39#define PREVENT_STUCK_MODIFIERS
40
diff --git a/keyboards/zlant/config.h b/keyboards/zlant/config.h
index 456d225aa..ae9dcfef6 100755
--- a/keyboards/zlant/config.h
+++ b/keyboards/zlant/config.h
@@ -43,9 +43,6 @@
43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ 43 keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
44) 44)
45 45
46/* prevent stuck modifiers */
47#define PREVENT_STUCK_MODIFIERS
48
49#define RGB_DI_PIN D6 46#define RGB_DI_PIN D6
50#ifdef RGB_DI_PIN 47#ifdef RGB_DI_PIN
51#define RGBLIGHT_ANIMATIONS 48#define RGBLIGHT_ANIMATIONS
diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h
index 1990b0ee3..4326a2fd1 100644
--- a/layouts/community/60_ansi/talljoe-ansi/config.h
+++ b/layouts/community/60_ansi/talljoe-ansi/config.h
@@ -3,7 +3,6 @@
3 3
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define ENABLE_GAME_LAYER 6#define ENABLE_GAME_LAYER
8 7
9#define TEMPLATE( \ 8#define TEMPLATE( \
diff --git a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
index 81ab5cf89..bf18fd9f7 100644
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
@@ -3,7 +3,6 @@
3 3
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define ENABLE_GAME_LAYER 6#define ENABLE_GAME_LAYER
8 7
9#define TEMPLATE( \ 8#define TEMPLATE( \
diff --git a/layouts/community/60_hhkb/talljoe-hhkb/config.h b/layouts/community/60_hhkb/talljoe-hhkb/config.h
index 938ea6cd6..9e907feeb 100644
--- a/layouts/community/60_hhkb/talljoe-hhkb/config.h
+++ b/layouts/community/60_hhkb/talljoe-hhkb/config.h
@@ -3,7 +3,6 @@
3 3
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define ENABLE_GAME_LAYER 6#define ENABLE_GAME_LAYER
8 7
9#define TEMPLATE( \ 8#define TEMPLATE( \
diff --git a/layouts/community/ergodox/adam/config.h b/layouts/community/ergodox/adam/config.h
index 21af8c6b8..1a8fddb50 100644
--- a/layouts/community/ergodox/adam/config.h
+++ b/layouts/community/ergodox/adam/config.h
@@ -2,5 +2,4 @@
2 2
3#undef TAPPING_TERM 3#undef TAPPING_TERM
4#define TAPPING_TERM 300 //At 500 some bad logic takes hold 4#define TAPPING_TERM 300 //At 500 some bad logic takes hold
5#define PREVENT_STUCK_MODIFIERS
6#define IGNORE_MOD_TAP_INTERRUPT 5#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/layouts/community/ergodox/albert/rules.mk b/layouts/community/ergodox/albert/rules.mk
index fcd019e83..47549b50f 100644
--- a/layouts/community/ergodox/albert/rules.mk
+++ b/layouts/community/ergodox/albert/rules.mk
@@ -1,3 +1,2 @@
1COMMAND_ENABLE = no # Commands for debug and configuration 1COMMAND_ENABLE = no # Commands for debug and configuration
2 2LEADER_ENABLE = yes
3
diff --git a/layouts/community/ergodox/algernon/rules.mk b/layouts/community/ergodox/algernon/rules.mk
index f795a8676..53dec5153 100644
--- a/layouts/community/ergodox/algernon/rules.mk
+++ b/layouts/community/ergodox/algernon/rules.mk
@@ -8,6 +8,7 @@ TAP_DANCE_ENABLE = yes
8KEYLOGGER_ENABLE ?= yes 8KEYLOGGER_ENABLE ?= yes
9UCIS_ENABLE = yes 9UCIS_ENABLE = yes
10MOUSEKEY_ENABLE = no 10MOUSEKEY_ENABLE = no
11LEADER_ENABLE = yes
11 12
12AUTOLOG_ENABLE ?= no 13AUTOLOG_ENABLE ?= no
13 14
diff --git a/layouts/community/ergodox/alphadox/config.h b/layouts/community/ergodox/alphadox/config.h
index 6fc64f508..9e076dead 100644
--- a/layouts/community/ergodox/alphadox/config.h
+++ b/layouts/community/ergodox/alphadox/config.h
@@ -4,7 +4,6 @@
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define FORCE_NKRO 6#define FORCE_NKRO
7#define PREVENT_STUCK_MODIFIERS
8 7
9#undef TAPPING_TERM 8#undef TAPPING_TERM
10#undef IGNORE_MOD_TAP_INTERRUPT 9#undef IGNORE_MOD_TAP_INTERRUPT
diff --git a/layouts/community/ergodox/deadcyclo/rules.mk b/layouts/community/ergodox/deadcyclo/rules.mk
index 039f07c8e..f5093529b 100644
--- a/layouts/community/ergodox/deadcyclo/rules.mk
+++ b/layouts/community/ergodox/deadcyclo/rules.mk
@@ -1 +1,2 @@
1UNICODE_ENABLE = yes 1UNICODE_ENABLE = yes
2LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/erez_experimental/rules.mk b/layouts/community/ergodox/erez_experimental/rules.mk
index 839dd82e1..f68b56f87 100644
--- a/layouts/community/ergodox/erez_experimental/rules.mk
+++ b/layouts/community/ergodox/erez_experimental/rules.mk
@@ -3,5 +3,4 @@
3 3
4SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 4SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
5COMMAND_ENABLE = no # Commands for debug and configuration 5COMMAND_ENABLE = no # Commands for debug and configuration
6 6LEADER_ENABLE = yes
7
diff --git a/layouts/community/ergodox/familiar/rules.mk b/layouts/community/ergodox/familiar/rules.mk
index 31e0fcf29..4a3c58621 100644
--- a/layouts/community/ergodox/familiar/rules.mk
+++ b/layouts/community/ergodox/familiar/rules.mk
@@ -1 +1,2 @@
1TAP_DANCE_ENABLE=yes 1TAP_DANCE_ENABLE=yes
2LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/mclennon_osx/README.md b/layouts/community/ergodox/mclennon_osx/README.md
index 28cdb7c10..53b3d4841 100644
--- a/layouts/community/ergodox/mclennon_osx/README.md
+++ b/layouts/community/ergodox/mclennon_osx/README.md
@@ -1,5 +1,5 @@
1# Ergodox EZ for OS X 1# Ergodox EZ for OS X
2 2
3This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock. 3This keymapping is designed to be reasonably familiar to an ordinary Mac keyboard while taking advantage of the Ergodox EZ's features. Caps lock instead enables a layer which allows a user to use HJKL as arrow keys and to control media. Shift and control have additional mappings on S and D to provide easier access while holding down caps lock.
4 4
5If you choose to compile this yourself, be sure to compile with `#define PREVENT_STUCK_MODIFIERS` in your `config.h`. Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/). 5Firmware built using [qmk_firmware](https://github.com/qmk/qmk_firmware/).
diff --git a/layouts/community/ergodox/techtomas/readme.md b/layouts/community/ergodox/techtomas/readme.md
index 36e0591a8..3d1bcb9e1 100644
--- a/layouts/community/ergodox/techtomas/readme.md
+++ b/layouts/community/ergodox/techtomas/readme.md
@@ -39,7 +39,7 @@ The right arrow key and End key toggle the control layer on the left board. Ther
39On the left board you have mouse control with left & right click in the location of the G and B keys. 39On the left board you have mouse control with left & right click in the location of the G and B keys.
40On the right board you have vim-style arrow keys using hjkl 40On the right board you have vim-style arrow keys using hjkl
41 41
42The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys. I found that it was easy to get the alt key stuck on depending on what key you released first so I added the PREVENT_STUCK_MODIFIERS to the config.h to help with that. 42The left thumb cluster moves shift and alt within easy reach while holding the toggle (end). So far I've found this convient to navigate and skip around text when using the hjkl arrow keys.
43 43
44## Changelog 44## Changelog
45 45
diff --git a/layouts/community/ortho_4x12/symbolic/config.h b/layouts/community/ortho_4x12/symbolic/config.h
index 702c9226c..c29b07706 100644
--- a/layouts/community/ortho_4x12/symbolic/config.h
+++ b/layouts/community/ortho_4x12/symbolic/config.h
@@ -20,10 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
20 20
21#pragma once 21#pragma once
22 22
23// prevent stuck modifiers
24#define PREVENT_STUCK_MODIFIERS
25
26
27// hold & tapping delay setting 23// hold & tapping delay setting
28#define TAPPING_TERM 100 24#define TAPPING_TERM 100
29 25
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/config.h b/layouts/community/tkl_ansi/talljoe-tkl/config.h
index 8b27d4136..02f8a94e3 100644
--- a/layouts/community/tkl_ansi/talljoe-tkl/config.h
+++ b/layouts/community/tkl_ansi/talljoe-tkl/config.h
@@ -3,7 +3,6 @@
3 3
4#include QMK_KEYBOARD_CONFIG_H 4#include QMK_KEYBOARD_CONFIG_H
5 5
6#define PREVENT_STUCK_MODIFIERS
7#define ENABLE_GAME_LAYER 6#define ENABLE_GAME_LAYER
8 7
9#define TEMPLATE_TKL(\ 8#define TEMPLATE_TKL(\
diff --git a/quantum/process_keycode/process_chording.c b/quantum/process_keycode/process_chording.c
deleted file mode 100644
index 6c6ebe300..000000000
--- a/quantum/process_keycode/process_chording.c
+++ /dev/null
@@ -1,76 +0,0 @@
1/* Copyright 2016 Jack Humbert
2 *
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
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
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/>.
15 */
16
17#include "process_chording.h"
18
19bool keys_chord(uint8_t keys[]) {
20 uint8_t keys_size = sizeof(keys)/sizeof(keys[0]);
21 bool pass = true;
22 uint8_t in = 0;
23 for (uint8_t i = 0; i < chord_key_count; i++) {
24 bool found = false;
25 for (uint8_t j = 0; j < keys_size; j++) {
26 if (chord_keys[i] == (keys[j] & 0xFF)) {
27 in++; // detects key in chord
28 found = true;
29 break;
30 }
31 }
32 if (found)
33 continue;
34 if (chord_keys[i] != 0) {
35 pass = false; // makes sure rest are blank
36 }
37 }
38 return (pass && (in == keys_size));
39}
40
41bool process_chording(uint16_t keycode, keyrecord_t *record) {
42 if (keycode >= QK_CHORDING && keycode <= QK_CHORDING_MAX) {
43 if (record->event.pressed) {
44 if (!chording) {
45 chording = true;
46 for (uint8_t i = 0; i < CHORDING_MAX; i++)
47 chord_keys[i] = 0;
48 chord_key_count = 0;
49 chord_key_down = 0;
50 }
51 chord_keys[chord_key_count] = (keycode & 0xFF);
52 chord_key_count++;
53 chord_key_down++;
54 return false;
55 } else {
56 if (chording) {
57 chord_key_down--;
58 if (chord_key_down == 0) {
59 chording = false;
60 // Chord Dictionary
61 if (keys_chord((uint8_t[]){KC_ENTER, KC_SPACE})) {
62 register_code(KC_A);
63 unregister_code(KC_A);
64 return false;
65 }
66 for (uint8_t i = 0; i < chord_key_count; i++) {
67 register_code(chord_keys[i]);
68 unregister_code(chord_keys[i]);
69 return false;
70 }
71 }
72 }
73 }
74 }
75 return true;
76}
diff --git a/quantum/process_keycode/process_chording.h b/quantum/process_keycode/process_chording.h
deleted file mode 100644
index 8c0f4862a..000000000
--- a/quantum/process_keycode/process_chording.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/* Copyright 2016 Jack Humbert
2 *
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
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
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/>.
15 */
16
17#ifndef PROCESS_CHORDING_H
18#define PROCESS_CHORDING_H
19
20#include "quantum.h"
21
22// Chording stuff
23#define CHORDING_MAX 4
24bool chording = false;
25
26uint8_t chord_keys[CHORDING_MAX] = {0};
27uint8_t chord_key_count = 0;
28uint8_t chord_key_down = 0;
29
30bool process_chording(uint16_t keycode, keyrecord_t *record);
31
32#endif
diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c
index c87ef115a..eddbf71f7 100644
--- a/quantum/process_keycode/process_leader.c
+++ b/quantum/process_keycode/process_leader.c
@@ -14,7 +14,7 @@
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#ifndef DISABLE_LEADER 17#ifdef LEADER_ENABLE
18 18
19#include "process_leader.h" 19#include "process_leader.h"
20 20
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 9d352a94c..9bf91eb86 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -196,7 +196,7 @@ bool process_record_quantum(keyrecord_t *record) {
196 keypos_t key = record->event.key; 196 keypos_t key = record->event.key;
197 uint16_t keycode; 197 uint16_t keycode;
198 198
199 #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 199 #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
200 /* TODO: Use store_or_get_action() or a similar function. */ 200 /* TODO: Use store_or_get_action() or a similar function. */
201 if (!disable_action_cache) { 201 if (!disable_action_cache) {
202 uint8_t layer; 202 uint8_t layer;
@@ -251,12 +251,9 @@ bool process_record_quantum(keyrecord_t *record) {
251 #ifdef TAP_DANCE_ENABLE 251 #ifdef TAP_DANCE_ENABLE
252 process_tap_dance(keycode, record) && 252 process_tap_dance(keycode, record) &&
253 #endif 253 #endif
254 #ifndef DISABLE_LEADER 254 #ifdef LEADER_ENABLE
255 process_leader(keycode, record) && 255 process_leader(keycode, record) &&
256 #endif 256 #endif
257 #ifndef DISABLE_CHORDING
258 process_chording(keycode, record) &&
259 #endif
260 #ifdef COMBO_ENABLE 257 #ifdef COMBO_ENABLE
261 process_combo(keycode, record) && 258 process_combo(keycode, record) &&
262 #endif 259 #endif
diff --git a/quantum/quantum.h b/quantum/quantum.h
index d1f761f17..7cf16d81e 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -89,15 +89,10 @@ extern uint32_t default_layer_state;
89 #include "process_music.h" 89 #include "process_music.h"
90#endif 90#endif
91 91
92#ifndef DISABLE_LEADER 92#ifdef LEADER_ENABLE
93 #include "process_leader.h" 93 #include "process_leader.h"
94#endif 94#endif
95 95
96#define DISABLE_CHORDING
97#ifndef DISABLE_CHORDING
98 #include "process_chording.h"
99#endif
100
101#ifdef UNICODE_ENABLE 96#ifdef UNICODE_ENABLE
102 #include "process_unicode.h" 97 #include "process_unicode.h"
103#endif 98#endif
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 0ecc293a8..3b8795496 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -63,10 +63,6 @@ enum quantum_keycodes {
63 QK_ONE_SHOT_LAYER_MAX = 0x54FF, 63 QK_ONE_SHOT_LAYER_MAX = 0x54FF,
64 QK_ONE_SHOT_MOD = 0x5500, 64 QK_ONE_SHOT_MOD = 0x5500,
65 QK_ONE_SHOT_MOD_MAX = 0x55FF, 65 QK_ONE_SHOT_MOD_MAX = 0x55FF,
66#ifndef DISABLE_CHORDING
67 QK_CHORDING = 0x5600,
68 QK_CHORDING_MAX = 0x56FF,
69#endif
70 QK_TAP_DANCE = 0x5700, 66 QK_TAP_DANCE = 0x5700,
71 QK_TAP_DANCE_MAX = 0x57FF, 67 QK_TAP_DANCE_MAX = 0x57FF,
72 QK_LAYER_TAP_TOGGLE = 0x5800, 68 QK_LAYER_TAP_TOGGLE = 0x5800,
@@ -123,7 +119,7 @@ enum quantum_keycodes {
123 GRAVE_ESC, 119 GRAVE_ESC,
124 120
125 // Leader key 121 // Leader key
126#ifndef DISABLE_LEADER 122#ifdef LEADER_ENABLE
127 KC_LEAD, 123 KC_LEAD,
128#endif 124#endif
129 125
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index ae0864749..76d02bc9d 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -120,7 +120,7 @@ void process_hand_swap(keyevent_t *event) {
120} 120}
121#endif 121#endif
122 122
123#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 123#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
124bool disable_action_cache = false; 124bool disable_action_cache = false;
125 125
126void process_record_nocache(keyrecord_t *record) 126void process_record_nocache(keyrecord_t *record)
diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h
index acc55c7d3..0322c73ed 100644
--- a/tmk_core/common/action.h
+++ b/tmk_core/common/action.h
@@ -62,7 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);
62bool process_record_quantum(keyrecord_t *record); 62bool process_record_quantum(keyrecord_t *record);
63 63
64/* Utilities for actions. */ 64/* Utilities for actions. */
65#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 65#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
66extern bool disable_action_cache; 66extern bool disable_action_cache;
67#endif 67#endif
68 68
diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c
index f3cd381ab..62375dfbf 100644
--- a/tmk_core/common/action_layer.c
+++ b/tmk_core/common/action_layer.c
@@ -219,7 +219,7 @@ void layer_debug(void)
219} 219}
220#endif 220#endif
221 221
222#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 222#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
223uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {{0}}; 223uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {{0}};
224 224
225void update_source_layers_cache(keypos_t key, uint8_t layer) 225void update_source_layers_cache(keypos_t key, uint8_t layer)
@@ -263,7 +263,7 @@ uint8_t read_source_layers_cache(keypos_t key)
263 */ 263 */
264action_t store_or_get_action(bool pressed, keypos_t key) 264action_t store_or_get_action(bool pressed, keypos_t key)
265{ 265{
266#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 266#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
267 if (disable_action_cache) { 267 if (disable_action_cache) {
268 return layer_switch_get_action(key); 268 return layer_switch_get_action(key);
269 } 269 }
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h
index 72a6bd8f6..7bf116be2 100644
--- a/tmk_core/common/action_layer.h
+++ b/tmk_core/common/action_layer.h
@@ -88,7 +88,7 @@ uint32_t layer_state_set_kb(uint32_t state);
88#endif 88#endif
89 89
90/* pressed actions cache */ 90/* pressed actions cache */
91#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) 91#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
92/* The number of bits needed to represent the layer number: log2(32). */ 92/* The number of bits needed to represent the layer number: log2(32). */
93#define MAX_LAYER_BITS 5 93#define MAX_LAYER_BITS 5
94void update_source_layers_cache(keypos_t key, uint8_t layer); 94void update_source_layers_cache(keypos_t key, uint8_t layer);
diff --git a/users/333fred/333fred_config.h b/users/333fred/333fred_config.h
index 7c637d8d3..b158e2d5a 100644
--- a/users/333fred/333fred_config.h
+++ b/users/333fred/333fred_config.h
@@ -1,4 +1,3 @@
1#pragma once 1#pragma once
2 2
3#define PREVENT_STUCK_MODIFIERS
4#define PERMISSIVE_HOLD 3#define PERMISSIVE_HOLD
diff --git a/users/bocaj/config.h b/users/bocaj/config.h
index ce5ec65d6..0e726598c 100644
--- a/users/bocaj/config.h
+++ b/users/bocaj/config.h
@@ -10,7 +10,6 @@
10// actually sends Ctrl-x. That's bad.) 10// actually sends Ctrl-x. That's bad.)
11#define IGNORE_MOD_TAP_INTERRUPT 11#define IGNORE_MOD_TAP_INTERRUPT
12#undef PERMISSIVE_HOLD 12#undef PERMISSIVE_HOLD
13#define PREVENT_STUCK_MODIFIERS
14 13
15#ifdef TAPPING_TERM 14#ifdef TAPPING_TERM
16#undef TAPPING_TERM 15#undef TAPPING_TERM
diff --git a/users/drashna/config.h b/users/drashna/config.h
index dd6875ceb..92efcc5c7 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -43,7 +43,6 @@
43// actually sends Ctrl-x. That's bad.) 43// actually sends Ctrl-x. That's bad.)
44#define IGNORE_MOD_TAP_INTERRUPT 44#define IGNORE_MOD_TAP_INTERRUPT
45#undef PERMISSIVE_HOLD 45#undef PERMISSIVE_HOLD
46#define PREVENT_STUCK_MODIFIERS
47// #define TAPPING_FORCE_HOLD 46// #define TAPPING_FORCE_HOLD
48//#define RETRO_TAPPING 47//#define RETRO_TAPPING
49 48
@@ -64,8 +63,4 @@
64#define NO_ACTION_MACRO 63#define NO_ACTION_MACRO
65#define NO_ACTION_FUNCTION 64#define NO_ACTION_FUNCTION
66 65
67#define DISABLE_LEADER
68
69#define MACRO_TIMER 5 66#define MACRO_TIMER 5
70
71
diff --git a/users/ishtob/config.h b/users/ishtob/config.h
index 9c4a7ed8d..1f567f4a5 100755
--- a/users/ishtob/config.h
+++ b/users/ishtob/config.h
@@ -15,7 +15,6 @@
15 15
16//#define LEADER_TIMEOUT 300 16//#define LEADER_TIMEOUT 300
17//#define BACKLIGHT_BREATHING 17//#define BACKLIGHT_BREATHING
18#define PREVENT_STUCK_MODIFIERS
19//#define PERMISSIVE_HOLD 18//#define PERMISSIVE_HOLD
20// #define QMK_KEYS_PER_SCAN 4 19// #define QMK_KEYS_PER_SCAN 4
21 20
@@ -72,5 +71,5 @@
72 71
73// Most tactile encoders have detents every 4 stages 72// Most tactile encoders have detents every 4 stages
74#define ENCODER_RESOLUTION 4 73#define ENCODER_RESOLUTION 4
75 74
76#endif 75#endif
diff --git a/users/replicaJunction/config.h b/users/replicaJunction/config.h
index f3556c87e..4b58b579f 100644
--- a/users/replicaJunction/config.h
+++ b/users/replicaJunction/config.h
@@ -6,12 +6,6 @@
6// https://docs.qmk.fm/reference/config-options#features-that-can-be-enabled 6// https://docs.qmk.fm/reference/config-options#features-that-can-be-enabled
7//////////////////////////////////////////////////////////////////////////////// 7////////////////////////////////////////////////////////////////////////////////
8 8
9// Prevent modifiers from sticking when switching layers
10// Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers
11#define PREVENT_STUCK_MODIFIERS
12
13
14
15//////////////////////////////////////////////////////////////////////////////// 9////////////////////////////////////////////////////////////////////////////////
16// Behaviors That Can Be Configured 10// Behaviors That Can Be Configured
17// https://docs.qmk.fm/reference/config-options#behaviors-that-can-be-configured 11// https://docs.qmk.fm/reference/config-options#behaviors-that-can-be-configured
diff --git a/users/talljoe/config.h b/users/talljoe/config.h
index 15bbde6bc..1cdbb5a41 100644
--- a/users/talljoe/config.h
+++ b/users/talljoe/config.h
@@ -1,7 +1,6 @@
1#ifndef USERSPACE_CONFIG_H 1#ifndef USERSPACE_CONFIG_H
2#define USERSPACE_CONFIG_H 2#define USERSPACE_CONFIG_H
3 3
4#define PREVENT_STUCK_MODIFIERS
5#define IGNORE_MOD_TAP_INTERRUPT 4#define IGNORE_MOD_TAP_INTERRUPT
6 5
7#define RESET_LAYER 15 6#define RESET_LAYER 15
diff --git a/users/wanleg/config.h b/users/wanleg/config.h
index 22073449b..28e7690e6 100644
--- a/users/wanleg/config.h
+++ b/users/wanleg/config.h
@@ -1,8 +1,6 @@
1#ifndef USERSPACE_CONFIG_H 1#ifndef USERSPACE_CONFIG_H
2#define USERSPACE_CONFIG_H 2#define USERSPACE_CONFIG_H
3 3
4#define PREVENT_STUCK_MODIFIERS
5
6//TAPPING_TERM 4//TAPPING_TERM
7#ifdef TAP_DANCE_ENABLE 5#ifdef TAP_DANCE_ENABLE
8#define TAPPING_TERM 200 6#define TAPPING_TERM 200
diff --git a/users/zer09/config.h b/users/zer09/config.h
index 766806462..4cb65c258 100644
--- a/users/zer09/config.h
+++ b/users/zer09/config.h
@@ -11,7 +11,7 @@
11// actually sends Ctrl-x. That's bad.) 11// actually sends Ctrl-x. That's bad.)
12#define IGNORE_MOD_TAP_INTERRUPT 12#define IGNORE_MOD_TAP_INTERRUPT
13#undef PERMISSIVE_HOLD 13#undef PERMISSIVE_HOLD
14#undef PREVENT_STUCK_MODIFIERS 14#define STRICT_LAYER_RELEASE
15 15
16#define FORCE_NKRO 16#define FORCE_NKRO
17 17