Adds a way to separate tab from AUTO_SHIFT_SPECIAL. (#20996)
This commit is contained in:
parent
e43080788e
commit
e9ff66d8ad
3 changed files with 58 additions and 7 deletions
|
@ -133,7 +133,17 @@ groups in the below fallback switch.
|
||||||
### NO_AUTO_SHIFT_SPECIAL (simple define)
|
### NO_AUTO_SHIFT_SPECIAL (simple define)
|
||||||
|
|
||||||
Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
|
Do not Auto Shift special keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
|
||||||
and /?
|
/?, and the KC_TAB.
|
||||||
|
|
||||||
|
### NO_AUTO_SHIFT_TAB (simple define)
|
||||||
|
|
||||||
|
Do not Auto Shift KC_TAB but leave Auto Shift enabled for the other special
|
||||||
|
characters.
|
||||||
|
|
||||||
|
### NO_AUTO_SHIFT_SYMBOLS (simple define)
|
||||||
|
|
||||||
|
Do not Auto Shift symbol keys, which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
|
||||||
|
and /?.
|
||||||
|
|
||||||
### NO_AUTO_SHIFT_NUMERIC (simple define)
|
### NO_AUTO_SHIFT_NUMERIC (simple define)
|
||||||
|
|
||||||
|
@ -143,9 +153,13 @@ Do not Auto Shift numeric keys, zero through nine.
|
||||||
|
|
||||||
Do not Auto Shift alpha characters, which include A through Z.
|
Do not Auto Shift alpha characters, which include A through Z.
|
||||||
|
|
||||||
|
### AUTO_SHIFT_ENTER (simple define)
|
||||||
|
|
||||||
|
Auto Shift the enter key.
|
||||||
|
|
||||||
### Auto Shift Per Key
|
### Auto Shift Per Key
|
||||||
|
|
||||||
There are functions that allows you to determine which keys shold be autoshifted, much like the tap-hold keys.
|
There are functions that allows you to determine which keys should be autoshifted, much like the tap-hold keys.
|
||||||
|
|
||||||
The first of these, used to simply add a key to Auto Shift, is `get_custom_auto_shifted_key`:
|
The first of these, used to simply add a key to Auto Shift, is `get_custom_auto_shifted_key`:
|
||||||
|
|
||||||
|
@ -172,9 +186,15 @@ bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
||||||
case KC_1 ... KC_0:
|
case KC_1 ... KC_0:
|
||||||
# endif
|
# endif
|
||||||
# ifndef NO_AUTO_SHIFT_SPECIAL
|
# ifndef NO_AUTO_SHIFT_SPECIAL
|
||||||
|
# ifndef NO_AUTO_SHIFT_TAB
|
||||||
case KC_TAB:
|
case KC_TAB:
|
||||||
case KC_MINUS ... KC_SLASH:
|
# endif
|
||||||
case KC_NONUS_BACKSLASH:
|
# ifndef NO_AUTO_SHIFT_SYMBOLS
|
||||||
|
case AUTO_SHIFT_SYMBOLS:
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifdef AUTO_SHIFT_ENTER
|
||||||
|
case KC_ENT:
|
||||||
# endif
|
# endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -192,6 +212,25 @@ Enables keyrepeat.
|
||||||
|
|
||||||
Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
|
Disables automatically keyrepeating when `AUTO_SHIFT_TIMEOUT` is exceeded.
|
||||||
|
|
||||||
|
|
||||||
|
### AUTO_SHIFT_ALPHA (predefined key group)
|
||||||
|
|
||||||
|
A predefined group of keys representing A through Z.
|
||||||
|
|
||||||
|
### AUTO_SHIFT_NUMERIC (predefined key group)
|
||||||
|
|
||||||
|
A predefined group of keys representing 0 through 9. Note, these are defined as
|
||||||
|
1 through 0 since that is the order they normally appear in.
|
||||||
|
|
||||||
|
### AUTO_SHIFT_SYMBOLS (predefined key group)
|
||||||
|
|
||||||
|
A predefined group of keys representing symbolic characters which include -\_, =+, [{, ]}, ;:, '", ,<, .>,
|
||||||
|
and /?.
|
||||||
|
|
||||||
|
### AUTO_SHIFT_SPECIAL (predefined key group)
|
||||||
|
|
||||||
|
A predefined group of keys that combines AUTO_SHIFT_SYMBOLS and KC_TAB.
|
||||||
|
|
||||||
## Custom Shifted Values
|
## Custom Shifted Values
|
||||||
|
|
||||||
Especially on small keyboards, the default shifted value for many keys is not
|
Especially on small keyboards, the default shifted value for many keys is not
|
||||||
|
|
|
@ -75,7 +75,15 @@ __attribute__((weak)) bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *r
|
||||||
case AUTO_SHIFT_NUMERIC:
|
case AUTO_SHIFT_NUMERIC:
|
||||||
# endif
|
# endif
|
||||||
# ifndef NO_AUTO_SHIFT_SPECIAL
|
# ifndef NO_AUTO_SHIFT_SPECIAL
|
||||||
case AUTO_SHIFT_SPECIAL:
|
# ifndef NO_AUTO_SHIFT_TAB
|
||||||
|
case KC_TAB:
|
||||||
|
# endif
|
||||||
|
# ifndef NO_AUTO_SHIFT_SYMBOLS
|
||||||
|
case AUTO_SHIFT_SYMBOLS:
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifdef AUTO_SHIFT_ENTER
|
||||||
|
case KC_ENT:
|
||||||
# endif
|
# endif
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,10 +28,14 @@
|
||||||
// clang-format off
|
// clang-format off
|
||||||
#define AUTO_SHIFT_ALPHA KC_A ... KC_Z
|
#define AUTO_SHIFT_ALPHA KC_A ... KC_Z
|
||||||
#define AUTO_SHIFT_NUMERIC KC_1 ... KC_0
|
#define AUTO_SHIFT_NUMERIC KC_1 ... KC_0
|
||||||
|
#define AUTO_SHIFT_SYMBOLS \
|
||||||
|
KC_MINUS ... KC_SLASH: \
|
||||||
|
case KC_NONUS_BACKSLASH
|
||||||
|
|
||||||
|
// Kept to avoid breaking existing keymaps.
|
||||||
#define AUTO_SHIFT_SPECIAL \
|
#define AUTO_SHIFT_SPECIAL \
|
||||||
KC_TAB: \
|
KC_TAB: \
|
||||||
case KC_MINUS ... KC_SLASH: \
|
case AUTO_SHIFT_SYMBOLS
|
||||||
case KC_NONUS_BACKSLASH
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
bool process_auto_shift(uint16_t keycode, keyrecord_t *record);
|
bool process_auto_shift(uint16_t keycode, keyrecord_t *record);
|
||||||
|
|
Loading…
Reference in a new issue