Workaround for the macOS caps lock delay (#1308)

* Add 80ms delay for KC_CAPS when used as a tap key

Workaround for the macOS caps lock delay

* Revert "Increase TAPPING_TERM for the Clueboard"

This reverts commit a74e69e9fa.
This commit is contained in:
jerryen 2017-05-19 17:24:47 -07:00 committed by skullydazed
parent 85df687348
commit 9c284786e7
2 changed files with 4 additions and 10 deletions

View file

@ -42,16 +42,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
) )
/* How long a "key tap" is. Used in functions like LT() and macros to determine
* how long QMK "holds down" a tapped key.
*
* If you are macOS this should be at least 500ms to avoid macOS's accidental
* Caps Lock activation prevention measures, as noted by /u/JerryEn here:
*
* https://www.reddit.com/r/clueboard/comments/6bfc2m/lt_not_working_with_caps_lock/dhmbp88/
*/
#define TAPPING_TERM 600 // ms
/* /*
* Feature disable options * Feature disable options
* These options are also useful to firmware size reduction. * These options are also useful to firmware size reduction.

View file

@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "action_macro.h" #include "action_macro.h"
#include "action_util.h" #include "action_util.h"
#include "action.h" #include "action.h"
#include "wait.h"
#ifdef DEBUG_ACTION #ifdef DEBUG_ACTION
#include "debug.h" #include "debug.h"
@ -438,6 +439,9 @@ void process_action(keyrecord_t *record, action_t action)
} else { } else {
if (tap_count > 0) { if (tap_count > 0) {
dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n"); dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n");
if (action.layer_tap.code == KC_CAPS) {
wait_ms(80);
}
unregister_code(action.layer_tap.code); unregister_code(action.layer_tap.code);
} else { } else {
dprint("KEYMAP_TAP_KEY: No tap: Off on release\n"); dprint("KEYMAP_TAP_KEY: No tap: Off on release\n");