#
# Modifiers
#

Shift_R 0x36
Shift_L 0x2a

Alt_R 0x64
Mode_switch 0x64
Alt_L 0x38

Control_R 0x61
Control_L 0x1d

# Translate Super to Windows keys. 
Super_R 0x7e
Super_L 0x7d

# Translate Menu to the Windows Application key. 
Menu 0x7f

#
# Top row
#
1 0x2
2 0x3
3 0x4
4 0x5
5 0x6
6 0x7
7 0x8
8 0x9
9 0xa
0 0xb
BackSpace 0xe

#
# QWERTY first row
#
Tab 0xf
ISO_Left_Tab 0xf
q 0x10 addupper
w 0x11 addupper
e 0x12 addupper
r 0x13 addupper
t 0x14 addupper
y 0x15 addupper
u 0x16 addupper
i 0x17 addupper
o 0x18 addupper
p 0x19 addupper

#
# QWERTY second row
#
a 0x1e addupper
s 0x1f addupper
d 0x20 addupper
f 0x21 addupper
g 0x22 addupper
h 0x23 addupper
j 0x24 addupper
k 0x25 addupper
l 0x26 addupper
Return 0x1c

#
# QWERTY third row
#
z 0x2c addupper
x 0x2d addupper
c 0x2e addupper
v 0x2f addupper
b 0x30 addupper
n 0x31 addupper
m 0x32 addupper

space 0x39

less 0x56
greater 0x56
bar 0x56
brokenbar 0x56

#
# Esc and Function keys
#
Escape 0x1
F1 0x3b
F2 0x3c
F3 0x3d
F4 0x3e
F5 0x3f
F6 0x40
F7 0x41
F8 0x42
F9 0x43
F10 0x44
F11 0x57
F12 0x58

# Printscreen, Scrollock and Pause
# Printscreen really requires four scancodes (0xe0, 0x2a, 0xe0, 0x37),
# but (0xe0, 0x37) seems to work. 
Print 0x63
Sys_Req 0x63
Execute 0x63
Scroll_Lock 0x46

#
# Insert - PgDown
#
Insert 0x6e
Delete 0x6f
Home 0x66
End 0x6b
Page_Up 0x68
Page_Down 0x6d

#
# Arrow keys
#
Left 0x69
Up 0x67
Down 0x6c
Right 0x6a

#
# Numpad
#
Num_Lock 0x45
KP_Divide 0x62
KP_Multiply 0x37
KP_Subtract 0x4a
KP_Add 0x4e
KP_Enter 0x60

KP_Decimal 0x53
KP_Separator 0x53
KP_Delete 0x53

KP_0 0x52
KP_Insert 0x52

KP_1 0x4f
KP_End 0x4f

KP_2 0x50
KP_Down 0x50

KP_3 0x51
KP_Next 0x51

KP_4 0x4b
KP_Left 0x4b

KP_5 0x4c
KP_Begin 0x4c

KP_6 0x4d
KP_Right 0x4d

KP_7 0x47
KP_Home 0x47

KP_8 0x48
KP_Up 0x48

KP_9 0x49
KP_Prior 0x49

Caps_Lock 0x3a
#
# Inhibited keys
#
Multi_key 0x0

#
# Top row
#
dead_caron 0x29
dead_tilde 0x29

# 1
exclam 0x2

# 2
quotedbl 0x3
at 0x3

# 3
numbersign 0x4
sterling 0x4
# 4
currency 0x5
dollar 0x5
# 5
percent 0x6
# 6
ampersand 0x7
# 7
slash 0x8
braceleft 0x8
# 8
parenleft 0x9
bracketleft 0x9
# 9
parenright 0xa
bracketright 0xa
# 0
equal 0xb
braceright 0xb

plus 0xc
question 0xc
backslash 0xc

acute 0xd
dead_acute 0xd
grave 0xd
dead_grave 0xd

#
# QWERTY first row
#
EuroSign 0x12
udiaeresis 0x1a 
Udiaeresis 0x1a
otilde 0x1b 
Otilde 0x1b
section 0x1b

#
# QWERTY second row
#
scaron 0x1f
Scaron 0x1f
odiaeresis 0x27 
Odiaeresis 0x27
adiaeresis 0x28 
Adiaeresis 0x28
asciicircum 0x28
apostrophe 0x2b
asterisk 0x2b
onehalf 0x2b
#
# QWERTY third row
#
less 0x56 
greater 0x56
bar 0x56
zcaron 0x2c
Zcaron 0x2c
comma 0x33
semicolon 0x33
period 0x34
colon 0x34
minus 0x35
underscore 0x35

