Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 0.6.120
authorJoe Wasson <jwasson+github@gmail.com>
Mon, 17 Sep 2018 17:48:02 +0000 (10:48 -0700)
committerJack Humbert <jack.humb@gmail.com>
Mon, 17 Sep 2018 17:48:02 +0000 (13:48 -0400)
* Remove chording as it is not documented, not used, and needs work.

* Make Leader Key an optional feature.

* Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE`

* Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.

198 files changed:
common_features.mk
docs/config_options.md
docs/feature_leader_key.md
docs/understanding_qmk.md
keyboards/1upkeyboards/1up60rgb/config.h
keyboards/1upkeyboards/sweet16/config.h
keyboards/acr60/config.h
keyboards/alf/x2/config.h
keyboards/alpha/config.h
keyboards/alu84/config.h
keyboards/at101_blackheart/config.h
keyboards/atreus/keymaps/jeremy/keymap.c
keyboards/atreus/keymaps/khitsule/config.h
keyboards/atreus/keymaps/xk/config.h
keyboards/atreus62/keymaps/mneme/config.h
keyboards/atreus62/keymaps/mneme/rules.mk
keyboards/bfo9000/keymaps/andylikescandy6x18/config.h
keyboards/bigseries/1key/config.h
keyboards/bigseries/2key/config.h
keyboards/bigseries/3key/config.h
keyboards/bigseries/4key/config.h
keyboards/bigswitch/config.h
keyboards/catch22/config.h
keyboards/chimera_ergo/config.h
keyboards/chimera_ls/config.h
keyboards/chimera_ortho/config.h
keyboards/chocopad/config.h
keyboards/clueboard/60/config.h
keyboards/clueboard/66/keymaps/bloodlvst/config.h
keyboards/comet46/config.h
keyboards/contra/config.h
keyboards/contra/keymaps/ryanm101/config.h
keyboards/crawlpad/config.h
keyboards/crkbd/keymaps/default/config.h
keyboards/dichotemy/config.h
keyboards/dilly/config.h
keyboards/dz60/config.h
keyboards/dz60/keymaps/LEdiodes/config.h
keyboards/ergodone/config.h
keyboards/ergodox_ez/config.h
keyboards/ergodox_ez/keymaps/heartrobotninja/rules.mk
keyboards/ergodox_ez/keymaps/vim/vim.h
keyboards/ergodox_infinity/keymaps/gordon/config.h
keyboards/ergodox_infinity/keymaps/narze/config.h
keyboards/ergodox_infinity/keymaps/not-quite-neo/rules.mk
keyboards/ergoinu/config.h
keyboards/ergotravel/keymaps/ckofy/config.h
keyboards/felix/config.h
keyboards/four_banger/config.h
keyboards/fourier/keymaps/jennetters/config.h
keyboards/fractal/config.h
keyboards/frosty_flake/keymaps/nikchi/rules.mk
keyboards/gh80_3000/config.h
keyboards/gherkin/config.h
keyboards/gherkin/keymaps/talljoe_gherkin/config.h
keyboards/gonnerd/keymaps/gam3cat/config.h
keyboards/hadron/keymaps/default/config.h
keyboards/hadron/keymaps/side_numpad/config.h
keyboards/handwired/MS_sculpt_mobile/config.h
keyboards/handwired/atreus50/keymaps/ajp10304/config.h
keyboards/handwired/dactyl/config.h
keyboards/handwired/kbod/config.h
keyboards/handwired/promethium/keymaps/default/config.h
keyboards/handwired/promethium/keymaps/priyadi/config.h
keyboards/handwired/space_oddity/config.h
keyboards/helix/pico/config.h
keyboards/helix/rev1/keymaps/OLED_sample/config.h
keyboards/helix/rev2/config.h
keyboards/hhkb/keymaps/blakedietz/rules.mk
keyboards/infinity60/config.h
keyboards/iris/keymaps/davidrambo/config.h
keyboards/iris/keymaps/jennetters/config.h
keyboards/iris/keymaps/krusli/config.h
keyboards/iris/keymaps/xyverz/config.h
keyboards/jc65/v32u4/keymaps/gam3cat/config.h
keyboards/jj40/keymaps/ajp10304/config.h [deleted file]
keyboards/jj40/keymaps/fun40/config.h
keyboards/jj40/keymaps/krusli/config.h
keyboards/jj40/keymaps/oscillope/config.h
keyboards/jj40/keymaps/suzuken/config.h
keyboards/jj40/keymaps/waples/config.h
keyboards/jm60/config.h
keyboards/k_type/config.h
keyboards/katana60/config.h
keyboards/kbd75/config.h
keyboards/kinesis/keymaps/insertsnideremarks/config.h
keyboards/lets_split/keymaps/OLED_sample/config.h
keyboards/lets_split/keymaps/adam/config.h
keyboards/lets_split/keymaps/khord/config.h
keyboards/lets_split/keymaps/piemod/config.h
keyboards/lets_split/keymaps/waples/config.h
keyboards/lets_split/keymaps/xk/config.h
keyboards/m10a/keymaps/gam3cat/config.h [deleted file]
keyboards/mechmini/v2/config.h
keyboards/melody96/config.h
keyboards/minidox/keymaps/alairock/config.h
keyboards/minidox/keymaps/khitsule/config.h
keyboards/mint60/config.h
keyboards/mitosis/config.h
keyboards/niu_mini/config.h
keyboards/novelpad/config.h
keyboards/noxary/268/config.h
keyboards/ok60/config.h
keyboards/omnikey_blackheart/config.h
keyboards/paladin64/config.h
keyboards/pegasushoof/keymaps/citadel/config.h
keyboards/planck/keymaps/ajp10304/config.h [deleted file]
keyboards/planck/keymaps/altgr/config.h
keyboards/planck/keymaps/am/config.h
keyboards/planck/keymaps/andylikescandy/config.h
keyboards/planck/keymaps/bone2planck/config.h [deleted file]
keyboards/planck/keymaps/davidrambo/config.h
keyboards/planck/keymaps/dshields/config.h
keyboards/planck/keymaps/espynn/keymap.c
keyboards/planck/keymaps/experimental/config.h
keyboards/planck/keymaps/experimental/rules.mk
keyboards/planck/keymaps/hiea/config.h
keyboards/planck/keymaps/hieax/config.h
keyboards/planck/keymaps/ishtob/config.h
keyboards/planck/keymaps/jarred/config.h
keyboards/planck/keymaps/jeremy-dev/keymap.c
keyboards/planck/keymaps/kmontag42/rules.mk
keyboards/planck/keymaps/lae3/config.h [deleted file]
keyboards/planck/keymaps/mitch/config.h
keyboards/planck/keymaps/mitch/readme.md
keyboards/planck/keymaps/narze/config.h
keyboards/planck/keymaps/neo2planck/config.h [deleted file]
keyboards/planck/keymaps/priyadi/config.h
keyboards/planck/keymaps/sdothum/config.h
keyboards/planck/keymaps/steno/config.h
keyboards/planck/keymaps/tehwalris/config.h
keyboards/planck/keymaps/vifon/config.h
keyboards/planck/keymaps/yale/config.h [deleted file]
keyboards/planck/keymaps/zach/config.h
keyboards/planck/rev6/config.h
keyboards/playkbtw/ca66/config.h
keyboards/playkbtw/pk60/config.h
keyboards/preonic/keymaps/bucktooth/config.h
keyboards/preonic/keymaps/jacwib/config.h
keyboards/preonic/keymaps/kuatsure/rules.mk
keyboards/preonic/keymaps/that_canadian/config.h [deleted file]
keyboards/preonic/keymaps/zach/config.h
keyboards/preonic/rev3/config.h
keyboards/prime_r/config.h
keyboards/rorschach/keymaps/insertsnideremarks/config.h
keyboards/s60_x/keymaps/bluebear/config.h
keyboards/s60_x/rgb/config.h
keyboards/s65_plus/config.h
keyboards/s65_x/config.h
keyboards/sx60/config.h
keyboards/telophase/config.h
keyboards/tetris/config.h
keyboards/thevankeyboards/bananasplit/keymaps/talljoe/config.h
keyboards/tokyo60/config.h
keyboards/tomato/config.h
keyboards/uk78/config.h
keyboards/viterbi/keymaps/drashna/config.h
keyboards/whitefox/config.h
keyboards/xd60/keymaps/kmontag42/rules.mk [new file with mode: 0644]
keyboards/xd75/keymaps/davidrambo/config.h
keyboards/xd75/keymaps/tdl-jturner/config.h
keyboards/xmmx/config.h
keyboards/ymd96/keymaps/hgoel89/config.h
keyboards/z150_blackheart/config.h
keyboards/zeal60/keymaps/tusing/config.h
keyboards/zlant/config.h
layouts/community/60_ansi/talljoe-ansi/config.h
layouts/community/60_ansi_split_bs_rshift/talljoe/config.h
layouts/community/60_hhkb/talljoe-hhkb/config.h
layouts/community/ergodox/adam/config.h
layouts/community/ergodox/albert/rules.mk
layouts/community/ergodox/algernon/rules.mk
layouts/community/ergodox/alphadox/config.h
layouts/community/ergodox/deadcyclo/rules.mk
layouts/community/ergodox/erez_experimental/rules.mk
layouts/community/ergodox/familiar/rules.mk
layouts/community/ergodox/mclennon_osx/README.md
layouts/community/ergodox/techtomas/readme.md
layouts/community/ortho_4x12/symbolic/config.h
layouts/community/tkl_ansi/talljoe-tkl/config.h
quantum/process_keycode/process_chording.c [deleted file]
quantum/process_keycode/process_chording.h [deleted file]
quantum/process_keycode/process_leader.c
quantum/quantum.c
quantum/quantum.h
quantum/quantum_keycodes.h
tmk_core/common/action.c
tmk_core/common/action.h
tmk_core/common/action_layer.c
tmk_core/common/action_layer.h
users/333fred/333fred_config.h
users/bocaj/config.h
users/drashna/config.h
users/ishtob/config.h
users/replicaJunction/config.h
users/talljoe/config.h
users/wanleg/config.h
users/zer09/config.h

index c637582..7af7789 100644 (file)
@@ -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
index eaaa598..0728577 100644 (file)
@@ -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
 
index 46633b2..0c3f4a1 100644 (file)
@@ -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
+```
index bf695d0..35596cc 100644 (file)
@@ -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)
index bfdf354..ee49211 100644 (file)
@@ -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
index 77d9e27..20d9965 100644 (file)
@@ -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
index c44ba73..3066f34 100644 (file)
@@ -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
index 31212ce..f2106fa 100644 (file)
@@ -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
index 0295275..1e16f5c 100755 (executable)
@@ -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
index 9e013db..9d2dca4 100755 (executable)
@@ -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
index 6a809a0..237cb09 100644 (file)
@@ -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
index 42bef9d..890980f 100644 (file)
@@ -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
index 19714ec..c74909a 100644 (file)
@@ -3,8 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
-
 #define IGNORE_MOD_TAP_INTERRUPT
 
-#endif
\ No newline at end of file
+#endif
index 2f81101..a8b9c88 100644 (file)
@@ -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
index 73eb0fa..a89bf55 100644 (file)
@@ -1,6 +1,5 @@
 #define ONESHOT_TIMEOUT 3000
 #define TAPPING_TERM 200
-#define PREVENT_STUCK_MODIFIERS
 #define FORCE_NKRO
 #define LEADER_TIMEOUT 1000
 
index 046aec2..160ce6e 100644 (file)
@@ -3,3 +3,4 @@ NKRO_ENABLE = true
 MOUSEKEY_ENABLE = no
 EXTRAKEY_ENABLE = yes
 CONSOLE_ENABLE = no
+LEADER_ENABLE = yes
index 9d124a9..be57e38 100644 (file)
@@ -37,7 +37,4 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
  #define PERMISSIVE_HOLD
 
- #define PREVENT_STUCK_MODIFIERS
-
-
 #endif
index 4e30276..966f206 100755 (executable)
@@ -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
index 83c8e31..79b9ed3 100755 (executable)
@@ -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
index e10b14d..9963a82 100755 (executable)
@@ -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
index 3ebcfe0..a222512 100755 (executable)
@@ -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
index cc290fd..a0ef6b5 100755 (executable)
@@ -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
index cb7ca7d..f151e70 100644 (file)
@@ -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
index 86ee237..8ce195c 100644 (file)
@@ -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
 
index d928780..254dad3 100644 (file)
@@ -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
 
index 44c6212..4bf85eb 100644 (file)
@@ -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
 
index bf861cc..2163ff8 100644 (file)
     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
index 5c5a862..a862d2c 100644 (file)
@@ -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 */
index 320401d..456936c 100644 (file)
@@ -3,6 +3,5 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
 #define DISABLE_SPACE_CADET_ROLLOVER
 #endif
index 90d923f..2421f53 100644 (file)
@@ -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
 
index 85077ed..c6bb374 100755 (executable)
     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
index 9a458b8..224a4a3 100644 (file)
@@ -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
index a07c79c..c72be83 100755 (executable)
@@ -40,9 +40,6 @@
     false \
 )
 
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
 #ifdef RGBLIGHT_ENABLE
 #define RGB_DI_PIN D3
 #define RGBLIGHT_ANIMATIONS
index 8d25f7c..c573530 100644 (file)
@@ -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
 
index b3bd6d9..1d92cf7 100644 (file)
@@ -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
 
index 97a6e53..d9ca459 100644 (file)
     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
index 8e1a5ae..e58eae0 100644 (file)
@@ -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
index bb78d9b..4f991b9 100644 (file)
@@ -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
index 1feff26..2c764d7 100644 (file)
@@ -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 */
index 07a9b54..7a35018 100644 (file)
@@ -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
index 38112a9..db5e5d1 100644 (file)
@@ -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
index e9b682f..7565c6e 100644 (file)
@@ -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;
 
index 88d495b..772ce0b 100644 (file)
@@ -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
 
index 8174edd..551327a 100644 (file)
@@ -13,7 +13,6 @@
 
 #define IGNORE_MOD_TAP_INTERRUPT
 #define PERMISSIVE_HOLD
-#define PREVENT_STUCK_MODIFIERS
 
 #undef MOUSEKEY_DELAY
 #define MOUSEKEY_DELAY 100
index 75624bb..74505bd 100644 (file)
@@ -1,2 +1,3 @@
 BACKLIGHT_ENABLE = yes
-UNICODE_ENABLE = yes
\ No newline at end of file
+UNICODE_ENABLE = yes
+LEADER_ENABLE = yes
index 4b7c584..de72635 100644 (file)
@@ -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
 
index caae080..41ec066 100644 (file)
@@ -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
index f70089a..003fe87 100644 (file)
@@ -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
index 96011cb..8dceff5 100644 (file)
@@ -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
index 87cda7b..5f99c65 100644 (file)
@@ -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
index 30b703b..1a5901f 100755 (executable)
     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
index ad86e82..b21eb64 100644 (file)
@@ -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
index 83d3012..ca72aba 100644 (file)
     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
index 4607962..34f38e3 100644 (file)
     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
index 3e9e692..7fa3bf3 100644 (file)
@@ -3,6 +3,4 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
\ No newline at end of file
+#endif
index a3819d3..d86da86 100644 (file)
@@ -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
index 0f349ad..09922b6 100644 (file)
@@ -5,7 +5,6 @@
 
 #define LEADER_TIMEOUT 300
 //#define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
 
 #define USE_I2C
 #define SSD1306OLED
index 0f349ad..09922b6 100644 (file)
@@ -5,7 +5,6 @@
 
 #define LEADER_TIMEOUT 300
 //#define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
 
 #define USE_I2C
 #define SSD1306OLED
index f895142..c3bdf33 100644 (file)
@@ -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
index 6916d1a..f5e6bba 100644 (file)
@@ -3,8 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
-
 #undef MATRIX_ROW_PINS
 #undef MATRIX_COL_PINS
 
index a990cc7..08931ec 100644 (file)
@@ -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
index f3d0c8b..a3f3e39 100644 (file)
@@ -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
 
index fa86e22..2064f36 100644 (file)
@@ -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
 
index fa86e22..2064f36 100644 (file)
@@ -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
 
index 9c9361c..46d8540 100644 (file)
     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
index b49f017..41edfcb 100644 (file)
@@ -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
 
index 0e1b787..5e8989d 100644 (file)
@@ -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
 
index 0582361..b354d31 100644 (file)
@@ -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
 
index 7c16b2c..7d97e7a 100644 (file)
@@ -1,2 +1,3 @@
 TAP_DANCE_ENABLE = no
 UNICODE_ENABLE   = no
+LEADER_ENABLE = yes
index 8306c8f..c1e9ec5 100644 (file)
@@ -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
index 01e078e..2cdff42 100644 (file)
@@ -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
index a3c0634..42f91bd 100644 (file)
@@ -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
index a53c746..72e35c4 100644 (file)
@@ -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
index 0c61a8e..b820a07 100644 (file)
@@ -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
 
index a3819d3..d86da86 100644 (file)
@@ -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 (file)
index 11cafbe..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
index 89807d8..f2b5d26 100644 (file)
@@ -4,6 +4,5 @@
 #include "../../config.h"
 
 #define FORCE_NKRO
-#define PREVENT_STUCK_MODIFIERS
 
 #endif
index 6d98a37..e710dbb 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
 // #define TAPPING_TERM 300
 
 #endif
index d7f991f..e812903 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
 #define TAPPING_TERM 200
 
 #endif
index 52aaa8f..b1d74e1 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
 #define TAPPING_TERM 300
 
 #endif
index 52aaa8f..b1d74e1 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
 #define TAPPING_TERM 300
 
 #endif
index 847cf20..cb5c90b 100644 (file)
@@ -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
index d19e0ff..4937d9a 100644 (file)
@@ -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
index 169cffb..aaf2b5d 100644 (file)
@@ -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
index f76d908..726afca 100644 (file)
@@ -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
index 3548fa3..9ce094b 100644 (file)
@@ -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
index e8632fe..6aa909d 100644 (file)
@@ -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
 
index ff29eb1..59a2e5d 100644 (file)
@@ -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
 
index 4ebdbad..71ec20d 100644 (file)
@@ -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
index 001b62e..1b3fd75 100644 (file)
@@ -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
index 98ebeff..5221fd0 100644 (file)
@@ -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
index c75ed12..a5cd518 100644 (file)
@@ -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 (file)
index 73bc50b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#include "../../config.h"
-#define PREVENT_STUCK_MODIFIERS
index 58c751e..e0922bb 100755 (executable)
@@ -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
index 6083dcf..67123a7 100644 (file)
@@ -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
index 4456060..3649fdd 100644 (file)
@@ -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
index 7023548..645e80e 100644 (file)
@@ -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
index 37b69e9..51c586e 100644 (file)
@@ -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
 
index 6101ee1..5cfd2e4 100644 (file)
@@ -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
 
index 2f22306..b9d3ed4 100644 (file)
@@ -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
index 0d6a713..3a47c0e 100755 (executable)
@@ -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
 
index b2cb95e..7eec79a 100644 (file)
@@ -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
index 61c2fa0..db7b74e 100644 (file)
@@ -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
index 14b4a5f..94412cf 100644 (file)
 /* 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
index 27f54bf..a5280f4 100755 (executable)
     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
index e8eafe2..2d27ff3 100644 (file)
@@ -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 (file)
index 11cafbe..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
index d55258c..e517a8b 100644 (file)
@@ -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
 
index b2b8704..1ae457e 100644 (file)
@@ -1,8 +1,5 @@
 #pragma once
 
-/* Prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
 #ifdef AUDIO_ENABLE
     #define STARTUP_SONG SONG(PLANCK_SOUND)
 
index 0de5f3d..01169db 100644 (file)
@@ -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 (file)
index 3e9e692..0000000
+++ /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
index c3bebf5..2decb3d 100644 (file)
@@ -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
index 480ba45..9ba854e 100644 (file)
@@ -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
index 9cf508a..5615a78 100644 (file)
@@ -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.
index 0864b5f..86cc476 100644 (file)
@@ -5,8 +5,6 @@
 
 #define LEADER_TIMEOUT 300
 #define BACKLIGHT_BREATHING
-#define PREVENT_STUCK_MODIFIERS
-
 
 /* ws2812 RGB LED */
 #define RGB_DI_PIN B1
index b135dfc..168d3cb 100644 (file)
@@ -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
index 9bb5e08..655cdf5 100644 (file)
@@ -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
 
index 9bb5e08..655cdf5 100644 (file)
@@ -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
 
index e58ade0..6886076 100755 (executable)
@@ -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
index f98b893..9e8f404 100644 (file)
@@ -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
index 5aea443..89b7e6b 100644 (file)
@@ -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"
index b9f7393..0c10007 100644 (file)
@@ -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 (file)
index a28634e..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef LAE3_KEYMAP_H
-#define LAE3_KEYMAP_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
index 10591b3..bb7989d 100644 (file)
@@ -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 }
index 3869304..9ed1133 100644 (file)
@@ -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.
index e081a93..19d784b 100644 (file)
 
 #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 (file)
index 3e9e692..0000000
+++ /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
index 448ae3b..876d057 100644 (file)
@@ -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
index 4b2cdee..8bed79e 100644 (file)
@@ -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
 
index 1879ab0..4f99c7e 100644 (file)
@@ -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
index 4725e14..c5d55b9 100644 (file)
@@ -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:
index 4cb4a12..be395fa 100644 (file)
@@ -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 (file)
index 8a916bb..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
-
-
-
index 19a3856..dc79bad 100644 (file)
@@ -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
 
index 0e46218..afd69f7 100644 (file)
@@ -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 */
index c357180..53bbe95 100644 (file)
@@ -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
index 0610134..601e3c8 100644 (file)
@@ -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
index b988831..23e9e0e 100644 (file)
@@ -4,6 +4,5 @@
 #include "../../config.h"
 
 #define FORCE_NKRO 1
-#define PREVENT_STUCK_MODIFIERS
 
 #endif
index b988831..23e9e0e 100644 (file)
@@ -4,6 +4,5 @@
 #include "../../config.h"
 
 #define FORCE_NKRO 1
-#define PREVENT_STUCK_MODIFIERS
 
 #endif
diff --git a/keyboards/preonic/keymaps/that_canadian/config.h b/keyboards/preonic/keymaps/that_canadian/config.h
deleted file mode 100644 (file)
index 11cafbe..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef CONFIG_USER_H
-#define CONFIG_USER_H
-
-#include "../../config.h"
-
-#define PREVENT_STUCK_MODIFIERS
-
-#endif
index bb8913c..40a083d 100644 (file)
@@ -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
 
index 3f57c59..98899dc 100644 (file)
@@ -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 */
index b53f149..ad92199 100644 (file)
@@ -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
index 90fb512..2048232 100644 (file)
@@ -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
index 35754b5..10bddf0 100644 (file)
@@ -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
index ec8b0f4..d9c2665 100644 (file)
@@ -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
index df60e60..60512db 100644 (file)
@@ -49,7 +49,4 @@
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 )
 
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
 #endif
index 8288ef7..367efc5 100644 (file)
@@ -49,8 +49,4 @@
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 )
 
-
-/* prevent stuck modifiers */
-#define PREVENT_STUCK_MODIFIERS
-
 #endif
index f22fbe8..52a1cc7 100755 (executable)
     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
index 09655c0..be0a369 100644 (file)
@@ -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
 
index 9c7f525..7e7dac7 100644 (file)
@@ -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
index bb2aadf..fc9bd3d 100644 (file)
@@ -3,7 +3,6 @@
 
 #include QMK_KEYBOARD_CONFIG_H
 
-#define PREVENT_STUCK_MODIFIERS
 #define SPACE_COUNT 3
 
 #define TEMPLATE(                                                                     \
index 6e6ab22..16927be 100644 (file)
@@ -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
index f33c131..185cb32 100644 (file)
@@ -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
 
index 35f5bf7..34d6720 100644 (file)
@@ -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
index 687f804..a1e361e 100644 (file)
@@ -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, \
index 9f021fb..a8047cf 100644 (file)
@@ -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 (file)
index 0000000..d0d2ef6
--- /dev/null
@@ -0,0 +1 @@
+LEADER_ENABLE = yes
index e87ccde..f219147 100644 (file)
@@ -20,7 +20,6 @@
 #include "../../config.h"
 
 #define TAPPING_TERM 200
-#define PERMISSIVE_HOLD 
-#define PREVENT_STUCK_MODIFIERS
+#define PERMISSIVE_HOLD
 
 #endif
index 561a48d..985247b 100644 (file)
@@ -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
index f3f893e..8cb2cf8 100644 (file)
     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
index 52aaa8f..b1d74e1 100644 (file)
@@ -3,7 +3,6 @@
 
 #include "../../config.h"
 
-#define PREVENT_STUCK_MODIFIERS
 #define TAPPING_TERM 300
 
 #endif
index d2fce9a..3621536 100644 (file)
     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
index 93f2609..64aaece 100644 (file)
@@ -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
-
index 456d225..ae9dcfe 100755 (executable)
@@ -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
index 1990b0e..4326a2f 100644 (file)
@@ -3,7 +3,6 @@
 
 #include QMK_KEYBOARD_CONFIG_H
 
-#define PREVENT_STUCK_MODIFIERS
 #define ENABLE_GAME_LAYER
 
 #define TEMPLATE(                                                                   \
index 81ab5cf..bf18fd9 100644 (file)
@@ -3,7 +3,6 @@
 
 #include QMK_KEYBOARD_CONFIG_H
 
-#define PREVENT_STUCK_MODIFIERS
 #define ENABLE_GAME_LAYER
 
 #define TEMPLATE(                                                                   \
index 938ea6c..9e907fe 100644 (file)
@@ -3,7 +3,6 @@
 
 #include QMK_KEYBOARD_CONFIG_H
 
-#define PREVENT_STUCK_MODIFIERS
 #define ENABLE_GAME_LAYER
 
 #define TEMPLATE(                                                                   \
index 21af8c6..1a8fddb 100644 (file)
@@ -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
index fcd019e..47549b5 100644 (file)
@@ -1,3 +1,2 @@
 COMMAND_ENABLE = no        # Commands for debug and configuration
-
-
+LEADER_ENABLE = yes
index f795a86..53dec51 100644 (file)
@@ -8,6 +8,7 @@ TAP_DANCE_ENABLE = yes
 KEYLOGGER_ENABLE ?= yes
 UCIS_ENABLE = yes
 MOUSEKEY_ENABLE = no
+LEADER_ENABLE = yes
 
 AUTOLOG_ENABLE ?= no
 
index 6fc64f5..9e076de 100644 (file)
@@ -4,7 +4,6 @@
 #include QMK_KEYBOARD_CONFIG_H
 
 #define FORCE_NKRO
-#define PREVENT_STUCK_MODIFIERS
 
 #undef TAPPING_TERM
 #undef IGNORE_MOD_TAP_INTERRUPT
index 839dd82..f68b56f 100644 (file)
@@ -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
index 28cdb7c..53b3d48 100644 (file)
@@ -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/).
index 36e0591..3d1bcb9 100644 (file)
@@ -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
 
index 702c922..c29b077 100644 (file)
@@ -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
 
index 8b27d41..02f8a94 100644 (file)
@@ -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 (file)
index 6c6ebe3..0000000
+++ /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 (file)
index 8c0f486..0000000
+++ /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
index c87ef11..eddbf71 100644 (file)
@@ -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"
 
index 9d352a9..9bf91eb 100644 (file)
@@ -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
index d1f761f..7cf16d8 100644 (file)
@@ -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
index 0ecc293..3b87954 100644 (file)
@@ -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
 
index ae08647..76d02bc 100644 (file)
@@ -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)
index acc55c7..0322c73 100644 (file)
@@ -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
 
index f3cd381..62375df 100644 (file)
@@ -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);
     }
index 72a6bd8..7bf116b 100644 (file)
@@ -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);
index 7c637d8..b158e2d 100644 (file)
@@ -1,4 +1,3 @@
 #pragma once
 
-#define PREVENT_STUCK_MODIFIERS
 #define PERMISSIVE_HOLD
index ce5ec65..0e72659 100644 (file)
@@ -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
index dd6875c..92efcc5 100644 (file)
@@ -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
-
-
index 9c4a7ed..1f567f4 100755 (executable)
@@ -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
index f3556c8..4b58b57 100644 (file)
@@ -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
index 15bbde6..1cdbb5a 100644 (file)
@@ -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
index 2207344..28e7690 100644 (file)
@@ -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
index 7668064..4cb65c2 100644 (file)
@@ -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