1
0
Fork 0

Add Retro Shift (Auto Shift for Tap Hold via Retro Tapping) and Custom Auto Shifts (#11059)

* Add Retro Shift and Custom Auto Shifts

* Fix compilation errors with no RETRO_SHIFT value
This commit is contained in:
Isaac Elenbaas 2021-11-25 07:12:14 -05:00 committed by GitHub
parent 282e916d86
commit d9393b8684
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 623 additions and 127 deletions

View file

@ -22,13 +22,31 @@
# define AUTO_SHIFT_TIMEOUT 175
#endif
#define IS_LT(kc) ((kc) >= QK_LAYER_TAP && (kc) <= QK_LAYER_TAP_MAX)
#define IS_MT(kc) ((kc) >= QK_MOD_TAP && (kc) <= QK_MOD_TAP_MAX)
#define IS_RETRO(kc) (IS_MT(kc) || IS_LT(kc))
#define DO_GET_AUTOSHIFT_TIMEOUT(keycode, record, ...) record
// clang-format off
#define AUTO_SHIFT_ALPHA KC_A ... KC_Z
#define AUTO_SHIFT_NUMERIC KC_1 ... KC_0
#define AUTO_SHIFT_SPECIAL \
KC_TAB: \
case KC_MINUS ... KC_SLASH: \
case KC_NONUS_BSLASH
// clang-format on
bool process_auto_shift(uint16_t keycode, keyrecord_t *record);
void retroshift_poll_time(keyevent_t *event);
void retroshift_swap_times(void);
void autoshift_enable(void);
void autoshift_disable(void);
void autoshift_toggle(void);
bool get_autoshift_state(void);
uint16_t get_autoshift_timeout(void);
uint16_t get_generic_autoshift_timeout(void);
// clang-format off
uint16_t (get_autoshift_timeout)(uint16_t keycode, keyrecord_t *record);
void set_autoshift_timeout(uint16_t timeout);
void autoshift_matrix_scan(void);
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record);
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record);
// clang-format on