<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qmk_firmware/tmk_core/common/action_tapping.c, branch master</title>
<subtitle>QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)</subtitle>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/'/>
<entry>
<title>Migrate platform independent code from tmk_core -&gt; quantum (#13673)</title>
<updated>2021-08-17T23:18:58+00:00</updated>
<author>
<name>Joel Challis</name>
<email>git@zvecr.com</email>
</author>
<published>2021-08-17T23:18:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=b8e913c8db73ebf890e4604ee41991a34354a600'/>
<id>b8e913c8db73ebf890e4604ee41991a34354a600</id>
<content type='text'>
* Migrate action|keyboard|keycode|eeconfig from tmk_core -&gt; quantum</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Migrate action|keyboard|keycode|eeconfig from tmk_core -&gt; quantum</pre>
</div>
</content>
</entry>
<entry>
<title>Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404)</title>
<updated>2021-08-06T23:16:26+00:00</updated>
<author>
<name>Sergey Vlasov</name>
<email>sigprof@gmail.com</email>
</author>
<published>2021-08-06T23:16:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=610035dce8f4f7010779e61e1cb590eebc8cea46'/>
<id>610035dce8f4f7010779e61e1cb590eebc8cea46</id>
<content type='text'>
* Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys

Implement an additional option for dual-role keys which converts the
dual-role key press into a hold action immediately when another key is
pressed (this is different from the existing PERMISSIVE_HOLD option,
which selects the hold action when another key is tapped (pressed and
then released) while the dual-role key is pressed).  The Mod-Tap keys
already behave in a similar way, unless the IGNORE_MOD_TAP_INTERRUPT
option is enabled (but with some additional delays); the added option
makes this behavior available for all other kinds of dual-role keys.

* [Docs] Update tap-hold docs for HOLD_ON_OTHER_KEY_PRESS

Document the newly added HOLD_ON_OTHER_KEY_PRESS option and update the
documentation for closely related options (PERMISSIVE_HOLD and
IGNORE_MOD_TAP_INTERRUPT).

Use Layer Tap instead of Mod Tap in examples for PERMISSIVE_HOLD and
HOLD_ON_OTHER_KEY_PRESS, because the effect of using these options with
Mod Tap keys is mostly invisible without IGNORE_MOD_TAP_INTERRUPT.

Add comments before return statements in sample implementations of
`get_ignore_mod_tap_interrupt()`, `get_hold_on_other_key_press()` and
`get_permissive_hold()`.

Thanks to @Erovia and @precondition for comments and suggestions to
improve the documentation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys

Implement an additional option for dual-role keys which converts the
dual-role key press into a hold action immediately when another key is
pressed (this is different from the existing PERMISSIVE_HOLD option,
which selects the hold action when another key is tapped (pressed and
then released) while the dual-role key is pressed).  The Mod-Tap keys
already behave in a similar way, unless the IGNORE_MOD_TAP_INTERRUPT
option is enabled (but with some additional delays); the added option
makes this behavior available for all other kinds of dual-role keys.

* [Docs] Update tap-hold docs for HOLD_ON_OTHER_KEY_PRESS

Document the newly added HOLD_ON_OTHER_KEY_PRESS option and update the
documentation for closely related options (PERMISSIVE_HOLD and
IGNORE_MOD_TAP_INTERRUPT).

Use Layer Tap instead of Mod Tap in examples for PERMISSIVE_HOLD and
HOLD_ON_OTHER_KEY_PRESS, because the effect of using these options with
Mod Tap keys is mostly invisible without IGNORE_MOD_TAP_INTERRUPT.

Add comments before return statements in sample implementations of
`get_ignore_mod_tap_interrupt()`, `get_hold_on_other_key_press()` and
`get_permissive_hold()`.

Thanks to @Erovia and @precondition for comments and suggestions to
improve the documentation.</pre>
</div>
</content>
</entry>
<entry>
<title>Process combos earlier &amp; overlapping combos (#8591)</title>
<updated>2021-08-05T23:44:57+00:00</updated>
<author>
<name>Pete Sevander</name>
<email>pete.sevander@gmail.com</email>
</author>
<published>2021-08-05T23:44:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=7e983796e18e7401c062c158f23966aeb7b1405b'/>
<id>7e983796e18e7401c062c158f23966aeb7b1405b</id>
<content type='text'>
* 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 &lt;57645186+precondition@users.noreply.github.com&gt;

* Update quantum/process_keycode/process_combo.c

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* 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(&lt;modded-keycode&gt;)`.
- 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 &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Change "the" combo action example to "email" example.

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* 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 &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;
Co-authored-by: Drashna Jaelre &lt;drashna@live.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 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 &lt;57645186+precondition@users.noreply.github.com&gt;

* Update quantum/process_keycode/process_combo.c

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* 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(&lt;modded-keycode&gt;)`.
- 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 &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* Change "the" combo action example to "email" example.

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

* 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 &lt;57645186+precondition@users.noreply.github.com&gt;

* Update docs/feature_combo.md

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;

Co-authored-by: precondition &lt;57645186+precondition@users.noreply.github.com&gt;
Co-authored-by: Drashna Jaelre &lt;drashna@live.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Format code according to conventions (#12380)</title>
<updated>2021-03-25T12:18:59+00:00</updated>
<author>
<name>github-actions[bot]</name>
<email>41898282+github-actions[bot]@users.noreply.github.com</email>
</author>
<published>2021-03-25T12:18:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=0a056cfd811ea92384185f06a55b0051948f4860'/>
<id>0a056cfd811ea92384185f06a55b0051948f4860</id>
<content type='text'>
Co-authored-by: QMK Bot &lt;hello@qmk.fm&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: QMK Bot &lt;hello@qmk.fm&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fix permissive hold when both PERMISSIVE_HOLD_PER_KEY and TAPPING_TERM_PER_KEY are defined (#12125)</title>
<updated>2021-03-25T12:13:41+00:00</updated>
<author>
<name>purple-rw</name>
<email>32964049+purple-rw@users.noreply.github.com</email>
</author>
<published>2021-03-25T12:13:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=5c1442766c10e98a0152b847ccf4d48899558cea'/>
<id>5c1442766c10e98a0152b847ccf4d48899558cea</id>
<content type='text'>
Co-authored-by: checyr &lt;32964049+checyr@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: checyr &lt;32964049+checyr@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>2020 May 30 Breaking Changes Update (#9215)</title>
<updated>2020-05-30T20:14:59+00:00</updated>
<author>
<name>James Young</name>
<email>18669334+noroadsleft@users.noreply.github.com</email>
</author>
<published>2020-05-30T20:14:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=fced377ac007d27f2650ccffbe0b18abcdcfe23d'/>
<id>fced377ac007d27f2650ccffbe0b18abcdcfe23d</id>
<content type='text'>
* Branch point for 2020 May 30 Breaking Change

* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)

* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)

* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)

* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)

* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)

* Convert V-USB usbdrv to a submodule (#8321)

* Unify Tap Hold functions and documentation (#8348)

* Changing board names to prevent confusion (#8412)

* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)

* Move spaceman keyboards (#8830)

* Migrate miscellaneous `fn_actions` entries (#8977)

* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)

* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)

* Refactor Lily58 to use split_common (#6260)

* Refactor zinc to use split_common (#7114)

* Add a message if bin/qmk doesn't work (#9000)

* Fix conflicting types for 'tfp_printf' (#8269)

* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based &amp; small internals cleanup (#6480)

* Refactor and updates to TKC1800 code (#8472)

* Switch to qmk forks for everything (#9019)

* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)

* Audio enable corrections (2/3) (#8903)

* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)

* Audio enable corrections (Part 4) (#8974)

* Fix typo from PR7114 (#9171)

* Augment future branch Changelogs (#8978)

* Revert "Branch point for 2020 May 30 Breaking Change"
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Branch point for 2020 May 30 Breaking Change

* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)

* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)

* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)

* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)

* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)

* Convert V-USB usbdrv to a submodule (#8321)

* Unify Tap Hold functions and documentation (#8348)

* Changing board names to prevent confusion (#8412)

* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)

* Move spaceman keyboards (#8830)

* Migrate miscellaneous `fn_actions` entries (#8977)

* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)

* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)

* Refactor Lily58 to use split_common (#6260)

* Refactor zinc to use split_common (#7114)

* Add a message if bin/qmk doesn't work (#9000)

* Fix conflicting types for 'tfp_printf' (#8269)

* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based &amp; small internals cleanup (#6480)

* Refactor and updates to TKC1800 code (#8472)

* Switch to qmk forks for everything (#9019)

* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)

* Audio enable corrections (2/3) (#8903)

* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)

* Audio enable corrections (Part 4) (#8974)

* Fix typo from PR7114 (#9171)

* Augment future branch Changelogs (#8978)

* Revert "Branch point for 2020 May 30 Breaking Change"
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix bug with layer caching in get_event_keycode (#8693)</title>
<updated>2020-04-12T15:27:17+00:00</updated>
<author>
<name>Drashna Jaelre</name>
<email>drashna@live.com</email>
</author>
<published>2020-04-12T15:27:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=23124b9fd1d667b3457410b771153361e22ae133'/>
<id>23124b9fd1d667b3457410b771153361e22ae133</id>
<content type='text'>
* Fix bug with layer caching in get_event_keycode

* Improve naming</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix bug with layer caching in get_event_keycode

* Improve naming</pre>
</div>
</content>
</entry>
<entry>
<title>format code according to conventions [skip ci]</title>
<updated>2020-02-25T18:57:18+00:00</updated>
<author>
<name>QMK Bot</name>
<email>hello@qmk.fm</email>
</author>
<published>2020-02-25T18:57:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=61b71320f79a663880bd70402d306722c1bbfe3e'/>
<id>61b71320f79a663880bd70402d306722c1bbfe3e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>New feature: PERMISSIVE_HOLD_PER_KEY (#7994)</title>
<updated>2020-02-25T18:25:52+00:00</updated>
<author>
<name>ridingqwerty</name>
<email>george.g.koenig@gmail.com</email>
</author>
<published>2020-02-25T18:25:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=b949343b783da729b1dfebd38507cc56a8cd12e3'/>
<id>b949343b783da729b1dfebd38507cc56a8cd12e3</id>
<content type='text'>
* Implement 'PERMISSIVE_HOLD_PER_KEY'

* Document 'PERMISSIVE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig &lt;35542036+GeorgeKoenig@users.noreply.github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Implement 'PERMISSIVE_HOLD_PER_KEY'

* Document 'PERMISSIVE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig &lt;35542036+GeorgeKoenig@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement and document TAPPING_FORCE_HOLD_PER_KEY (#7859)</title>
<updated>2020-01-17T20:49:23+00:00</updated>
<author>
<name>ridingqwerty</name>
<email>george.g.koenig@gmail.com</email>
</author>
<published>2020-01-17T20:49:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.vineetk.net/qmk_firmware/commit/?id=95c24bbaf8ed2b3c9ee79226dea782dc84764c56'/>
<id>95c24bbaf8ed2b3c9ee79226dea782dc84764c56</id>
<content type='text'>
* Implement and document TAPPING_FORCE_HOLD_PER_KEY

* Added "record" parameter to "get_tapping_force_hold"

* Correct typo -- remove 'IGNORE_' from 'IGNORE_TAPPING_FORCE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig &lt;35542036+GeorgeKoenig@users.noreply.github.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Implement and document TAPPING_FORCE_HOLD_PER_KEY

* Added "record" parameter to "get_tapping_force_hold"

* Correct typo -- remove 'IGNORE_' from 'IGNORE_TAPPING_FORCE_HOLD_PER_KEY'

Co-authored-by: GeorgeKoenig &lt;35542036+GeorgeKoenig@users.noreply.github.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
