aboutsummaryrefslogtreecommitdiff
path: root/docs/tap_hold.md
diff options
context:
space:
mode:
authorprecondition <57645186+precondition@users.noreply.github.com>2020-09-26 23:11:40 +0000
committerGitHub <noreply@github.com>2020-09-26 19:11:40 -0400
commit28ff51175b6d45ce5a8dbfe7ed6e7a12df3bc8a8 (patch)
tree5550dcb674e15428873fb8d80a3f0e2bbfb40e54 /docs/tap_hold.md
parentc16ee227843dbdb23907fec50fdcad327aa359d7 (diff)
downloadqmk_firmware-28ff51175b6d45ce5a8dbfe7ed6e7a12df3bc8a8.tar.gz
qmk_firmware-28ff51175b6d45ce5a8dbfe7ed6e7a12df3bc8a8.zip
[Docs] Wording & formatting changes in the Tapping Force Hold section of the Tap Hold page + removed trailing whitespaces (#10391)
* Wording & formatting changes in Tapping Force Hold The Permissive Hold and the Ignore Mod Tap Interrupt sections were also modified to remove the quotes around "tapping". * Removed all trailing whitespaces from tap hold doc * "it's simply really:" → "it's simple really:" * "This allows to keep the ability" → "This allows keeping the ability" Used the gerund form of "to keep" in the Tapping Force Hold section of the Tap Hold docs. Co-authored-by: ridingqwerty <george.g.koenig@gmail.com> Co-authored-by: ridingqwerty <george.g.koenig@gmail.com>
Diffstat (limited to 'docs/tap_hold.md')
-rw-r--r--docs/tap_hold.md42
1 files changed, 21 insertions, 21 deletions
diff --git a/docs/tap_hold.md b/docs/tap_hold.md
index 589ec3181..9ffbfde8f 100644
--- a/docs/tap_hold.md
+++ b/docs/tap_hold.md
@@ -1,22 +1,22 @@
1# Tap-Hold Configuration Options 1# Tap-Hold Configuration Options
2 2
3While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people. 3While Tap-Hold options are fantastic, they are not without their issues. We have tried to configure them with reasonable defaults, but that may still cause issues for some people.
4 4
5These options let you modify the behavior of the Tap-Hold keys. 5These options let you modify the behavior of the Tap-Hold keys.
6 6
7## Tapping Term 7## Tapping Term
8 8
9The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. And the exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key. 9The crux of all of the following features is the tapping term setting. This determines what is a tap and what is a hold. And the exact timing for this to feel natural can vary from keyboard to keyboard, from switch to switch, and from key to key.
10 10
11You can set the global time for this by adding the following setting to your `config.h`: 11You can set the global time for this by adding the following setting to your `config.h`:
12 12
13```c 13```c
14#define TAPPING_TERM 200 14#define TAPPING_TERM 200
15``` 15```
16 16
17This setting is defined in milliseconds, and does default to 200ms. This is a good average for a majority of people. 17This setting is defined in milliseconds, and does default to 200ms. This is a good average for a majority of people.
18 18
19For more granular control of this feature, you can add the following to your `config.h`: 19For more granular control of this feature, you can add the following to your `config.h`:
20```c 20```c
21#define TAPPING_TERM_PER_KEY 21#define TAPPING_TERM_PER_KEY
22``` 22```
@@ -45,9 +45,9 @@ As of [PR#1359](https://github.com/qmk/qmk_firmware/pull/1359/), there is a new
45#define PERMISSIVE_HOLD 45#define PERMISSIVE_HOLD
46``` 46```
47 47
48This makes tap and hold keys (like Mod Tap) work better for fast typists, or for high `TAPPING_TERM` settings. 48This makes tap and hold keys (like Mod Tap) work better for fast typists, or for high `TAPPING_TERM` settings.
49 49
50If you press a Mod Tap key, tap another key (press and release) and then release the Mod Tap key, all within the tapping term, it will output the "tapping" function for both keys. 50If you press a Mod Tap key, tap another key (press and release) and then release the Mod Tap key, all within the tapping term, it will output the tapping function for both keys.
51 51
52For Instance: 52For Instance:
53 53
@@ -56,7 +56,7 @@ For Instance:
56- `KC_X` Up 56- `KC_X` Up
57- `SFT_T(KC_A)` Up 57- `SFT_T(KC_A)` Up
58 58
59Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this will be registered as `ax` by the firmware and host system. With permissive hold enabled, this modifies how this is handled by considering the Mod Tap keys as a Mod if another key is tapped, and would registered as `X` (`SHIFT`+`x`). 59Normally, if you do all this within the `TAPPING_TERM` (default: 200ms) this will be registered as `ax` by the firmware and host system. With permissive hold enabled, this modifies how this is handled by considering the Mod Tap keys as a Mod if another key is tapped, and would registered as `X` (`SHIFT`+`x`).
60 60
61?> If you have `Ignore Mod Tap Interrupt` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`. 61?> If you have `Ignore Mod Tap Interrupt` enabled, as well, this will modify how both work. The regular key has the modifier added if the first key is released first or if both keys are held longer than the `TAPPING_TERM`.
62 62
@@ -87,7 +87,7 @@ To enable this setting, add this to your `config.h`:
87#define IGNORE_MOD_TAP_INTERRUPT 87#define IGNORE_MOD_TAP_INTERRUPT
88``` 88```
89 89
90Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. If you press a Mod Tap key, press another key, release the Mod Tap key, and then release the normal key, it would normally output the "tapping" function for both keys. This may not be desirable for rolling combo keys. 90Similar to Permissive Hold, this alters how the firmware processes inputs for fast typists. If you press a Mod Tap key, press another key, release the Mod Tap key, and then release the normal key, it would normally output the tapping function for both keys. This may not be desirable for rolling combo keys.
91 91
92Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_TERM` to trigger the hold function (the mod). 92Setting `Ignore Mod Tap Interrupt` requires holding both keys for the `TAPPING_TERM` to trigger the hold function (the mod).
93 93
@@ -126,27 +126,27 @@ bool get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record) {
126 126
127## Tapping Force Hold 127## Tapping Force Hold
128 128
129To enable `tapping force hold`, add the following to your `config.h`: 129To enable `tapping force hold`, add the following to your `config.h`:
130 130
131```c 131```c
132#define TAPPING_FORCE_HOLD 132#define TAPPING_FORCE_HOLD
133``` 133```
134 134
135When 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. 135When 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.
136 136
137Example: 137Example:
138 138
139- SFT_T(KC_A) Down 139- `SFT_T(KC_A)` Down
140- SFT_T(KC_A) Up 140- `SFT_T(KC_A)` Up
141- SFT_T(KC_A) Down 141- `SFT_T(KC_A)` Down
142- wait more than tapping term... 142- wait until the tapping term expires...
143- SFT_T(KC_A) Up 143- `SFT_T(KC_A)` Up
144 144
145With 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. 145With 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.
146 146
147With `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. 147With `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.
148 148
149!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle). 149!> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tap Toggle).
150 150
151For more granular control of this feature, you can add the following to your `config.h`: 151For more granular control of this feature, you can add the following to your `config.h`:
152 152
@@ -169,7 +169,7 @@ bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
169 169
170## Retro Tapping 170## Retro Tapping
171 171
172To enable `retro tapping`, add the following to your `config.h`: 172To enable `retro tapping`, add the following to your `config.h`:
173 173
174```c 174```c
175#define RETRO_TAPPING 175#define RETRO_TAPPING
@@ -179,11 +179,11 @@ Holding and releasing a dual function key without pressing another key will resu
179 179
180For 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. 180For 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.
181 181
182## Why do we include the key record for the per key functions? 182## Why do we include the key record for the per key functions?
183 183
184One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that. 184One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that.
185 185
186Well, it's simply really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.row == 3)` instead of checking a whole bunch of keycodes. Which is especially good for those people using the Tap Hold type keys on the home row. So you could fine tune those to not interfere with your normal typing. 186Well, it's simple really: customization. But specifically, it depends on how your keyboard is wired up. For instance, if each row is actually using a row in the keyboard's matrix, then it may be simpler to use `if (record->event.row == 3)` instead of checking a whole bunch of keycodes. Which is especially good for those people using the Tap Hold type keys on the home row. So you could fine tune those to not interfere with your normal typing.
187 187
188## Why is there no `*_kb` or `*_user` functions?! 188## Why is there no `*_kb` or `*_user` functions?!
189 189