summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common_features.mk11
-rw-r--r--docs/config_options.md4
-rw-r--r--docs/feature_leader_key.md8
-rw-r--r--docs/understanding_qmk.md2
-rw-r--r--keyboards/1upkeyboards/1up60rgb/config.h3
-rw-r--r--keyboards/1upkeyboards/sweet16/config.h7
-rw-r--r--keyboards/acr60/config.h3
-rw-r--r--keyboards/alf/x2/config.h5
-rwxr-xr-xkeyboards/alpha/config.h2
-rwxr-xr-xkeyboards/alu84/config.h3
-rw-r--r--keyboards/at101_blackheart/config.h3
-rw-r--r--keyboards/atreus/keymaps/jeremy/keymap.c2
-rw-r--r--keyboards/atreus/keymaps/khitsule/config.h4
-rw-r--r--keyboards/atreus/keymaps/xk/config.h3
-rw-r--r--keyboards/atreus62/keymaps/mneme/config.h1
-rw-r--r--keyboards/atreus62/keymaps/mneme/rules.mk1
-rw-r--r--keyboards/bfo9000/keymaps/andylikescandy6x18/config.h3
-rwxr-xr-xkeyboards/bigseries/1key/config.h3
-rwxr-xr-xkeyboards/bigseries/2key/config.h3
-rwxr-xr-xkeyboards/bigseries/3key/config.h3
-rwxr-xr-xkeyboards/bigseries/4key/config.h3
-rwxr-xr-xkeyboards/bigswitch/config.h2
-rw-r--r--keyboards/catch22/config.h3
-rw-r--r--keyboards/chimera_ergo/config.h2
-rw-r--r--keyboards/chimera_ls/config.h2
-rw-r--r--keyboards/chimera_ortho/config.h2
-rw-r--r--keyboards/chocopad/config.h6
-rw-r--r--keyboards/clueboard/60/config.h3
-rw-r--r--keyboards/clueboard/66/keymaps/bloodlvst/config.h1
-rw-r--r--keyboards/comet46/config.h2
-rwxr-xr-xkeyboards/contra/config.h4
-rw-r--r--keyboards/contra/keymaps/ryanm101/config.h5
-rwxr-xr-xkeyboards/crawlpad/config.h3
-rw-r--r--keyboards/crkbd/keymaps/default/config.h1
-rw-r--r--keyboards/dichotemy/config.h2
-rw-r--r--keyboards/dilly/config.h6
-rw-r--r--keyboards/dz60/config.h3
-rw-r--r--keyboards/dz60/keymaps/LEdiodes/config.h3
-rw-r--r--keyboards/ergodone/config.h2
-rw-r--r--keyboards/ergodox_ez/config.h2
-rw-r--r--keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk3
-rw-r--r--keyboards/ergodox_ez/keymaps/vim/vim.h1
-rw-r--r--keyboards/ergodox_infinity/keymaps/gordon/config.h2
-rw-r--r--keyboards/ergodox_infinity/keymaps/narze/config.h1
-rw-r--r--keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk3
-rw-r--r--keyboards/ergoinu/config.h2
-rw-r--r--keyboards/ergotravel/keymaps/ckofy/config.h3
-rw-r--r--keyboards/felix/config.h4
-rw-r--r--keyboards/four_banger/config.h5
-rw-r--r--keyboards/fourier/keymaps/jennetters/config.h5
-rwxr-xr-xkeyboards/fractal/config.h4
-rw-r--r--keyboards/frosty_flake/keymaps/nikchi/rules.mk3
-rw-r--r--keyboards/gh80_3000/config.h6
-rw-r--r--keyboards/gherkin/config.h6
-rw-r--r--keyboards/gherkin/keymaps/talljoe_gherkin/config.h4
-rw-r--r--keyboards/gonnerd/keymaps/gam3cat/config.h1
-rw-r--r--keyboards/hadron/keymaps/default/config.h1
-rw-r--r--keyboards/hadron/keymaps/side_numpad/config.h1
-rw-r--r--keyboards/handwired/MS_sculpt_mobile/config.h8
-rw-r--r--keyboards/handwired/atreus50/keymaps/ajp10304/config.h2
-rw-r--r--keyboards/handwired/dactyl/config.h2
-rw-r--r--keyboards/handwired/kbod/config.h4
-rw-r--r--keyboards/handwired/promethium/keymaps/default/config.h2
-rw-r--r--keyboards/handwired/promethium/keymaps/priyadi/config.h2
-rw-r--r--keyboards/handwired/space_oddity/config.h4
-rw-r--r--keyboards/helix/pico/config.h1
-rw-r--r--keyboards/helix/rev1/keymaps/OLED_sample/config.h3
-rw-r--r--keyboards/helix/rev2/config.h1
-rw-r--r--keyboards/hhkb/keymaps/blakedietz/rules.mk1
-rw-r--r--keyboards/infinity60/config.h2
-rw-r--r--keyboards/iris/keymaps/davidrambo/config.h1
-rw-r--r--keyboards/iris/keymaps/jennetters/config.h5
-rw-r--r--keyboards/iris/keymaps/krusli/config.h2
-rw-r--r--keyboards/iris/keymaps/xyverz/config.h2
-rw-r--r--keyboards/jc65/v32u4/keymaps/gam3cat/config.h1
-rw-r--r--keyboards/jj40/keymaps/ajp10304/config.h8
-rw-r--r--keyboards/jj40/keymaps/fun40/config.h1
-rw-r--r--keyboards/jj40/keymaps/krusli/config.h1
-rw-r--r--keyboards/jj40/keymaps/oscillope/config.h1
-rw-r--r--keyboards/jj40/keymaps/suzuken/config.h1
-rw-r--r--keyboards/jj40/keymaps/waples/config.h1
-rw-r--r--keyboards/jm60/config.h2
-rw-r--r--keyboards/k_type/config.h2
-rw-r--r--keyboards/katana60/config.h3
-rw-r--r--keyboards/kbd75/config.h3
-rw-r--r--keyboards/kinesis/keymaps/insertsnideremarks/config.h1
-rw-r--r--keyboards/lets_split/keymaps/OLED_sample/config.h2
-rw-r--r--keyboards/lets_split/keymaps/adam/config.h1
-rw-r--r--keyboards/lets_split/keymaps/khord/config.h3
-rw-r--r--keyboards/lets_split/keymaps/piemod/config.h1
-rw-r--r--keyboards/lets_split/keymaps/waples/config.h2
-rw-r--r--keyboards/lets_split/keymaps/xk/config.h1
-rw-r--r--keyboards/m10a/keymaps/gam3cat/config.h2
-rwxr-xr-xkeyboards/mechmini/v2/config.h3
-rw-r--r--keyboards/melody96/config.h3
-rw-r--r--keyboards/minidox/keymaps/alairock/config.h1
-rw-r--r--keyboards/minidox/keymaps/khitsule/config.h4
-rw-r--r--keyboards/mint60/config.h1
-rw-r--r--keyboards/mitosis/config.h2
-rw-r--r--keyboards/niu_mini/config.h3
-rwxr-xr-xkeyboards/novelpad/config.h3
-rw-r--r--keyboards/noxary/268/config.h5
-rw-r--r--keyboards/ok60/config.h3
-rw-r--r--keyboards/omnikey_blackheart/config.h6
-rwxr-xr-xkeyboards/paladin64/config.h2
-rw-r--r--keyboards/pegasushoof/keymaps/citadel/config.h3
-rw-r--r--keyboards/planck/keymaps/ajp10304/config.h8
-rw-r--r--keyboards/planck/keymaps/altgr/config.h3
-rw-r--r--keyboards/planck/keymaps/am/config.h3
-rw-r--r--keyboards/planck/keymaps/andylikescandy/config.h3
-rw-r--r--keyboards/planck/keymaps/bone2planck/config.h8
-rw-r--r--keyboards/planck/keymaps/davidrambo/config.h5
-rw-r--r--keyboards/planck/keymaps/dshields/config.h1
-rw-r--r--keyboards/planck/keymaps/espynn/keymap.c1
-rw-r--r--keyboards/planck/keymaps/experimental/config.h2
-rw-r--r--keyboards/planck/keymaps/experimental/rules.mk3
-rw-r--r--keyboards/planck/keymaps/hiea/config.h3
-rw-r--r--keyboards/planck/keymaps/hieax/config.h3
-rwxr-xr-xkeyboards/planck/keymaps/ishtob/config.h2
-rw-r--r--keyboards/planck/keymaps/jarred/config.h4
-rw-r--r--keyboards/planck/keymaps/jeremy-dev/keymap.c1
-rw-r--r--keyboards/planck/keymaps/kmontag42/rules.mk1
-rw-r--r--keyboards/planck/keymaps/lae3/config.h8
-rw-r--r--keyboards/planck/keymaps/mitch/config.h3
-rw-r--r--keyboards/planck/keymaps/mitch/readme.md4
-rw-r--r--keyboards/planck/keymaps/narze/config.h3
-rw-r--r--keyboards/planck/keymaps/neo2planck/config.h8
-rw-r--r--keyboards/planck/keymaps/priyadi/config.h2
-rw-r--r--keyboards/planck/keymaps/sdothum/config.h3
-rw-r--r--keyboards/planck/keymaps/steno/config.h4
-rw-r--r--keyboards/planck/keymaps/tehwalris/config.h4
-rw-r--r--keyboards/planck/keymaps/vifon/config.h3
-rw-r--r--keyboards/planck/keymaps/yale/config.h11
-rw-r--r--keyboards/planck/keymaps/zach/config.h1
-rw-r--r--keyboards/planck/rev6/config.h3
-rw-r--r--keyboards/playkbtw/ca66/config.h2
-rw-r--r--keyboards/playkbtw/pk60/config.h5
-rw-r--r--keyboards/preonic/keymaps/bucktooth/config.h1
-rw-r--r--keyboards/preonic/keymaps/jacwib/config.h1
-rw-r--r--keyboards/preonic/keymaps/kuatsure/rules.mk1
-rw-r--r--keyboards/preonic/keymaps/that_canadian/config.h8
-rw-r--r--keyboards/preonic/keymaps/zach/config.h1
-rw-r--r--keyboards/preonic/rev3/config.h3
-rw-r--r--keyboards/prime_r/config.h4
-rw-r--r--keyboards/rorschach/keymaps/insertsnideremarks/config.h1
-rw-r--r--keyboards/s60_x/keymaps/bluebear/config.h3
-rw-r--r--keyboards/s60_x/rgb/config.h5
-rw-r--r--keyboards/s65_plus/config.h3
-rw-r--r--keyboards/s65_x/config.h4
-rwxr-xr-xkeyboards/sx60/config.h4
-rw-r--r--keyboards/telophase/config.h2
-rw-r--r--keyboards/tetris/config.h5
-rw-r--r--keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h1
-rw-r--r--keyboards/tokyo60/config.h3
-rw-r--r--keyboards/tomato/config.h3
-rw-r--r--keyboards/uk78/config.h3
-rw-r--r--keyboards/viterbi/keymaps/drashna/config.h2
-rw-r--r--keyboards/whitefox/config.h2
-rw-r--r--keyboards/xd60/keymaps/kmontag42/rules.mk1
-rw-r--r--keyboards/xd75/keymaps/davidrambo/config.h3
-rw-r--r--keyboards/xd75/keymaps/tdl-jturner/config.h1
-rw-r--r--keyboards/xmmx/config.h6
-rw-r--r--keyboards/ymd96/keymaps/hgoel89/config.h1
-rw-r--r--keyboards/z150_blackheart/config.h6
-rw-r--r--keyboards/zeal60/keymaps/tusing/config.h4
-rwxr-xr-xkeyboards/zlant/config.h3
-rw-r--r--layouts/community/60_ansi/talljoe-ansi/config.h1
-rw-r--r--layouts/community/60_ansi_split_bs_rshift/talljoe/config.h1
-rw-r--r--layouts/community/60_hhkb/talljoe-hhkb/config.h1
-rw-r--r--layouts/community/ergodox/adam/config.h1
-rw-r--r--layouts/community/ergodox/albert/rules.mk3
-rw-r--r--layouts/community/ergodox/algernon/rules.mk1
-rw-r--r--layouts/community/ergodox/alphadox/config.h1
-rw-r--r--layouts/community/ergodox/deadcyclo/rules.mk1
-rw-r--r--layouts/community/ergodox/erez_experimental/rules.mk3
-rw-r--r--layouts/community/ergodox/familiar/rules.mk1
-rw-r--r--layouts/community/ergodox/mclennon_osx/README.md4
-rw-r--r--layouts/community/ergodox/techtomas/readme.md2
-rw-r--r--layouts/community/ortho_4x12/symbolic/config.h4
-rw-r--r--layouts/community/tkl_ansi/talljoe-tkl/config.h1
-rw-r--r--quantum/process_keycode/process_chording.c76
-rw-r--r--quantum/process_keycode/process_chording.h32
-rw-r--r--quantum/process_keycode/process_leader.c2
-rw-r--r--quantum/quantum.c7
-rw-r--r--quantum/quantum.h7
-rw-r--r--quantum/quantum_keycodes.h6
-rw-r--r--tmk_core/common/action.c2
-rw-r--r--tmk_core/common/action.h2
-rw-r--r--tmk_core/common/action_layer.c4
-rw-r--r--tmk_core/common/action_layer.h2
-rw-r--r--users/333fred/333fred_config.h1
-rw-r--r--users/bocaj/config.h1
-rw-r--r--users/drashna/config.h5
-rwxr-xr-xusers/ishtob/config.h3
-rw-r--r--users/replicaJunction/config.h6
-rw-r--r--users/talljoe/config.h1
-rw-r--r--users/wanleg/config.h2
-rw-r--r--users/zer09/config.h2
198 files changed, 91 insertions, 599 deletions
diff --git a/common_features.mk b/common_features.mk
index c637582d4..7af778980 100644
--- a/common_features.mk
+++ b/common_features.mk
@@ -221,7 +221,6 @@ ifeq ($(strip $(USB_HID_ENABLE)), yes)
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 eaaa59872..072857727 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -119,8 +119,8 @@ If you define these options you will enable the associated feature, which may in
* `#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 46633b287..0c3f4a133 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 bf695d008..35596cc69 100644
--- a/docs/understanding_qmk.md
+++ b/docs/understanding_qmk.md
@@ -129,6 +129,7 @@ Comparing against our keymap we can see that the pressed key is KC_NLCK. From he
<!-- 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 bfdf354af..ee49211b4 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 77d9e276d..20d99651d 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 c44ba737e..3066f349d 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 31212ce33..f2106fa88 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 029527563..1e16f5ca3 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 9e013dbcc..9d2dca409 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 6a809a02f..237cb095e 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 42bef9d80..890980f41 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 19714ec7d..c74909a9f 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 2f8110167..a8b9c8805 100644
--- a/keyboards/atreus/keymaps/xk/config.h
+++ b/keyboards/atreus/keymaps/xk/config.h
@@ -30,8 +30,7 @@ the Free Software Foundation, either version 2 of the License, or
#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 73eb0fa33..a89bf5503 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 046aec273..160ce6edb 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 9d124a98e..be57e385e 100644
--- a/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
+++ b/keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
@@ -37,7 +37,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define PERMISSIVE_HOLD
- #define PREVENT_STUCK_MODIFIERS
-
-
#endif
diff --git a/keyboards/bigseries/1key/config.h b/keyboards/bigseries/1key/config.h
index 4e30276fc..966f2062c 100755
--- a/keyboards/bigseries/1key/config.h
+++ b/keyboards/bigseries/1key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 83c8e3141..79b9ed378 100755
--- a/keyboards/bigseries/2key/config.h
+++ b/keyboards/bigseries/2key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 e10b14db4..9963a8219 100755
--- a/keyboards/bigseries/3key/config.h
+++ b/keyboards/bigseries/3key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 3ebcfe091..a222512d3 100755
--- a/keyboards/bigseries/4key/config.h
+++ b/keyboards/bigseries/4key/config.h
@@ -47,9 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 cc290fd79..a0ef6b555 100755
--- a/keyboards/bigswitch/config.h
+++ b/keyboards/bigswitch/config.h
@@ -47,8 +47,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 cb7ca7d84..f151e7048 100644
--- a/keyboards/catch22/config.h
+++ b/keyboards/catch22/config.h
@@ -46,9 +46,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 86ee23718..8ce195cc0 100644
--- a/keyboards/chimera_ergo/config.h
+++ b/keyboards/chimera_ergo/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 d92878026..254dad306 100644
--- a/keyboards/chimera_ls/config.h
+++ b/keyboards/chimera_ls/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 44c6212b1..4bf85eb88 100644
--- a/keyboards/chimera_ortho/config.h
+++ b/keyboards/chimera_ortho/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 bf861ccda..2163ff8bc 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 5c5a86296..a862d2cda 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 320401dbd..456936cf9 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 90d923f90..2421f5341 100644
--- a/keyboards/comet46/config.h
+++ b/keyboards/comet46/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 85077ed46..c6bb374da 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 9a458b892..224a4a37d 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 a07c79cd2..c72be83f2 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 8d25f7cbc..c573530f7 100644
--- a/keyboards/crkbd/keymaps/default/config.h
+++ b/keyboards/crkbd/keymaps/default/config.h
@@ -36,7 +36,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 b3bd6d942..1d92cf74e 100644
--- a/keyboards/dichotemy/config.h
+++ b/keyboards/dichotemy/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 97a6e533b..d9ca4597c 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 8e1a5ae5f..e58eae085 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 bb78d9bb6..4f991b9ca 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 1feff26aa..2c764d782 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 07a9b5497..7a350183b 100644
--- a/keyboards/ergodox_ez/config.h
+++ b/keyboards/ergodox_ez/config.h
@@ -97,8 +97,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#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 38112a906..db5e5d155 100644
--- a/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
+++ b/keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
@@ -13,6 +13,7 @@ AUTOLOG_ENABLE = no
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 e9b682fd3..7565c6e3e 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 88d495b12..772ce0bac 100644
--- a/keyboards/ergodox_infinity/keymaps/gordon/config.h
+++ b/keyboards/ergodox_infinity/keymaps/gordon/config.h
@@ -15,8 +15,6 @@ You should have received a copy of the GNU General Public License
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 8174edd35..551327a12 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 75624bb8c..74505bd69 100644
--- a/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
+++ b/keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
@@ -1,2 +1,3 @@
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 4b7c58400..de72635b1 100644
--- a/keyboards/ergoinu/config.h
+++ b/keyboards/ergoinu/config.h
@@ -31,8 +31,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 caae080d7..41ec06657 100644
--- a/keyboards/ergotravel/keymaps/ckofy/config.h
+++ b/keyboards/ergotravel/keymaps/ckofy/config.h
@@ -33,9 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 f70089af4..003fe87dc 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 96011cbdf..8dceff5db 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 87cda7b5c..5f99c65ad 100644
--- a/keyboards/fourier/keymaps/jennetters/config.h
+++ b/keyboards/fourier/keymaps/jennetters/config.h
@@ -22,10 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 30b703b6e..1a5901f98 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 ad86e82d2..b21eb6404 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 83d30129a..ca72aba5a 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 4607962d7..34f38e35c 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 3e9e692d3..7fa3bf328 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 a3819d3a5..d86da86e4 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 0f349ad93..09922b61b 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 0f349ad93..09922b61b 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 f89514278..c3bdf333e 100644
--- a/keyboards/handwired/MS_sculpt_mobile/config.h
+++ b/keyboards/handwired/MS_sculpt_mobile/config.h
@@ -28,10 +28,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 6916d1a7d..f5e6bbabe 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 a990cc720..08931ecd3 100644
--- a/keyboards/handwired/dactyl/config.h
+++ b/keyboards/handwired/dactyl/config.h
@@ -63,8 +63,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* 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 f3d0c8bf2..a3f3e3908 100644
--- a/keyboards/handwired/kbod/config.h
+++ b/keyboards/handwired/kbod/config.h
@@ -48,7 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* 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 fa86e2247..2064f3676 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 fa86e2247..2064f3676 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 9c9361ced..46d854099 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 b49f0173b..41edfcbc2 100644
--- a/keyboards/helix/pico/config.h
+++ b/keyboards/helix/pico/config.h
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 0e1b787a5..5e8989d96 100644
--- a/keyboards/helix/rev1/keymaps/OLED_sample/config.h
+++ b/keyboards/helix/rev1/keymaps/OLED_sample/config.h
@@ -35,7 +35,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 058236122..b354d312d 100644
--- a/keyboards/helix/rev2/config.h
+++ b/keyboards/helix/rev2/config.h
@@ -28,7 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 7c16b2c98..7d97e7a52 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 8306c8f7e..c1e9ec5b1 100644
--- a/keyboards/infinity60/config.h
+++ b/keyboards/infinity60/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 01e078e32..2cdff4213 100644
--- a/keyboards/iris/keymaps/davidrambo/config.h
+++ b/keyboards/iris/keymaps/davidrambo/config.h
@@ -27,7 +27,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* 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 a3c0634f5..42f91bd02 100644
--- a/keyboards/iris/keymaps/jennetters/config.h
+++ b/keyboards/iris/keymaps/jennetters/config.h
@@ -19,9 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 a53c746ad..72e35c472 100644
--- a/keyboards/iris/keymaps/krusli/config.h
+++ b/keyboards/iris/keymaps/krusli/config.h
@@ -20,8 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 0c61a8eac..b820a0753 100644
--- a/keyboards/iris/keymaps/xyverz/config.h
+++ b/keyboards/iris/keymaps/xyverz/config.h
@@ -23,8 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 a3819d3a5..d86da86e4 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 11cafbefc..000000000
--- 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 89807d84a..f2b5d264e 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 6d98a37a6..e710dbbb6 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 d7f991fa9..e812903de 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 52aaa8f24..b1d74e1e6 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 52aaa8f24..b1d74e1e6 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 847cf2078..cb5c90bb1 100644
--- a/keyboards/jm60/config.h
+++ b/keyboards/jm60/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 d19e0ff64..4937d9ad9 100644
--- a/keyboards/k_type/config.h
+++ b/keyboards/k_type/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 169cffb42..aaf2b5d54 100644
--- a/keyboards/katana60/config.h
+++ b/keyboards/katana60/config.h
@@ -48,7 +48,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* 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 f76d9082f..726afcaf6 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 3548fa348..9ce094be5 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 e8632fe61..6aa909d28 100644
--- a/keyboards/lets_split/keymaps/OLED_sample/config.h
+++ b/keyboards/lets_split/keymaps/OLED_sample/config.h
@@ -38,8 +38,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 ff29eb1bd..59a2e5db7 100644
--- a/keyboards/lets_split/keymaps/adam/config.h
+++ b/keyboards/lets_split/keymaps/adam/config.h
@@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 4ebdbad76..71ec20dbc 100644
--- a/keyboards/lets_split/keymaps/khord/config.h
+++ b/keyboards/lets_split/keymaps/khord/config.h
@@ -25,9 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 001b62e41..1b3fd7544 100644
--- a/keyboards/lets_split/keymaps/piemod/config.h
+++ b/keyboards/lets_split/keymaps/piemod/config.h
@@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 98ebeff45..5221fd011 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 c75ed12cc..a5cd51857 100644
--- a/keyboards/lets_split/keymaps/xk/config.h
+++ b/keyboards/lets_split/keymaps/xk/config.h
@@ -37,7 +37,6 @@ the Free Software Foundation, either version 2 of the License, or
#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 73bc50bc2..000000000
--- 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 58c751e0f..e0922bb7e 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 6083dcf75..67123a7e5 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 445606031..3649fdd12 100644
--- a/keyboards/minidox/keymaps/alairock/config.h
+++ b/keyboards/minidox/keymaps/alairock/config.h
@@ -36,5 +36,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 702354864..645e80ee8 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 37b69e93a..51c586e63 100644
--- a/keyboards/mint60/config.h
+++ b/keyboards/mint60/config.h
@@ -29,7 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 6101ee123..5cfd2e4b1 100644
--- a/keyboards/mitosis/config.h
+++ b/keyboards/mitosis/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 2f2230616..b9d3ed4e9 100644
--- a/keyboards/niu_mini/config.h
+++ b/keyboards/niu_mini/config.h
@@ -64,9 +64,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 0d6a71343..3a47c0eb6 100755
--- a/keyboards/novelpad/config.h
+++ b/keyboards/novelpad/config.h
@@ -53,9 +53,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 b2cb95e95..7eec79a1b 100644
--- a/keyboards/noxary/268/config.h
+++ b/keyboards/noxary/268/config.h
@@ -60,9 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 61c2fa0ed..db7b74e58 100644
--- a/keyboards/ok60/config.h
+++ b/keyboards/ok60/config.h
@@ -71,9 +71,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 14b4a5f17..94412cfa6 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 27f54bf16..a5280f4d4 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 e8eafe2e1..2d27ff392 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 11cafbefc..000000000
--- 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 d55258c02..e517a8b24 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 b2b87045b..1ae457e3b 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 0de5f3db0..01169db2a 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 3e9e692d3..000000000
--- 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 c3bebf579..2decb3dc8 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 480ba453a..9ba854ef0 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 9cf508af6..5615a78bf 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 0864b5fbc..86cc4760b 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 b135dfca0..168d3cb9f 100644
--- a/keyboards/planck/keymaps/experimental/rules.mk
+++ b/keyboards/planck/keymaps/experimental/rules.mk
@@ -18,10 +18,11 @@ BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
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 9bb5e0873..655cdf5db 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 9bb5e0873..655cdf5db 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 e58ade0b0..688607634 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 f98b8935e..9e8f404c1 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 5aea44329..89b7e6b84 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 b9f73934a..0c100076b 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 a28634e69..000000000
--- 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 10591b3c8..bb7989d90 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 3869304f4..9ed1133ef 100644
--- a/keyboards/planck/keymaps/mitch/readme.md
+++ b/keyboards/planck/keymaps/mitch/readme.md
@@ -20,7 +20,3 @@ rest of the symbols, mostly mapped with the ten key numbers.
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 e081a93b5..19d784b2b 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 3e9e692d3..000000000
--- 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 448ae3b90..876d057bf 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 4b2cdeece..8bed79e6f 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 1879ab007..4f99c7eb8 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 4725e1426..c5d55b969 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 4cb4a1235..be395faad 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 8a916bbd0..000000000
--- 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 19a3856a3..dc79bad06 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 0e462180b..afd69f7d8 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 c35718042..53bbe95e3 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 06101349c..601e3c8a5 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 b98883120..23e9e0ed2 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 b98883120..23e9e0ed2 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 76d73acef..9369f99a9 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 11cafbefc..000000000
--- 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 bb8913c7a..40a083da3 100644
--- a/keyboards/preonic/keymaps/zach/config.h
+++ b/keyboards/preonic/keymaps/zach/config.h
@@ -87,7 +87,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#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 3f57c591a..98899dc6a 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 b53f14905..ad92199a2 100644
--- a/keyboards/prime_r/config.h
+++ b/keyboards/prime_r/config.h
@@ -60,10 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 90fb5120d..2048232c9 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 35754b523..10bddf0d3 100644
--- a/keyboards/s60_x/keymaps/bluebear/config.h
+++ b/keyboards/s60_x/keymaps/bluebear/config.h
@@ -105,7 +105,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// 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 ec8b0f49e..d9c26658d 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 df60e60a8..60512db46 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 8288ef783..367efc526 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 f22fbe8be..52a1cc7a1 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 09655c025..be0a36977 100644
--- a/keyboards/telophase/config.h
+++ b/keyboards/telophase/config.h
@@ -52,8 +52,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* 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 9c7f525a7..7e7dac7cf 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 bb2aadfa6..fc9bd3d61 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 6e6ab2215..16927be17 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 f33c13108..185cb326c 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 35f5bf70b..34d672079 100644
--- a/keyboards/uk78/config.h
+++ b/keyboards/uk78/config.h
@@ -60,9 +60,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
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 687f80441..a1e361e34 100644
--- a/keyboards/viterbi/keymaps/drashna/config.h
+++ b/keyboards/viterbi/keymaps/drashna/config.h
@@ -53,7 +53,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 9f021fb51..a8047cf54 100644
--- a/keyboards/whitefox/config.h
+++ b/keyboards/whitefox/config.h
@@ -18,8 +18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 000000000..d0d2ef6d5
--- /dev/null
+++ b/keyboards/xd60/keymaps/kmontag42/rules.mk
@@ -0,0 +1 @@
+LEADER_ENABLE = yes
diff --git a/keyboards/xd75/keymaps/davidrambo/config.h b/keyboards/xd75/keymaps/davidrambo/config.h
index e87ccde79..f21914703 100644
--- a/keyboards/xd75/keymaps/davidrambo/config.h
+++ b/keyboards/xd75/keymaps/davidrambo/config.h
@@ -20,7 +20,6 @@
#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 561a48d7e..985247bb2 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 f3f893e28..8cb2cf82d 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 52aaa8f24..b1d74e1e6 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 d2fce9aee..362153652 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 93f260946..64aaece50 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 456d225aa..ae9dcfef6 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 1990b0ee3..4326a2fd1 100644
--- a/layouts/community/60_ansi/talljoe-ansi/config.h
+++ b/layouts/community/60_ansi/talljoe-ansi/config.h
@@ -3,7 +3,6 @@
#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 81ab5cf89..bf18fd9f7 100644
--- a/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
+++ b/layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
@@ -3,7 +3,6 @@
#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 938ea6cd6..9e907feeb 100644
--- a/layouts/community/60_hhkb/talljoe-hhkb/config.h
+++ b/layouts/community/60_hhkb/talljoe-hhkb/config.h
@@ -3,7 +3,6 @@
#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 21af8c6b8..1a8fddb50 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 fcd019e83..47549b50f 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 f795a8676..53dec5153 100644
--- a/layouts/community/ergodox/algernon/rules.mk
+++ b/layouts/community/ergodox/algernon/rules.mk
@@ -8,6 +8,7 @@ TAP_DANCE_ENABLE = yes
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 6fc64f508..9e076dead 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 039f07c8e..f5093529b 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 839dd82e1..f68b56f87 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 31e0fcf29..4a3c58621 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 28cdb7c10..53b3d4841 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 36e0591a8..3d1bcb9e1 100644
--- a/layouts/community/ergodox/techtomas/readme.md
+++ b/layouts/community/ergodox/techtomas/readme.md
@@ -39,7 +39,7 @@ The right arrow key and End key toggle the control layer on the left board. Ther
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 702c9226c..c29b07706 100644
--- a/layouts/community/ortho_4x12/symbolic/config.h
+++ b/layouts/community/ortho_4x12/symbolic/config.h
@@ -20,10 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#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 8b27d4136..02f8a94e3 100644
--- a/layouts/community/tkl_ansi/talljoe-tkl/config.h
+++ b/layouts/community/tkl_ansi/talljoe-tkl/config.h
@@ -3,7 +3,6 @@
#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 6c6ebe300..000000000
--- 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 8c0f4862a..000000000
--- 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 c87ef115a..eddbf71f7 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 9d352a94c..9bf91eb86 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 d1f761f17..7cf16d81e 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 0ecc293a8..3b8795496 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 ae0864749..76d02bc9d 100644
--- a/tmk_core/common/action.c
+++ b/tmk_core/common/action.c
@@ -120,7 +120,7 @@ void process_hand_swap(keyevent_t *event) {
}
#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 acc55c7d3..0322c73ed 100644
--- a/tmk_core/common/action.h
+++ b/tmk_core/common/action.h
@@ -62,7 +62,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);
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 f3cd381ab..62375dfbf 100644
--- a/tmk_core/common/action_layer.c
+++ b/tmk_core/common/action_layer.c
@@ -219,7 +219,7 @@ void layer_debug(void)
}
#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 72a6bd8f6..7bf116be2 100644
--- a/tmk_core/common/action_layer.h
+++ b/tmk_core/common/action_layer.h
@@ -88,7 +88,7 @@ uint32_t layer_state_set_kb(uint32_t state);
#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 7c637d8d3..b158e2d5a 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 ce5ec65d6..0e726598c 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 dd6875ceb..92efcc5c7 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 9c4a7ed8d..1f567f4a5 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 f3556c87e..4b58b579f 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 15bbde6bc..1cdbb5a41 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 22073449b..28e7690e6 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 766806462..4cb65c258 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