diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/config_options.md | 8 | ||||
| -rw-r--r-- | docs/feature_advanced_keycodes.md | 28 |
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 | ||
| 177 | With 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). | 177 | With 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 | |||
| 181 | When 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 | |||
| 183 | For 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 | |||
| 185 | You can disable this behavior by defining `IGNORE_MOD_TAP_INTERRUPT` in `config.h`. | ||
| 186 | |||
| 187 | Note that this only concerns modifiers and not layer switching keys. | ||
| 188 | |||
| 189 | # Hold after tap | ||
| 190 | |||
| 191 | When 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 | |||
| 193 | Example: | ||
| 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 | |||
| 201 | 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. | ||
| 202 | |||
| 203 | 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. | ||
| 204 | |||
| 205 | !> `TAPPING_FORCE_HOLD` will break anything that uses tapping toggles (Such as the `TT` layer keycode, and the One Shot Tapping Toggle). | ||
