include modifiers

#
# 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 localstate
ISO_Left_Tab 0xf shift
q 0x10 addupper
w 0x11 addupper
e 0x12 addupper
sequence egrave dead_grave e
sequence Egrave dead_grave E
sequence eacute dead_acute e
sequence Eacute dead_acute E
sequence ecircumflex dead_circumflex e 
sequence Ecircumflex dead_circumflex E 
sequence ediaeresis dead_diaeresis e
sequence Ediaeresis dead_diaeresis E
r 0x13 addupper
t 0x14 addupper
y 0x15 addupper
sequence ygrave dead_grave y
sequence Ygrave dead_grave Y
sequence yacute dead_acute y
sequence Yacute dead_acute Y
sequence ycircumflex dead_circumflex y
sequence Ycircumflex dead_circumflex Y 
sequence ydiaeresis dead_diaeresis y
sequence Ydiaeresis dead_diaeresis Y
u 0x16 addupper
sequence ugrave dead_grave u
sequence Ugrave dead_grave U
sequence uacute dead_acute u
sequence Uacute dead_acute U
sequence ucircumflex dead_circumflex u 
sequence Ucircumflex dead_circumflex U 
sequence udiaeresis dead_diaeresis u
sequence Udiaeresis dead_diaeresis U
i 0x17 addupper
sequence igrave dead_grave i
sequence Igrave dead_grave I
sequence iacute dead_acute i
sequence Iacute dead_acute I
sequence icircumflex dead_circumflex i 
sequence Icircumflex dead_circumflex I 
sequence idiaeresis dead_diaeresis i
sequence Idiaeresis dead_diaeresis I
o 0x18 addupper
sequence ograve dead_grave o
sequence Ograve dead_grave O
sequence oacute dead_acute o
sequence Oacute dead_acute O
sequence ocircumflex dead_circumflex o 
sequence Ocircumflex dead_circumflex O 
sequence odiaeresis dead_diaeresis o
sequence Odiaeresis dead_diaeresis O
sequence otilde dead_tilde o
sequence Otilde dead_tilde O
p 0x19 addupper

#
# QWERTY second row
#
a 0x1e addupper
sequence agrave dead_grave a
sequence Agrave dead_grave A
sequence aacute dead_acute a
sequence Aacute dead_acute A
sequence acircumflex dead_circumflex a 
sequence Acircumflex dead_circumflex A 
sequence adiaeresis dead_diaeresis a
sequence Adiaeresis dead_diaeresis A
sequence aring dead_abovering a
sequence Aring dead_abovering A
sequence atilde dead_tilde a
sequence Atilde dead_tilde A
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 localstate

#
# QWERTY third row
#
z 0x2c addupper
x 0x2d addupper
c 0x2e addupper
sequence ccedilla dead_cedilla c
sequence Ccedilla dead_cedilla C
v 0x2f addupper
b 0x30 addupper
n 0x31 addupper
sequence ntilde dead_tilde n
sequence Ntilde dead_tilde N
m 0x32 addupper

space 0x39 localstate

less 0x56
greater 0x56 shift
bar 0x56 altgr
brokenbar 0x56 shift altgr

#
# Translations for some other dead keys
#
sequence asciitilde dead_tilde space
sequence diaeresis dead_diaeresis space
sequence asciicircum dead_circumflex space
sequence apostrophe dead_acute space
sequence grave dead_grave space
sequence acute dead_acute space

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

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

#
# Insert - PgDown
#
Insert 0xd2 localstate
Delete 0xd3 localstate
Home 0xc7 localstate
End 0xcf localstate
Page_Up 0xc9 localstate
Page_Down 0xd1 localstate

#
# Arrow keys
#
Left 0xcb localstate
Up 0xc8 localstate
Down 0xd0 localstate
Right 0xcd localstate

#
# Numpad
#
Num_Lock 0x45
KP_Divide 0xb5 localstate
KP_Multiply 0x37 localstate
KP_Subtract 0x4a localstate
KP_Add 0x4e localstate
KP_Enter 0x9c localstate

KP_Decimal 0x53 numlock
KP_Separator 0x53 numlock
KP_Delete 0x53

KP_0 0x52 numlock
KP_Insert 0x52 localstate

KP_1 0x4f numlock
KP_End 0x4f localstate

KP_2 0x50 numlock
KP_Down 0x50 localstate

KP_3 0x51 numlock
KP_Next 0x51 localstate

KP_4 0x4b numlock
KP_Left 0x4b localstate

KP_5 0x4c numlock
KP_Begin 0x4c localstate

KP_6 0x4d numlock
KP_Right 0x4d localstate

KP_7 0x47 numlock
KP_Home 0x47 localstate

KP_8 0x48 numlock
KP_Up 0x48 localstate

KP_9 0x49 numlock
KP_Prior 0x49 localstate

#
# Inhibited keys
#
Caps_Lock 0x0 inhibit
Multi_key 0x0 inhibit
