diff options
author | Pete Sevander <[email protected]> | 2021-08-06 02:44:57 +0300 |
---|---|---|
committer | GitHub <[email protected]> | 2021-08-06 09:44:57 +1000 |
commit | 7e983796e18e7401c062c158f23966aeb7b1405b (patch) | |
tree | 88d6897d7ca4f6103f03c1941dac6736ba477361 /docs/config_options.md | |
parent | 07553b41f0a03ca6549c09cecf9cd3dec7332346 (diff) | |
download | qmk_firmware-7e983796e18e7401c062c158f23966aeb7b1405b.tar.gz qmk_firmware-7e983796e18e7401c062c158f23966aeb7b1405b.zip |
Process combos earlier & overlapping combos (#8591)
* Combo processing improvements.
Now it is possible to use ModTap and LayerTap keys as part of combos.
Overlapping combos also don't trigger all the combos, just exactly the
one that you press.
New settings:
- COMBO_MUST_HOLD_MODS
- COMBO_MOD_TERM
- COMBO_TERM_PER_COMBO
- COMBO_MUST_HOLD_PER_COMBO
- COMBO_STRICT_TIMER
- COMBO_NO_TIMER
* Remove the size flags from combo_t struct boolean members.
This in the end actually saves space as the members are accessed so many
times. The amount of operations needed to access the bits uses more
memory than setting the size saves.
* Fix `process_combo_key_release` not called correctly with tap-only combos
* Fix not passing a pointer when NO_ACTION_TAPPING is defined.
* Docs for `COMBO_ONLY_FROM_LAYER`
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Update quantum/process_keycode/process_combo.c
Co-authored-by: precondition <[email protected]>
* Add `EXTRA_SHORT_COMBOS` option.
Stuff combo's `disabled` and `active` flags into `state`. Possibly can
save some space.
* Add more examples and clarify things with dict management system.
- Simple examples now has a combo that has modifiers included.
- The slightly more advanced examples now are actually more advanced
instead of just `tap_code16(<modded-keycode>)`.
- Added a note that `COMBO_ACTION`s are not needed anymore as you can
just use custom keycodes.
- Added a note that the `g/keymap_combo.h` macros use the
`process_combo_event` function and that it is not usable in one's
keymap afterwards.
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Change "the" combo action example to "email" example.
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Fix sneaky infinite loop with `combo_disable()`
No need to call `dump_key_buffer` when disabling combos because the
buffer is either being dumped if a combo-key was pressed, or the buffer is empty
if a non-combo-key is pressed.
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
* Update docs/feature_combo.md
Co-authored-by: precondition <[email protected]>
Co-authored-by: precondition <[email protected]>
Co-authored-by: Drashna Jaelre <[email protected]>
Diffstat (limited to 'docs/config_options.md')
-rw-r--r-- | docs/config_options.md | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/docs/config_options.md b/docs/config_options.md index 0c98b31010..78c1f70fd7 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -188,9 +188,21 @@ If you define these options you will enable the associated feature, which may in few ms of delay from this. But if you're doing chording on something with 3-4ms scan times? You probably want this. * `#define COMBO_COUNT 2` - * Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. + * Set this to the number of combos that you're using in the [Combo](feature_combo.md) feature. Or leave it undefined and programmatically set the count. * `#define COMBO_TERM 200` * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined. +* `#define COMBO_MUST_HOLD_MODS` + * Flag for enabling extending timeout on Combos containing modifers +* `#define COMBO_MOD_TERM 200` + * Allows for extending COMBO_TERM for mod keys while mid-combo. +* `#define COMBO_MUST_HOLD_PER_COMBO` + * Flag to enable per-combo COMBO_TERM extension and `get_combo_must_hold()` function +* `#define COMBO_TERM_PER_COMBO` + * Flag to enable per-combo COMBO_TERM extension and `get_combo_term()` function +* `#define COMBO_STRICT_TIMER` + * Only start the combo timer on the first key press instead of on all key presses. +* `#define COMBO_NO_TIMER` + * Disable the combo timer completely for relaxed combos. * `#define TAP_CODE_DELAY 100` * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds. * `#define TAP_HOLD_CAPS_DELAY 80` |