summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenré Botha <henrebotha@gmail.com>2021-11-19 05:34:22 +0100
committerGitHub <noreply@github.com>2021-11-18 20:34:22 -0800
commita5155b98fb29ad4ea6de73f39a0d413d79883356 (patch)
tree450b933e1484d9e1d210c63a7cfc3312fa656b89
parent50dc313e809ae1e5e7775d90fd1cb43152091e48 (diff)
downloadqmk_firmware-a5155b98fb29ad4ea6de73f39a0d413d79883356.tar.gz
qmk_firmware-a5155b98fb29ad4ea6de73f39a0d413d79883356.zip
[Docs] Clarify "nested" and "rolling" key sequences (#14655)
-rw-r--r--docs/tap_hold.md4
1 files changed, 2 insertions, 2 deletions
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 5a4c209617..dbad48fd9f 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:
- `KC_L` Up
- `LT(2, KC_A)` Up
-Normally, 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).
+Normally, 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).
However, this slightly different sequence will not be affected by the “permissive hold” mode:
@@ -76,7 +76,7 @@ However, this slightly different sequence will not be affected by the “permiss
- `LT(2, KC_A)` Up
- `KC_L` Up
-In 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.
+In 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).
?> 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.