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; +}  | 
