aboutsummaryrefslogtreecommitdiff
path: root/docs/tap_hold.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tap_hold.md')
-rw-r--r--docs/tap_hold.md8
1 files changed, 4 insertions, 4 deletions
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 71bff30ba..dbad48fd9 100644
--- a/docs/tap_hold.md
+++ b/docs/tap_hold.md
@@ -67,7 +67,7 @@ An example of a sequence which is affected by the “permissive hold” mode:
67- `KC_L` Up 67- `KC_L` Up
68- `LT(2, KC_A)` Up 68- `LT(2, KC_A)` Up
69 69
70Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). 70Normally, if you do all this within the `TAPPING_TERM` (default: 200ms), this will be registered as `al` by the firmware and host system. With the `PERMISSIVE_HOLD` option enabled, the Layer Tap key is considered as a layer switch if another key is tapped, and the above sequence would be registered as `KC_RGHT` (the mapping of `L` on layer 2). We could describe this sequence as a “nested press” (the modified key's key down and key up events are “nested” between the dual-role key's key down and key up events).
71 71
72However, this slightly different sequence will not be affected by the “permissive hold” mode: 72However, this slightly different sequence will not be affected by the “permissive hold” mode:
73 73
@@ -76,7 +76,7 @@ However, this slightly different sequence will not be affected by the “permiss
76- `LT(2, KC_A)` Up 76- `LT(2, KC_A)` Up
77- `KC_L` Up 77- `KC_L` Up
78 78
79In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the “permissive hold” mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. 79In the sequence above the dual-role key is released before the other key is released, and if that happens within the tapping term, the “permissive hold” mode will still choose the tap action for the dual-role key, and the sequence will be registered as `al` by the host. We could describe this as a “rolling press” (the two keys' key down and key up events behave as if you were rolling a ball across the two keys, first pressing each key down in sequence and then releasing them in the same order).
80 80
81?> The `PERMISSIVE_HOLD` option also affects Mod Tap keys, but this may not be noticeable if you do not also enable the `IGNORE_MOD_TAP_INTERRUPT` option for those keys, because the default handler for Mod Tap keys also considers both the “nested press” and “rolling press” sequences like shown above as a modifier hold, not the tap action. If you do not enable `IGNORE_MOD_TAP_INTERRUPT`, the effect of `PERMISSIVE_HOLD` on Mod Tap keys would be limited to reducing the delay before the key events are made visible to the host. 81?> The `PERMISSIVE_HOLD` option also affects Mod Tap keys, but this may not be noticeable if you do not also enable the `IGNORE_MOD_TAP_INTERRUPT` option for those keys, because the default handler for Mod Tap keys also considers both the “nested press” and “rolling press” sequences like shown above as a modifier hold, not the tap action. If you do not enable `IGNORE_MOD_TAP_INTERRUPT`, the effect of `PERMISSIVE_HOLD` on Mod Tap keys would be limited to reducing the delay before the key events are made visible to the host.
82 82
@@ -247,7 +247,7 @@ To enable `retro tapping`, add the following to your `config.h`:
247 247
248Holding and releasing a dual function key without pressing another key will result in nothing happening. With retro tapping enabled, releasing the key without pressing another will send the original keycode even if it is outside the tapping term. 248Holding and releasing a dual function key without pressing another key will result in nothing happening. With retro tapping enabled, releasing the key without pressing another will send the original keycode even if it is outside the tapping term.
249 249
250For instance, holding and releasing `LT(2, KC_SPACE)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPACE` instead. 250For instance, holding and releasing `LT(2, KC_SPC)` without hitting another key will result in nothing happening. With this enabled, it will send `KC_SPC` instead.
251 251
252For more granular control of this feature, you can add the following to your `config.h`: 252For more granular control of this feature, you can add the following to your `config.h`:
253 253
@@ -260,7 +260,7 @@ You can then add the following function to your keymap:
260```c 260```c
261bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) { 261bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
262 switch (keycode) { 262 switch (keycode) {
263 case LT(2, KC_SPACE): 263 case LT(2, KC_SPC):
264 return true; 264 return true;
265 default: 265 default:
266 return false; 266 return false;