Tap a key and you get its character. Tap a key, but hold it slightly longer and you get its shifted state. Viola! No shift key needed!
Many people suffer from various forms of RSI. A common cause is stretching your fingers repetitively long distances. For us on the keyboard, the pinky does that all too often when reaching for the shift key. Auto Shift looks to alleviate that problem.
When you tap a key, it stays depressed for a short period of time before it is
then released. This depressed time is a different length for everyone. Auto Shift
defines a constant AUTO_SHIFT_TIMEOUT
which is typically set to twice your
normal pressed state time. When you press a key, a timer starts and then stops
when you release the key. If the time depressed is greater than or equal to the
AUTO_SHIFT_TIMEOUT
, then a shifted version of the key is emitted. If the time
is less than the AUTO_SHIFT_TIMEOUT
time, then the normal state is emitted.
Yes, unfortunately.
Add to your rules.mk
in the keymap folder:
AUTO_SHIFT_ENABLE = yes
If no rules.mk
exists, you can create one.
Then compile and install your new firmware with Auto Key enabled! That's it!
If desired, there is some configuration that can be done to change the
behavior of Auto Shift. This is done by setting various variables the
config.h
file located in your keymap folder. If no config.h
file exists, you can create one.
A sample is
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
#define AUTO_SHIFT_TIMEOUT 150
#define NO_AUTO_SHIFT_SPECIAL
#endif
This controls how long you have to hold a key before you get the shifted state. Obviously, this is different for everyone. For the common person, a setting of 135 to 150 works great. However, one should start with a value of at least 175, which is the default value. Then work down from there. The idea is to have the shortest time required to get the shifted state without having false positives.
Play with this value until things are perfect. Many find that all will work well at a given value, but one or two keys will still emit the shifted state on occasion. This is simply due to habit and holding some keys a little longer than others. Once you find this value, work on tapping your problem keys a little quicker than normal and you will be set.
{% hint style='info' %} Auto Shift has three special keys that can help you get this value right very quick. See "Auto Shift Setup" for more details! {% endhint %}
Do not Auto Shift special keys, which include -_, =+, [{, ]}, ;:, '", ,<, .>, and /?
Do not Auto Shift numeric keys, zero through nine.
Do not Auto Shift alpha characters, which include A through Z.
This will enable you to define three keys temporarily to increase, decrease and report your AUTO_SHIFT_TIMEOUT
.
Map three keys temporarily in your keymap:
Key Name | Description |
---|---|
KC_ASDN | Lower the Auto Shift timeout variable (down) |
KC_ASUP | Raise the Auto Shift timeout variable (up) |
KC_ASRP | Report your current Auto Shift timeout value |
KC_ASON | Turns on the Auto Shift Function |
KC_ASOFF | Turns off the Auto Shift Function |
KC_ASTG | Toggles the statn of the Auto Shift feature |
Compile and upload your new firmware.
It is important to note that during these tests, you should be typing completely normal and with no intention of shifted keys.
KC_ASDN
to decrease
time Auto Shift timeout value and go back to step 1.KC_ASUP
and go back to step 1.KC_ASRP
. The keyboard will type by itself the value of your
AUTO_SHIFT_TIMEOUT
.AUTO_SHIFT_TIMEOUT
in your config.h
with the value reported.AUTO_SHIFT_SETUP
from your config.h
.KC_ASDN
, KC_ASUP
and KC_ASRP
.hello world. my name is john doe. i am a computer programmer playing with
keyboards right now.
[PRESS KC_ASDN quite a few times]
heLLo woRLd. mY nAMe is JOHn dOE. i AM A compUTeR proGRaMMER PlAYiNG witH
KEYboArDS RiGHT NOw.
[PRESS KC_ASUP a few times]
hello world. my name is john Doe. i am a computer programmer playing with
keyboarDs right now.
[PRESS KC_ASRP]
115
The keyboard typed 115
which represents your current AUTO_SHIFT_TIMEOUT
value. You are now set! Practice on the D key a little bit that showed up
in the testing and you'll be golden.