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 Avoid name conflicts with usb_hid Arduino code (#13870) 2021-08-06 15:53:38 +10:00
action_code.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
action_layer.c Improve layer mask handling (#13065) 2021-07-03 00:19:52 -07:00
action_layer.h Improve layer mask handling (#13065) 2021-07-03 00:19:52 -07:00
action_macro.c clang-format changes 2019-08-30 15:01:52 -07:00
action_macro.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
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 Process combos earlier & overlapping combos (#8591) 2021-08-06 09:44:57 +10:00
action_util.c [Feature] Key Overrides (#11422) 2021-07-13 10:13:51 -07:00
action_util.h 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
action.c Process combos earlier & overlapping combos (#8591) 2021-08-06 09:44:57 +10:00
action.h Process combos earlier & overlapping combos (#8591) 2021-08-06 09:44:57 +10:00
atomic_util.h Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
bootloader.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
eeconfig.c 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
eeconfig.h 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
eeprom.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
gpio.h Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
host_driver.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
host.c Extensible split data sync (#11930) 2021-06-18 09:10:06 +10:00
host.h New and improved lock LED callbacks (#7215) 2019-11-06 00:42:16 +00:00
keyboard.c Add CRC8 calculation subsystem to quantum (#12641) 2021-06-18 00:09:43 +01:00
keyboard.h 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00
keycode.h Format code according to conventions (#12244) 2021-03-15 12:21:14 +11:00
pin_defs.h Split gpio and atomic to platform (#11792) 2021-02-14 11:51:06 +11:00
progmem.h __flash? (#13799) 2021-07-31 14:35:30 +01:00
raw_hid.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
report.c format code according to conventions [skip ci] 2020-03-13 18:44:56 +00:00
report.h Add a handful of consumer/gendesk page usages (#12811) 2021-05-06 17:16:07 +01:00
sleep_led.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
suspend.h Set default for USB_SUSPEND_WAKEUP_DELAY to 0/disabled (#12081) 2021-03-02 14:31:23 +00:00
sync_timer.c Add sync_timer support over serial_link (i.e. Ergodox Infinity) (#12845) 2021-06-19 19:18:00 -07:00
sync_timer.h Add sync_timer support over serial_link (i.e. Ergodox Infinity) (#12845) 2021-06-19 19:18:00 -07:00
timer.h Merge remote-tracking branch 'upstream/master' into develop 2021-07-25 12:17:15 +10:00
usb_util.c Avoid LTO conficts on arm_atsam (#13676) 2021-07-24 12:13:06 +01:00
usb_util.h Avoid LTO conficts on arm_atsam (#13676) 2021-07-24 12:13:06 +01:00
virtser.h Change include guards in tmk_core/ and drivers/ to pragma once (#11240) 2020-12-26 15:56:11 +11:00
wait.h 2021 May 29 Breaking Changes Update (#13034) 2021-05-29 14:38:50 -07:00