M data/mappings/info_config.hjson => data/mappings/info_config.hjson +2 -2
@@ 111,8 111,6 @@
"SOFT_SERIAL_SPEED": {"info_key": "split.soft_serial_speed"},
"TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"},
"TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"},
- "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool"},
- "TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool"},
"TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"},
"TAPPING_TERM_PER_KEY": {"info_key": "tapping.term_per_key", "value_type": "bool"},
"TAPPING_TOGGLE": {"info_key": "tapping.toggle", "value_type": "int"},
@@ 129,6 127,8 @@
"UNUSED_PINS": {"info_key": "_invalid.unused_pins", "deprecated": true},
"RGBLIGHT_ANIMATIONS": {"info_key": "_invalid.rgblight.animations.all", "value_type": "bool", "invalid": true},
"QMK_KEYS_PER_SCAN": {"info_key": "qmk.keys_per_scan", "value_type": "int", "deprecated": true},
+ "TAPPING_FORCE_HOLD": {"info_key": "tapping.force_hold", "value_type": "bool", "deprecated": true},
+ "TAPPING_FORCE_HOLD_PER_KEY": {"info_key": "tapping.force_hold_per_key", "value_type": "bool", "deprecated": true},
// USB params, need to mark as failure when specified in config.h, rather than deprecated
"PRODUCT_ID": {"info_key": "usb.pid", "value_type": "hex", "deprecated": true, "replace_with": "`usb.pid` in info.json"},
M docs/config_options.md => docs/config_options.md +7 -6
@@ 171,12 171,13 @@ If you define these options you will enable the associated feature, which may in
* See [Ignore Mod Tap Interrupt](tap_hold.md#ignore-mod-tap-interrupt) for details
* `#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY`
* enables handling for per key `IGNORE_MOD_TAP_INTERRUPT` settings
-* `#define TAPPING_FORCE_HOLD`
- * makes it possible to use a dual role key as modifier shortly after having been tapped
- * See [Tapping Force Hold](tap_hold.md#tapping-force-hold)
- * Breaks any Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
-* `#define TAPPING_FORCE_HOLD_PER_KEY`
- * enables handling for per key `TAPPING_FORCE_HOLD` settings
+* `#define QUICK_TAP_TERM 100`
+ * tap-then-hold timing to use a dual role key to repeat keycode
+ * See [Quick Tap Term](tap_hold.md#quick-tap-term)
+ * Changes the timing of Tap Toggle functionality (`TT` or the One Shot Tap Toggle)
+ * Defaults to `TAPPING_TERM` if not defined
+* `#define QUICK_TAP_TERM_PER_KEY`
+ * enables handling for per key `QUICK_TAP_TERM` settings
* `#define LEADER_TIMEOUT 300`
* how long before the leader key times out
* If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the `LEADER_PER_KEY_TIMING` option, which resets the timeout after each key is tapped.
M docs/tap_hold.md => docs/tap_hold.md +16 -15
@@ 375,49 375,50 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
}
```
-## Tapping Force Hold
+## Quick Tap Term
-To enable `tapping force hold`, add the following to your `config.h`:
+When the user holds a key after tapping it, the tapping function is repeated by default, rather than activating the hold function. This allows keeping the ability to auto-repeat the tapping function of a dual-role key. `QUICK_TAP_TERM` enables fine tuning of that ability. If set to `0`, it will remove the auto-repeat ability and activate the hold function instead.
+
+`QUICK_TAP_TERM` is set to `TAPPING_TERM` by default, which is the maximum allowed value for `QUICK_TAP_TERM`. To override its value (in milliseconds) add the following to your `config.h`:
```c
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 120
```
-When the user holds a key after tapping it, the tapping function is repeated by default, rather than activating the hold function. This allows keeping the ability to auto-repeat the tapping function of a dual-role key. `TAPPING_FORCE_HOLD` removes that ability to let the user activate the hold function instead, in the case of holding the dual-role key after having tapped it.
-
Example:
- `SFT_T(KC_A)` Down
- `SFT_T(KC_A)` Up
- `SFT_T(KC_A)` Down
-- wait until the tapping term expires...
-- `SFT_T(KC_A)` Up
+- (wait until tapping term expires...)
-With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto-repeat function.
+With default settings, `a` will be sent on the first release, then `a` will be sent on the second press allowing the computer to trigger its auto repeat function until the key is released.
-With `TAPPING_FORCE_HOLD`, the second press will be interpreted as a Shift, allowing to use it as a modifier shortly after having used it as a tap.
+With `QUICK_TAP_TERM` configured, the timing between `SFT_T(KC_A)` up and `SFT_T(KC_A)` down must be within `QUICK_TAP_TERM` to trigger auto repeat. Otherwise the second press will be sent as a Shift. If `QUICK_TAP_TERM` is set to `0`, the second press will always be sent as a Shift, effectively disabling auto-repeat.
-!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tap Toggle).
+!> `QUICK_TAP_TERM` timing will also impact anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tap Toggle).
For more granular control of this feature, you can add the following to your `config.h`:
```c
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM_PER_KEY
```
You can then add the following function to your keymap:
```c
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
- case LT(1, KC_BSPC):
- return true;
+ case SFT_T(KC_SPC):
+ return QUICK_TAP_TERM - 20;
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
```
+?> If `QUICK_TAP_TERM` is set higher than `TAPPING_TERM`, it will default to `TAPPING_TERM`.
+
## Retro Tapping
To enable `retro tapping`, add the following to your `config.h`:
M keyboards/25keys/zinc/rev1/config.h => keyboards/25keys/zinc/rev1/config.h +1 -1
@@ 17,7 17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
/* Use I2C or Serial */
M keyboards/25keys/zinc/reva/config.h => keyboards/25keys/zinc/reva/config.h +1 -1
@@ 17,7 17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
/* Use I2C or Serial */
M keyboards/40percentclub/gherkin/keymaps/pierrec83/config.h => keyboards/40percentclub/gherkin/keymaps/pierrec83/config.h +1 -1
@@ 28,4 28,4 @@
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h => keyboards/40percentclub/gherkin/keymaps/stevexyz/config.h +1 -1
@@ 16,7 16,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// makes it possible to use a dual role key as modifier shortly after having been tapped (see Hold after tap)
// Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
M keyboards/adm42/rev4/keymaps/default/config.h => keyboards/adm42/rev4/keymaps/default/config.h +1 -1
@@ 1,3 1,3 @@
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM_PER_KEY
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
M keyboards/adm42/rev4/keymaps/default/keymap.c => keyboards/adm42/rev4/keymaps/default/keymap.c +3 -3
@@ 114,13 114,13 @@ bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
}
}
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LLS_ESC:
case LLS_RALT:
- return true;
+ return 0;
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
M keyboards/arabica37/keymaps/default/config.h => keyboards/arabica37/keymaps/default/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 170
#undef RGBLED_NUM
M keyboards/atreus/keymaps/kejadlen/config.h => keyboards/atreus/keymaps/kejadlen/config.h +1 -1
@@ 8,6 8,6 @@
#define DIODE_DIRECTION COL2ROW
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define USB_MAX_POWER_CONSUMPTION 50
M keyboards/b_sides/rev41lp/keymaps/namnlos/config.h => keyboards/b_sides/rev41lp/keymaps/namnlos/config.h +1 -1
@@ 26,7 26,7 @@
#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE, UNICODE_MODE_WINDOWS, UNICODE_MODE_MACOS, UNICODE_MODE_LINUX
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define TAPPING_TERM_PER_KEY
M keyboards/basekeys/slice/keymaps/default/config.h => keyboards/basekeys/slice/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/basekeys/slice/keymaps/default_split_left_space/config.h => keyboards/basekeys/slice/keymaps/default_split_left_space/config.h +1 -1
@@ 18,5 18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/basekeys/slice/rev1/keymaps/2moons/config.h => keyboards/basekeys/slice/rev1/keymaps/2moons/config.h +1 -1
@@ 18,6 18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
//#define MASTER_RIGHT
M keyboards/basekeys/slice/rev1/keymaps/default_all/config.h => keyboards/basekeys/slice/rev1/keymaps/default_all/config.h +1 -1
@@ 18,5 18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h => keyboards/basekeys/slice/rev1/keymaps/default_split_backspace/config.h +1 -1
@@ 18,5 18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/basekeys/slice/rev1/keymaps/via/config.h => keyboards/basekeys/slice/rev1/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h => keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/config.h +1 -1
@@ 18,6 18,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
//#define MASTER_RIGHT
M keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h => keyboards/bastardkb/charybdis/3x5/keymaps/bstiq/config.h +1 -1
@@ 43,7 43,7 @@
*
* See docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-force-hold
*/
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
/*
* Tap-or-Hold decision modes.
M keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/config.h => keyboards/bastardkb/dilemma/3x5_2/keymaps/bstiq/config.h +1 -1
@@ 41,7 41,7 @@
*
* See docs.qmk.fm/using-qmk/software-features/tap_hold#tapping-force-hold
*/
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
/*
* Tap-or-Hold decision modes.
M keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/config.h => keyboards/bastardkb/dilemma/3x5_3/keymaps/bstiq/config.h +1 -1
@@ 37,7 37,7 @@
* Enable rapid switch from tap to hold. Disable auto-repeat when pressing key
* twice, except for one-shot keys.
*/
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
/*
* Tap-or-Hold decision modes.
M keyboards/bastardkb/scylla/keymaps/cykedev/config.h => keyboards/bastardkb/scylla/keymaps/cykedev/config.h +1 -1
@@ 32,7 32,7 @@
// #define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-// #define TAPPING_FORCE_HOLD
+// #define QUICK_TAP_TERM 0
// Apply the modifier on keys that are tapped during a short hold of a modtap
// #define PERMISSIVE_HOLD
M keyboards/bastardkb/scylla/keymaps/xyverz/config.h => keyboards/bastardkb/scylla/keymaps/xyverz/config.h +1 -1
@@ 25,7 25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/bastardkb/tbk/keymaps/xyverz/config.h => keyboards/bastardkb/tbk/keymaps/xyverz/config.h +1 -1
@@ 25,7 25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/buzzard/keymaps/crehmann/config.h => keyboards/buzzard/keymaps/crehmann/config.h +1 -1
@@ 10,7 10,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Apply the modifier on keys that are tapped during a short hold of a modtap
#define PERMISSIVE_HOLD
M keyboards/buzzard/keymaps/default/config.h => keyboards/buzzard/keymaps/default/config.h +1 -1
@@ 10,7 10,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Apply the modifier on keys that are tapped during a short hold of a modtap
#define PERMISSIVE_HOLD
M keyboards/clickety_split/leeloo/keymaps/default/config.h => keyboards/clickety_split/leeloo/keymaps/default/config.h +1 -1
@@ 26,7 26,7 @@
#undef TAPPING_TERM
#define IGNORE_MOD_TAP_INTERRUPT
- #define TAPPING_FORCE_HOLD
+ #define QUICK_TAP_TERM 0
#define TAPPING_TERM 150
#endif
M keyboards/crkbd/keymaps/ajarov/config.h => keyboards/crkbd/keymaps/ajarov/config.h +1 -1
@@ 27,7 27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/antosha417/config.h => keyboards/crkbd/keymaps/antosha417/config.h +1 -1
@@ 10,7 10,7 @@
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#ifdef RGBLIGHT_ENABLE
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/ardakilic/config.h => keyboards/crkbd/keymaps/ardakilic/config.h +1 -1
@@ 31,7 31,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/armand1m/config.h => keyboards/crkbd/keymaps/armand1m/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-// #define TAPPING_FORCE_HOLD
+// #define QUICK_TAP_TERM 0
// #define PERMISSIVE_HOLD
#define TAPPING_TERM 300
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/benrestech/config.h => keyboards/crkbd/keymaps/benrestech/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 175
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/bermeo/config.h => keyboards/crkbd/keymaps/bermeo/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-// #define TAPPING_FORCE_HOLD
+// #define QUICK_TAP_TERM 0
#define TAPPING_TERM 150
// #define RETRO_TAPPING
// #define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/blipson/config.h => keyboards/crkbd/keymaps/blipson/config.h +1 -1
@@ 25,7 25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/colemad/config.h => keyboards/crkbd/keymaps/colemad/config.h +1 -1
@@ 2,7 2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#ifdef RGB_MATRIX_ENABLE
M keyboards/crkbd/keymaps/crkdves/config.h => keyboards/crkbd/keymaps/crkdves/config.h +1 -1
@@ 26,7 26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
// #define RETRO_TAPPING
// #define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/crkqwes/config.h => keyboards/crkbd/keymaps/crkqwes/config.h +1 -1
@@ 32,7 32,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#undef USE_I2C
#undef SSD1306OLED
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
// #define RETRO_TAPPING
// #define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/default/config.h => keyboards/crkbd/keymaps/default/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/devdev/config.h => keyboards/crkbd/keymaps/devdev/config.h +1 -1
@@ 34,7 34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RGBLIGHT_SLEEP
M keyboards/crkbd/keymaps/edvorakjp/config.h => keyboards/crkbd/keymaps/edvorakjp/config.h +1 -1
@@ 8,7 8,7 @@
#define SWAP_SCLN
-// #define TAPPING_FORCE_HOLD
+// #define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/hvp/config.h => keyboards/crkbd/keymaps/hvp/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#define TAPPING_TERM 150
M keyboards/crkbd/keymaps/jarred/config.h => keyboards/crkbd/keymaps/jarred/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/julian_turner/config.h => keyboards/crkbd/keymaps/julian_turner/config.h +1 -1
@@ 29,6 29,6 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
//#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
M keyboards/crkbd/keymaps/kidbrazil/config.h => keyboards/crkbd/keymaps/kidbrazil/config.h +1 -1
@@ 29,7 29,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 150
#undef PRODUCT
#define PRODUCT "CRKBD Loose Transistor Ed."
M keyboards/crkbd/keymaps/madhatter/config.h => keyboards/crkbd/keymaps/madhatter/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/nimishgautam/config.h => keyboards/crkbd/keymaps/nimishgautam/config.h +1 -1
@@ 19,7 19,7 @@
#define EXTRA_SHORT_COMBOS
//Tapping values
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD_PER_KEY
M keyboards/crkbd/keymaps/ninjonas/config.h => keyboards/crkbd/keymaps/ninjonas/config.h +1 -1
@@ 24,7 24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MASTER_LEFT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#ifdef RGB_MATRIX_ENABLE
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
M keyboards/crkbd/keymaps/oled_sample/config.h => keyboards/crkbd/keymaps/oled_sample/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/ollyhayes/config.h => keyboards/crkbd/keymaps/ollyhayes/config.h +1 -1
@@ 18,7 18,7 @@
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#define NO_ACTION_ONESHOT
M keyboards/crkbd/keymaps/oo/config.h => keyboards/crkbd/keymaps/oo/config.h +1 -1
@@ 22,7 22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SPLIT_USB_DETECT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
M keyboards/crkbd/keymaps/rarick/config.h => keyboards/crkbd/keymaps/rarick/config.h +1 -1
@@ 27,7 27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/rjhilgefort/config.h => keyboards/crkbd/keymaps/rjhilgefort/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200 // 200 is default
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/rs/config.h => keyboards/crkbd/keymaps/rs/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/sharkby7e/config.h => keyboards/crkbd/keymaps/sharkby7e/config.h +1 -1
@@ 27,7 27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/snowe/config.h => keyboards/crkbd/keymaps/snowe/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/soundmonster/config.h => keyboards/crkbd/keymaps/soundmonster/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-// #define TAPPING_FORCE_HOLD
+// #define QUICK_TAP_TERM 0
#define TAPPING_TERM 150
#define RETRO_TAPPING
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/keymaps/thumb_ctrl/config.h => keyboards/crkbd/keymaps/thumb_ctrl/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 150
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/toinux/config.h => keyboards/crkbd/keymaps/toinux/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M keyboards/crkbd/keymaps/vayashiko/config.h => keyboards/crkbd/keymaps/vayashiko/config.h +1 -1
@@ 30,7 30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/vlukash_trackpad_left/config.h => keyboards/crkbd/keymaps/vlukash_trackpad_left/config.h +1 -1
@@ 5,7 5,7 @@
#define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/vlukash_trackpad_right/config.h => keyboards/crkbd/keymaps/vlukash_trackpad_right/config.h +1 -1
@@ 12,7 12,7 @@
/* Select hand configuration */
#define MASTER_RIGHT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/vxid/config.h => keyboards/crkbd/keymaps/vxid/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/crkbd/keymaps/xyverz/config.h => keyboards/crkbd/keymaps/xyverz/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h => keyboards/crkbd/rev1/keymaps/dvorak_42_key/config.h +1 -1
@@ 11,7 11,7 @@
#define MASTER_RIGHT
// #define EE_HANDS
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define TAPPING_TERM 100
// #define DOUBLE_TAP_SHIFT_TURNS_ON_CAPS_WORD
M keyboards/dztech/dz60rgb/keymaps/kgreulich/config.h => keyboards/dztech/dz60rgb/keymaps/kgreulich/config.h +1 -1
@@ 19,7 19,7 @@
#endif // !NO_PRINT
#define NO_ACTION_ONESHOT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define IGNORE_MOD_TAP_INTERRUPT
// #include "config_led.h"
M keyboards/dztech/dz60rgb/keymaps/matthewrobo/config.h => keyboards/dztech/dz60rgb/keymaps/matthewrobo/config.h +1 -1
@@ 65,7 65,7 @@
#endif // !NO_PRINT
#define NO_ACTION_ONESHOT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define IGNORE_MOD_TAP_INTERRUPT
// #include "config_led.h"
M keyboards/dztech/dz60rgb/keymaps/xunz/config.h => keyboards/dztech/dz60rgb/keymaps/xunz/config.h +1 -1
@@ 49,5 49,5 @@
// #define RGB_MATRIX_KEYRELEASES
#define NO_ACTION_ONESHOT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/dztech/dz65rgb/keymaps/matthewrobo/config.h => keyboards/dztech/dz65rgb/keymaps/matthewrobo/config.h +1 -1
@@ 59,7 59,7 @@
#endif // !NO_PRINT
#define NO_ACTION_ONESHOT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define IGNORE_MOD_TAP_INTERRUPT
// #include "config_led.h"
M keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h => keyboards/ergodox_ez/keymaps/hacker_dvorak/config.h +1 -1
@@ 78,7 78,7 @@
// #define NO_PRINT
// #define RETRO_TAPPING
-// #define TAPPING_FORCE_HOLD
+// #define QUICK_TAP_TERM 0
// #define AUTO_SHIFT_TIMEOUT 150
// #define NO_AUTO_SHIFT_SPECIAL
M keyboards/ergodox_ez/keymaps/stamm/config.h => keyboards/ergodox_ez/keymaps/stamm/config.h +2 -2
@@ 32,8 32,8 @@
#define IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
-#define TAPPING_FORCE_HOLD
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM 0
+#define QUICK_TAP_TERM_PER_KEY
/* #define RETRO_TAPPING */
#undef LED_BRIGHTNESS_DEFAULT
M keyboards/ergodox_ez/keymaps/stamm/keymap.c => keyboards/ergodox_ez/keymaps/stamm/keymap.c +17 -20
@@ 225,28 225,25 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
}
}
-
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LT(_1_NUMBERS, KC_E):
- case R_MOUSE:
- case LSFT_T(KC_A):
- case LCTL_T(KC_S):
- case LALT_T(KC_D):
- case LGUI_T(KC_F):
- case RGUI_T(KC_J):
- case RALT_T(KC_K):
- case RCTL_T(KC_L):
- case RSFT_T(KC_SEMICOLON):
- case ARROWS:
- return false;
- default:
- return true;
- }
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LT(_1_NUMBERS, KC_E):
+ case R_MOUSE:
+ case LSFT_T(KC_A):
+ case LCTL_T(KC_S):
+ case LALT_T(KC_D):
+ case LGUI_T(KC_F):
+ case RGUI_T(KC_J):
+ case RALT_T(KC_K):
+ case RCTL_T(KC_L):
+ case RSFT_T(KC_SEMICOLON):
+ case ARROWS:
+ return QUICK_TAP_TERM;
+ default:
+ return 0;
+ }
}
-
-
LEADER_EXTERNS();
void matrix_scan_user(void) {
M keyboards/ferris/keymaps/bruun-baer/config.h => keyboards/ferris/keymaps/bruun-baer/config.h +1 -1
@@ 36,4 36,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M keyboards/ferris/keymaps/default/config.h => keyboards/ferris/keymaps/default/config.h +1 -1
@@ 36,7 36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Underglow configuration
#ifdef RGBLIGHT_ENABLE
M keyboards/ferris/keymaps/pierrec83/config.h => keyboards/ferris/keymaps/pierrec83/config.h +1 -1
@@ 36,7 36,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Underglow configuration
#ifdef RGBLIGHT_ENABLE
M keyboards/gl516/a52gl/keymaps/salicylic/config.h => keyboards/gl516/a52gl/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h => keyboards/gl516/j73gl/keymaps/via_rgb_matrix/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/gl516/n51gl/keymaps/salicylic/config.h => keyboards/gl516/n51gl/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/gl516/n51gl/keymaps/via/config.h => keyboards/gl516/n51gl/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/handwired/aranck/keymaps/turkishish/config.h => keyboards/handwired/aranck/keymaps/turkishish/config.h +1 -1
@@ 21,4 21,4 @@
#define RETRO_TAPPING
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD>
\ No newline at end of file
+#define QUICK_TAP_TERM 0<
\ No newline at end of file
M keyboards/handwired/brain/config.h => keyboards/handwired/brain/config.h +1 -1
@@ 93,7 93,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define TAPPING_TERM 150
//#define IGNORE_MOD_TAP_INTERRUPT
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
#define BOOTMAGIC_LITE_ROW 0
#define BOOTMAGIC_LITE_COLUMN 6
M keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h => keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/config.h +1 -1
@@ 27,7 27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM_PER_KEY // milliseconds from tap to hold for mod tap per key
#define IGNORE_MOD_TAP_INTERRUPT // ignore hold mod if another tap occurs within tapping term
#define PERMISSIVE_HOLD_PER_KEY // activate mod top hold earlier if another key is pressed AND released per key
-#define TAPPING_FORCE_HOLD_PER_KEY // disable double tap hold key repeat per key
+#define QUICK_TAP_TERM_PER_KEY // disable double tap hold key repeat per key
#undef MOUSEKEY_INTERVAL
#undef MOUSEKEY_DELAY
#undef MOUSEKEY_TIME_TO_MAX
M keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c => keyboards/handwired/dactyl_manuform/3x5_3/keymaps/dlford/keymap.c +9 -9
@@ 55,15 55,15 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
}
// Tapping force hold per key
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LT(3, KC_SPC):
- return true; // Enable force hold
- case LT(2, KC_TAB):
- return true;
- default:
- return false; // Disable force hold
- }
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LT(3, KC_SPC):
+ return 0; // Enable force hold
+ case LT(2, KC_TAB):
+ return 0;
+ default:
+ return QUICK_TAP_TERM; // Disable force hold
+ }
}
// Tapping term per key
M keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h => keyboards/handwired/dactyl_manuform/5x6_5/keymaps/cykedev/config.h +1 -1
@@ 51,6 51,6 @@
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define FORCE_NKRO
M keyboards/handwired/heisenberg/keymaps/turkishish/config.h => keyboards/handwired/heisenberg/keymaps/turkishish/config.h +1 -1
@@ 21,4 21,4 @@
#define RETRO_TAPPING
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD>
\ No newline at end of file
+#define QUICK_TAP_TERM 0<
\ No newline at end of file
M keyboards/helix/pico/config.h => keyboards/helix/pico/config.h +1 -1
@@ 19,7 19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
/* Soft Serial defines */
M keyboards/helix/rev2/config.h => keyboards/helix/rev2/config.h +1 -1
@@ 19,7 19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#define SPLIT_LAYER_STATE_ENABLE
M keyboards/helix/rev2/keymaps/edvorakjp/config.h => keyboards/helix/rev2/keymaps/edvorakjp/config.h +10 -10
@@ 2,7 2,7 @@
#define SWAP_SCLN
-#undef TAPPING_FORCE_HOLD
+#undef QUICK_TAP_TERM
#undef TAPPING_TERM
#define TAPPING_TERM 300
#define IGNORE_MOD_TAP_INTERRUPT
@@ 11,13 11,13 @@
// Selection of RGBLIGHT MODE to use.
#if defined(LED_ANIMATIONS)
-//# define RGBLIGHT_EFFECT_BREATHING
-//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
-//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
-//# define RGBLIGHT_EFFECT_SNAKE
-//# define RGBLIGHT_EFFECT_KNIGHT
-//# define RGBLIGHT_EFFECT_CHRISTMAS
+// # define RGBLIGHT_EFFECT_BREATHING
+// # define RGBLIGHT_EFFECT_RAINBOW_MOOD
+// # define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+// # define RGBLIGHT_EFFECT_SNAKE
+// # define RGBLIGHT_EFFECT_KNIGHT
+// # define RGBLIGHT_EFFECT_CHRISTMAS
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
-//# define RGBLIGHT_EFFECT_RGB_TEST
-//# define RGBLIGHT_EFFECT_ALTERNATING
-#endif // LED_ANIMATIONS
+// # define RGBLIGHT_EFFECT_RGB_TEST
+// # define RGBLIGHT_EFFECT_ALTERNATING
+#endif // LED_ANIMATIONS
M keyboards/hidtech/bastyl/keymaps/xyverz/config.h => keyboards/hidtech/bastyl/keymaps/xyverz/config.h +1 -1
@@ 25,7 25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
#define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 300
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/keebio/iris/keymaps/jhelvy/config.h => keyboards/keebio/iris/keymaps/jhelvy/config.h +1 -1
@@ 20,7 20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// Had to swap the master to get the right-side rotary encoder supported
#define MASTER_RIGHT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#undef TAPPING_TERM
#define TAPPING_TERM 200
#define AUTO_SHIFT_TIMEOUT 150
M keyboards/keebio/iris/keymaps/osiris/config.h => keyboards/keebio/iris/keymaps/osiris/config.h +1 -1
@@ 37,6 37,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_VAL_STEP 8
// #undef PERMISSIVE_HOLD
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define RETRO_TAPPING
#define PERMISSIVE_HOLD
M keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h => keyboards/kprepublic/bm40hsrgb/keymaps/34keys/config.h +1 -1
@@ 12,7 12,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Mouse key speed and acceleration.
#undef MOUSEKEY_DELAY
M keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h => keyboards/kprepublic/bm40hsrgb/keymaps/gabustoledo/config.h +1 -1
@@ 23,7 23,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Auto Shift
#define NO_AUTO_SHIFT_ALPHA
M keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h => keyboards/kprepublic/bm68hsrgb/rev1/keymaps/peepeetee/config.h +1 -1
@@ 44,7 44,7 @@
// #define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h => keyboards/kprepublic/bm80hsrgb/keymaps/peepeetee/config.h +1 -1
@@ 29,7 29,7 @@
// #define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/kprepublic/jj40/keymaps/stevexyz/config.h => keyboards/kprepublic/jj40/keymaps/stevexyz/config.h +1 -1
@@ 11,7 11,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// makes it possible to use a dual role key as modifier shortly after having been tapped (see Hold after tap)
// Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
M keyboards/lily58/keymaps/bongocat_wpm_responsive/config.h => keyboards/lily58/keymaps/bongocat_wpm_responsive/config.h +1 -1
@@ 28,7 28,7 @@
#define MASTER_LEFT
// #define EE_HANDS
- #define TAPPING_FORCE_HOLD
+ #define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#undef RGBLED_NUM
M keyboards/lily58/keymaps/chuan/config.h => keyboards/lily58/keymaps/chuan/config.h +1 -1
@@ 32,7 32,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define SSD1306OLED
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
/* define tapping term */
#define TAPPING_TERM 200
M keyboards/lily58/keymaps/datadavd/config.h => keyboards/lily58/keymaps/datadavd/config.h +1 -1
@@ 30,7 30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define SSD1306OLED
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 50
#undef RGBLED_NUM
M keyboards/lily58/keymaps/default/config.h => keyboards/lily58/keymaps/default/config.h +1 -1
@@ 26,7 26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/lily58/keymaps/domnantas/config.h => keyboards/lily58/keymaps/domnantas/config.h +1 -1
@@ 30,5 30,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define SSD1306OLED
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/lily58/keymaps/drasbeck/config.h => keyboards/lily58/keymaps/drasbeck/config.h +1 -1
@@ 24,7 24,7 @@ Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 2020 Max Drasbeck
#define ENCODERS_PAD_B { F5 }
#define ENCODER_RESOLUTION 4
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#undef RGBLED_NUM
M keyboards/lily58/keymaps/gaston/config.h => keyboards/lily58/keymaps/gaston/config.h +1 -1
@@ 22,5 22,5 @@
#define MASTER_LEFT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 150 /* ms */
M keyboards/lily58/keymaps/gshmu/config.h => keyboards/lily58/keymaps/gshmu/config.h +1 -1
@@ 17,7 17,7 @@
#pragma once
#define TAPPING_TERM 200
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define PERMISSIVE_HOLD
#define DYNAMIC_TAPPING_TERM_INCREMENT 10
M keyboards/lily58/keymaps/jhelvy/config.h => keyboards/lily58/keymaps/jhelvy/config.h +1 -1
@@ 30,7 30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SSD1306OLED
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#undef TAPPING_TERM
#define TAPPING_TERM 200
M keyboards/lily58/keymaps/mikefightsbears/config.h => keyboards/lily58/keymaps/mikefightsbears/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/lily58/keymaps/muppetjones/config.h => keyboards/lily58/keymaps/muppetjones/config.h +1 -1
@@ 35,7 35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#undef RGBLED_NUM
M keyboards/lily58/keymaps/narze/config.h => keyboards/lily58/keymaps/narze/config.h +1 -1
@@ 34,7 34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/lily58/keymaps/ninjonas/config.h => keyboards/lily58/keymaps/ninjonas/config.h +1 -1
@@ 26,7 26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define OLED_FONT_H "keyboards/lily58/lib/glcdfont.c"
#define OLED_DISABLE_TIMEOUT
M keyboards/lily58/keymaps/pttbx/config.h => keyboards/lily58/keymaps/pttbx/config.h +1 -1
@@ 26,7 26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/lily58/keymaps/via/config.h => keyboards/lily58/keymaps/via/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
// Underglow
M keyboards/lily58/keymaps/yshrsmz/config.h => keyboards/lily58/keymaps/yshrsmz/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/lily58/keymaps/yuchi/config.h => keyboards/lily58/keymaps/yuchi/config.h +1 -1
@@ 30,5 30,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define OLED_DRIVER
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/malevolti/lyra/keymaps/default/config.h => keyboards/malevolti/lyra/keymaps/default/config.h +1 -1
@@ 26,5 26,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/malevolti/lyra/keymaps/via/config.h => keyboards/malevolti/lyra/keymaps/via/config.h +1 -1
@@ 26,5 26,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/malevolti/superlyra/keymaps/default/config.h => keyboards/malevolti/superlyra/keymaps/default/config.h +1 -1
@@ 22,5 22,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/malevolti/superlyra/keymaps/via/config.h => keyboards/malevolti/superlyra/keymaps/via/config.h +1 -1
@@ 22,5 22,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/maple_computing/minidox/keymaps/dustypomerleau/config.h => keyboards/maple_computing/minidox/keymaps/dustypomerleau/config.h +2 -2
@@ 10,9 10,9 @@
// optional configuration:
// #define CONVERT_TO_PROTON_C
-// #define ONESHOT_TAP_TOGGLE 2 // not compatible with TAPPING_FORCE_HOLD
+// #define ONESHOT_TAP_TOGGLE 2 // not compatible with QUICK_TAP_TERM 0
// #define PERMISSIVE_HOLD
-// #define TAPPING_FORCE_HOLD // allows rapid mod use after tap event, but sacrifices double-tap to repeat
+// #define QUICK_TAP_TERM 0 // allows rapid mod use after tap event, but sacrifices double-tap to repeat
// #define MOUSEKEY_DELAY 0 // delay before cursor movement (high feels sluggish, low makes fine movement difficult)
// #define MOUSEKEY_INTERVAL 20 // time between movement reports - low settings feel like high mouse speed
M keyboards/massdrop/alt/keymaps/b_/config.h => keyboards/massdrop/alt/keymaps/b_/config.h +1 -1
@@ 32,7 32,7 @@
// #define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/massdrop/alt/keymaps/pregame/config.h => keyboards/massdrop/alt/keymaps/pregame/config.h +1 -1
@@ 45,7 45,7 @@
// #define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/massdrop/ctrl/keymaps/endgame/config.h => keyboards/massdrop/ctrl/keymaps/endgame/config.h +1 -1
@@ 29,7 29,7 @@
#define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h => keyboards/massdrop/ctrl/keymaps/matthewrobo/config.h +1 -1
@@ 47,7 47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/massdrop/ctrl/keymaps/xanimos/config.h => keyboards/massdrop/ctrl/keymaps/xanimos/config.h +1 -1
@@ 45,7 45,7 @@
#define TAPPING_TOGGLE 2 // How many taps before triggering the toggle
// #define PERMISSIVE_HOLD // Makes tap and hold keys trigger the hold if another key is pressed before releasing, even if it hasn't hit the TAPPING_TERM. See Permissive Hold for details
// #define IGNORE_MOD_TAP_INTERRUPT // Makes it possible to do rolling combos (zx) with keys that convert to other keys on hold, by enforcing the TAPPING_TERM for both keys. See Mod tap interrupt for details
-// #define TAPPING_FORCE_HOLD // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
+// #define QUICK_TAP_TERM 0 // Makes it possible to use a dual role key as modifier shortly after having been tapped. See Hold after tap. Breaks any Tap Toggle functionality (TT or the One Shot Tap Toggle)
// #define LEADER_TIMEOUT 300 // How long before the leader key times out. If you're having issues finishing the sequence before it times out, you may need to increase the timeout setting. Or you may want to enable the LEADER_PER_KEY_TIMING option, which resets the timeout after each key is tapped.
// #define LEADER_PER_KEY_TIMING // Sets the timer for leader key chords to run on each key press rather than overall
// #define LEADER_KEY_STRICT_KEY_PROCESSING // Disables keycode filtering for Mod-Tap and Layer-Tap keycodes. Eg, if you enable this, you would need to specify MT(MOD_CTL, KC_A) if you want to use KC_A.
M keyboards/obosob/steal_this_keyboard/keymaps/default/config.h => keyboards/obosob/steal_this_keyboard/keymaps/default/config.h +1 -1
@@ 36,4 36,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M keyboards/palette1202/keymaps/default/config.h => keyboards/palette1202/keymaps/default/config.h +1 -1
@@ 16,5 16,5 @@
#pragma once
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
M keyboards/pierce/keymaps/durken1/config.h => keyboards/pierce/keymaps/durken1/config.h +1 -1
@@ 23,7 23,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define PERMISSIVE_HOLD
M keyboards/pinky/3/keymaps/default/config.h => keyboards/pinky/3/keymaps/default/config.h +1 -1
@@ 24,6 24,6 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RETRO_TAPPPING
M keyboards/pinky/3/keymaps/ninjonas/config.h => keyboards/pinky/3/keymaps/ninjonas/config.h +1 -1
@@ 24,6 24,6 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RETRO_TAPPPING
M keyboards/pinky/3/keymaps/via/config.h => keyboards/pinky/3/keymaps/via/config.h +1 -1
@@ 24,6 24,6 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RETRO_TAPPPING
M keyboards/pinky/4/keymaps/default/config.h => keyboards/pinky/4/keymaps/default/config.h +1 -1
@@ 24,6 24,6 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RETRO_TAPPPING
M keyboards/pinky/4/keymaps/via/config.h => keyboards/pinky/4/keymaps/via/config.h +1 -1
@@ 24,6 24,6 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define RETRO_TAPPPING
M keyboards/planck/keymaps/adamtabrams/config.h => keyboards/planck/keymaps/adamtabrams/config.h +2 -2
@@ 35,5 35,5 @@
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
-#define TAPPING_FORCE_HOLD
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM 0
+#define QUICK_TAP_TERM_PER_KEY
M keyboards/planck/keymaps/adamtabrams/keymap.c => keyboards/planck/keymaps/adamtabrams/keymap.c +3 -3
@@ 229,7 229,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SHFTESC:
case NUMSPAC:
@@ 249,9 249,9 @@ bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
case CTL__J:
case CTL__T:
case CTL__N:
- return true;
+ return 0;
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
M keyboards/planck/keymaps/jweickm/config.h => keyboards/planck/keymaps/jweickm/config.h +1 -1
@@ 58,7 58,7 @@
#define TAPPING_TERM_PER_KEY
//#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM_PER_KEY
// settings for LEADER key
#define LEADER_PER_KEY_TIMING
M keyboards/planck/keymaps/jweickm/keymap.c => keyboards/planck/keymaps/jweickm/keymap.c +12 -12
@@ 1039,30 1039,30 @@ bool music_mask_user(uint16_t keycode) {
}
}
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LSFT_T(KC_S):
- return true;
+ return 0;
case RSFT_T(KC_E):
- return true;
+ return 0;
case LSFT_T(KC_D):
- return true;
+ return 0;
case RSFT_T(KC_K):
- return true;
+ return 0;
case LSFT_T(KC_F):
- return true;
+ return 0;
case RSFT_T(KC_U):
- return true;
+ return 0;
case LT(_RAISE, KC_ENT):
- return true;
+ return 0;
case LT(_RAISE_DE, KC_ENT):
- return true;
+ return 0;
case LT(_LOWER, KC_BSPC):
- return true;
+ return 0;
case LT(_LOWER_DE, KC_BSPC):
- return true;
+ return 0;
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
M keyboards/planck/keymaps/muppetjones/config.h => keyboards/planck/keymaps/muppetjones/config.h +1 -1
@@ 53,4 53,4 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M keyboards/planck/keymaps/rootiest/config.h => keyboards/planck/keymaps/rootiest/config.h +1 -1
@@ 117,7 117,7 @@
* MACRO per-key options
*/
#define RETRO_TAPPING_PER_KEY // Control Retro-Tap individually by key
-#define TAPPING_FORCE_HOLD_PER_KEY // Control Force-Hold individually by key
+#define QUICK_TAP_TERM_PER_KEY // Control Quick-Tap individually by key
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY // Control Mod-Tap-Interrupt individually by key
#define PERMISSIVE_HOLD_PER_KEY // Control Permissive-Hold individually by key
M keyboards/planck/keymaps/rootiest/keymap.c => keyboards/planck/keymaps/rootiest/keymap.c +3 -3
@@ 1376,11 1376,11 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t* record) {
return false;
}
}
-// Handles per-key configuration of Tapping Force-Hold
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t* record) {
+// Handles per-key configuration of Quick-Tap
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t* record) {
switch (keycode) {
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
// Handles per-key configuration of Permissive-Hold
M keyboards/planck/keymaps/tylerwince/config.h => keyboards/planck/keymaps/tylerwince/config.h +1 -1
@@ 12,7 12,7 @@
Set any config.h overrides for your specific keymap here.
See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file
*/
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define IGNORE_MOD_TAP_INTERRUPT
#define EECONFIG_RGB_MATRIX (uint32_t *)16
M keyboards/projectcain/relic/keymaps/default/config.h => keyboards/projectcain/relic/keymaps/default/config.h +1 -1
@@ 19,5 19,5 @@
#define ENCODER_RESOLUTION 2
#define COMBO_COUNT 6
#define COMBO_TERM 50
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define DISABLE_LEADER
M keyboards/projectcain/vault35/keymaps/default/config.h => keyboards/projectcain/vault35/keymaps/default/config.h +1 -1
@@ 18,4 18,4 @@
#define COMBO_COUNT 2
#define COMBO_TERM 50
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M keyboards/projectcain/vault45/keymaps/default/config.h => keyboards/projectcain/vault45/keymaps/default/config.h +1 -1
@@ 18,4 18,4 @@
#define COMBO_COUNT 2
#define COMBO_TERM 50
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M keyboards/rgbkb/mun/keymaps/xulkal2/config.h => keyboards/rgbkb/mun/keymaps/xulkal2/config.h +1 -1
@@ 10,7 10,7 @@
#pragma once
// Xulkal custom stuff
-#undef TAPPING_FORCE_HOLD
+#undef QUICK_TAP_TERM
#undef TAPPING_TERM
#define TAPPING_TERM 175
M keyboards/salicylic_acid3/7skb/keymaps/default/config.h => keyboards/salicylic_acid3/7skb/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/7skb/keymaps/salicylic/config.h => keyboards/salicylic_acid3/7skb/keymaps/salicylic/config.h +1 -1
@@ 18,6 18,6 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
//#define MASTER_RIGHT
M keyboards/salicylic_acid3/7splus/keymaps/salicylic/config.h => keyboards/salicylic_acid3/7splus/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/7splus/keymaps/via/config.h => keyboards/salicylic_acid3/7splus/keymaps/via/config.h +1 -1
@@ 18,6 18,6 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
M keyboards/salicylic_acid3/ajisai74/keymaps/default/config.h => keyboards/salicylic_acid3/ajisai74/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/ajisai74/keymaps/jis/config.h => keyboards/salicylic_acid3/ajisai74/keymaps/jis/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/ajisai74/keymaps/salicylic/config.h => keyboards/salicylic_acid3/ajisai74/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/ajisai74/keymaps/via/config.h => keyboards/salicylic_acid3/ajisai74/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/ergoarrows/keymaps/default/config.h => keyboards/salicylic_acid3/ergoarrows/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/ergoarrows/keymaps/salicylic/config.h => keyboards/salicylic_acid3/ergoarrows/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/ergoarrows/keymaps/via/config.h => keyboards/salicylic_acid3/ergoarrows/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/getta25/keymaps/default/config.h => keyboards/salicylic_acid3/getta25/keymaps/default/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/getta25/keymaps/oled/config.h => keyboards/salicylic_acid3/getta25/keymaps/oled/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#define OLED_FONT_H "keyboards/getta25/keymaps/oled/glcdfont.c"
M keyboards/salicylic_acid3/jisplit89/keymaps/salicylic/config.h => keyboards/salicylic_acid3/jisplit89/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/nafuda/keymaps/default/config.h => keyboards/salicylic_acid3/nafuda/keymaps/default/config.h +1 -1
@@ 18,6 18,6 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked48/keymaps/default/config.h => keyboards/salicylic_acid3/naked48/keymaps/default/config.h +1 -1
@@ 22,5 22,5 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked48/keymaps/default_with_nafuda/config.h => keyboards/salicylic_acid3/naked48/keymaps/default_with_nafuda/config.h +1 -1
@@ 22,7 22,7 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/salicylic_acid3/naked48/keymaps/default_with_setta21/config.h => keyboards/salicylic_acid3/naked48/keymaps/default_with_setta21/config.h +1 -1
@@ 22,7 22,7 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h => keyboards/salicylic_acid3/naked48/keymaps/salicylic/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/salicylic_acid3/naked48/keymaps/salicylic_with_nafuda/config.h => keyboards/salicylic_acid3/naked48/keymaps/salicylic_with_nafuda/config.h +1 -1
@@ 22,7 22,7 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/salicylic_acid3/naked48/keymaps/salicylic_with_setta21/config.h => keyboards/salicylic_acid3/naked48/keymaps/salicylic_with_setta21/config.h +1 -1
@@ 22,7 22,7 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h => keyboards/salicylic_acid3/naked48/keymaps/scheiklp/config.h +1 -1
@@ 5,5 5,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked48/keymaps/via/config.h => keyboards/salicylic_acid3/naked48/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h => keyboards/salicylic_acid3/naked48/keymaps/via_rgb_matrix/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#ifdef RGBLED_NUM
M keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h => keyboards/salicylic_acid3/naked60/keymaps/333fred/config.h +1 -1
@@ 20,5 20,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
M keyboards/salicylic_acid3/naked60/keymaps/default/config.h => keyboards/salicylic_acid3/naked60/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked60/keymaps/default_with_nafuda/config.h => keyboards/salicylic_acid3/naked60/keymaps/default_with_nafuda/config.h +1 -1
@@ 22,5 22,5 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked60/keymaps/default_with_setta21/config.h => keyboards/salicylic_acid3/naked60/keymaps/default_with_setta21/config.h +1 -1
@@ 22,5 22,5 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked60/keymaps/salicylic/config.h => keyboards/salicylic_acid3/naked60/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_nafuda/config.h => keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_nafuda/config.h +1 -1
@@ 22,5 22,5 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_setta21/config.h => keyboards/salicylic_acid3/naked60/keymaps/salicylic_with_setta21/config.h +1 -1
@@ 22,5 22,5 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked60/keymaps/via/config.h => keyboards/salicylic_acid3/naked60/keymaps/via/config.h +1 -1
@@ 18,6 18,6 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
M keyboards/salicylic_acid3/naked64/keymaps/default/config.h => keyboards/salicylic_acid3/naked64/keymaps/default/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked64/keymaps/default_with_setta21/config.h => keyboards/salicylic_acid3/naked64/keymaps/default_with_setta21/config.h +1 -1
@@ 22,7 22,7 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#define RGBLED_NUM 12 // Number of LEDs
M keyboards/salicylic_acid3/naked64/keymaps/salicylic/config.h => keyboards/salicylic_acid3/naked64/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/naked64/keymaps/salicylic_with_setta21/config.h => keyboards/salicylic_acid3/naked64/keymaps/salicylic_with_setta21/config.h +1 -1
@@ 22,5 22,5 @@
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/nknl7en/keymaps/default/config.h => keyboards/salicylic_acid3/nknl7en/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/nknl7en/keymaps/salicylic/config.h => keyboards/salicylic_acid3/nknl7en/keymaps/salicylic/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/nknl7en/keymaps/via/config.h => keyboards/salicylic_acid3/nknl7en/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/nknl7jp/keymaps/default/config.h => keyboards/salicylic_acid3/nknl7jp/keymaps/default/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/nknl7jp/keymaps/salicylic/config.h => keyboards/salicylic_acid3/nknl7jp/keymaps/salicylic/config.h +1 -1
@@ 18,6 18,6 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#define UNICODE_SELECTED_MODES UNICODE_MODE_WINCOMPOSE
M keyboards/salicylic_acid3/nknl7jp/keymaps/via/config.h => keyboards/salicylic_acid3/nknl7jp/keymaps/via/config.h +1 -1
@@ 18,5 18,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/setta21/keymaps/default/config.h => keyboards/salicylic_acid3/setta21/keymaps/default/config.h +1 -1
@@ 18,6 18,6 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h => keyboards/salicylic_acid3/setta21/keymaps/salicylic/config.h +1 -1
@@ 18,7 18,7 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
#define RGB_MATRIX_LED_COUNT RGBLED_NUM
M keyboards/sofle/keymaps/devdev/config.h => keyboards/sofle/keymaps/devdev/config.h +1 -1
@@ 32,7 32,7 @@
#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#ifdef TAPPING_TERM
#undef TAPPING_TERM
#define TAPPING_TERM 200
M keyboards/sofle/keymaps/rgb_default/config.h => keyboards/sofle/keymaps/rgb_default/config.h +1 -1
@@ 32,7 32,7 @@
#define CUSTOM_LAYER_READ //if you remove this it causes issues - needs better guarding
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#ifdef TAPPING_TERM
#undef TAPPING_TERM
#define TAPPING_TERM 200
M keyboards/sparrow62/keymaps/74th/config.h => keyboards/sparrow62/keymaps/74th/config.h +1 -1
@@ 19,5 19,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/sparrow62/keymaps/default/config.h => keyboards/sparrow62/keymaps/default/config.h +1 -1
@@ 19,5 19,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/sparrow62/keymaps/via/config.h => keyboards/sparrow62/keymaps/via/config.h +1 -1
@@ 19,5 19,5 @@
/* Select hand configuration */
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 180
M keyboards/splitkb/kyria/keymaps/jhelvy/config.h => keyboards/splitkb/kyria/keymaps/jhelvy/config.h +1 -1
@@ 22,7 22,7 @@
#define ENCODER_RESOLUTION 2
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 200
#define AUTO_SHIFT_TIMEOUT 150
M keyboards/splitkb/kyria/keymaps/muppetjones/config.h => keyboards/splitkb/kyria/keymaps/muppetjones/config.h +1 -1
@@ 43,7 43,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Reduce firmware size
// https://thomasbaart.nl/2018/12/01/reducing-firmware-size-in-qmk/
M keyboards/splitkb/kyria/keymaps/ohlin/config.h => keyboards/splitkb/kyria/keymaps/ohlin/config.h +1 -1
@@ 26,4 26,4 @@
// Prevent normal rollover on alphas from accidentally triggering mods.
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD>
\ No newline at end of file
+#define QUICK_TAP_TERM 0
M keyboards/splitkb/kyria/keymaps/pierrec83/config.h => keyboards/splitkb/kyria/keymaps/pierrec83/config.h +1 -1
@@ 44,7 44,7 @@
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Allows to use either side as the master. Look at the documentation for info:
// https://docs.qmk.fm/#/config_options?id=setting-handedness
#define EE_HANDS
M keyboards/splitkb/kyria/keymaps/winternebs/config.h => keyboards/splitkb/kyria/keymaps/winternebs/config.h +1 -1
@@ 27,5 27,5 @@
#define NO_ACTION_MACRO
#define NO_ACTION_FUNCTION
#define NO_ACTION_ONESHOT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define IGNORE_MOD_TAP_INTERRUPT
M keyboards/splitkb/kyria/keymaps/zigotica/config.h => keyboards/splitkb/kyria/keymaps/zigotica/config.h +1 -1
@@ 24,7 24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 350
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define LEADER_PER_KEY_TIMING
#define LEADER_TIMEOUT 300
M keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h => keyboards/unikeyboard/divergetm2/keymaps/xtonhasvim/config.h +1 -1
@@ 3,7 3,7 @@
// help for fast typist+dual function keys?
#define PERMISSIVE_HOLD
// Let me type `ls -l` more quickly.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// where is the cord plugged in?
#define MASTER_RIGHT
M keyboards/yosino58/keymaps/default/config.h => keyboards/yosino58/keymaps/default/config.h +1 -1
@@ 26,7 26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
// #define MASTER_RIGHT
// #define EE_HANDS
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/yosino58/keymaps/sakura/config.h => keyboards/yosino58/keymaps/sakura/config.h +1 -1
@@ 28,7 28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define OLED_DISPLAY_128X64
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 100
#undef RGBLED_NUM
M keyboards/yushakobo/navpad/10/config.h => keyboards/yushakobo/navpad/10/config.h +1 -1
@@ 72,6 72,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define BOOTMAGIC_LITE_COLUMN 0
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 132
#define TAPPING_LAYER_TERM 90
M keyboards/yushakobo/navpad/10_helix_r/config.h => keyboards/yushakobo/navpad/10_helix_r/config.h +1 -1
@@ 107,6 107,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define BOOTMAGIC_LITE_COLUMN 0
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#define TAPPING_TERM 132
#define TAPPING_LAYER_TERM 90
M keyboards/z34/keymaps/zigotica/config.h => keyboards/z34/keymaps/zigotica/config.h +1 -1
@@ 24,5 24,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define TAPPING_TERM 350
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
M => +1 -1
@@ 26,7 26,7 @@
#undef USE_I2C
#undef SSD1306OLED
// #define TAPPING_FORCE_HOLD
// #define QUICK_TAP_TERM 0
// #define TAPPING_TERM 100
#ifdef RGBLIGHT_ENABLE
M quantum/action_tapping.c => quantum/action_tapping.c +6 -13
@@ 25,6 25,7 @@
# define IS_TAPPING_RECORD(r) (IS_TAPPING() && KEYEQ(tapping_key.event.key, (r->event.key)) && tapping_key.keycode == r->keycode)
# endif
# define WITHIN_TAPPING_TERM(e) (TIMER_DIFF_16(e.time, tapping_key.event.time) < GET_TAPPING_TERM(get_record_keycode(&tapping_key, false), &tapping_key))
+# define WITHIN_QUICK_TAP_TERM(e) (TIMER_DIFF_16(e.time, tapping_key.event.time) < GET_QUICK_TAP_TERM(get_record_keycode(&tapping_key, false), &tapping_key))
# ifdef DYNAMIC_TAPPING_TERM_ENABLE
uint16_t g_tapping_term = TAPPING_TERM;
@@ 40,9 41,9 @@ __attribute__((weak)) uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *r
}
# endif
-# ifdef TAPPING_FORCE_HOLD_PER_KEY
-__attribute__((weak)) bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
- return false;
+# ifdef QUICK_TAP_TERM_PER_KEY
+__attribute__((weak)) uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
+ return QUICK_TAP_TERM;
}
# endif
@@ 121,7 122,7 @@ void action_tapping_process(keyrecord_t record) {
* readable. The conditional definition of tapping_keycode and all the
* conditional uses of it are hidden inside macros named TAP_...
*/
-# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(TAPPING_FORCE_HOLD_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
+# if (defined(AUTO_SHIFT_ENABLE) && defined(RETRO_SHIFT)) || defined(PERMISSIVE_HOLD_PER_KEY) || defined(QUICK_TAP_TERM_PER_KEY) || defined(HOLD_ON_OTHER_KEY_PRESS_PER_KEY)
# define TAP_DEFINE_KEYCODE uint16_t tapping_keycode = get_record_keycode(&tapping_key, false)
# else
# define TAP_DEFINE_KEYCODE
@@ 169,14 170,6 @@ void action_tapping_process(keyrecord_t record) {
# define TAP_GET_IGNORE_MOD_TAP_INTERRUPT false
# endif
-# ifdef TAPPING_FORCE_HOLD_PER_KEY
-# define TAP_GET_TAPPING_FORCE_HOLD get_tapping_force_hold(tapping_keycode, &tapping_key)
-# elif defined(TAPPING_FORCE_HOLD)
-# define TAP_GET_TAPPING_FORCE_HOLD true
-# else
-# define TAP_GET_TAPPING_FORCE_HOLD false
-# endif
-
/** \brief Tapping
*
* Rule: Tap key is typed(pressed and released) within TAPPING_TERM.
@@ 385,7 378,7 @@ bool process_tapping(keyrecord_t *keyp) {
if (WITHIN_TAPPING_TERM(event) || MAYBE_RETRO_SHIFTING(event)) {
if (event.pressed) {
if (IS_TAPPING_RECORD(keyp)) {
- if (!TAP_GET_TAPPING_FORCE_HOLD && !tapping_key.tap.interrupted && tapping_key.tap.count > 0) {
+ if (WITHIN_QUICK_TAP_TERM(event) && !tapping_key.tap.interrupted && tapping_key.tap.count > 0) {
// sequential tap.
keyp->tap = tapping_key.tap;
if (keyp->tap.count < 15) keyp->tap.count += 1;
M quantum/action_tapping.h => quantum/action_tapping.h +12 -1
@@ 22,6 22,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# define TAPPING_TERM 200
#endif
+/* period of quick tap(ms) */
+#if !defined(QUICK_TAP_TERM) || QUICK_TAP_TERM > TAPPING_TERM
+# define QUICK_TAP_TERM TAPPING_TERM
+#endif
+
/* tap count needed for toggling a feature */
#ifndef TAPPING_TOGGLE
# define TAPPING_TOGGLE 5
@@ 36,9 41,9 @@ void action_tapping_process(keyrecord_t record);
#endif
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record);
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record);
bool get_permissive_hold(uint16_t keycode, keyrecord_t *record);
bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record);
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record);
bool get_retro_tapping(uint16_t keycode, keyrecord_t *record);
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record);
@@ 53,3 58,9 @@ extern uint16_t g_tapping_term;
#else
# define GET_TAPPING_TERM(keycode, record) (TAPPING_TERM)
#endif
+
+#ifdef QUICK_TAP_TERM_PER_KEY
+# define GET_QUICK_TAP_TERM(keycode, record) get_quick_tap_term(keycode, record)
+#else
+# define GET_QUICK_TAP_TERM(keycode, record) (QUICK_TAP_TERM)
+#endif
R tests/tap_hold_configurations/tapping_force_hold/config.h => tests/tap_hold_configurations/quick_tap/config.h +1 -1
@@ 18,4 18,4 @@
#include "test_common.h"
-#define TAPPING_FORCE_HOLD>
\ No newline at end of file
+#define QUICK_TAP_TERM 100
R tests/tap_hold_configurations/tapping_force_hold/test.mk => tests/tap_hold_configurations/quick_tap/test.mk +0 -0
R tests/tap_hold_configurations/tapping_force_hold/test_action_layer.cpp => tests/tap_hold_configurations/quick_tap/test_action_layer.cpp +2 -0
@@ 40,6 40,8 @@ TEST_F(ActionLayer, LayerTapToggleWithToggleWithKeypress) {
run_one_scan_loop();
expect_layer_state(0);
+ idle_for(QUICK_TAP_TERM + 10);
+
layer_key.press();
run_one_scan_loop();
layer_key.release();
R tests/tap_hold_configurations/tapping_force_hold/test_tap_hold.cpp => tests/tap_hold_configurations/quick_tap/test_quick_tap.cpp +129 -51
@@ 1,4 1,3 @@
-
/* Copyright 2021 Stefan Kerkmann
*
* This program is free software: you can redistribute it and/or modify
@@ 15,6 14,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include "config.h"
#include "keyboard_report_util.hpp"
#include "keycode.h"
#include "test_common.hpp"
@@ 25,19 25,19 @@
using testing::_;
using testing::InSequence;
-class TappingForceHold : public TestFixture {};
+class QuickTap : public TestFixture {};
-TEST_F(TappingForceHold, tap_regular_key_while_mod_tap_key_is_held) {
+TEST_F(QuickTap, tap_regular_key_while_mod_tap_key_is_held) {
TestDriver driver;
InSequence s;
- auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
+ auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
auto regular_key = KeymapKey(0, 2, 0, KC_A);
- set_keymap({mod_tap_hold_key, regular_key});
+ set_keymap({mod_tap_key, regular_key});
- /* Press mod-tap-hold key. */
+ /* Press mod-tap key. */
EXPECT_NO_REPORT(driver);
- mod_tap_hold_key.press();
+ mod_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
@@ 53,9 53,9 @@ TEST_F(TappingForceHold, tap_regular_key_while_mod_tap_key_is_held) {
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release mod-tap-hold key. */
+ /* Release mod-tap key. */
EXPECT_REPORT(driver, (KC_LSFT));
- mod_tap_hold_key.release();
+ mod_tap_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
@@ 67,39 67,39 @@ TEST_F(TappingForceHold, tap_regular_key_while_mod_tap_key_is_held) {
testing::Mock::VerifyAndClearExpectations(&driver);
}
-TEST_F(TappingForceHold, tap_mod_tap_key_while_mod_tap_key_is_held) {
+TEST_F(QuickTap, tap_mod_tap_key_while_mod_tap_key_is_held) {
TestDriver driver;
InSequence s;
- auto first_mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
- auto second_mod_tap_hold_key = KeymapKey(0, 2, 0, RSFT_T(KC_A));
+ auto first_mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
+ auto second_mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_A));
- set_keymap({first_mod_tap_hold_key, second_mod_tap_hold_key});
+ set_keymap({first_mod_tap_key, second_mod_tap_key});
- /* Press first mod-tap-hold key */
+ /* Press first mod-tap key */
EXPECT_NO_REPORT(driver);
- first_mod_tap_hold_key.press();
+ first_mod_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Press second tap-hold key */
+ /* Press second mod-tap key */
EXPECT_NO_REPORT(driver);
- second_mod_tap_hold_key.press();
+ second_mod_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
/* Release second tap-hold key */
EXPECT_NO_REPORT(driver);
- second_mod_tap_hold_key.release();
+ second_mod_tap_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release first mod-tap-hold key */
+ /* Release first mod-tap key */
EXPECT_REPORT(driver, (KC_LSFT));
- first_mod_tap_hold_key.release();
+ first_mod_tap_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Idle for tapping term of first mod tap hold key. */
+ /* Idle for tapping term of first mod-tap key. */
EXPECT_REPORT(driver, (KC_LSFT, KC_A));
EXPECT_REPORT(driver, (KC_LSFT));
EXPECT_EMPTY_REPORT(driver);
@@ 107,18 107,18 @@ TEST_F(TappingForceHold, tap_mod_tap_key_while_mod_tap_key_is_held) {
testing::Mock::VerifyAndClearExpectations(&driver);
}
-TEST_F(TappingForceHold, tap_regular_key_while_layer_tap_key_is_held) {
+TEST_F(QuickTap, tap_regular_key_while_layer_tap_key_is_held) {
TestDriver driver;
InSequence s;
- auto layer_tap_hold_key = KeymapKey(0, 1, 0, LT(1, KC_P));
+ auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_P));
auto regular_key = KeymapKey(0, 2, 0, KC_A);
auto layer_key = KeymapKey(1, 2, 0, KC_B);
- set_keymap({layer_tap_hold_key, regular_key, layer_key});
+ set_keymap({layer_tap_key, regular_key, layer_key});
- /* Press layer-tap-hold key */
+ /* Press layer-tap key */
EXPECT_NO_REPORT(driver);
- layer_tap_hold_key.press();
+ layer_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
@@ 134,80 134,158 @@ TEST_F(TappingForceHold, tap_regular_key_while_layer_tap_key_is_held) {
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release layer-tap-hold key */
+ /* Release layer-tap key */
EXPECT_REPORT(driver, (KC_P));
EXPECT_REPORT(driver, (KC_A, KC_P));
EXPECT_REPORT(driver, (KC_P));
EXPECT_EMPTY_REPORT(driver);
- layer_tap_hold_key.release();
+ layer_tap_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
}
-TEST_F(TappingForceHold, tap_mod_tap_hold_key_two_times) {
+TEST_F(QuickTap, tap_key_and_tap_again_before_quick_tap_term) {
TestDriver driver;
InSequence s;
- auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
+ auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
- set_keymap({mod_tap_hold_key});
+ set_keymap({mod_tap_key});
- /* Press mod-tap-hold key. */
+ /* Press mod-tap key. */
EXPECT_NO_REPORT(driver);
- mod_tap_hold_key.press();
+ mod_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release mod-tap-hold key. */
+ /* Release mod-tap key. */
EXPECT_REPORT(driver, (KC_P));
EXPECT_EMPTY_REPORT(driver);
- mod_tap_hold_key.release();
+ mod_tap_key.release();
+ idle_for(QUICK_TAP_TERM - 10);
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Press mod-tap-hold key again. */
+ /* Press and tap mod-tap key again. */
+ EXPECT_REPORT(driver, (KC_P));
+ mod_tap_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(QuickTap, tap_key_and_hold_again_before_quick_tap_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
+
+ set_keymap({mod_tap_key});
+
+ /* Press mod-tap key. */
EXPECT_NO_REPORT(driver);
- mod_tap_hold_key.press();
+ mod_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release mod-tap-hold key. */
+ /* Release mod-tap key. */
EXPECT_REPORT(driver, (KC_P));
EXPECT_EMPTY_REPORT(driver);
- mod_tap_hold_key.release();
+ mod_tap_key.release();
+ idle_for(QUICK_TAP_TERM - 10);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press and hold mod-tap key again. */
+ EXPECT_REPORT(driver, (KC_P));
+ mod_tap_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Wait until tapping term expired */
+ EXPECT_NO_REPORT(driver);
+ idle_for(TAPPING_TERM);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap key. */
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
}
-TEST_F(TappingForceHold, tap_mod_tap_hold_key_twice_and_hold_on_second_time) {
+
+TEST_F(QuickTap, tap_key_and_tap_again_after_quick_tap_term) {
TestDriver driver;
InSequence s;
- auto mod_tap_hold_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
+ auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
- set_keymap({mod_tap_hold_key});
+ set_keymap({mod_tap_key});
- /* Press mod-tap-hold key. */
+ /* Press mod-tap key. */
EXPECT_NO_REPORT(driver);
- mod_tap_hold_key.press();
+ mod_tap_key.press();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release mod-tap-hold key. */
+ /* Release mod-tap key. */
EXPECT_REPORT(driver, (KC_P));
EXPECT_EMPTY_REPORT(driver);
- mod_tap_hold_key.release();
+ mod_tap_key.release();
+ idle_for(QUICK_TAP_TERM + 10);
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Press mod-tap-hold key again. */
+ /* Press mod-tap key again. */
EXPECT_NO_REPORT(driver);
- mod_tap_hold_key.press();
+ mod_tap_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_key.release();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+}
+
+TEST_F(QuickTap, tap_key_and_hold_again_after_quick_tap_term) {
+ TestDriver driver;
+ InSequence s;
+ auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P));
+
+ set_keymap({mod_tap_key});
+
+ /* Press mod-tap key. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Release mod-tap key. */
+ EXPECT_REPORT(driver, (KC_P));
+ EXPECT_EMPTY_REPORT(driver);
+ mod_tap_key.release();
+ idle_for(QUICK_TAP_TERM + 10);
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Press and hold mod-tap key again. */
+ EXPECT_NO_REPORT(driver);
+ mod_tap_key.press();
+ run_one_scan_loop();
+ testing::Mock::VerifyAndClearExpectations(&driver);
+
+ /* Wait until tapping term expired */
+ EXPECT_REPORT(driver, (KC_LSFT));
idle_for(TAPPING_TERM);
testing::Mock::VerifyAndClearExpectations(&driver);
- /* Release mod-tap-hold key. */
- EXPECT_REPORT(driver, (KC_LEFT_SHIFT));
+ /* Release mod-tap key. */
EXPECT_EMPTY_REPORT(driver);
- mod_tap_hold_key.release();
+ mod_tap_key.release();
run_one_scan_loop();
testing::Mock::VerifyAndClearExpectations(&driver);
}
M users/bcat/config.h => users/bcat/config.h +1 -1
@@ 35,7 35,7 @@
/* Turn off key repeat support of the tap keycode for tap-hold keys, enabling
* holds to work correctly in quick succession after taps.
*/
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
#if defined(OLED_ENABLE)
/* The built-in OLED timeout wakes the OLED screen every time the buffer is
M users/cwebster2/config.h => users/cwebster2/config.h +1 -1
@@ 18,7 18,7 @@
#define TAPPING_TOGGLE 1
#define TAPPING_TERM 200
#define TAPPING_TERM_PER_KEY
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
#undef PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
#define NO_ACTION_ONESHOT
M users/drashna/config.h => users/drashna/config.h +1 -1
@@ 83,7 83,7 @@
#if defined(PER_KEY_TAPPING)
# define IGNORE_MOD_TAP_INTERRUPT_PER_KEY
# define PERMISSIVE_HOLD_PER_KEY
-# define TAPPING_FORCE_HOLD_PER_KEY
+# define QUICK_TAP_TERM_PER_KEY
# define HOLD_ON_OTHER_KEY
# define RETRO_TAPPING_PER_KEY
# define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
M users/drashna/keyrecords/tapping.c => users/drashna/keyrecords/tapping.c +4 -4
@@ 57,14 57,14 @@ __attribute__((weak)) bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrec
}
#endif // IGNORE_MOD_TAP_INTERRUPT_PER_KEY
-#ifdef TAPPING_FORCE_HOLD_PER_KEY
-__attribute__((weak)) bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+#ifdef QUICK_TAP_TERM_PER_KEY
+__attribute__((weak)) uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
-#endif // TAPPING_FORCE_HOLD_PER_KEY
+#endif // QUICK_TAP_TERM_PER_KEY
#ifdef RETRO_TAPPING_PER_KEY
__attribute__((weak)) bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
M users/dshields/config.h => users/dshields/config.h +1 -1
@@ 6,7 6,7 @@
#define ONESHOT_TIMEOUT 3000
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD_PER_KEY
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM_PER_KEY
#define TAPPING_TERM 200
#define BACKLIGHT_BREATHING
#define DYNAMIC_MACRO_NO_NESTING
M users/dshields/dshields.c => users/dshields/dshields.c +3 -4
@@ 29,7 29,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case MT_A:
case MT_S:
@@ 39,9 39,9 @@ bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
case MT_K:
case MT_L:
case MT_SCLN:
- return true;
+ return 0;
default:
- return false;
+ return QUICK_TAP_TERM;
}
}
@@ 55,4 55,3 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
return false;
}
}
-
M users/kuchosauronad0/config.h => users/kuchosauronad0/config.h +1 -1
@@ 70,7 70,7 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define RETRO_TAPPING
#ifndef TAPPING_TOGGLE
M users/manna-harbour_miryoku/config.h => users/manna-harbour_miryoku/config.h +1 -2
@@ 15,7 15,7 @@
#define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-#define TAPPING_FORCE_HOLD
+#define QUICK_TAP_TERM 0
// Auto Shift
#define NO_AUTO_SHIFT_ALPHA
@@ 40,4 40,3 @@
#define COMBO_TERM 200
#define EXTRA_SHORT_COMBOS
#endif
-
M users/muppetjones/config.h => users/muppetjones/config.h +1 -1
@@ 34,7 34,7 @@
# define IGNORE_MOD_TAP_INTERRUPT
// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
-# define TAPPING_FORCE_HOLD
+# define QUICK_TAP_TERM 0
#endif
M users/ridingqwerty/config.h => users/ridingqwerty/config.h +1 -1
@@ 5,7 5,7 @@
#define TAPPING_TERM 175
#define MACRO_TIMER 5
-#define TAPPING_FORCE_HOLD_PER_KEY
+#define QUICK_TAP_TERM_PER_KEY
// testing
#define TAPPING_TERM_PER_KEY
//#define IGNORE_MOD_TAP_INTERRUPT // rolling R3 "zxcv", etc...
M users/ridingqwerty/ridingqwerty.c => users/ridingqwerty/ridingqwerty.c +7 -7
@@ 55,11 55,11 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
}
};
-bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case NM(SCLN):
- return true;
- default:
- return false;
- }
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case NM(SCLN):
+ return 0;
+ default:
+ return QUICK_TAP_TERM;
+ }
}
M users/uqs/config.h => users/uqs/config.h +1 -1
@@ 15,7 15,7 @@
#define TAPPING_TOGGLE 2 // number of taps for a toggle-on-tap
#define TAPPING_TERM 170 // ms to trigger tap
// https://precondition.github.io/home-row-mods
-#define TAPPING_FORCE_HOLD // make tap-then-hold _not_ do key auto repeat
+#define QUICK_TAP_TERM 0 // make tap-then-hold _not_ do key auto repeat
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD // I don't think this works for me, hence I rolled my own implementation.
M users/vosechu/config.h => users/vosechu/config.h +1 -1
@@ 6,7 6,7 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define RETRO_TAPPING
#ifndef TAPPING_TOGGLE
M users/xulkal/config.h => users/xulkal/config.h +3 -2
@@ 1,10 1,11 @@
#pragma once
-#undef TAPPING_FORCE_HOLD
-
#undef TAPPING_TERM
#define TAPPING_TERM 175
+#undef QUICK_TAP_TERM
+#define QUICK_TAP_TERM TAPPING_TERM
+
#define SPACE_CADET_MODIFIER_CARRYOVER
#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_LBRC
#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_RBRC
M users/yet-another-developer/config.h => users/yet-another-developer/config.h +1 -1
@@ 31,7 31,7 @@
// actually sends Ctrl-x. That's bad.)
#define IGNORE_MOD_TAP_INTERRUPT
#undef PERMISSIVE_HOLD
-//#define TAPPING_FORCE_HOLD
+//#define QUICK_TAP_TERM 0
//#define RETRO_TAPPING
#ifndef TAPPING_TOGGLE