Here are all the keys Jwno currently supports, and the actual key codes used in the code. See the Windows documentation for more details.
Note that Jwno currently only supports US keyboard layouts. On other layouts, the VK_OEM_*
key codes may map to other characters.
To use a key in a key spec, write its name directly. All key names are case-insensitive. For example:
"Win + A"
"Win + 1"
"Win + ;"
"Win + Numpad0"
Modifier Keys
Name | Key Code | Description |
Win | | Win key (left or right) |
LWin | VK_LWIN | Win key (left) |
RWin | VK_RWIN | Win key (right) |
Alt | | Alt key (left or right) |
LAlt | VK_LMENU | Alt key (left) |
RAlt | VK_RMENU | Alt key (right) |
Ctrl | | Ctrl key (left or right) |
LCtrl | VK_LCONTROL | Ctrl key (left) |
RCtrl | VK_RCONTROL | Ctrl key (right) |
Shift | | Shift key (left or right) |
LShift | VK_LSHIFT | Shift key (left) |
RShift | VK_RSHIFT | Shift key (right) |
Special Keys
Name | Key Code | Description |
Backspace | VK_BACK | |
Tab | VK_TAB | |
Enter | VK_RETURN | |
Pause | VK_PAUSE | |
CapsLock | VK_CAPITAL | |
Esc | VK_ESCAPE | |
Space | VK_SPACE | |
PageUp | VK_PRIOR | |
PageDown | VK_NEXT | |
End | VK_END | |
Home | VK_HOME | |
Left | VK_LEFT | Arrow key ← |
Up | VK_UP | Arrow key ↑ |
Right | VK_RIGHT | Arrow key → |
Down | VK_DOWN | Arrow key ↓ |
Insert | VK_INSERT | |
Delete | VK_DELETE | |
App | VK_APPS | Menu key |
ScrollLock | VK_SCROLL | |
Numpad Keys
Name | Key Code | Description |
Numpad0 | VK_NUMPAD0 | |
Numpad1 | VK_NUMPAD1 | |
Numpad2 | VK_NUMPAD2 | |
Numpad3 | VK_NUMPAD3 | |
Numpad4 | VK_NUMPAD4 | |
Numpad5 | VK_NUMPAD5 | |
Numpad6 | VK_NUMPAD6 | |
Numpad7 | VK_NUMPAD7 | |
Numpad8 | VK_NUMPAD8 | |
Numpad9 | VK_NUMPAD9 | |
Numpad* | VK_MULTIPLY | |
Numpad+ | VK_ADD | |
Numpad- | VK_SUBTRACT | |
Numpad. | VK_DECIMAL | |
Numpad/ | VK_DIVIDE | |
Alpha-Numeric Keys
Name | Key Code | Description |
A | 65 | |
B | 66 | |
C | 67 | |
D | 68 | |
E | 69 | |
F | 70 | |
G | 71 | |
H | 72 | |
I | 73 | |
J | 74 | |
K | 75 | |
L | 76 | |
M | 77 | |
N | 78 | |
O | 79 | |
P | 80 | |
Q | 81 | |
R | 82 | |
S | 83 | |
T | 84 | |
U | 85 | |
V | 86 | |
W | 87 | |
X | 88 | |
Y | 89 | |
Z | 90 | |
0 | 48 | |
1 | 49 | |
2 | 50 | |
3 | 51 | |
4 | 52 | |
5 | 53 | |
6 | 54 | |
7 | 55 | |
8 | 56 | |
9 | 57 | |
Function Keys
Name | Key Code | Description |
F1 | VK_F1 | |
F2 | VK_F2 | |
F3 | VK_F3 | |
F4 | VK_F4 | |
F5 | VK_F5 | |
F6 | VK_F6 | |
F7 | VK_F7 | |
F8 | VK_F8 | |
F9 | VK_F9 | |
F10 | VK_F10 | |
F11 | VK_F11 | |
F12 | VK_F12 | |
F13 | VK_F13 | |
F14 | VK_F14 | |
F15 | VK_F15 | |
F16 | VK_F16 | |
F17 | VK_F17 | |
F18 | VK_F18 | |
F19 | VK_F19 | |
F20 | VK_F20 | |
F21 | VK_F21 | |
F22 | VK_F22 | |
F23 | VK_F23 | |
F24 | VK_F24 | |
"OEM" Keys
Name | Key Code | Description |
, | VK_OEM_COMMA | ,< key |
. | VK_OEM_PERIOD | .> key |
= | VK_OEM_PLUS | =+ key |
; | VK_OEM_1 | ;: key |
/ | VK_OEM_2 | /? key |
` | VK_OEM_3 | `~ key |
[ | VK_OEM_4 | [{ key |
\ | VK_OEM_5 | \| key |
] | VK_OEM_6 | ]} key |
' | VK_OEM_7 | '" key |