qmk_firmware/tmk_core/common
Sergey Vlasov 610035dce8
Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404)
* 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.
2021-08-07 09:16:26 +10:00
..
arm_atsam Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:54:10 +00:00
avr Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:54:10 +00:00
chibios Merge remote-tracking branch 'origin/master' into develop 2021-08-06 05:54:10 +00:00
test
action.c
action.h
action_code.h
action_layer.c
action_layer.h
action_macro.c
action_macro.h
action_tapping.c Add HOLD_ON_OTHER_KEY_PRESS option for dual-role keys (#9404) 2021-08-07 09:16:26 +10:00
action_tapping.h
action_util.c
action_util.h
atomic_util.h
bootloader.h
eeconfig.c
eeconfig.h
eeprom.h
gpio.h
host.c
host.h
host_driver.h
keyboard.c
keyboard.h
keycode.h
pin_defs.h
progmem.h
raw_hid.h
report.c
report.h
sleep_led.h
suspend.h
sync_timer.c
sync_timer.h
timer.h
usb_util.c
usb_util.h
virtser.h
wait.h