~ruther/qmk_firmware

48b01446ba6b74d7e0793f972873a10fceef2f62 — Drashna Jaelre 6 years ago 5a8e387
Make delay for Capslock in Hold-Tap functions configurable  (#5497)

* Increase delay for Hold-Tap register for CAPSLOCK

Because it seems that the 80ms delay wasn't too much

* Screw it, make the caps delay a define and make it configurable
2 files changed, 11 insertions(+), 1 deletions(-)

M docs/config_options.md
M tmk_core/common/action.c
M docs/config_options.md => docs/config_options.md +2 -0
@@ 171,6 171,8 @@ If you define these options you will enable the associated feature, which may in
  * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
* `#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 200`
  * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS.  The value is in milliseconds, and defaults to 200ms if not defined. 

## RGB Light Configuration


M tmk_core/common/action.c => tmk_core/common/action.c +9 -1
@@ 44,6 44,9 @@ int retro_tapping_counter = 0;
#include <fauxclicky.h>
#endif

#ifndef TAP_HOLD_CAPS_DELAY
#  define TAP_HOLD_CAPS_DELAY 200
#endif
/** \brief Called to execute an action.
 *
 * FIXME: Needs documentation.


@@ 518,7 521,7 @@ void process_action(keyrecord_t *record, action_t action)
                        if (tap_count > 0) {
                            dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n");
                            if (action.layer_tap.code == KC_CAPS) {
                                wait_ms(80);
                                wait_ms(TAP_HOLD_CAPS_DELAY);
                            }
                            unregister_code(action.layer_tap.code);
                        } else {


@@ 853,8 856,13 @@ void unregister_code(uint8_t code)
 */
void tap_code(uint8_t code) {
  register_code(code);
  if (code == KC_CAPS) {
    wait_ms(TAP_HOLD_CAPS_DELAY);
  }
  #if TAP_CODE_DELAY > 0
  else {
    wait_ms(TAP_CODE_DELAY);
  }
  #endif
  unregister_code(code);
}