summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Wasson <jwasson+github@gmail.com>2018-09-17 10:48:02 -0700
committerJack Humbert <jack.humb@gmail.com>2018-09-17 13:48:02 -0400
commit743449472e58651ec8111e6f70811103fb0a28bd (patch)
treebf8391fd9ba42ec08fa42fc867b20810cbe27d4f
parentb65e2143751fd7c1721a6690597f523137c7c484 (diff)
Make `PREVENT_STUCK_MODIFIERS` the default (#3107)0.6.120
* Remove chording as it is not documented, not used, and needs work. * Make Leader Key an optional feature. * Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE` * Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
-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 c637582d45..7af7789808 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -221,7 +221,6 @@ ifeq ($(strip $(USB_HID_ENABLE)), yes)
include $(TMK_DIR)/protocol/usb_hid.mk
endif
-
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
@@ -232,11 +231,15 @@ ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dynamic_keymap.c
endif
+ifeq ($(strip $(LEADER_ENABLE)), yes)
+ SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
+ OPT_DEFS += -DLEADER_ENABLE
+endif
+
QUANTUM_SRC:= \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
- $(QUANTUM_DIR)/keycode_config.c \
- $(QUANTUM_DIR)/process_keycode/process_leader.c
+ $(QUANTUM_DIR)/keycode_config.c
ifndef CUSTOM_MATRIX
ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
@@ -251,5 +254,5 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
QUANTUM_SRC += $(QUANTUM_DIR)/split_common/split_flags.c \
$(QUANTUM_DIR)/split_common/split_util.c \
$(QUANTUM_DIR)/split_common/i2c.c \
- $(QUANTUM_DIR)/split_common/serial.c
+ $(QUANTUM_DIR)/split_common/serial.c
endif
diff --git a/docs/config_options.md b/docs/config_options.md
index eaaa59872c..072857727b 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
* `#define FORCE_NKRO`
* 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.
-* `#define PREVENT_STUCK_MODIFIERS`
- * 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
+* `#define STRICT_LAYER_RELEASE`
+ * force a key release to be evaluated using the current layer stack instead of remembering which layer it came from (used for advanced cases)
## Behaviors That Can Be Configured
diff --git a/docs/feature_leader_key.md b/docs/feature_leader_key.md
index 46633b2870..0c3f4a1332 100644
--- a/docs/feature_leader_key.md
+++ b/docs/feature_leader_key.md
@@ -39,3 +39,11 @@ void matrix_scan_user(void) {
As 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.
Each 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.
+
+## Adding Leader Key Support in the `rules.mk`
+
+To add support for Leader Key you simply need to add a single line to your keymap's `rules.mk`:
+
+```
+LEADER_ENABLE = yes
+```
diff --git a/docs/understanding_qmk.md b/docs/understanding_qmk.md
index bf695d008d..35596cc692 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
<!-- FIXME: Magic happens between here and process_record -->
##### Process Record
+
The `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.
* [`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
* [`bool process_music(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_music.c#L114)
* [`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)
* [`bool process_leader(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_leader.c#L38)
- * [`bool process_chording(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_chording.c#L41)
* [`bool process_combo(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_combo.c#L115)
* [`bool process_unicode(uint16_t keycode, keyrecord_t *record)`](https://github.com/qmk/qmk_firmware/blob/661ca4440cc42f3b60697e98985c44b0571ccfc1/quantum/process_keycode/process_unicode.c#L22)
* [`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 bfdf354af7..ee49211b48 100644
--- a/keyboards/1upkeyboards/1up60rgb/config.h
+++ b/keyboards/1upkeyboards/1up60rgb/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/1upkeyboards/sweet16/config.h b/keyboards/1upkeyboards/sweet16/config.h
index 77d9e276dc..20d99651da 100644
--- a/keyboards/1upkeyboards/sweet16/config.h
+++ b/keyboards/1upkeyboards/sweet16/config.h
@@ -9,7 +9,7 @@
#define DEVICE_VER 0x0001
#define MANUFACTURER 1up Keyboards
#define PRODUCT Sweet16
-#define DESCRIPTION 4x4 grid
+#define DESCRIPTION 4x4 grid
/* key matrix size */
#define MATRIX_ROWS 4
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN B1
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/acr60/config.h b/keyboards/acr60/config.h
index c44ba737e8..3066f349de 100644
--- a/keyboards/acr60/config.h
+++ b/keyboards/acr60/config.h
@@ -41,9 +41,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 20
diff --git a/keyboards/alf/x2/config.h b/keyboards/alf/x2/config.h
index 31212ce336..f2106fa88e 100644
--- a/keyboards/alf/x2/config.h
+++ b/keyboards/alf/x2/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/alpha/config.h b/keyboards/alpha/config.h
index 0295275635..1e16f5ca3c 100755
--- a/keyboards/alpha/config.h
+++ b/keyboards/alpha/config.h
@@ -43,8 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
#define RGB_DI_PIN F4
#ifdef RGB_DI_PIN
diff --git a/keyboards/alu84/config.h b/keyboards/alu84/config.h
index 9e013dbcc3..9d2dca409c 100755
--- a/keyboards/alu84/config.h
+++ b/keyboards/alu84/config.h
@@ -59,9 +59,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLED_NUM 16
diff --git a/keyboards/at101_blackheart/config.h b/keyboards/at101_blackheart/config.h
index 6a809a02f8..237cb095e6 100644
--- a/keyboards/at101_blackheart/config.h
+++ b/keyboards/at101_blackheart/config.h
@@ -38,6 +38,3 @@
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-
-/* prevent stuck modifiers */
-#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 42bef9d80c..890980f41f 100644
--- a/keyboards/atreus/keymaps/jeremy/keymap.c
+++ b/keyboards/atreus/keymaps/jeremy/keymap.c
@@ -4,8 +4,6 @@
#include "action_layer.h"
#include "keymap_colemak.h"
-#define PREVENT_STUCK_MODIFIERS
-
// Each layer gets a name for readability, which is then used in the keymap matrix below.
#define ALPH 0
#define NUMS 1
diff --git a/keyboards/atreus/keymaps/khitsule/config.h b/keyboards/atreus/keymaps/khitsule/config.h
index 19714ec7d5..c74909a9ff 100644
--- a/keyboards/atreus/keymaps/khitsule/config.h
+++ b/keyboards/atreus/keymaps/khitsule/config.h
@@ -3,8 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
-
#define IGNORE_MOD_TAP_INTERRUPT
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/atreus/keymaps/xk/config.h b/keyboards/atreus/keymaps/xk/config.h
index 2f8110167e..a8b9c88057 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
#define MOUSEKEY_WHEEL_MAX_SPEED 8
#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/atreus62/keymaps/mneme/config.h b/keyboards/atreus62/keymaps/mneme/config.h
index 73eb0fa33d..a89bf5503c 100644
--- a/keyboards/atreus62/keymaps/mneme/config.h
+++ b/keyboards/atreus62/keymaps/mneme/config.h
@@ -1,6 +1,5 @@
#define ONESHOT_TIMEOUT 3000
#define TAPPING_TERM 200
-#define PREVENT_STUCK_MODIFIERS
#define FORCE_NKRO
#define LEADER_TIMEOUT 1000
diff --git a/keyboards/atreus62/keymaps/mneme/rules.mk b/keyboards/atreus62/keymaps/mneme/rules.mk
index 046aec2733..160ce6edbf 100644
--- a/keyboards/atreus62/keymaps/mneme/rules.mk
+++ b/keyboards/atreus62/keymaps/mneme/rules.mk
@@ -3,3 +3,4 @@ NKRO_ENABLE = true
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
+LEADER_ENABLE = yes
diff --git a/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h b/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
index 9d124a98e5..be57e385ef 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/>.
#define PERMISSIVE_HOLD
- #define PREVENT_STUCK_MODIFIERS
-
-
#endif
diff --git a/keyboards/bigseries/1key/config.h b/keyboards/bigseries/1key/config.h
index 4e30276fc0..966f2062c4 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigseries/2key/config.h b/keyboards/bigseries/2key/config.h
index 83c8e31417..79b9ed3786 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigseries/3key/config.h b/keyboards/bigseries/3key/config.h
index e10b14db42..9963a82197 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigseries/4key/config.h b/keyboards/bigseries/4key/config.h
index 3ebcfe0911..a222512d3c 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/bigswitch/config.h b/keyboards/bigswitch/config.h
index cc290fd79b..a0ef6b5554 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
diff --git a/keyboards/catch22/config.h b/keyboards/catch22/config.h
index cb7ca7d84c..f151e7048f 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN F6
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/chimera_ergo/config.h b/keyboards/chimera_ergo/config.h
index 86ee237181..8ce195cc06 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/chimera_ls/config.h b/keyboards/chimera_ls/config.h
index d92878026b..254dad3064 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/chimera_ortho/config.h b/keyboards/chimera_ortho/config.h
index 44c6212b17..4bf85eb88f 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/chocopad/config.h b/keyboards/chocopad/config.h
index bf861ccda4..2163ff8bc4 100644
--- a/keyboards/chocopad/config.h
+++ b/keyboards/chocopad/config.h
@@ -40,10 +40,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8
@@ -56,4 +52,4 @@
#define ws2812_PORTREG PORTD
#define ws2812_DDRREG DDRD
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/clueboard/60/config.h b/keyboards/clueboard/60/config.h
index 5c5a86296f..a862d2cda3 100644
--- a/keyboards/clueboard/60/config.h
+++ b/keyboards/clueboard/60/config.h
@@ -49,9 +49,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 6
-/* Prevent modifiers from being stuck on after layer changes. */
-#define PREVENT_STUCK_MODIFIERS
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/clueboard/66/keymaps/bloodlvst/config.h b/keyboards/clueboard/66/keymaps/bloodlvst/config.h
index 320401dbda..456936cf93 100644
--- a/keyboards/clueboard/66/keymaps/bloodlvst/config.h
+++ b/keyboards/clueboard/66/keymaps/bloodlvst/config.h
@@ -3,6 +3,5 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
#define DISABLE_SPACE_CADET_ROLLOVER
#endif
diff --git a/keyboards/comet46/config.h b/keyboards/comet46/config.h
index 90d923f90b..2421f53412 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/contra/config.h b/keyboards/contra/config.h
index 85077ed46a..c6bb374da2 100755
--- a/keyboards/contra/config.h
+++ b/keyboards/contra/config.h
@@ -43,10 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
diff --git a/keyboards/contra/keymaps/ryanm101/config.h b/keyboards/contra/keymaps/ryanm101/config.h
index 9a458b892d..224a4a37d0 100644
--- a/keyboards/contra/keymaps/ryanm101/config.h
+++ b/keyboards/contra/keymaps/ryanm101/config.h
@@ -3,7 +3,6 @@
#include "config_common.h"
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_TERM 200
#ifdef AUDIO_ENABLE
@@ -28,7 +27,7 @@
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
-
+
#define MIDI_BASIC
/* enable advanced MIDI features:
@@ -42,4 +41,4 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/crawlpad/config.h b/keyboards/crawlpad/config.h
index a07c79cd20..c72be83f28 100755
--- a/keyboards/crawlpad/config.h
+++ b/keyboards/crawlpad/config.h
@@ -40,9 +40,6 @@
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef RGBLIGHT_ENABLE
#define RGB_DI_PIN D3
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/crkbd/keymaps/default/config.h b/keyboards/crkbd/keymaps/default/config.h
index 8d25f7cbc6..c573530f74 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/>.
#define USE_SERIAL_PD2
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/dichotemy/config.h b/keyboards/dichotemy/config.h
index b3bd6d9421..1d92cf74e5 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/dilly/config.h b/keyboards/dilly/config.h
index 97a6e533bb..d9ca4597cf 100644
--- a/keyboards/dilly/config.h
+++ b/keyboards/dilly/config.h
@@ -43,10 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLIGHT_HUE_STEP 8
@@ -59,4 +55,4 @@
#define ws2812_PORTREG PORTD
#define ws2812_DDRREG DDRD
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/dz60/config.h b/keyboards/dz60/config.h
index 8e1a5ae5f5..e58eae0858 100644
--- a/keyboards/dz60/config.h
+++ b/keyboards/dz60/config.h
@@ -41,9 +41,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16
diff --git a/keyboards/dz60/keymaps/LEdiodes/config.h b/keyboards/dz60/keymaps/LEdiodes/config.h
index bb78d9bb66..4f991b9ca2 100644
--- a/keyboards/dz60/keymaps/LEdiodes/config.h
+++ b/keyboards/dz60/keymaps/LEdiodes/config.h
@@ -41,9 +41,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 16
diff --git a/keyboards/ergodone/config.h b/keyboards/ergodone/config.h
index 1feff26aa7..2c764d782c 100644
--- a/keyboards/ergodone/config.h
+++ b/keyboards/ergodone/config.h
@@ -53,8 +53,6 @@
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
-#define PREVENT_STUCK_MODIFIERS
-
#define USB_MAX_POWER_CONSUMPTION 500
/* NKRO */
diff --git a/keyboards/ergodox_ez/config.h b/keyboards/ergodox_ez/config.h
index 07a9b54977..7a350183b1 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/>.
*/
#define DEBOUNCE 15
-#define PREVENT_STUCK_MODIFIERS
-
#define USB_MAX_POWER_CONSUMPTION 500
// RGB backlight
diff --git a/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk b/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
index 38112a9065..db5e5d1558 100644
--- a/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
@@ -13,6 +13,7 @@ AUTOLOG_ENABLE = no
RGBLIGHT_ENABLE = yes
RGBLIGHT_ANIMATION = yes
EXTRAKEY_ENABLE = yes
+LEADER_ENABLE = yes
OPT_DEFS += -DUSER_PRINT
@@ -31,4 +32,4 @@ OPT_DEFS += -DKEYMAP_VERSION=\"$(KEYMAP_VERSION)\\\#$(KEYMAP_BRANCH)\"
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/ergodox_ez/keymaps/vim/vim.h b/keyboards/ergodox_ez/keymaps/vim/vim.h
index e9b682fd3f..7565c6e3e6 100644
--- a/keyboards/ergodox_ez/keymaps/vim/vim.h
+++ b/keyboards/ergodox_ez/keymaps/vim/vim.h
@@ -9,7 +9,6 @@
#define PRESS(keycode) register_code16(keycode)
#define RELEASE(keycode) unregister_code16(keycode)
-#define PREVENT_STUCK_MODIFIERS
uint16_t VIM_QUEUE = KC_NO;
diff --git a/keyboards/ergodox_infinity/keymaps/gordon/config.h b/keyboards/ergodox_infinity/keymaps/gordon/config.h
index 88d495b12b..772ce0bac9 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
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#define PREVENT_STUCK_MODIFIERS
-
#undef IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/ergodox_infinity/keymaps/narze/config.h b/keyboards/ergodox_infinity/keymaps/narze/config.h
index 8174edd359..551327a126 100644
--- a/keyboards/ergodox_infinity/keymaps/narze/config.h
+++ b/keyboards/ergodox_infinity/keymaps/narze/config.h
@@ -13,7 +13,6 @@
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
#undef MOUSEKEY_DELAY
#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 75624bb8c6..74505bd69e 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 @@
BACKLIGHT_ENABLE = yes
-UNICODE_ENABLE = yes \ No newline at end of file
+UNICODE_ENABLE = yes
+LEADER_ENABLE = yes
diff --git a/keyboards/ergoinu/config.h b/keyboards/ergoinu/config.h
index 4b7c584005..de72635b19 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/>.
#define PRODUCT ergoinu
#define DESCRIPTION An (Not Portable But Small) Ergonomic split keyboard
-
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/ergotravel/keymaps/ckofy/config.h b/keyboards/ergotravel/keymaps/ckofy/config.h
index caae080d70..41ec06657e 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/>.
#define TAPPING_TOGGLE 2
-// required if modifiers are defined in layers besided the default one.
-#define PREVENT_STUCK_MODIFIERS
-
#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
diff --git a/keyboards/felix/config.h b/keyboards/felix/config.h
index f70089af49..003fe87dc8 100644
--- a/keyboards/felix/config.h
+++ b/keyboards/felix/config.h
@@ -42,8 +42,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
/* there is no rgb underglow by default. */
#define RGB_DI_PIN
@@ -53,4 +51,4 @@
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/four_banger/config.h b/keyboards/four_banger/config.h
index 96011cbdfa..8dceff5db5 100644
--- a/keyboards/four_banger/config.h
+++ b/keyboards/four_banger/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E6
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/fourier/keymaps/jennetters/config.h b/keyboards/fourier/keymaps/jennetters/config.h
index 87cda7b5c9..5f99c65ad5 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/>.
#define TAPPING_TERM 100
-/* Try to prevent sticky keys */
-#define PREVENT_STUCK_MODIFIERS
-
/* Use I2C or Serial, not both */
#define USE_SERIAL
-// #define USE_I2C \ No newline at end of file
+// #define USE_I2C
diff --git a/keyboards/fractal/config.h b/keyboards/fractal/config.h
index 30b703b6e6..1a5901f984 100755
--- a/keyboards/fractal/config.h
+++ b/keyboards/fractal/config.h
@@ -43,10 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
diff --git a/keyboards/frosty_flake/keymaps/nikchi/rules.mk b/keyboards/frosty_flake/keymaps/nikchi/rules.mk
index ad86e82d20..b21eb64044 100644
--- a/keyboards/frosty_flake/keymaps/nikchi/rules.mk
+++ b/keyboards/frosty_flake/keymaps/nikchi/rules.mk
@@ -1,5 +1,5 @@
# Build Options
-# change to "no" to disable the options, or define them in the Makefile in
+# change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
@@ -17,6 +17,7 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
TAP_DANCE_ENABLE = yes
+LEADER_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
diff --git a/keyboards/gh80_3000/config.h b/keyboards/gh80_3000/config.h
index 83d30129a1..ca72aba5aa 100644
--- a/keyboards/gh80_3000/config.h
+++ b/keyboards/gh80_3000/config.h
@@ -43,10 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
@@ -55,4 +51,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/gherkin/config.h b/keyboards/gherkin/config.h
index 4607962d7c..34f38e35c2 100644
--- a/keyboards/gherkin/config.h
+++ b/keyboards/gherkin/config.h
@@ -43,10 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
@@ -55,4 +51,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/gherkin/keymaps/talljoe_gherkin/config.h b/keyboards/gherkin/keymaps/talljoe_gherkin/config.h
index 3e9e692d3c..7fa3bf328e 100644
--- a/keyboards/gherkin/keymaps/talljoe_gherkin/config.h
+++ b/keyboards/gherkin/keymaps/talljoe_gherkin/config.h
@@ -3,6 +3,4 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
-
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/gonnerd/keymaps/gam3cat/config.h b/keyboards/gonnerd/keymaps/gam3cat/config.h
index a3819d3a59..d86da86e40 100644
--- a/keyboards/gonnerd/keymaps/gam3cat/config.h
+++ b/keyboards/gonnerd/keymaps/gam3cat/config.h
@@ -1,7 +1,6 @@
#include "../../config.h"
//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut.
#define GRAVE_ESC_CTRL_OVERRIDE
-#define PREVENT_STUCK_MODIFIERS
//Delay matrix scan for tap dance, reduce to activate modifier keys faster.
//#define TAPPING_TERM 200
diff --git a/keyboards/hadron/keymaps/default/config.h b/keyboards/hadron/keymaps/default/config.h
index 0f349ad932..09922b61bc 100644
--- a/keyboards/hadron/keymaps/default/config.h
+++ b/keyboards/hadron/keymaps/default/config.h
@@ -5,7 +5,6 @@
#define LEADER_TIMEOUT 300
//#define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
#define USE_I2C
#define SSD1306OLED
diff --git a/keyboards/hadron/keymaps/side_numpad/config.h b/keyboards/hadron/keymaps/side_numpad/config.h
index 0f349ad932..09922b61bc 100644
--- a/keyboards/hadron/keymaps/side_numpad/config.h
+++ b/keyboards/hadron/keymaps/side_numpad/config.h
@@ -5,7 +5,6 @@
#define LEADER_TIMEOUT 300
//#define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
#define USE_I2C
#define SSD1306OLED
diff --git a/keyboards/handwired/MS_sculpt_mobile/config.h b/keyboards/handwired/MS_sculpt_mobile/config.h
index f89514278d..c3bdf333e2 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/>.
#define DESCRIPTION 6000
/* key matrix size */
-#define MATRIX_ROWS 8
-#define MATRIX_COLS 18
+#define MATRIX_ROWS 8
+#define MATRIX_COLS 18
-#ifdef ASTAR
+#ifdef ASTAR
#define PRODUCT sculpt mobile astar
/*0 1 2 3 4 5 6 7 8 */
#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/>.
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-#define PREVENT_STUCK_MODIFIERS
-
#endif
diff --git a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
index 6916d1a7d4..f5e6bbabe6 100644
--- a/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
+++ b/keyboards/handwired/atreus50/keymaps/ajp10304/config.h
@@ -3,8 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
-
#undef MATRIX_ROW_PINS
#undef MATRIX_COL_PINS
diff --git a/keyboards/handwired/dactyl/config.h b/keyboards/handwired/dactyl/config.h
index a990cc7208..08931ecd34 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/>.
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 15
-#define PREVENT_STUCK_MODIFIERS
-
#define USB_MAX_POWER_CONSUMPTION 500
#endif
diff --git a/keyboards/handwired/kbod/config.h b/keyboards/handwired/kbod/config.h
index f3d0c8bf2d..a3f3e3908a 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/>.
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
#define DIODE_DIRECTION COL2ROW
-
+
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
@@ -159,8 +159,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
-#define PREVENT_STUCK_MODIFIERS
-
#undef TAPPING_TOGGLE
#define TAPPING_TOGGLE 2
diff --git a/keyboards/handwired/promethium/keymaps/default/config.h b/keyboards/handwired/promethium/keymaps/default/config.h
index fa86e22479..2064f3676a 100644
--- a/keyboards/handwired/promethium/keymaps/default/config.h
+++ b/keyboards/handwired/promethium/keymaps/default/config.h
@@ -11,8 +11,6 @@
/* skip bootmagic and eeconfig */
#define BOOTMAGIC_KEY_SKIP KC_SPACE
-#define PREVENT_STUCK_MODIFIERS
-
#define RGBSPS_ENABLE
#define RGBSPS_DEMO_ENABLE
diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h
index fa86e22479..2064f3676a 100644
--- a/keyboards/handwired/promethium/keymaps/priyadi/config.h
+++ b/keyboards/handwired/promethium/keymaps/priyadi/config.h
@@ -11,8 +11,6 @@
/* skip bootmagic and eeconfig */
#define BOOTMAGIC_KEY_SKIP KC_SPACE
-#define PREVENT_STUCK_MODIFIERS
-
#define RGBSPS_ENABLE
#define RGBSPS_DEMO_ENABLE
diff --git a/keyboards/handwired/space_oddity/config.h b/keyboards/handwired/space_oddity/config.h
index 9c9361ced7..46d854099c 100644
--- a/keyboards/handwired/space_oddity/config.h
+++ b/keyboards/handwired/space_oddity/config.h
@@ -49,10 +49,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
diff --git a/keyboards/helix/pico/config.h b/keyboards/helix/pico/config.h
index b49f0173b4..41edfcbc20 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/>.
#define DESCRIPTION A split keyboard for the cheap makers
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/helix/rev1/keymaps/OLED_sample/config.h b/keyboards/helix/rev1/keymaps/OLED_sample/config.h
index 0e1b787a5a..5e8989d96f 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/>.
#define SSD1306OLED
-#define PREVENT_STUCK_MODIFIERS
+#define USE_SERIAL_PD2
+
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/helix/rev2/config.h b/keyboards/helix/rev2/config.h
index 058236122f..b354d312d5 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/>.
#define DESCRIPTION A split keyboard for the cheap makers
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/hhkb/keymaps/blakedietz/rules.mk b/keyboards/hhkb/keymaps/blakedietz/rules.mk
index 7c16b2c98d..7d97e7a524 100644
--- a/keyboards/hhkb/keymaps/blakedietz/rules.mk
+++ b/keyboards/hhkb/keymaps/blakedietz/rules.mk
@@ -1,2 +1,3 @@
TAP_DANCE_ENABLE = no
UNICODE_ENABLE = no
+LEADER_ENABLE = yes
diff --git a/keyboards/infinity60/config.h b/keyboards/infinity60/config.h
index 8306c8f7ef..c1e9ec5b1f 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/>.
#ifndef CONFIG_H
#define CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
-
/* USB Device descriptor parameter */
#define VENDOR_ID 0x1c11
#define PRODUCT_ID 0xb04d
diff --git a/keyboards/iris/keymaps/davidrambo/config.h b/keyboards/iris/keymaps/davidrambo/config.h
index 01e078e326..2cdff4213b 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/>.
/* Select hand configuration */
#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
diff --git a/keyboards/iris/keymaps/jennetters/config.h b/keyboards/iris/keymaps/jennetters/config.h
index a3c0634f52..42f91bd027 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/>.
#define TAPPING_TERM 150
-/* Try to prevent sticky keys */
-#define PREVENT_STUCK_MODIFIERS
-
/* Use I2C or Serial, not both */
#define USE_SERIAL
@@ -38,4 +35,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
-#define RGBLIGHT_VAL_STEP 8 \ No newline at end of file
+#define RGBLIGHT_VAL_STEP 8
diff --git a/keyboards/iris/keymaps/krusli/config.h b/keyboards/iris/keymaps/krusli/config.h
index a53c746ad9..72e35c4728 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/>.
#include "config_common.h"
-// #define PREVENT_STUCK_MODIFIERS
-
/* Use I2C or Serial, not both */
#define USE_SERIAL
diff --git a/keyboards/iris/keymaps/xyverz/config.h b/keyboards/iris/keymaps/xyverz/config.h
index 0c61a8eac8..b820a0753d 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/>.
#define USE_SERIAL
#define EE_HANDS
-#define PREVENT_STUCK_MODIFIERS
-
#undef PRODUCT
#define PRODUCT Iris Keyboard
diff --git a/keyboards/jc65/v32u4/keymaps/gam3cat/config.h b/keyboards/jc65/v32u4/keymaps/gam3cat/config.h
index a3819d3a59..d86da86e40 100644
--- a/keyboards/jc65/v32u4/keymaps/gam3cat/config.h
+++ b/keyboards/jc65/v32u4/keymaps/gam3cat/config.h
@@ -1,7 +1,6 @@
#include "../../config.h"
//GRAVE_ESC override for CTRL+SHIFT+ESC Windows task manager shortcut.
#define GRAVE_ESC_CTRL_OVERRIDE
-#define PREVENT_STUCK_MODIFIERS
//Delay matrix scan for tap dance, reduce to activate modifier keys faster.
//#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 11cafbefcb..0000000000
--- a/keyboards/jj40/keymaps/ajp10304/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
diff --git a/keyboards/jj40/keymaps/fun40/config.h b/keyboards/jj40/keymaps/fun40/config.h
index 89807d84ad..f2b5d264e7 100644
--- a/keyboards/jj40/keymaps/fun40/config.h
+++ b/keyboards/jj40/keymaps/fun40/config.h
@@ -4,6 +4,5 @@
#include "../../config.h"
#define FORCE_NKRO
-#define PREVENT_STUCK_MODIFIERS
#endif
diff --git a/keyboards/jj40/keymaps/krusli/config.h b/keyboards/jj40/keymaps/krusli/config.h
index 6d98a37a67..e710dbbb60 100644
--- a/keyboards/jj40/keymaps/krusli/config.h
+++ b/keyboards/jj40/keymaps/krusli/config.h
@@ -3,7 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
// #define TAPPING_TERM 300
#endif
diff --git a/keyboards/jj40/keymaps/oscillope/config.h b/keyboards/jj40/keymaps/oscillope/config.h
index d7f991fa91..e812903de9 100644
--- a/keyboards/jj40/keymaps/oscillope/config.h
+++ b/keyboards/jj40/keymaps/oscillope/config.h
@@ -3,7 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_TERM 200
#endif
diff --git a/keyboards/jj40/keymaps/suzuken/config.h b/keyboards/jj40/keymaps/suzuken/config.h
index 52aaa8f24d..b1d74e1e69 100644
--- a/keyboards/jj40/keymaps/suzuken/config.h
+++ b/keyboards/jj40/keymaps/suzuken/config.h
@@ -3,7 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_TERM 300
#endif
diff --git a/keyboards/jj40/keymaps/waples/config.h b/keyboards/jj40/keymaps/waples/config.h
index 52aaa8f24d..b1d74e1e69 100644
--- a/keyboards/jj40/keymaps/waples/config.h
+++ b/keyboards/jj40/keymaps/waples/config.h
@@ -3,7 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_TERM 300
#endif
diff --git a/keyboards/jm60/config.h b/keyboards/jm60/config.h
index 847cf20780..cb5c90bb19 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/>.
#ifndef CONFIG_H
#define CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
-
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x6464
diff --git a/keyboards/k_type/config.h b/keyboards/k_type/config.h
index d19e0ff649..4937d9ad99 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/>.
#ifndef CONFIG_H
#define CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
-
/* USB Device descriptor parameter */
#define VENDOR_ID 0x1c11
#define PRODUCT_ID 0xb04d
diff --git a/keyboards/katana60/config.h b/keyboards/katana60/config.h
index 169cffb420..aaf2b5d544 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/>.
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
#define DIODE_DIRECTION ROW2COL
-
+
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
@@ -111,7 +111,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
)
#define TAPPING_TERM 200
-#define PREVENT_STUCK_MODIFIERS
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
diff --git a/keyboards/kbd75/config.h b/keyboards/kbd75/config.h
index f76d9082fb..726afcaf6e 100644
--- a/keyboards/kbd75/config.h
+++ b/keyboards/kbd75/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/kinesis/keymaps/insertsnideremarks/config.h b/keyboards/kinesis/keymaps/insertsnideremarks/config.h
index 3548fa3486..9ce094be51 100644
--- a/keyboards/kinesis/keymaps/insertsnideremarks/config.h
+++ b/keyboards/kinesis/keymaps/insertsnideremarks/config.h
@@ -5,7 +5,6 @@
#include "../../config.h"
// place overrides here
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
#define TAPPING_TERM 175
#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 e8632fe61d..6aa909d284 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/>.
#define SSD1306OLED
//#define OLED_ROTATE180
-
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/lets_split/keymaps/adam/config.h b/keyboards/lets_split/keymaps/adam/config.h
index ff29eb1bde..59a2e5db72 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/>.
#undef TAPPING_TERM
#define TAPPING_TERM 200 //At 500 some bad logic takes hold
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
diff --git a/keyboards/lets_split/keymaps/khord/config.h b/keyboards/lets_split/keymaps/khord/config.h
index 4ebdbad769..71ec20dbc8 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/>.
#define TAPPING_TERM 150
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
/* Use I2C or Serial, not both */
#define USE_SERIAL
diff --git a/keyboards/lets_split/keymaps/piemod/config.h b/keyboards/lets_split/keymaps/piemod/config.h
index 001b62e41b..1b3fd7544e 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/>.
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 1
// Typing Options
-#define PREVENT_STUCK_MODIFIERS
#define QMK_KEYS_PER_SCAN 4
#endif
diff --git a/keyboards/lets_split/keymaps/waples/config.h b/keyboards/lets_split/keymaps/waples/config.h
index 98ebeff455..5221fd011a 100644
--- a/keyboards/lets_split/keymaps/waples/config.h
+++ b/keyboards/lets_split/keymaps/waples/config.h
@@ -12,6 +12,4 @@
// #define MASTER_RIGHT
#define EE_HANDS // We like to have choices I guess
-#define PREVENT_STUCK_MODIFIERS // When switching layers, this will release all mods
-
#endif
diff --git a/keyboards/lets_split/keymaps/xk/config.h b/keyboards/lets_split/keymaps/xk/config.h
index c75ed12cc8..a5cd518576 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
#define EE_HANDS
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
diff --git a/keyboards/m10a/keymaps/gam3cat/config.h b/keyboards/m10a/keymaps/gam3cat/config.h
deleted file mode 100644
index 73bc50bc2d..0000000000
--- a/keyboards/m10a/keymaps/gam3cat/config.h
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
diff --git a/keyboards/mechmini/v2/config.h b/keyboards/mechmini/v2/config.h
index 58c751e0f8..e0922bb7e2 100755
--- a/keyboards/mechmini/v2/config.h
+++ b/keyboards/mechmini/v2/config.h
@@ -62,9 +62,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/melody96/config.h b/keyboards/melody96/config.h
index 6083dcf751..67123a7e52 100644
--- a/keyboards/melody96/config.h
+++ b/keyboards/melody96/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/minidox/keymaps/alairock/config.h b/keyboards/minidox/keymaps/alairock/config.h
index 4456060319..3649fdd12c 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/>.
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
-#define PREVENT_STUCK_MODIFIERS
#endif
diff --git a/keyboards/minidox/keymaps/khitsule/config.h b/keyboards/minidox/keymaps/khitsule/config.h
index 7023548646..645e80ee8f 100644
--- a/keyboards/minidox/keymaps/khitsule/config.h
+++ b/keyboards/minidox/keymaps/khitsule/config.h
@@ -1,8 +1,6 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
-#define PREVENT_STUCK_MODIFIERS
-
#define IGNORE_MOD_TAP_INTERRUPT
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/mint60/config.h b/keyboards/mint60/config.h
index 37b69e93a1..51c586e636 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/>.
#define PRODUCT Mint60
#define DESCRIPTION A row staggered split keyboard
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_FORCE_HOLD
#define TAPPING_TERM 100
diff --git a/keyboards/mitosis/config.h b/keyboards/mitosis/config.h
index 6101ee1237..5cfd2e4b12 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/niu_mini/config.h b/keyboards/niu_mini/config.h
index 2f22306160..b9d3ed4e9d 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/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/novelpad/config.h b/keyboards/novelpad/config.h
index 0d6a713433..3a47c0eb65 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/>.
false \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define BACKLIGHT_LEVELS 10
#define BACKLIGHT_PIN B7
diff --git a/keyboards/noxary/268/config.h b/keyboards/noxary/268/config.h
index b2cb95e95c..7eec79a1bc 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/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
/* ws2812b options */
#define RGB_DI_PIN B5
#ifdef RGB_DI_PIN
@@ -73,4 +70,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_VAL_STEP 16
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/ok60/config.h b/keyboards/ok60/config.h
index 61c2fa0ed3..db7b74e587 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/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN F6
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 10
diff --git a/keyboards/omnikey_blackheart/config.h b/keyboards/omnikey_blackheart/config.h
index 14b4a5f172..94412cfa67 100644
--- a/keyboards/omnikey_blackheart/config.h
+++ b/keyboards/omnikey_blackheart/config.h
@@ -45,10 +45,6 @@
/* force n-key rollover*/
#define FORCE_NKRO
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
@@ -57,4 +53,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/paladin64/config.h b/keyboards/paladin64/config.h
index 27f54bf161..a5280f4d48 100755
--- a/keyboards/paladin64/config.h
+++ b/keyboards/paladin64/config.h
@@ -110,8 +110,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
#define RGB_DI_PIN D0
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/pegasushoof/keymaps/citadel/config.h b/keyboards/pegasushoof/keymaps/citadel/config.h
index e8eafe2e17..2d27ff392d 100644
--- a/keyboards/pegasushoof/keymaps/citadel/config.h
+++ b/keyboards/pegasushoof/keymaps/citadel/config.h
@@ -8,7 +8,4 @@
#undef PRODUCT
#define PRODUCT Pegasus Hoof Citadel
-/* necessary option for this keymap, because CAPS is redefined in Layer 0 */
-#define PREVENT_STUCK_MODIFIERS
-
#endif
diff --git a/keyboards/planck/keymaps/ajp10304/config.h b/keyboards/planck/keymaps/ajp10304/config.h
deleted file mode 100644
index 11cafbefcb..0000000000
--- a/keyboards/planck/keymaps/ajp10304/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
diff --git a/keyboards/planck/keymaps/altgr/config.h b/keyboards/planck/keymaps/altgr/config.h
index d55258c02b..e517a8b24b 100644
--- a/keyboards/planck/keymaps/altgr/config.h
+++ b/keyboards/planck/keymaps/altgr/config.h
@@ -3,9 +3,6 @@
#include "../../config.h"
-// required because lower/raise modifiers are redefined by colemak-dh
-#define PREVENT_STUCK_MODIFIERS
-
// tap dance key press termination interval
#define TAPPING_TERM 250
diff --git a/keyboards/planck/keymaps/am/config.h b/keyboards/planck/keymaps/am/config.h
index b2b87045b8..1ae457e3b8 100644
--- a/keyboards/planck/keymaps/am/config.h
+++ b/keyboards/planck/keymaps/am/config.h
@@ -1,8 +1,5 @@
#pragma once
-/* Prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
diff --git a/keyboards/planck/keymaps/andylikescandy/config.h b/keyboards/planck/keymaps/andylikescandy/config.h
index 0de5f3db0c..01169db2aa 100644
--- a/keyboards/planck/keymaps/andylikescandy/config.h
+++ b/keyboards/planck/keymaps/andylikescandy/config.h
@@ -17,9 +17,6 @@
#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
-
-
/*
* MIDI options
*/
diff --git a/keyboards/planck/keymaps/bone2planck/config.h b/keyboards/planck/keymaps/bone2planck/config.h
deleted file mode 100644
index 3e9e692d3c..0000000000
--- a/keyboards/planck/keymaps/bone2planck/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/davidrambo/config.h b/keyboards/planck/keymaps/davidrambo/config.h
index c3bebf5799..2decb3dc8d 100644
--- a/keyboards/planck/keymaps/davidrambo/config.h
+++ b/keyboards/planck/keymaps/davidrambo/config.h
@@ -3,7 +3,6 @@
#define CONFIG_USER_H
#define TAPPING_TERM 200
#include "../../config.h"
-#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
+#define PERMISSIVE_HOLD
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/planck/keymaps/dshields/config.h b/keyboards/planck/keymaps/dshields/config.h
index 480ba453a2..9ba854ef04 100644
--- a/keyboards/planck/keymaps/dshields/config.h
+++ b/keyboards/planck/keymaps/dshields/config.h
@@ -10,7 +10,6 @@
#define _______ KC_TRNS
#define XXXXXXX KC_NO
-#define PREVENT_STUCK_MODIFIERS
#define USB_MAX_POWER_CONSUMPTION 100
#define ONESHOT_TAP_TOGGLE 2
diff --git a/keyboards/planck/keymaps/espynn/keymap.c b/keyboards/planck/keymaps/espynn/keymap.c
index 9cf508af6d..5615a78bf7 100644
--- a/keyboards/planck/keymaps/espynn/keymap.c
+++ b/keyboards/planck/keymaps/espynn/keymap.c
@@ -5,7 +5,6 @@
#ifdef BACKLIGHT_ENABLE
#include "backlight.h"
#endif
-#define PREVENT_STUCK_MODIFIERS
extern keymap_config_t keymap_config;
// Symbolic names for macro IDs.
diff --git a/keyboards/planck/keymaps/experimental/config.h b/keyboards/planck/keymaps/experimental/config.h
index 0864b5fbc9..86cc4760bb 100644
--- a/keyboards/planck/keymaps/experimental/config.h
+++ b/keyboards/planck/keymaps/experimental/config.h
@@ -5,8 +5,6 @@
#define LEADER_TIMEOUT 300
#define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
-
/* ws2812 RGB LED */
#define RGB_DI_PIN B1
diff --git a/keyboards/planck/keymaps/experimental/rules.mk b/keyboards/planck/keymaps/experimental/rules.mk
index b135dfca01..168d3cb9f0 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
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
SWAP_HANDS_ENABLE = yes # Enable one-hand typing
STENO_ENABLE = yes # Enable TX Bolt protocol for Stenography, requires VIRTSER and may not work with mouse keys
+LEADER_ENABLE = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR
include ../../../../Makefile
-endif \ No newline at end of file
+endif
diff --git a/keyboards/planck/keymaps/hiea/config.h b/keyboards/planck/keymaps/hiea/config.h
index 9bb5e08735..655cdf5db3 100644
--- a/keyboards/planck/keymaps/hiea/config.h
+++ b/keyboards/planck/keymaps/hiea/config.h
@@ -3,9 +3,6 @@
#include "../../config.h"
-// required because lower/raise modifiers are redefined by colemak-dh
-#define PREVENT_STUCK_MODIFIERS
-
// tap dance key press termination interval
#define TAPPING_TERM 250
diff --git a/keyboards/planck/keymaps/hieax/config.h b/keyboards/planck/keymaps/hieax/config.h
index 9bb5e08735..655cdf5db3 100644
--- a/keyboards/planck/keymaps/hieax/config.h
+++ b/keyboards/planck/keymaps/hieax/config.h
@@ -3,9 +3,6 @@
#include "../../config.h"
-// required because lower/raise modifiers are redefined by colemak-dh
-#define PREVENT_STUCK_MODIFIERS
-
// tap dance key press termination interval
#define TAPPING_TERM 250
diff --git a/keyboards/planck/keymaps/ishtob/config.h b/keyboards/planck/keymaps/ishtob/config.h
index e58ade0b0f..688607634c 100755
--- a/keyboards/planck/keymaps/ishtob/config.h
+++ b/keyboards/planck/keymaps/ishtob/config.h
@@ -2,7 +2,6 @@
#ifndef USERSPACE_CONFIG_H
#define USERSPACE_CONFIG_H
-
#ifdef AUDIO_ENABLE
// #define STARTUP_SONG SONG(E1M1_DOOM)
@@ -24,7 +23,6 @@
#define FORCE_NKRO
#define LEADER_TIMEOUT 300
-#define PREVENT_STUCK_MODIFIERS
#undef DEBOUNCE
#define DEBOUNCE 0
diff --git a/keyboards/planck/keymaps/jarred/config.h b/keyboards/planck/keymaps/jarred/config.h
index f98b8935e2..9e8f404c15 100644
--- a/keyboards/planck/keymaps/jarred/config.h
+++ b/keyboards/planck/keymaps/jarred/config.h
@@ -19,8 +19,6 @@
#include "config_common.h"
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
#endif
@@ -34,6 +32,6 @@
#define MOUSEKEY_WHEEL_DELAY 0
#define MOUSEKEY_WHEEL_MAX_SPEED 4
-#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 255
#endif
diff --git a/keyboards/planck/keymaps/jeremy-dev/keymap.c b/keyboards/planck/keymaps/jeremy-dev/keymap.c
index 5aea443290..89b7e6b84a 100644
--- a/keyboards/planck/keymaps/jeremy-dev/keymap.c
+++ b/keyboards/planck/keymaps/jeremy-dev/keymap.c
@@ -1,7 +1,6 @@
// This is the personal keymap of Jeremy Cowgar (@jcowgar). It is written for the programmer.
// Configuration options
-#define PREVENT_STUCK_MODIFIERS
#pragma message "You may need to add LAYOUT_planck_grid to your keymap layers - see default for an example"
#include "planck.h"
diff --git a/keyboards/planck/keymaps/kmontag42/rules.mk b/keyboards/planck/keymaps/kmontag42/rules.mk
index b9f73934aa..0c100076be 100644
--- a/keyboards/planck/keymaps/kmontag42/rules.mk
+++ b/keyboards/planck/keymaps/kmontag42/rules.mk
@@ -1,4 +1,5 @@
UNICODE_ENABLE = yes
+LEADER_ENABLE = yes
ifndef QUANTUM_DIR
include ../../../../Makefile
diff --git a/keyboards/planck/keymaps/lae3/config.h b/keyboards/planck/keymaps/lae3/config.h
deleted file mode 100644
index a28634e696..0000000000
--- a/keyboards/planck/keymaps/lae3/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef LAE3_KEYMAP_H
-#define LAE3_KEYMAP_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
diff --git a/keyboards/planck/keymaps/mitch/config.h b/keyboards/planck/keymaps/mitch/config.h
index 10591b3c8c..bb7989d90d 100644
--- a/keyboards/planck/keymaps/mitch/config.h
+++ b/keyboards/planck/keymaps/mitch/config.h
@@ -1,6 +1,5 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
// for the broken board
#undef MATRIX_COL_PINS
-#define MATRIX_COL_PINS { F1, F0, B0, B2, F4, F5, F6, F7, D4, D6, B4, D7 } \ No newline at end of file
+#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 3869304f44..9ed1133ef9 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.
The normal right shift key uses the `MT` macro to trigger Enter on tap and right
shift when held.
-
-This keymap sets the `PREVENT_STUCK_MODIFIERS` flag to avoid the occasional WTF
-moments when using a modifier keys and accidentally releasing them after moving
-to a new layer.
diff --git a/keyboards/planck/keymaps/narze/config.h b/keyboards/planck/keymaps/narze/config.h
index e081a93b53..19d784b2be 100644
--- a/keyboards/planck/keymaps/narze/config.h
+++ b/keyboards/planck/keymaps/narze/config.h
@@ -33,10 +33,9 @@
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
#define SUPER_DUPER_SOUND S__NOTE(_B1)
#define MOUSEKEY_DELAY 100
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/planck/keymaps/neo2planck/config.h b/keyboards/planck/keymaps/neo2planck/config.h
deleted file mode 100644
index 3e9e692d3c..0000000000
--- a/keyboards/planck/keymaps/neo2planck/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif \ No newline at end of file
diff --git a/keyboards/planck/keymaps/priyadi/config.h b/keyboards/planck/keymaps/priyadi/config.h
index 448ae3b908..876d057bf2 100644
--- a/keyboards/planck/keymaps/priyadi/config.h
+++ b/keyboards/planck/keymaps/priyadi/config.h
@@ -11,8 +11,6 @@
/* skip bootmagic and eeconfig */
#define BOOTMAGIC_KEY_SKIP KC_SPACE
-#define PREVENT_STUCK_MODIFIERS
-
#define UNICODE_TYPE_DELAY 0
#define LAYOUT_DVORAK
diff --git a/keyboards/planck/keymaps/sdothum/config.h b/keyboards/planck/keymaps/sdothum/config.h
index 4b2cdeece1..8bed79e6f7 100644
--- a/keyboards/planck/keymaps/sdothum/config.h
+++ b/keyboards/planck/keymaps/sdothum/config.h
@@ -3,9 +3,6 @@
#include "../../config.h"
-// required because lower/raise modifiers are redefined by colemak-dh
-#define PREVENT_STUCK_MODIFIERS
-
// tap dance key press termination interval
#define TAPPING_TERM 250
diff --git a/keyboards/planck/keymaps/steno/config.h b/keyboards/planck/keymaps/steno/config.h
index 1879ab007f..4f99c7eb81 100644
--- a/keyboards/planck/keymaps/steno/config.h
+++ b/keyboards/planck/keymaps/steno/config.h
@@ -15,8 +15,6 @@
#define MUSIC_MASK (keycode != KC_NO)
-#define PREVENT_STUCK_MODIFIERS
-
/*
* MIDI options
*/
@@ -41,4 +39,4 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/planck/keymaps/tehwalris/config.h b/keyboards/planck/keymaps/tehwalris/config.h
index 4725e1426d..c5d55b9693 100644
--- a/keyboards/planck/keymaps/tehwalris/config.h
+++ b/keyboards/planck/keymaps/tehwalris/config.h
@@ -3,8 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
-
#ifdef AUDIO_ENABLE
// #define STARTUP_SONG SONG(PLANCK_SOUND)
#define STARTUP_SONG SONG(NO_SOUND)
@@ -27,7 +25,7 @@
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
-
+
#define MIDI_BASIC
/* enable advanced MIDI features:
diff --git a/keyboards/planck/keymaps/vifon/config.h b/keyboards/planck/keymaps/vifon/config.h
index 4cb4a1235a..be395faad3 100644
--- a/keyboards/planck/keymaps/vifon/config.h
+++ b/keyboards/planck/keymaps/vifon/config.h
@@ -26,9 +26,6 @@
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
-/* prevent the modifiers from being stuck, sacrificing some memory */
-#define PREVENT_STUCK_MODIFIERS
-
/* A larger buffer for the dynamic macros as this keymap is not taking
* up that much memory.
*/
diff --git a/keyboards/planck/keymaps/yale/config.h b/keyboards/planck/keymaps/yale/config.h
deleted file mode 100644
index 8a916bbd09..0000000000
--- a/keyboards/planck/keymaps/yale/config.h
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
-
-
-
diff --git a/keyboards/planck/keymaps/zach/config.h b/keyboards/planck/keymaps/zach/config.h
index 19a3856a39..dc79bad064 100644
--- a/keyboards/planck/keymaps/zach/config.h
+++ b/keyboards/planck/keymaps/zach/config.h
@@ -55,7 +55,6 @@
//#define NO_ACTION_ONESHOT
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
-#define PREVENT_STUCK_MODIFIERS
//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality
//#define SPACE_CADET // Parenthesis on L/R shift
diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h
index 0e462180bd..afd69f7d84 100644
--- a/keyboards/planck/rev6/config.h
+++ b/keyboards/planck/rev6/config.h
@@ -50,9 +50,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 6
-/* Prevent modifiers from being stuck on after layer changes. */
-#define PREVENT_STUCK_MODIFIERS
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/playkbtw/ca66/config.h b/keyboards/playkbtw/ca66/config.h
index c35718042a..53bbe95e3a 100644
--- a/keyboards/playkbtw/ca66/config.h
+++ b/keyboards/playkbtw/ca66/config.h
@@ -42,8 +42,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
#define RGB_DI_PIN B1
#ifdef RGB_DI_PIN
diff --git a/keyboards/playkbtw/pk60/config.h b/keyboards/playkbtw/pk60/config.h
index 06101349cc..601e3c8a5c 100644
--- a/keyboards/playkbtw/pk60/config.h
+++ b/keyboards/playkbtw/pk60/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN E2
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
@@ -55,4 +52,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/preonic/keymaps/bucktooth/config.h b/keyboards/preonic/keymaps/bucktooth/config.h
index b988831207..23e9e0ed28 100644
--- a/keyboards/preonic/keymaps/bucktooth/config.h
+++ b/keyboards/preonic/keymaps/bucktooth/config.h
@@ -4,6 +4,5 @@
#include "../../config.h"
#define FORCE_NKRO 1
-#define PREVENT_STUCK_MODIFIERS
#endif
diff --git a/keyboards/preonic/keymaps/jacwib/config.h b/keyboards/preonic/keymaps/jacwib/config.h
index b988831207..23e9e0ed28 100644
--- a/keyboards/preonic/keymaps/jacwib/config.h
+++ b/keyboards/preonic/keymaps/jacwib/config.h
@@ -4,6 +4,5 @@
#include "../../config.h"
#define FORCE_NKRO 1
-#define PREVENT_STUCK_MODIFIERS
#endif
diff --git a/keyboards/preonic/keymaps/kuatsure/rules.mk b/keyboards/preonic/keymaps/kuatsure/rules.mk
index 76d73acef7..9369f99a9e 100644
--- a/keyboards/preonic/keymaps/kuatsure/rules.mk
+++ b/keyboards/preonic/keymaps/kuatsure/rules.mk
@@ -1 +1,2 @@
BACKLIGHT_ENABLE = no
+LEADER_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 11cafbefcb..0000000000
--- a/keyboards/preonic/keymaps/that_canadian/config.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
diff --git a/keyboards/preonic/keymaps/zach/config.h b/keyboards/preonic/keymaps/zach/config.h
index bb8913c7af..40a083da37 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/>.
//#define NO_ACTION_ONESHOT
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
-#define PREVENT_STUCK_MODIFIERS
//#define DYNAMIC_MACRO_ENABLE // Enable if you need to use the macro functionality
//#define SPACE_CADET // Parenthesis on L/R shift
diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h
index 3f57c591ab..98899dc6ac 100644
--- a/keyboards/preonic/rev3/config.h
+++ b/keyboards/preonic/rev3/config.h
@@ -50,9 +50,6 @@
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 6
-/* Prevent modifiers from being stuck on after layer changes. */
-#define PREVENT_STUCK_MODIFIERS
-
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
//#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
diff --git a/keyboards/prime_r/config.h b/keyboards/prime_r/config.h
index b53f149051..ad92199a22 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/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
diff --git a/keyboards/rorschach/keymaps/insertsnideremarks/config.h b/keyboards/rorschach/keymaps/insertsnideremarks/config.h
index 90fb5120df..2048232c9c 100644
--- a/keyboards/rorschach/keymaps/insertsnideremarks/config.h
+++ b/keyboards/rorschach/keymaps/insertsnideremarks/config.h
@@ -11,7 +11,6 @@
// #define MASTER_RIGHT
#define EE_HANDS
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
#define TAPPING_TERM 175
#define TAPPING_TOGGLE 2
diff --git a/keyboards/s60_x/keymaps/bluebear/config.h b/keyboards/s60_x/keymaps/bluebear/config.h
index 35754b5233..10bddf0d37 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/>.
// Space Cadet Rollover - if set, allows to tap opposite shift key to cancel erroneous press
#define DISABLE_SPACE_CADET_ROLLOVER
-// Prevent stuck modifiers
-#define PREVENT_STUCK_MODIFIERS
-
#endif
diff --git a/keyboards/s60_x/rgb/config.h b/keyboards/s60_x/rgb/config.h
index ec8b0f49e1..d9c26658df 100644
--- a/keyboards/s60_x/rgb/config.h
+++ b/keyboards/s60_x/rgb/config.h
@@ -17,9 +17,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN F6
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
@@ -29,4 +26,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/s65_plus/config.h b/keyboards/s65_plus/config.h
index df60e60a8d..60512db462 100644
--- a/keyboards/s65_plus/config.h
+++ b/keyboards/s65_plus/config.h
@@ -49,7 +49,4 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#endif
diff --git a/keyboards/s65_x/config.h b/keyboards/s65_x/config.h
index 8288ef7834..367efc526c 100644
--- a/keyboards/s65_x/config.h
+++ b/keyboards/s65_x/config.h
@@ -49,8 +49,4 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#endif
diff --git a/keyboards/sx60/config.h b/keyboards/sx60/config.h
index f22fbe8be4..52a1cc7a18 100755
--- a/keyboards/sx60/config.h
+++ b/keyboards/sx60/config.h
@@ -46,10 +46,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
diff --git a/keyboards/telophase/config.h b/keyboards/telophase/config.h
index 09655c0258..be0a369773 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/>.
* These options are also useful to firmware size reduction.
*/
-#define PREVENT_STUCK_MODIFIERS
-
/* disable debug print */
//#define NO_DEBUG
diff --git a/keyboards/tetris/config.h b/keyboards/tetris/config.h
index 9c7f525a71..7e7dac7cf6 100644
--- a/keyboards/tetris/config.h
+++ b/keyboards/tetris/config.h
@@ -41,9 +41,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
@@ -62,4 +59,4 @@
//#define RGBLIGHT_LIMIT_VAL 128
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
index bb2aadfa69..fc9bd3d616 100644
--- a/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
+++ b/keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define SPACE_COUNT 3
#define TEMPLATE( \
diff --git a/keyboards/tokyo60/config.h b/keyboards/tokyo60/config.h
index 6e6ab2215d..16927be17e 100644
--- a/keyboards/tokyo60/config.h
+++ b/keyboards/tokyo60/config.h
@@ -47,9 +47,6 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN F7
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/tomato/config.h b/keyboards/tomato/config.h
index f33c131087..185cb326cc 100644
--- a/keyboards/tomato/config.h
+++ b/keyboards/tomato/config.h
@@ -34,9 +34,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
/* eliminate lag on space cadet mods */
#define PERMISSIVE_HOLD
diff --git a/keyboards/uk78/config.h b/keyboards/uk78/config.h
index 35f5bf70b3..34d6720792 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/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
/* ws2812b options */
#define RGB_DI_PIN F6
#ifdef RGB_DI_PIN
diff --git a/keyboards/viterbi/keymaps/drashna/config.h b/keyboards/viterbi/keymaps/drashna/config.h
index 687f80441a..a1e361e346 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/>.
#define NO_MUSIC_MODE
#endif
-#undef PREVENT_STUCK_MODIFIERS
+#define STRICT_LAYER_RELEASE
#define LAYOUT_ortho_5x7( \
L00, L01, L02, L03, L04, L05, L06, \
diff --git a/keyboards/whitefox/config.h b/keyboards/whitefox/config.h
index 9f021fb516..a8047cf54f 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/>.
#ifndef CONFIG_H
#define CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
-
/* USB Device descriptor parameter */
#define VENDOR_ID 0x1c11
#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 0000000000..d0d2ef6d53
--- /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 e87ccde797..f219147034 100644
--- a/keyboards/xd75/keymaps/davidrambo/config.h
+++ b/keyboards/xd75/keymaps/davidrambo/config.h
@@ -20,7 +20,6 @@
#include "../../config.h"
#define TAPPING_TERM 200
-#define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
+#define PERMISSIVE_HOLD
#endif
diff --git a/keyboards/xd75/keymaps/tdl-jturner/config.h b/keyboards/xd75/keymaps/tdl-jturner/config.h
index 561a48d7eb..985247bb2e 100644
--- a/keyboards/xd75/keymaps/tdl-jturner/config.h
+++ b/keyboards/xd75/keymaps/tdl-jturner/config.h
@@ -26,7 +26,6 @@
#define TAPPING_TOGGLE 2
//#define PERMISSIVE_HOLD
//#define QMK_KEYS_PER_SCAN 4
-#define PREVENT_STUCK_MODIFIERS
#define FORCE_NKRO
#define MOUSEKEY_INTERVAL 16
diff --git a/keyboards/xmmx/config.h b/keyboards/xmmx/config.h
index f3f893e283..8cb2cf82df 100644
--- a/keyboards/xmmx/config.h
+++ b/keyboards/xmmx/config.h
@@ -43,10 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
@@ -55,4 +51,4 @@
#define RGBLIGHT_VAL_STEP 8
#endif
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/ymd96/keymaps/hgoel89/config.h b/keyboards/ymd96/keymaps/hgoel89/config.h
index 52aaa8f24d..b1d74e1e69 100644
--- a/keyboards/ymd96/keymaps/hgoel89/config.h
+++ b/keyboards/ymd96/keymaps/hgoel89/config.h
@@ -3,7 +3,6 @@
#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
#define TAPPING_TERM 300
#endif
diff --git a/keyboards/z150_blackheart/config.h b/keyboards/z150_blackheart/config.h
index d2fce9aeef..3621536522 100644
--- a/keyboards/z150_blackheart/config.h
+++ b/keyboards/z150_blackheart/config.h
@@ -39,14 +39,10 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
-
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 0
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
-#endif \ No newline at end of file
+#endif
diff --git a/keyboards/zeal60/keymaps/tusing/config.h b/keyboards/zeal60/keymaps/tusing/config.h
index 93f260946c..64aaece501 100644
--- a/keyboards/zeal60/keymaps/tusing/config.h
+++ b/keyboards/zeal60/keymaps/tusing/config.h
@@ -34,7 +34,3 @@
// Scale brightnes according to BRIGHTNESS_CORRECTION_TABLE in quantum/rgblight.c.
// This allows to mitigate uneven brightness from LED underglow strips.
// #define LED_BRIGHTNESS_CORRECTION
-
-// Prevent modifiers on layer 1 from persisting after we let go
-#define PREVENT_STUCK_MODIFIERS
-
diff --git a/keyboards/zlant/config.h b/keyboards/zlant/config.h
index 456d225aa2..ae9dcfef67 100755
--- a/keyboards/zlant/config.h
+++ b/keyboards/zlant/config.h
@@ -43,9 +43,6 @@
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
)
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
#define RGB_DI_PIN D6
#ifdef RGB_DI_PIN
#define RGBLIGHT_ANIMATIONS
diff --git a/layouts/community/60_ansi/talljoe-ansi/config.h b/layouts/community/60_ansi/talljoe-ansi/config.h
index 1990b0ee3b..4326a2fd10 100644
--- a/layouts/community/60_ansi/talljoe-ansi/config.h
+++ b/layouts/community/60_ansi/talljoe-ansi/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#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 81ab5cf89e..bf18fd9f7d 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 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE( \
diff --git a/layouts/community/60_hhkb/talljoe-hhkb/config.h b/layouts/community/60_hhkb/talljoe-hhkb/config.h
index 938ea6cd63..9e907feeb5 100644
--- a/layouts/community/60_hhkb/talljoe-hhkb/config.h
+++ b/layouts/community/60_hhkb/talljoe-hhkb/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE( \
diff --git a/layouts/community/ergodox/adam/config.h b/layouts/community/ergodox/adam/config.h
index 21af8c6b8d..1a8fddb506 100644
--- a/layouts/community/ergodox/adam/config.h
+++ b/layouts/community/ergodox/adam/config.h
@@ -2,5 +2,4 @@
#undef TAPPING_TERM
#define TAPPING_TERM 300 //At 500 some bad logic takes hold
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/layouts/community/ergodox/albert/rules.mk b/layouts/community/ergodox/albert/rules.mk
index fcd019e838..47549b50f6 100644
--- a/layouts/community/ergodox/albert/rules.mk
+++ b/layouts/community/ergodox/albert/rules.mk
@@ -1,3 +1,2 @@
COMMAND_ENABLE = no # Commands for debug and configuration
-
-
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/algernon/rules.mk b/layouts/community/ergodox/algernon/rules.mk
index f795a8676e..53dec5153a 100644
--- a/layouts/community/ergodox/algernon/rules.mk
+++ b/layouts/community/ergodox/algernon/rules.mk
@@ -8,6 +8,7 @@ TAP_DANCE_ENABLE = yes
KEYLOGGER_ENABLE ?= yes
UCIS_ENABLE = yes
MOUSEKEY_ENABLE = no
+LEADER_ENABLE = yes
AUTOLOG_ENABLE ?= no
diff --git a/layouts/community/ergodox/alphadox/config.h b/layouts/community/ergodox/alphadox/config.h
index 6fc64f5082..9e076dead1 100644
--- a/layouts/community/ergodox/alphadox/config.h
+++ b/layouts/community/ergodox/alphadox/config.h
@@ -4,7 +4,6 @@
#include QMK_KEYBOARD_CONFIG_H
#define FORCE_NKRO
-#define PREVENT_STUCK_MODIFIERS
#undef TAPPING_TERM
#undef IGNORE_MOD_TAP_INTERRUPT
diff --git a/layouts/community/ergodox/deadcyclo/rules.mk b/layouts/community/ergodox/deadcyclo/rules.mk
index 039f07c8e3..f5093529bf 100644
--- a/layouts/community/ergodox/deadcyclo/rules.mk
+++ b/layouts/community/ergodox/deadcyclo/rules.mk
@@ -1 +1,2 @@
UNICODE_ENABLE = yes
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/erez_experimental/rules.mk b/layouts/community/ergodox/erez_experimental/rules.mk
index 839dd82e1e..f68b56f872 100644
--- a/layouts/community/ergodox/erez_experimental/rules.mk
+++ b/layouts/community/ergodox/erez_experimental/rules.mk
@@ -3,5 +3,4 @@
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
COMMAND_ENABLE = no # Commands for debug and configuration
-
-
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/familiar/rules.mk b/layouts/community/ergodox/familiar/rules.mk
index 31e0fcf293..4a3c58621c 100644
--- a/layouts/community/ergodox/familiar/rules.mk
+++ b/layouts/community/ergodox/familiar/rules.mk
@@ -1 +1,2 @@
TAP_DANCE_ENABLE=yes
+LEADER_ENABLE = yes
diff --git a/layouts/community/ergodox/mclennon_osx/README.md b/layouts/community/ergodox/mclennon_osx/README.md
index 28cdb7c108..53b3d48414 100644
--- a/layouts/community/ergodox/mclennon_osx/README.md
+++ b/layouts/community/ergodox/mclennon_osx/README.md
@@ -1,5 +1,5 @@
# Ergodox EZ for OS X
-This 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.
+This 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.
-If 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/).
+Firmware 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 36e0591a8e..3d1bcb9e11 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
On the left board you have mouse control with left & right click in the location of the G and B keys.
On the right board you have vim-style arrow keys using hjkl
-The 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.
+The 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.
## Changelog
diff --git a/layouts/community/ortho_4x12/symbolic/config.h b/layouts/community/ortho_4x12/symbolic/config.h
index 702c9226c6..c29b077062 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/>.
#pragma once
-// prevent stuck modifiers
-#define PREVENT_STUCK_MODIFIERS
-
-
// hold & tapping delay setting
#define TAPPING_TERM 100
diff --git a/layouts/community/tkl_ansi/talljoe-tkl/config.h b/layouts/community/tkl_ansi/talljoe-tkl/config.h
index 8b27d41365..02f8a94e39 100644
--- a/layouts/community/tkl_ansi/talljoe-tkl/config.h
+++ b/layouts/community/tkl_ansi/talljoe-tkl/config.h
@@ -3,7 +3,6 @@
#include QMK_KEYBOARD_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define ENABLE_GAME_LAYER
#define TEMPLATE_TKL(\
diff --git a/quantum/process_keycode/process_chording.c b/quantum/process_keycode/process_chording.c
deleted file mode 100644
index 6c6ebe300a..0000000000
--- a/quantum/process_keycode/process_chording.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright 2016 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "process_chording.h"
-
-bool keys_chord(uint8_t keys[]) {
- uint8_t keys_size = sizeof(keys)/sizeof(keys[0]);
- bool pass = true;
- uint8_t in = 0;
- for (uint8_t i = 0; i < chord_key_count; i++) {
- bool found = false;
- for (uint8_t j = 0; j < keys_size; j++) {
- if (chord_keys[i] == (keys[j] & 0xFF)) {
- in++; // detects key in chord
- found = true;
- break;
- }
- }
- if (found)
- continue;
- if (chord_keys[i] != 0) {
- pass = false; // makes sure rest are blank
- }
- }
- return (pass && (in == keys_size));
-}
-
-bool process_chording(uint16_t keycode, keyrecord_t *record) {
- if (keycode >= QK_CHORDING && keycode <= QK_CHORDING_MAX) {
- if (record->event.pressed) {
- if (!chording) {
- chording = true;
- for (uint8_t i = 0; i < CHORDING_MAX; i++)
- chord_keys[i] = 0;
- chord_key_count = 0;
- chord_key_down = 0;
- }
- chord_keys[chord_key_count] = (keycode & 0xFF);
- chord_key_count++;
- chord_key_down++;
- return false;
- } else {
- if (chording) {
- chord_key_down--;
- if (chord_key_down == 0) {
- chording = false;
- // Chord Dictionary
- if (keys_chord((uint8_t[]){KC_ENTER, KC_SPACE})) {
- register_code(KC_A);
- unregister_code(KC_A);
- return false;
- }
- for (uint8_t i = 0; i < chord_key_count; i++) {
- register_code(chord_keys[i]);
- unregister_code(chord_keys[i]);
- return false;
- }
- }
- }
- }
- }
- return true;
-}
diff --git a/quantum/process_keycode/process_chording.h b/quantum/process_keycode/process_chording.h
deleted file mode 100644
index 8c0f4862a8..0000000000
--- a/quantum/process_keycode/process_chording.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2016 Jack Humbert
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef PROCESS_CHORDING_H
-#define PROCESS_CHORDING_H
-
-#include "quantum.h"
-
-// Chording stuff
-#define CHORDING_MAX 4
-bool chording = false;
-
-uint8_t chord_keys[CHORDING_MAX] = {0};
-uint8_t chord_key_count = 0;
-uint8_t chord_key_down = 0;
-
-bool process_chording(uint16_t keycode, keyrecord_t *record);
-
-#endif
diff --git a/quantum/process_keycode/process_leader.c b/quantum/process_keycode/process_leader.c
index c87ef115af..eddbf71f70 100644
--- a/quantum/process_keycode/process_leader.c
+++ b/quantum/process_keycode/process_leader.c
@@ -14,7 +14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef DISABLE_LEADER
+#ifdef LEADER_ENABLE
#include "process_leader.h"
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 9d352a94cf..9bf91eb865 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -196,7 +196,7 @@ bool process_record_quantum(keyrecord_t *record) {
keypos_t key = record->event.key;
uint16_t keycode;
- #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+ #if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
/* TODO: Use store_or_get_action() or a similar function. */
if (!disable_action_cache) {
uint8_t layer;
@@ -251,12 +251,9 @@ bool process_record_quantum(keyrecord_t *record) {
#ifdef TAP_DANCE_ENABLE
process_tap_dance(keycode, record) &&
#endif
- #ifndef DISABLE_LEADER
+ #ifdef LEADER_ENABLE
process_leader(keycode, record) &&
#endif
- #ifndef DISABLE_CHORDING
- process_chording(keycode, record) &&
- #endif
#ifdef COMBO_ENABLE
process_combo(keycode, record) &&
#endif
diff --git a/quantum/quantum.h b/quantum/quantum.h
index d1f761f17a..7cf16d81e6 100644
--- a/quantum/quantum.h
+++ b/quantum/quantum.h
@@ -89,15 +89,10 @@ extern uint32_t default_layer_state;
#include "process_music.h"
#endif
-#ifndef DISABLE_LEADER
+#ifdef LEADER_ENABLE
#include "process_leader.h"
#endif
-#define DISABLE_CHORDING
-#ifndef DISABLE_CHORDING
- #include "process_chording.h"
-#endif
-
#ifdef UNICODE_ENABLE
#include "process_unicode.h"
#endif
diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h
index 0ecc293a82..3b87954960 100644
--- a/quantum/quantum_keycodes.h
+++ b/quantum/quantum_keycodes.h
@@ -63,10 +63,6 @@ enum quantum_keycodes {
QK_ONE_SHOT_LAYER_MAX = 0x54FF,
QK_ONE_SHOT_MOD = 0x5500,
QK_ONE_SHOT_MOD_MAX = 0x55FF,
-#ifndef DISABLE_CHORDING
- QK_CHORDING = 0x5600,
- QK_CHORDING_MAX = 0x56FF,
-#endif
QK_TAP_DANCE = 0x5700,
QK_TAP_DANCE_MAX = 0x57FF,
QK_LAYER_TAP_TOGGLE = 0x5800,
@@ -123,7 +119,7 @@ enum quantum_keycodes {
GRAVE_ESC,
// Leader key
-#ifndef DISABLE_LEADER
+#ifdef LEADER_ENABLE
KC_LEAD,
#endif
diff --git a/tmk_core/common/action.c b/tmk_core/common/action.c
index ae08647496..76d02bc9df 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -120,7 +120,7 @@ void process_hand_swap(keyevent_t *event) {
}
#endif
-#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
bool disable_action_cache = false;
void process_record_nocache(keyrecord_t *record)
diff --git a/tmk_core/common/action.h b/tmk_core/common/action.h
index acc55c7d38..0322c73ed1 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);
bool process_record_quantum(keyrecord_t *record);
/* Utilities for actions. */
-#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
extern bool disable_action_cache;
#endif
diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c
index f3cd381ab0..62375dfbfe 100644
--- a/tmk_core/common/action_layer.c
+++ b/tmk_core/common/action_layer.c
@@ -219,7 +219,7 @@ void layer_debug(void)
}
#endif
-#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {{0}};
void update_source_layers_cache(keypos_t key, uint8_t layer)
@@ -263,7 +263,7 @@ uint8_t read_source_layers_cache(keypos_t key)
*/
action_t store_or_get_action(bool pressed, keypos_t key)
{
-#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
if (disable_action_cache) {
return layer_switch_get_action(key);
}
diff --git a/tmk_core/common/action_layer.h b/tmk_core/common/action_layer.h
index 72a6bd8f68..7bf116be2d 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);
#endif
/* pressed actions cache */
-#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
/* The number of bits needed to represent the layer number: log2(32). */
#define MAX_LAYER_BITS 5
void 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 7c637d8d36..b158e2d5a2 100644
--- a/users/333fred/333fred_config.h
+++ b/users/333fred/333fred_config.h
@@ -1,4 +1,3 @@
#pragma once
-#define PREVENT_STUCK_MODIFIERS
#define PERMISSIVE_HOLD
diff --git a/users/bocaj/config.h b/users/bocaj/config.h
index ce5ec65d62..0e726598cd 100644
--- a/users/bocaj/config.h
+++ b/users/bocaj/config.h
@@ -10,7 +10,6 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
#ifdef TAPPING_TERM
#undef TAPPING_TERM
diff --git a/users/drashna/config.h b/users/drashna/config.h
index dd6875ceb1..92efcc5c74 100644
--- a/users/drashna/config.h
+++ b/users/drashna/config.h
@@ -43,7 +43,6 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
// #define TAPPING_FORCE_HOLD
//#define RETRO_TAPPING
@@ -64,8 +63,4 @@
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
-#define DISABLE_LEADER
-
#define MACRO_TIMER 5
-
-
diff --git a/users/ishtob/config.h b/users/ishtob/config.h
index 9c4a7ed8dd..1f567f4a5b 100755
--- a/users/ishtob/config.h
+++ b/users/ishtob/config.h
@@ -15,7 +15,6 @@
//#define LEADER_TIMEOUT 300
//#define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
//#define PERMISSIVE_HOLD
// #define QMK_KEYS_PER_SCAN 4
@@ -72,5 +71,5 @@
// Most tactile encoders have detents every 4 stages
#define ENCODER_RESOLUTION 4
-
+
#endif
diff --git a/users/replicaJunction/config.h b/users/replicaJunction/config.h
index f3556c87ed..4b58b579f8 100644
--- a/users/replicaJunction/config.h
+++ b/users/replicaJunction/config.h
@@ -6,12 +6,6 @@
// https://docs.qmk.fm/reference/config-options#features-that-can-be-enabled
////////////////////////////////////////////////////////////////////////////////
-// Prevent modifiers from sticking when switching layers
-// Uses 5 bytes of memory per 8 keys, but makes sure modifiers don't get "stuck" switching layers
-#define PREVENT_STUCK_MODIFIERS
-
-
-
////////////////////////////////////////////////////////////////////////////////
// Behaviors That Can Be Configured
// 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 15bbde6bcd..1cdbb5a412 100644
--- a/users/talljoe/config.h
+++ b/users/talljoe/config.h
@@ -1,7 +1,6 @@
#ifndef USERSPACE_CONFIG_H
#define USERSPACE_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
#define IGNORE_MOD_TAP_INTERRUPT
#define RESET_LAYER 15
diff --git a/users/wanleg/config.h b/users/wanleg/config.h
index 22073449b2..28e7690e65 100644
--- a/users/wanleg/config.h
+++ b/users/wanleg/config.h
@@ -1,8 +1,6 @@
#ifndef USERSPACE_CONFIG_H
#define USERSPACE_CONFIG_H
-#define PREVENT_STUCK_MODIFIERS
-
//TAPPING_TERM
#ifdef TAP_DANCE_ENABLE
#define TAPPING_TERM 200
diff --git a/users/zer09/config.h b/users/zer09/config.h
index 7668064622..4cb65c258f 100644
--- a/users/zer09/config.h
+++ b/users/zer09/config.h
@@ -11,7 +11,7 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-#undef PREVENT_STUCK_MODIFIERS
+#define STRICT_LAYER_RELEASE
#define FORCE_NKRO