aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Schodet <nico@ni.fr.eu.org>2018-07-06 17:12:46 +0200
committerDrashna Jaelre <drashna@live.com>2018-07-06 08:12:46 -0700
commit7fef5ca24047918e54ac5eac8b5b4f65f80d4f39 (patch)
tree207d068760b7df9e309357460be00fb06be510bb
parent8906e62c1f22a731616e6bcee2d9d9c334fc34d5 (diff)
downloadqmk_firmware-7fef5ca24047918e54ac5eac8b5b4f65f80d4f39.tar.gz
qmk_firmware-7fef5ca24047918e54ac5eac8b5b4f65f80d4f39.zip
Add documentation for TAPPING_FORCE_HOLD (#2957) (#3320)
Also improve documentation for related settings.
-rw-r--r--docs/config_options.md8
-rw-r--r--docs/feature_advanced_keycodes.md28
2 files changed, 33 insertions, 3 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index 8cdcc97e4..42b6060d6 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -123,21 +123,23 @@ If you define these options you will enable the associated feature, which may in
123## Behaviors That Can Be Configured 123## Behaviors That Can Be Configured
124 124
125* `#define TAPPING_TERM 200` 125* `#define TAPPING_TERM 200`
126 * how long before a tap becomes a hold 126 * how long before a tap becomes a hold, if set above 500, a key tapped during the tapping term will turn it into a hold too
127* `#define RETRO_TAPPING` 127* `#define RETRO_TAPPING`
128 * tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release 128 * tap anyway, even after TAPPING_TERM, if there was no other key interruption between press and release
129* `#define TAPPING_TOGGLE 2` 129* `#define TAPPING_TOGGLE 2`
130 * how many taps before triggering the toggle 130 * how many taps before triggering the toggle
131* `#define PERMISSIVE_HOLD` 131* `#define PERMISSIVE_HOLD`
132 * makes tap and hold keys work better for fast typers who don't want tapping term set above 500 132 * makes tap and hold keys work better for fast typers who don't want tapping term set above 500
133* `#define IGNORE_MOD_TAP_INTERRUPT`
134 * makes it possible to do rolling combos (zx) with keys that convert to other keys on hold
135* `#define TAPPING_FORCE_HOLD`
136 * makes it possible to use a dual role key as modifier shortly after having been tapped
133* `#define LEADER_TIMEOUT 300` 137* `#define LEADER_TIMEOUT 300`
134 * how long before the leader key times out 138 * how long before the leader key times out
135* `#define ONESHOT_TIMEOUT 300` 139* `#define ONESHOT_TIMEOUT 300`
136 * how long before oneshot times out 140 * how long before oneshot times out
137* `#define ONESHOT_TAP_TOGGLE 2` 141* `#define ONESHOT_TAP_TOGGLE 2`
138 * how many taps before oneshot toggle is triggered 142 * how many taps before oneshot toggle is triggered
139* `#define IGNORE_MOD_TAP_INTERRUPT`
140 * makes it possible to do rolling combos (zx) with keys that convert to other keys on hold
141* `#define QMK_KEYS_PER_SCAN 4` 143* `#define QMK_KEYS_PER_SCAN 4`
142 * Allows sending more than one key per scan. By default, only one key event gets 144 * Allows sending more than one key per scan. By default, only one key event gets
143 sent via `process_record()` per scan. This has little impact on most typing, but 145 sent via `process_record()` per scan. This has little impact on most typing, but
diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md
index aeb7ce1bf..a4b681ec1 100644
--- a/docs/feature_advanced_keycodes.md
+++ b/docs/feature_advanced_keycodes.md
@@ -175,3 +175,31 @@ Example: (Tapping Term = 200ms)
175- SHFT_T(KC_A) Up 175- SHFT_T(KC_A) Up
176 176
177With defaults, if above is typed within tapping term, this will emit `ax`. With permissive hold, if above is typed within tapping term, this will emit `X` (so, Shift+X). 177With defaults, if above is typed within tapping term, this will emit `ax`. With permissive hold, if above is typed within tapping term, this will emit `X` (so, Shift+X).
178
179# Mod tap interrupt
180
181When a dual role key used for a modifier is quickly followed by another keys, it is interpreted as held even before the tapping term elapsed. This is a problem if a key is used for example inside a rolling combo because the second key will be pressed before the first key is released.
182
183For example, when trying to type the rolling combo "zx" and z being configured to send Ctrl when hold, z rapidly followed by x actually sends Ctrl-x. That's bad.
184
185You can disable this behavior by defining `IGNORE_MOD_TAP_INTERRUPT` in `config.h`.
186
187Note that this only concerns modifiers and not layer switching keys.
188
189# Hold after tap
190
191When the user holds a key after tap, this repeats the tapped key rather to hold a modifier key. This allows to use auto repeat for the tapped key. If you prefer to hold a modifier instead, define `TAPPING_FORCE_HOLD` in `config.h`.
192
193Example:
194
195- SHFT_T(KC_A) Down
196- SHFT_T(KC_A) Up
197- SHFT_T(KC_A) Down
198- wait more than tapping term...
199- SHFT_T(KC_A) Up
200
201With 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.
202
203With `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.
204
205!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle).