Skip to content

Commit a3f9992

Browse files
authored
docs: fix typos (#18671)
1 parent 2762b45 commit a3f9992

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

docs/tap_hold.md

+15-15
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ You can set the global time for this by adding the following setting to your `co
1616
#define TAPPING_TERM 200
1717
```
1818
19-
This setting is defined in milliseconds, and does default to 200ms. This is a good average for a majority of people.
19+
This setting is defined in milliseconds and defaults to 200ms. This is a good average for the majority of people.
2020
2121
For more granular control of this feature, you can add the following to your `config.h`:
2222
```c
@@ -50,7 +50,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
5050
5151
Set the tapping term as usual with `#define TAPPING_TERM <value>` in `config.h` and add `DYNAMIC_TAPPING_TERM_ENABLE = yes` in `rules.mk`. Then, place the above three keys somewhere in your keymap and flash the new firmware onto your board.
5252
53-
Now, you can try using your dual-role keys, such as layer-taps and mod-taps, and use `DT_DOWN` and `DT_UP` to adjust the tapping term immediately. If you find that you frequently trigger the modifier of your mod-tap(s) by accident for example, that's a sign that your tapping term may be too low so tap `DT_UP` a few times to increase the tapping term until that no longer happens. On the flip side, if you get superfluous characters when you actually intended to momentarily activate a layer, tap `DT_DOWN` to lower the tapping term. Do note that these keys affect the *global* tapping term, you cannot change the tapping term of a specific key on the fly.
53+
Now, you can try using your dual-role keys, such as layer-taps and mod-taps, and use `DT_DOWN` and `DT_UP` to adjust the tapping term immediately. If you find that you frequently trigger the modifier of your mod-tap(s) by accident, for example, that's a sign that your tapping term may be too low so tap `DT_UP` a few times to increase the tapping term until that no longer happens. On the flip side, if you get superfluous characters when you actually intended to momentarily activate a layer, tap `DT_DOWN` to lower the tapping term. Do note that these keys affect the *global* tapping term, you cannot change the tapping term of a specific key on the fly.
5454
5555
Once you're satisfied with the current tapping term value, open `config.h` and replace whatever value you first wrote for the tapping term by the output of the `DT_PRNT` key.
5656
@@ -97,7 +97,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
9797

9898
In order for this feature to be effective if you use per-key tapping terms, you need to make a few changes to the syntax of the `get_tapping_term` function. All you need to do is replace every occurrence of `TAPPING_TERM` in the `get_tapping_term` function by lowercase `g_tapping_term`. If you don't do that, you will still see the value typed by `DT_PRNT` go up and down as you configure the tapping term on the fly but you won't feel those changes as they don't get applied. If you can go as low as 10ms and still easily trigger the tap function of a dual-role key, that's a sign that you forgot to make the necessary changes to your `get_tapping_term` function.
9999

100-
For instance, here's how the example `get_tapping_term` shown earlier should look like after the transformation:
100+
For instance, here's how the example `get_tapping_term` shown earlier should look after the transformation:
101101

102102
```c
103103
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
@@ -112,7 +112,7 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
112112
}
113113
```
114114
115-
The reason being that `TAPPING_TERM` is a macro that expands to a constant integer and thus cannot be changed at runtime whereas `g_tapping_term` is a variable whose value can be changed at runtime. If you want, you can temporarily enable `DYNAMIC_TAPPING_TERM_ENABLE` to find a suitable tapping term value and then disable that feature and revert back to using the classic syntax for per-key tapping term settings. In case you need to access the tapping term from elsewhere in your code, you can use the `GET_TAPPING_TERM(keycode, record)` macro. This macro will expand to whatever is the appropriate access pattern given the current configuration.
115+
The reason is that `TAPPING_TERM` is a macro that expands to a constant integer and thus cannot be changed at runtime whereas `g_tapping_term` is a variable whose value can be changed at runtime. If you want, you can temporarily enable `DYNAMIC_TAPPING_TERM_ENABLE` to find a suitable tapping term value and then disable that feature and revert back to using the classic syntax for per-key tapping term settings. In case you need to access the tapping term from elsewhere in your code, you can use the `GET_TAPPING_TERM(keycode, record)` macro. This macro will expand to whatever is the appropriate access pattern given the current configuration.
116116
117117
## Tap-Or-Hold Decision Modes
118118
@@ -174,7 +174,7 @@ Example sequence 3 (Mod Tap):
174174
| +--------------+ | |
175175
+---------------------------|--------+
176176
```
177-
Based previous examples, you might have expected the output of the above sequence to be `KC_A` `KC_X`
177+
Based on previous examples, you might have expected the output of the above sequence to be `KC_A` `KC_X`
178178
since `SFT_T(KC_A)` is NOT held longer than the `TAPPING_TERM`.
179179
However, the actual output would be capital `X` (`SHIFT` + `x`) due to reasons
180180
explained under [Ignore Mod Tap Interrupt](#ignore-mod-tap-interrupt).
@@ -193,7 +193,7 @@ This makes tap and hold keys (like Layer Tap) work better for fast typists, or f
193193

194194
If you press a dual-role key, tap another key (press and release) and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `PERMISSIVE_HOLD` option is enabled, the dual-role key will perform its hold action instead.
195195

196-
An example of a sequence which is affected by the “permissive hold” mode:
196+
An example of a sequence that is affected by the “permissive hold” mode:
197197

198198
- `LT(2, KC_A)` Down
199199
- `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2)
@@ -270,7 +270,7 @@ This mode makes tap and hold keys (like Layer Tap) work better for fast typists,
270270

271271
If you press a dual-role key, press another key, and then release the dual-role key, all within the tapping term, by default the dual-role key will perform its tap action. If the `HOLD_ON_OTHER_KEY_PRESS` option is enabled, the dual-role key will perform its hold action instead.
272272

273-
An example of a sequence which is affected by the “hold on other key press” mode, but not by the “permissive hold” mode:
273+
An example of a sequence that is affected by the “hold on other key press” mode, but not by the “permissive hold” mode:
274274

275275
- `LT(2, KC_A)` Down
276276
- `KC_L` Down (the `L` key is also mapped to `KC_RGHT` on layer 2)
@@ -325,11 +325,11 @@ To enable this setting, add this to your `config.h`:
325325

326326
?> This option affects only the Mod Tap keys; it does not affect other dual-role keys such as Layer Tap.
327327

328-
By default the tap-or-hold decision for Mod Tap keys strongly prefers the hold action. If you press a Mod Tap key, then press another key while still holding the Mod Tap key down, the Mod Tap press will be handled as a modifier hold even if the Mod Tap key is then released within the tapping term, and irrespective of the order in which those keys are released. Using options such as `PERMISSIVE_HOLD` or `HOLD_ON_OTHER_KEY_PRESS` will not affect the functionality of Mod Tap keys in a major way (these options would still affect the delay until the common code for dual-role keys finishes its tap-or-hold decision, but then the special code for Mod Tap keys will override the result of that decision and choose the hold action if another key was pressed). In fact, by default the tap-or-hold decision for Mod Tap keys is done in the same way as if the `HOLD_ON_OTHER_KEY_PRESS` option was enabled, but without the decreased delay provided by `HOLD_ON_OTHER_KEY_PRESS`.
328+
By default, the tap-or-hold decision for Mod Tap keys strongly prefers the hold action. If you press a Mod Tap key, then press another key while still holding the Mod Tap key down, the Mod Tap press will be handled as a modifier hold even if the Mod Tap key is then released within the tapping term, and irrespective of the order in which those keys are released. Using options such as `PERMISSIVE_HOLD` or `HOLD_ON_OTHER_KEY_PRESS` will not affect the functionality of Mod Tap keys in a major way (these options would still affect the delay until the common code for dual-role keys finishes its tap-or-hold decision, but then the special code for Mod Tap keys will override the result of that decision and choose the hold action if another key was pressed). In fact, by default, the tap-or-hold decision for Mod Tap keys is done in the same way as if the `HOLD_ON_OTHER_KEY_PRESS` option was enabled, but without the decreased delay provided by `HOLD_ON_OTHER_KEY_PRESS`.
329329

330330
If the `IGNORE_MOD_TAP_INTERRUPT` option is enabled, Mod Tap keys are no longer treated as a special case, and their behavior will match the behavior of other dual-role keys such as Layer Tap. Then the behavior of Mod Tap keys can be further tuned using other options such as `PERMISSIVE_HOLD` or `HOLD_ON_OTHER_KEY_PRESS`.
331331

332-
An example of a sequence which will be affected by the `IGNORE_MOD_TAP_INTERRUPT` option (assuming that options like `PERMISSIVE_HOLD` or `HOLD_ON_OTHER_KEY_PRESS` are not enabled):
332+
An example of a sequence that will be affected by the `IGNORE_MOD_TAP_INTERRUPT` option (assuming that options like `PERMISSIVE_HOLD` or `HOLD_ON_OTHER_KEY_PRESS` are not enabled):
333333

334334
- `SFT_T(KC_A)` Down
335335
- `KC_X` Down
@@ -350,7 +350,7 @@ An example of a sequence which will be affected by the `IGNORE_MOD_TAP_INTERRUPT
350350

351351
Normally, this would send a capital `X` (`SHIFT`+`x`), even if the sequence is performed faster than the `TAPPING_TERM`. However, if the `IGNORE_MOD_TAP_INTERRUPT` option is enabled, the `SFT_T(KC_A)` key must be held longer than the `TAPPING_TERM` to register the hold action. A quick tap will output `ax` in this case, while a hold will still output a capital `X` (`SHIFT`+`x`).
352352

353-
However, if the `HOLD_ON_OTHER_KEY_PRESS` option is enabled in addition to `IGNORE_MOD_TAP_INTERRUPT`, the above sequence will again send a capital `X` (`SHIFT`+`x`) even if performed faster that the `TAPPING_TERM`. The difference from the default configuration is that by default the host will receive the key events only after the `SFT_T(KC_A)` key is released, but with the `HOLD_ON_OTHER_KEY_PRESS` option the host will start receiving key events when the `KC_X` key is pressed.
353+
However, if the `HOLD_ON_OTHER_KEY_PRESS` option is enabled in addition to `IGNORE_MOD_TAP_INTERRUPT`, the above sequence will again send a capital `X` (`SHIFT`+`x`) even if performed faster than the `TAPPING_TERM`. The difference from the default configuration is that by default the host will receive the key events only after the `SFT_T(KC_A)` key is released, but with the `HOLD_ON_OTHER_KEY_PRESS` option, the host will start receiving key events when the `KC_X` key is pressed.
354354

355355
For more granular control of this feature, you can add the following to your `config.h`:
356356

@@ -393,7 +393,7 @@ Example:
393393
- wait until the tapping term expires...
394394
- `SFT_T(KC_A)` Up
395395

396-
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.
396+
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.
397397

398398
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.
399399

@@ -426,7 +426,7 @@ To enable `retro tapping`, add the following to your `config.h`:
426426
#define RETRO_TAPPING
427427
```
428428

429-
Holding 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.
429+
Holding 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.
430430

431431
For 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.
432432

@@ -469,8 +469,8 @@ bool get_retro_tapping(uint16_t keycode, keyrecord_t *record) {
469469
470470
One 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.
471471
472-
Well, 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.
472+
Well, 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.
473473
474-
## Why is there no `*_kb` or `*_user` functions?!
474+
## Why are there no `*_kb` or `*_user` functions?!
475475
476-
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard level function. Only user level functions are useful here, so no need to mark them as such.
476+
Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum or keyboard-level function. Only user-level functions are useful here, so no need to mark them as such.

0 commit comments

Comments
 (0)