diff options
Diffstat (limited to 'users/gourdo1/custom_double_taps.h')
-rw-r--r-- | users/gourdo1/custom_double_taps.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/users/gourdo1/custom_double_taps.h b/users/gourdo1/custom_double_taps.h index 4f551e1fa1..fe97b8cd1f 100644 --- a/users/gourdo1/custom_double_taps.h +++ b/users/gourdo1/custom_double_taps.h @@ -71,3 +71,31 @@ static bool process_esc_to_base(uint16_t keycode, keyrecord_t * record) { } return true; } + +static bool process_lsft_for_caps(uint16_t keycode, keyrecord_t * record) { + static bool tapped = false; + static uint16_t tap_timer = 0; + + if (keycode == KC_LSFT) { + if (user_config.double_tap_shift_for_capslock) { + if (!keymap_config.no_gui) { + if (record->event.pressed) { + if (tapped && !timer_expired(record->event.time, tap_timer)) { + // The key was double tapped. + //clear_mods(); // If needed, clear the mods. + // Do something interesting... + register_code(KC_CAPS); + } + tapped = true; + tap_timer = record->event.time + TAPPING_TERM; + } else { + unregister_code(KC_CAPS); + } + } + } + } else { + // On an event with any other key, reset the double tap state. + tapped = false; + } + return true; +} |