mirror of
https://github.com/openstenoproject/qmk
synced 2024-11-10 10:39:09 +00:00
Rule to enable Modifiers with Auto-Shift (#2542)
* Re-enable modifiers with auto-shift * Auto-shift modifiers rule * missed a line * Documentation * fixing whitespace
This commit is contained in:
parent
bb5c98699f
commit
00b4dce605
3 changed files with 20 additions and 4 deletions
|
@ -132,6 +132,9 @@ endif
|
||||||
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
|
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
|
||||||
OPT_DEFS += -DAUTO_SHIFT_ENABLE
|
OPT_DEFS += -DAUTO_SHIFT_ENABLE
|
||||||
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
|
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
|
||||||
|
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
|
||||||
|
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
|
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
|
||||||
|
|
|
@ -28,10 +28,7 @@ Yes, unfortunately.
|
||||||
characters, you could press and hold the 'a' key for a second or two. This no
|
characters, you could press and hold the 'a' key for a second or two. This no
|
||||||
longer works with Auto Shift because it is timing your depressed time instead
|
longer works with Auto Shift because it is timing your depressed time instead
|
||||||
of emitting a depressed key state to your operating system.
|
of emitting a depressed key state to your operating system.
|
||||||
2. Auto Shift is disabled for any key press that is accompanied by one or more
|
2. You will have characters that are shifted when you did not intend on shifting, and
|
||||||
modifiers. Thus, Ctrl+A that you hold for a really long time is not the same
|
|
||||||
as Ctrl+Shift+A.
|
|
||||||
3. You will have characters that are shifted when you did not intend on shifting, and
|
|
||||||
other characters you wanted shifted, but were not. This simply comes down to
|
other characters you wanted shifted, but were not. This simply comes down to
|
||||||
practice. As we get in a hurry, we think we have hit the key long enough
|
practice. As we get in a hurry, we think we have hit the key long enough
|
||||||
for a shifted version, but we did not. On the other hand, we may think we are
|
for a shifted version, but we did not. On the other hand, we may think we are
|
||||||
|
@ -48,6 +45,18 @@ If no `rules.mk` exists, you can create one.
|
||||||
|
|
||||||
Then compile and install your new firmware with Auto Key enabled! That's it!
|
Then compile and install your new firmware with Auto Key enabled! That's it!
|
||||||
|
|
||||||
|
## Modifiers
|
||||||
|
|
||||||
|
By default, Auto Shift is disabled for any key press that is accompanied by one or more
|
||||||
|
modifiers. Thus, Ctrl+A that you hold for a really long time is not the same
|
||||||
|
as Ctrl+Shift+A.
|
||||||
|
|
||||||
|
You can re-enable Auto Shift for modifiers by adding another rule to your `rules.mk`
|
||||||
|
|
||||||
|
AUTO_SHIFT_MODIFIERS = yes
|
||||||
|
|
||||||
|
In which case, Ctrl+A held past the `AUTO_SHIFT_TIMEOUT` will be sent as Ctrl+Shift+A
|
||||||
|
|
||||||
## Configuring Auto Shift
|
## Configuring Auto Shift
|
||||||
|
|
||||||
If desired, there is some configuration that can be done to change the
|
If desired, there is some configuration that can be done to change the
|
||||||
|
|
|
@ -92,7 +92,9 @@ bool autoshift_state(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
|
bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
#ifndef AUTO_SHIFT_MODIFIERS
|
||||||
static uint8_t any_mod_pressed;
|
static uint8_t any_mod_pressed;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
|
@ -175,6 +177,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
|
||||||
autoshift_flush();
|
autoshift_flush();
|
||||||
if (!autoshift_enabled) return true;
|
if (!autoshift_enabled) return true;
|
||||||
|
|
||||||
|
#ifndef AUTO_SHIFT_MODIFIERS
|
||||||
any_mod_pressed = get_mods() & (
|
any_mod_pressed = get_mods() & (
|
||||||
MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|
|
MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|
|
||||||
MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)|
|
MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)|
|
||||||
|
@ -185,6 +188,7 @@ bool process_auto_shift(uint16_t keycode, keyrecord_t *record) {
|
||||||
if (any_mod_pressed) {
|
if (any_mod_pressed) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
autoshift_on(keycode);
|
autoshift_on(keycode);
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in a new issue