Anything you need to understand customizing the keys of your (custom mechanical) keyboard. Especially if English is not the language you are using.
The keyboard does neither care about the legends on the keycaps, nor about any language. The information the keyboard sends to the Operating System is always the same. The keycodes for the keys you type, are based on English (US) and the Operating System translates it to your actual language--based on what you selected as a keyboard language in your System preferences / settings. Meaning that if you press the key to the right of the L
, you may get a ;
, ö
, m
or something else.
Therefore, in order to get the correct result (based on the keyboard language you configured in your Operating System), you need to know which keycode to use for which key. For example, if your keyboard language set to German / Deutsch and you would like to get a Z
you would need to use the keycode KC_Y
. Below is a list of all keycodes and their respective letter for German and French. If you're using a different language, you can use an image of a US keyboard (like ISO-US (Wikipedia) or ANSI-US (Wikipedia)) and compare it to the keys you're used to entering. Alternatively, there are keyboard viewers on both macOS (see: Use the Keyboard Viewer on Mac)and on Windows (see: Use the On-Screen Keyboard (OSK) to type) as well.
The following table shows the different results based on the keyboard language selected in the Operating System. The columns with the language names show the letters, which are actually used (//wording). There are some differences depending on the keyboard layout, shown in the Layout column. The keycodes listed in the Keycode column are based on the QMK Keycode documentation. Other firmware may have different names for the keycodes, and they still work the same.
Layout | Firmware keycode | Shown in VIA | English (US) | English (UK) | German (DE) | French (FR) |
---|---|---|---|---|---|---|
== | == Number Row == | == | == | == | == | |
ANSI or ISO | KC_GRAVE |
` ~ |
` and ~ |
` and ¬ |
^ and ° |
² and > |
ANSI or ISO | KC_1 |
1 ! |
1 and ! |
1 and ! |
1 and ! |
& and 1 |
ANSI or ISO | KC_2 |
2 @ |
2 and @ |
2 and " |
2 and " |
é and 2 |
ANSI or ISO | KC_3 |
3 # |
3 and # |
3 and £ |
3 and § |
" and 3 |
ANSI or ISO | KC_4 |
4 $ |
4 and $ |
4 and $ |
4 and $ |
' and 4 |
ANSI or ISO | KC_5 |
5 % |
5 and % |
5 and % |
5 and % |
( and 5 |
ANSI or ISO | KC_6 |
6 ^ |
6 and ^ |
6 and ^ |
6 and & |
- and 6 |
ANSI or ISO | KC_7 |
7 & |
7 and & |
7 and & |
7 and / |
è and 7 |
ANSI or ISO | KC_8 |
8 _ |
8 and _ |
8 and * |
8 and ( |
_ and 8 |
ANSI or ISO | KC_9 |
9 ( |
9 and ( |
9 and ( |
9 and ) |
ç and 9 |
ANSI or ISO | KC_0 |
0 ) |
0 and ) |
0 and ) |
0 and = |
à and 0 |
ANSI or ISO | KC_MINUS |
- _ |
- and _ |
- and _ |
ß and ? |
) and ° |
ANSI or ISO | KC_EQUAL |
= + |
= and + |
= and + |
´ and ` |
= and + |
== | == Tabulator Row == | == | == | == | == | == |
ANSI or ISO | KC_Q |
Q |
q and Q |
q and Q |
q and Q |
a and A |
ANSI or ISO | KC_W |
W |
w and W |
w and W |
w and W |
z and Z |
ANSI or ISO | KC_E |
E |
e and E |
e and E |
e and E |
e and E |
ANSI or ISO | KC_R |
R |
r and R |
r and R |
r and R |
r and R |
ANSI or ISO | KC_T |
T |
t and T |
t and T |
t and T |
t and T |
ANSI or ISO | KC_Y |
Y |
y and Y |
y and Y |
z and Z |
y and Y |
ANSI or ISO | KC_U |
U |
u and U |
u and U |
u and U |
u and U |
ANSI or ISO | KC_I |
I |
i and I |
i and I |
i and I |
i and I |
ANSI or ISO | KC_O |
O |
o and O |
o and O |
o and O |
o and O |
ANSI or ISO | KC_P |
P |
p and P |
p and P |
p and P |
p and P |
ANSI or ISO | KC_LEFT_BRACKET |
[ { |
[ and { |
[ and { |
ü and Ü |
^ and ¨ |
ANSI or ISO | KC_RIGHT_BRACKET |
] } |
] and } |
] and } |
+ and * |
$ and £ |
ANSI only | KC_BACKSLASH |
`\ | ` | \ and ` |
` | # and ~ |
== | == Caps Lock Row == | == | == | == | == | == |
ANSI or ISO | KC_A |
A |
a and A |
a and A |
a and A |
q and Q |
ANSI or ISO | KC_S |
S |
s and S |
s and S |
s and S |
s and S |
ANSI or ISO | KC_D |
D |
d and D |
d and D |
d and D |
d and D |
ANSI or ISO | KC_F |
F |
f and F |
f and F |
f and F |
f and F |
ANSI or ISO | KC_G |
G |
g and G |
g and G |
g and G |
g and G |
ANSI or ISO | KC_H |
H |
h and H |
h and H |
h and H |
h and H |
ANSI or ISO | KC_J |
J |
j and J |
j and J |
j and J |
j and J |
ANSI or ISO | KC_K |
K |
k and K |
k and K |
k and K |
k and K |
ANSI or ISO | KC_L |
L |
l and L |
l and L |
l and L |
l and L |
ANSI or ISO | KC_SEMICOLON |
; : |
; and : |
; and : |
ö and Ö |
m and M |
ANSI or ISO | KC_QUOTE |
' " |
' and " |
' and @ |
ä and Ä |
ù and % |
ISO only | KC_NONUS_HASH |
NUHS |
\ and ` |
` | # and ~ |
# and ' |
== | == Shift Row == | == | == | == | == | == |
ISO only | KC_NONUS_BACKSLASH |
NUBS |
§ and ± |
\ and ` |
` | < and > |
ANSI or ISO | KC_Z |
Z |
z and Z |
z and Z |
z and Z |
w and W |
ANSI or ISO | KC_X |
X |
x and X |
x and X |
x and X |
x and X |
ANSI or ISO | KC_C |
C |
c and C |
c and C |
c and C |
c and C |
ANSI or ISO | KC_V |
V |
v and V |
v and V |
v and V |
v and V |
ANSI or ISO | KC_B |
B |
b and B |
b and B |
b and B |
b and B |
ANSI or ISO | KC_N |
N |
n and N |
n and N |
n and N |
n and N |
ANSI or ISO | KC_M |
M |
m and M |
m and M |
m and M |
, and ? |
ANSI or ISO | KC_COMMA |
, < |
, and < |
, and < |
, and ; |
; and . |
ANSI or ISO | KC_DOT |
. > |
. and > |
. and > |
. and : |
: and / |
ANSI or ISO | KC_SLASH |
/ ? |
/ and ? |
/ and ? |
- and _ |
! and § |
QMK and VIA only use the Keycodes or labels shown in the table above, the Vial app and the Remap website offer the option to show the language specific legends for the keys.