With pressing Shift and '1' key you get 1 while with just '1' key you get !.
Keymap code on Alps64 https://github.com/thisisshi/tmk_keyboard/blob/15fe63e8d181a8a95988dcc71929f0024df55caa/keyboard/alps64/keymap_pure.c
Consider the following scenario:
- Layer 0 has a key defined as Shift.
- The same key is defined on layer 1 as the letter A.
- User presses Shift.
- User switches to layer 1 for whatever reason.
- User releases Shift, or rather the letter A.
- User switches back to layer 0.
Shift was actually never released and is still considered pressed.
If such situation bothers you add this to your config.h
:
#define PREVENT_STUCK_MODIFIERS
This option uses 5 bytes of memory per every 8 keys on the keyboard rounded up (5 bits per key). For example on Planck (48 keys) it uses (48/8)*5 = 30 bytes.