summaryrefslogtreecommitdiff
path: root/share
authoralwin <alwin>2004-02-26 15:33:31 (UTC)
committer alwin <alwin>2004-02-26 15:33:31 (UTC)
commit42eb413737eb6e911867e1b9c0f5b6cf81c677fd (patch) (side-by-side diff)
treeb32284f8cec0f584151f0826fd121c153fc07601 /share
parentd26a7814b7b454583a136a78aeb7016467ec9ff8 (diff)
downloadopie-42eb413737eb6e911867e1b9c0f5b6cf81c677fd.zip
opie-42eb413737eb6e911867e1b9c0f5b6cf81c677fd.tar.gz
opie-42eb413737eb6e911867e1b9c0f5b6cf81c677fd.tar.bz2
Yeah - zkb fixed and working within OPIE.
Diffstat (limited to 'share') (more/less context) (ignore whitespace changes)
-rw-r--r--share/zkb/bg.xml494
-rw-r--r--share/zkb/bg.xml.num506
-rw-r--r--share/zkb/common.xml2121
-rw-r--r--share/zkb/common.xml.num2115
-rw-r--r--share/zkb/de.xml617
-rw-r--r--share/zkb/de.xml.num618
-rw-r--r--share/zkb/en.xml383
-rw-r--r--share/zkb/en.xml.num383
-rw-r--r--share/zkb/latin1.xml1927
-rw-r--r--share/zkb/ru.xml542
-rw-r--r--share/zkb/zkb.xml.sample55
-rw-r--r--share/zkb/zkb.xml.sample.num55
12 files changed, 9816 insertions, 0 deletions
diff --git a/share/zkb/bg.xml b/share/zkb/bg.xml
new file mode 100644
index 0000000..b2c0b06
--- a/dev/null
+++ b/share/zkb/bg.xml
@@ -0,0 +1,494 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="LShift-RShift" parent="common"/>
+<state name="LShift-RShift-Caps" parent="common"/>
+
+<state name="LShift">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="1096" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="1097" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="1096" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="1097" pressed="false"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="1064" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="1065" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="1064" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="1065" pressed="false"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-RShift">
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="1064" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="1065" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="1064" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="1065" pressed="false"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift"/>
+ </map>
+</state>
+
+<state name="LShift-RShift-Caps">
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="1096" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="1097" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="1096" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="1097" pressed="false"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="QuoteDbl" unicode="1068" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Semicolon" unicode="59" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Colon" unicode="58" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Question" unicode="1070" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="1040" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="1041" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="1062" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="1044" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="1045" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="1060" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="1043" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="1061" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="1048" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="1049" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="1050" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="1051" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="1052" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="1053" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="1054" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="1055" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="1071" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="1056" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="1057" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="1058" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="1059" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="1046" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="1042" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="1063" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="1066" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="1047" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="QuoteDbl" unicode="1068" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Semicolon" unicode="59" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Colon" unicode="58" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Question" unicode="1070" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="1040" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="1041" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="1062" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="1044" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="1045" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="1060" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="1043" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="1061" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="1048" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="1049" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="1050" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="1051" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="1052" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="1053" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="1054" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="1055" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="1071" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="1056" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="1057" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="1058" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="1059" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="1046" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="1042" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="1063" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="1066" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="1047" pressed="false"/>
+ </map>
+</state>
+
+<state name="lower-case">
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="Apostrophe" unicode="1100" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="44" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Period" unicode="46" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Slash" unicode="1102" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="1072" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="1073" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="1094" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="1076" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="1077" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="1092" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="1075" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="1093" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="1080" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="1081" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="1082" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="1083" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="1084" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="1085" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="1086" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="1087" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="1103" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="1088" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="1089" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="1090" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="1091" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="1078" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="1074" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="1095" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="1098" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="1079" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="Apostrophe" unicode="1100" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="44" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Period" unicode="46" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Slash" unicode="1102" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="1072" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="1073" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="1094" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="1076" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="1077" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="1092" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="1075" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="1093" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="1080" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="1081" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="1082" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="1083" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="1084" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="1085" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="1086" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="1087" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="1103" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="1088" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="1089" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="1090" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="1091" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="1078" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="1074" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="1095" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="1098" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="1079" pressed="false"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/bg.xml.num b/share/zkb/bg.xml.num
new file mode 100644
index 0000000..91fe872
--- a/dev/null
+++ b/share/zkb/bg.xml.num
@@ -0,0 +1,506 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="LShift-RShift" parent="common"/>
+<state name="LShift-RShift-Caps" parent="common"/>
+
+<state name="LShift">
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="1096" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="1097" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="1096" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="1097" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="1064" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="1065" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="1064" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="1065" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-RShift">
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="1064" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="1065" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="1064" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="1065" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift"/>
+ </map>
+</state>
+
+<state name="LShift-RShift-Caps">
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="1096" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="1097" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="1096" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="1097" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="39" unicode="1068" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="47" unicode="1070" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="1040" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="1041" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="1062" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="1044" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="1045" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="1060" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="1043" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="1061" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="1048" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="1049" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="1050" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="1051" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="1052" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="1053" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="1054" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="1055" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="1071" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="1056" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="1057" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="1058" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="1059" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="1046" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="1042" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="1063" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="1066" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="1047" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="39" unicode="1068" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="false">
+ <event keycode="47" unicode="1070" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="1040" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="1041" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="1062" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="1044" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="1045" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="1060" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="1043" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="1061" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="1048" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="1049" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="1050" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="1051" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="1052" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="1053" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="1054" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="1055" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="1071" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="1056" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="1057" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="1058" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="1059" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="1046" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="1042" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="1063" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="1066" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="1047" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="lower-case">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="34" unicode="1100" modifiers="8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="59" unicode="59" modifiers="8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="58" unicode="58" modifiers="8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="63" unicode="1102" modifiers="8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="1072" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="1073" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="1094" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="1076" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="1077" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="1092" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="1075" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="1093" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="1080" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="1081" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="1082" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="1083" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="1084" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="1085" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="1086" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="1087" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="1103" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="1088" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="1089" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="1090" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="1091" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="1078" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="1074" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="1095" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="1098" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="1079" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="34" unicode="1100" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="59" unicode="59" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="58" unicode="58" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="false">
+ <event keycode="63" unicode="1102" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="1072" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="1073" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="1094" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="1076" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="1077" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="1092" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="1075" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="1093" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="1080" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="1081" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="1082" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="1083" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="1084" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="1085" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="1086" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="1087" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="1103" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="1088" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="1089" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="1090" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="1091" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="1078" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="1074" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="1095" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="1098" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="1079" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/common.xml b/share/zkb/common.xml
new file mode 100644
index 0000000..255e677
--- a/dev/null
+++ b/share/zkb/common.xml
@@ -0,0 +1,2121 @@
+<keymap>
+
+<!-- State Declarations -->
+
+<state name="common"/>
+<state name="lower-case" parent="common"/>
+<state name="upper-case" parent="common"/>
+<state name="number" parent="common"/>
+<state name="control" parent="common"/>
+<state name="alt" parent="common"/>
+
+<state name="Normal" parent="lower-case"/>
+<state name="LShift" parent="upper-case"/>
+<state name="RShift" parent="upper-case"/>
+<state name="Fn" parent="number"/>
+<state name="Num" parent="number"/>
+<state name="Caps" parent="upper-case"/>
+<state name="iFn"/>
+<state name="sFn" parent="number"/>
+
+<state name="LShift-Fn" parent="control"/>
+<state name="RShift-Fn" parent="alt"/>
+<state name="LShift-Caps" parent="lower-case"/>
+<state name="LShift-Num" parent="number"/>
+<state name="RShift-Caps" parent="lower-case"/>
+<state name="RShift-Num" parent="number"/>
+<state name="Fn-Num" parent="number"/>
+<state name="Fn-Caps" parent="number"/>
+<state name="Num-Caps" parent="number"/>
+<state name="Caps-iFn"/>
+<state name="Caps-sFn" parent="sFn"/>
+
+<state name="LShift-Fn-Caps" parent="control"/>
+<state name="LShift-Fn-Num" parent="control"/>
+<state name="LShift-Num-Caps" parent="number"/>
+<state name="RShift-Fn-Caps" parent="control"/>
+<state name="RShift-Fn-Num" parent="control"/>
+<state name="RShift-Num-Caps" parent="number"/>
+<state name="Fn-Num-Caps" parent="number"/>
+<state name="LShift-Fn-Num-Caps" parent="control"/>
+<state name="RShift-Fn-Num-Caps" parent="control"/>
+
+<state name="Normal" default="true">
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Shift" pressed="true"/>
+ <next-state name="LShift"/>
+ </map>
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Shift" pressed="true"/>
+ <next-state name="RShift"/>
+ </map>
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="iFn"/>
+ </map>
+</state>
+
+<state name="LShift">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+</state>
+
+<state name="Fn">
+ <map keycode="Space" pressed="true">
+ <event keycode="Bar" unicode="124" pressed="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiTilde" unicode="126" pressed="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="ParenRight" unicode="41" pressed="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Less" unicode="60" pressed="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Bar" unicode="124" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiTilde" unicode="126" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="ParenRight" unicode="41" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Less" unicode="60" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+<state name="Num">
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num"/>
+ </map>
+</state>
+
+<state name="Caps">
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Shift" pressed="true"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="true"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="Caps-iFn"/>
+ </map>
+</state>
+
+<state name="LShift-Fn">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/>
+ <next-state name="LShift"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" modifiers="Control|Shift" pressed="true"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Fn">
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" modifiers="Alt" pressed="true"/>
+ <next-state name="RShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+</state>
+
+<state name="RShift-Num">
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+</state>
+
+<state name="Fn-Num">
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="Num"/>
+ </map>
+</state>
+
+<state name="Fn-Caps">
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+<state name="Num-Caps">
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Fn-Caps">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+</state>
+
+<state name="LShift-Fn-Num">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="LShift-Num"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+</state>
+
+<state name="LShift-Num-Caps">
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Num-Caps"/>
+ </map>
+</state>
+
+<state name="RShift-Fn-Caps">
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" modifiers="Shift" pressed="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+</state>
+
+<state name="RShift-Fn-Num">
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Num"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+</state>
+
+<state name="RShift-Num-Caps">
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="RShift-Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="true"/>
+ <next-state name="Num-Caps"/>
+ </map>
+</state>
+
+<state name="Fn-Num-Caps">
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="Num-Caps"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Alt" pressed="true"/>
+ <next-state name="RShift-Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Fn-Num-Caps">
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="LShift-Num-Caps"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" modifiers="Control|Shift" pressed="true"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="RShift-Fn-Num-Caps">
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Num-Caps"/>
+ </map>
+
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" modifiers="Alt" pressed="true"/>
+ <next-state name="RShift-Fn-Num"/>
+ </map>
+
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="common">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Cancel" pressed="true">
+ <event keycode="Escape" unicode="27" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Tab" pressed="true">
+ <event keycode="Tab" unicode="9" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Backspace" pressed="true">
+ <event keycode="Backspace" unicode="127" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Enter" pressed="true">
+ <event keycode="Return" unicode="13" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Left" pressed="true">
+ <event keycode="Left" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Up" pressed="true">
+ <event keycode="Up" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Right" pressed="true">
+ <event keycode="Right" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Down" pressed="true">
+ <event keycode="Down" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Calendar" pressed="true">
+ <event keycode="F9" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Addressbook" pressed="true">
+ <event keycode="F10" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Menu" pressed="true">
+ <event keycode="F11" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Home" pressed="true">
+ <event keycode="F12" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Mail" pressed="true">
+ <event keycode="F13" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Middle" pressed="true">
+ <event keycode="F30" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="OK" pressed="true">
+ <event keycode="F33" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Off" pressed="true">
+ <event keycode="F34" unicode="-1" pressed="true"/>
+ </map>
+ <map keycode="Light" pressed="true">
+ <event keycode="F35" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="32" pressed="false" autorepeat="true"/>
+ </map>
+ <map keycode="Cancel" pressed="false">
+ <event keycode="Escape" unicode="27" pressed="false"/>
+ </map>
+ <map keycode="Tab" pressed="false">
+ <event keycode="Tab" unicode="9" pressed="false"/>
+ </map>
+ <map keycode="Backspace" pressed="false">
+ <event keycode="Backspace" unicode="127" pressed="false"/>
+ </map>
+ <map keycode="Enter" pressed="false">
+ <event keycode="Return" unicode="13" pressed="false"/>
+ </map>
+ <map keycode="Left" pressed="false">
+ <event keycode="Left" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Up" pressed="false">
+ <event keycode="Up" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Right" pressed="false">
+ <event keycode="Right" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Down" pressed="false">
+ <event keycode="Down" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Calendar" pressed="false">
+ <event keycode="F9" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Addressbook" pressed="false">
+ <event keycode="F10" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Menu" pressed="false">
+ <event keycode="F11" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Home" pressed="false">
+ <event keycode="F12" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Mail" pressed="false">
+ <event keycode="F13" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Middle" pressed="false">
+ <event keycode="F30" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="OK" pressed="false">
+ <event keycode="F33" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Off" pressed="false">
+ <event keycode="F34" unicode="-1" pressed="false"/>
+ </map>
+ <map keycode="Light" pressed="false">
+ <event keycode="F35" unicode="-1" pressed="false"/>
+ </map>
+</state>
+
+<state name="number">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="Apostrophe" unicode="39" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="44" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Period" unicode="46" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="3" unicode="51" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="8" unicode="56" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="9" unicode="57" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="0" unicode="48" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="1" unicode="49" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="4" unicode="52" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="At" unicode="64" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="5" unicode="53" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="7" unicode="55" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="2" unicode="50" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="6" unicode="54" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="32" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="Apostrophe" unicode="39" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="44" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Period" unicode="46" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="Exclam" unicode="33" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="Minus" unicode="45" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="NumberSign" unicode="35" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="3" unicode="51" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="Dollar" unicode="36" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="Percent" unicode="37" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="Underscore" unicode="95" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="8" unicode="56" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="Ampersand" unicode="38" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="Asterisk" unicode="42" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="ParenLeft" unicode="40" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="Equal" unicode="61" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="Plus" unicode="43" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="9" unicode="57" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="0" unicode="48" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="1" unicode="49" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="4" unicode="52" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="At" unicode="64" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="5" unicode="53" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="7" unicode="55" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="2" unicode="50" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="6" unicode="54" pressed="false"/>
+ </map>
+</state>
+
+<state name="control">
+ <map keycode="Space" pressed="true">
+ <event keycode="QuoteLeft" unicode="96" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiCircum" unicode="94" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="BraceLeft" unicode="123" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="BracketRight" unicode="93" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="1" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="2" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="4" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="5" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="6" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="7" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="8" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="9" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="10" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="11" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="12" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="13" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="14" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="15" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="16" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="17" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="18" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="19" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="20" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="21" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="23" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="25" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="26" modifiers="Control" pressed="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="QuoteLeft" unicode="96" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiCircum" unicode="94" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="BraceLeft" unicode="123" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="BracketRight" unicode="93" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="1" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="2" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="4" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="5" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="6" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="7" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="8" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="9" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="10" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="11" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="12" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="13" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="14" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="15" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="16" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="17" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="18" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="19" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="20" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="21" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="23" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="25" modifiers="Control" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="26" modifiers="Control" pressed="false"/>
+ </map>
+</state>
+
+<state name="alt">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="96" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiCircum" unicode="94" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="BraceLeft" unicode="123" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="BracketRight" unicode="93" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="Exclam" unicode="65" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="Minus" unicode="66" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="NumberSign" unicode="67" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="3" unicode="68" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="Dollar" unicode="69" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="Percent" unicode="70" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="Underscore" unicode="71" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="8" unicode="72" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="8" unicode="73" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="Ampersand" unicode="74" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="Asterisk" unicode="75" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="ParenLeft" unicode="76" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="Equal" unicode="77" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="Plus" unicode="78" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="9" unicode="79" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="0" unicode="80" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="1" unicode="81" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="4" unicode="82" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="At" unicode="83" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="5" unicode="84" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="7" unicode="85" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="2" unicode="86" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="6" unicode="87" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="Bar" unicode="88" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="AsciiTilde" unicode="89" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="90" modifiers="Alt|Shift" pressed="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="96" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiCircum" unicode="94" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="BraceLeft" unicode="123" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="BracketRight" unicode="93" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="Exclam" unicode="65" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="Minus" unicode="66" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="NumberSign" unicode="67" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="3" unicode="68" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="Dollar" unicode="69" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="Percent" unicode="70" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="Underscore" unicode="71" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="8" unicode="72" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="8" unicode="73" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="Ampersand" unicode="74" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="Asterisk" unicode="75" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="ParenLeft" unicode="76" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="Equal" unicode="77" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="Plus" unicode="78" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="9" unicode="79" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="0" unicode="80" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="1" unicode="81" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="4" unicode="82" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="At" unicode="83" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="5" unicode="84" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="7" unicode="85" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="2" unicode="86" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="6" unicode="87" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="Bar" unicode="88" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="AsciiTilde" unicode="89" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="90" modifiers="Alt|Shift" pressed="false"/>
+ </map>
+</state>
+
+<state name="iFn">
+ <map keycode="Space" pressed="true">
+ <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="3" unicode="51" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="8" unicode="56" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="9" unicode="57" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="0" unicode="48" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="1" unicode="49" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="4" unicode="52" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="At" unicode="64" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="5" unicode="53" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="7" unicode="55" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="2" unicode="50" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="6" unicode="54" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Bar" unicode="124" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiTilde" unicode="126" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="ParenRight" unicode="41" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Less" unicode="60" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="Exclam" unicode="33" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="Minus" unicode="45" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="NumberSign" unicode="35" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="3" unicode="51" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="Dollar" unicode="36" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="Percent" unicode="37" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="Underscore" unicode="95" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="8" unicode="56" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="Ampersand" unicode="38" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="Asterisk" unicode="42" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="ParenLeft" unicode="40" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="Equal" unicode="61" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="Plus" unicode="43" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="9" unicode="57" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="0" unicode="48" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="1" unicode="49" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="4" unicode="52" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="At" unicode="64" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="5" unicode="53" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="7" unicode="55" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="2" unicode="50" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="6" unicode="54" pressed="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="sFn"/>
+ </map>
+</state>
+
+<state name="sFn">
+ <map keycode="Space" pressed="true">
+ <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Num"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="3" unicode="51" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="8" unicode="56" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="9" unicode="57" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="0" unicode="48" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="1" unicode="49" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="4" unicode="52" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="At" unicode="64" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="5" unicode="53" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="7" unicode="55" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="2" unicode="50" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="6" unicode="54" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift"/>
+ </map>
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Bar" unicode="124" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiTilde" unicode="126" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="ParenRight" unicode="41" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Less" unicode="60" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="Exclam" unicode="33" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="Minus" unicode="45" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="NumberSign" unicode="35" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="3" unicode="51" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="Dollar" unicode="36" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="Percent" unicode="37" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="Underscore" unicode="95" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="8" unicode="56" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="Ampersand" unicode="38" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="Asterisk" unicode="42" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="ParenLeft" unicode="40" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="Equal" unicode="61" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="Plus" unicode="43" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="9" unicode="57" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="0" unicode="48" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="1" unicode="49" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="4" unicode="52" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="At" unicode="64" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="5" unicode="53" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="7" unicode="55" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="2" unicode="50" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="6" unicode="54" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="iFn"/>
+ </map>
+</state>
+
+<state name="Caps-iFn">
+ <map keycode="Space" pressed="true">
+ <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn-Num"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="3" unicode="51" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="8" unicode="56" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="9" unicode="57" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="0" unicode="48" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="1" unicode="49" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="4" unicode="52" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="At" unicode="64" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="5" unicode="53" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="7" unicode="55" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="2" unicode="50" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="6" unicode="54" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Bar" unicode="124" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiTilde" unicode="126" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="ParenRight" unicode="41" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Less" unicode="60" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="Exclam" unicode="33" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="Minus" unicode="45" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="NumberSign" unicode="35" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="3" unicode="51" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="Dollar" unicode="36" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="Percent" unicode="37" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="Underscore" unicode="95" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="8" unicode="56" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="Ampersand" unicode="38" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="Asterisk" unicode="42" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="ParenLeft" unicode="40" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="Equal" unicode="61" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="Plus" unicode="43" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="9" unicode="57" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="0" unicode="48" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="1" unicode="49" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="4" unicode="52" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="At" unicode="64" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="5" unicode="53" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="7" unicode="55" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="2" unicode="50" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="6" unicode="54" pressed="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="Caps-sFn"/>
+ </map>
+</state>
+
+<state name="Caps-sFn">
+ <map keycode="Space" pressed="true">
+ <event keycode="Bar" unicode="124" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="AsciiTilde" unicode="126" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="ParenRight" unicode="41" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Less" unicode="60" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="NumLock" unicode="-1" pressed="true"/>
+ <next-state name="Num"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="Exclam" unicode="33" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="Minus" unicode="45" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="NumberSign" unicode="35" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="3" unicode="51" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="Dollar" unicode="36" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="Percent" unicode="37" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="Underscore" unicode="95" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="8" unicode="56" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="Ampersand" unicode="38" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="Asterisk" unicode="42" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="ParenLeft" unicode="40" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="Equal" unicode="61" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="Plus" unicode="43" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="9" unicode="57" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="0" unicode="48" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="1" unicode="49" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="4" unicode="52" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="At" unicode="64" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="5" unicode="53" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="7" unicode="55" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="2" unicode="50" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="6" unicode="54" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Tab" pressed="true">
+ <event keycode="CapsLock" unicode="-1" pressed="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" modifiers="Alt|Shift" pressed="true"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Bar" unicode="124" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="AsciiTilde" unicode="126" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="ParenRight" unicode="41" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Less" unicode="60" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="Exclam" unicode="33" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="Minus" unicode="45" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="3" modifiers="Control" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="NumberSign" unicode="35" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="3" unicode="51" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="Dollar" unicode="36" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="Percent" unicode="37" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="Underscore" unicode="95" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="8" unicode="56" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="Ampersand" unicode="38" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="Asterisk" unicode="42" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="ParenLeft" unicode="40" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="Equal" unicode="61" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="Plus" unicode="43" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="9" unicode="57" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="0" unicode="48" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="1" unicode="49" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="4" unicode="52" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="At" unicode="64" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="5" unicode="53" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="7" unicode="55" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="22" modifiers="Control" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="2" unicode="50" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="24" modifiers="Control" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="6" unicode="54" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="Fn" pressed="false">
+ <event keycode="F22" unicode="-1" pressed="true"/>
+ <next-state name="Caps-iFn"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/common.xml.num b/share/zkb/common.xml.num
new file mode 100644
index 0000000..ff4c450
--- a/dev/null
+++ b/share/zkb/common.xml.num
@@ -0,0 +1,2115 @@
+<keymap>
+
+<!-- State Declarations -->
+
+<state name="common"/>
+<state name="lower-case" parent="common"/>
+<state name="upper-case" parent="common"/>
+<state name="number" parent="common"/>
+<state name="control" parent="common"/>
+<state name="alt" parent="common"/>
+
+<state name="Normal" parent="lower-case"/>
+<state name="LShift" parent="upper-case"/>
+<state name="RShift" parent="upper-case"/>
+<state name="Fn" parent="number"/>
+<state name="Num" parent="number"/>
+<state name="Caps" parent="upper-case"/>
+<state name="iFn"/>
+<state name="sFn" parent="number"/>
+
+<state name="LShift-Fn" parent="control"/>
+<state name="RShift-Fn" parent="alt"/>
+<state name="LShift-Caps" parent="lower-case"/>
+<state name="LShift-Num" parent="number"/>
+<state name="RShift-Caps" parent="lower-case"/>
+<state name="RShift-Num" parent="number"/>
+<state name="Fn-Num" parent="number"/>
+<state name="Fn-Caps" parent="number"/>
+<state name="Num-Caps" parent="number"/>
+<state name="Caps-iFn"/>
+<state name="Caps-sFn" parent="sFn"/>
+
+<state name="LShift-Fn-Caps" parent="control"/>
+<state name="LShift-Fn-Num" parent="control"/>
+<state name="LShift-Num-Caps" parent="number"/>
+<state name="RShift-Fn-Caps" parent="control"/>
+<state name="RShift-Fn-Num" parent="control"/>
+<state name="RShift-Num-Caps" parent="number"/>
+<state name="Fn-Num-Caps" parent="number"/>
+<state name="LShift-Fn-Num-Caps" parent="control"/>
+<state name="RShift-Fn-Num-Caps" parent="control"/>
+
+<state name="Normal" default="true">
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="8" pressed="true" autorepeat="false"/>
+ <next-state name="LShift"/>
+ </map>
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="8" pressed="true" autorepeat="false"/>
+ <next-state name="RShift"/>
+ </map>
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="iFn"/>
+ </map>
+</state>
+
+<state name="LShift">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+</state>
+
+<state name="Fn">
+ <map keycode="32" pressed="true">
+ <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+<state name="Num">
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+</state>
+
+<state name="Caps">
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="8" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Caps-iFn"/>
+ </map>
+</state>
+
+<state name="LShift-Fn">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/>
+ <next-state name="LShift"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="24" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Fn">
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="32" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+</state>
+
+<state name="RShift-Num">
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+</state>
+
+<state name="Fn-Num">
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+</state>
+
+<state name="Fn-Caps">
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+<state name="Num-Caps">
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Fn-Caps">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+</state>
+
+<state name="LShift-Fn-Num">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-Num"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+</state>
+
+<state name="LShift-Num-Caps">
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num-Caps"/>
+ </map>
+</state>
+
+<state name="RShift-Fn-Caps">
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="8" pressed="false" autorepeat="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+</state>
+
+<state name="RShift-Fn-Num">
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift-Num"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+</state>
+
+<state name="RShift-Num-Caps">
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Num-Caps"/>
+ </map>
+</state>
+
+<state name="Fn-Num-Caps">
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num-Caps"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num-Caps"/>
+ </map>
+
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="32" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Fn-Num-Caps">
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-Num-Caps"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="24" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="RShift-Fn-Num-Caps">
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift-Num-Caps"/>
+ </map>
+
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="32" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Num"/>
+ </map>
+
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Num-Caps"/>
+ </map>
+</state>
+
+<state name="common">
+ <map keycode="4096" pressed="true">
+ <event keycode="4096" unicode="27" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4097" pressed="true">
+ <event keycode="4097" unicode="9" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4099" pressed="true">
+ <event keycode="4099" unicode="127" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4100" pressed="true">
+ <event keycode="4100" unicode="13" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4114" pressed="true">
+ <event keycode="4114" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4115" pressed="true">
+ <event keycode="4115" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4116" pressed="true">
+ <event keycode="4116" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4117" pressed="true">
+ <event keycode="4117" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4152" pressed="true">
+ <event keycode="4152" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4153" pressed="true">
+ <event keycode="4153" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4154" pressed="true">
+ <event keycode="4154" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4155" pressed="true">
+ <event keycode="4155" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4156" pressed="true">
+ <event keycode="4156" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4173" pressed="true">
+ <event keycode="4173" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4176" pressed="true">
+ <event keycode="4176" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4177" pressed="true">
+ <event keycode="4177" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="4178" pressed="true">
+ <event keycode="4178" unicode="-1" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="4096" pressed="false">
+ <event keycode="4096" unicode="27" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4097" pressed="false">
+ <event keycode="4097" unicode="9" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4099" pressed="false">
+ <event keycode="4099" unicode="127" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4100" pressed="false">
+ <event keycode="4100" unicode="13" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4114" pressed="false">
+ <event keycode="4114" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4115" pressed="false">
+ <event keycode="4115" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4116" pressed="false">
+ <event keycode="4116" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4117" pressed="false">
+ <event keycode="4117" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4152" pressed="false">
+ <event keycode="4152" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4153" pressed="false">
+ <event keycode="4153" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4154" pressed="false">
+ <event keycode="4154" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4155" pressed="false">
+ <event keycode="4155" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4156" pressed="false">
+ <event keycode="4156" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4173" pressed="false">
+ <event keycode="4173" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4176" pressed="false">
+ <event keycode="4176" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4177" pressed="false">
+ <event keycode="4177" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="4178" pressed="false">
+ <event keycode="4178" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="number">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="39" unicode="39" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="39" unicode="39" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="control">
+ <map keycode="32" pressed="true">
+ <event keycode="96" unicode="96" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="94" unicode="94" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="123" unicode="123" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="93" unicode="93" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="1" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="2" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="4" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="5" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="6" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="7" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="8" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="9" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="10" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="11" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="12" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="13" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="14" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="15" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="16" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="17" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="18" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="19" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="20" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="21" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="22" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="23" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="24" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="25" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="26" modifiers="16" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="96" unicode="96" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="94" unicode="94" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="123" unicode="123" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="93" unicode="93" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="1" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="2" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="4" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="5" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="6" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="7" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="8" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="9" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="10" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="11" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="12" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="13" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="14" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="15" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="16" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="17" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="18" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="19" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="20" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="21" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="22" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="23" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="24" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="25" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="26" modifiers="16" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="alt">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="96" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="94" unicode="94" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="123" unicode="123" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="93" unicode="93" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="33" unicode="65" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="45" unicode="66" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="35" unicode="67" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="51" unicode="68" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="36" unicode="69" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="37" unicode="70" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="95" unicode="71" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="56" unicode="72" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="56" unicode="73" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="38" unicode="74" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="42" unicode="75" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="40" unicode="76" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="61" unicode="77" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="43" unicode="78" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="57" unicode="79" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="48" unicode="80" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="49" unicode="81" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="52" unicode="82" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="64" unicode="83" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="53" unicode="84" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="55" unicode="85" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="50" unicode="86" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="54" unicode="87" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="124" unicode="88" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="126" unicode="89" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="90" modifiers="40" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="96" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="94" unicode="94" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="123" unicode="123" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="93" unicode="93" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="33" unicode="65" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="45" unicode="66" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="35" unicode="67" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="51" unicode="68" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="36" unicode="69" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="37" unicode="70" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="95" unicode="71" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="56" unicode="72" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="56" unicode="73" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="38" unicode="74" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="42" unicode="75" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="40" unicode="76" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="61" unicode="77" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="43" unicode="78" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="57" unicode="79" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="48" unicode="80" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="49" unicode="81" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="52" unicode="82" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="64" unicode="83" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="53" unicode="84" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="55" unicode="85" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="50" unicode="86" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="54" unicode="87" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="124" unicode="88" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="126" unicode="89" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="90" modifiers="40" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="iFn">
+ <map keycode="32" pressed="true">
+ <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn"/>
+ </map>
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="sFn"/>
+ </map>
+</state>
+
+<state name="sFn">
+ <map keycode="32" pressed="true">
+ <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift"/>
+ </map>
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="iFn"/>
+ </map>
+</state>
+
+<state name="Caps-iFn">
+ <map keycode="32" pressed="true">
+ <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Num"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Fn"/>
+ </map>
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Caps"/>
+ </map>
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Fn-Caps"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Fn-Caps"/>
+ </map>
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Caps-sFn"/>
+ </map>
+</state>
+
+<state name="Caps-sFn">
+ <map keycode="32" pressed="true">
+ <event keycode="124" unicode="124" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="126" unicode="126" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="41" unicode="41" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="60" unicode="60" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="4133" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="33" unicode="33" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="45" unicode="45" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="3" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="35" unicode="35" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="51" unicode="51" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="36" unicode="36" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="37" unicode="37" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="95" unicode="95" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="56" unicode="56" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="38" unicode="38" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="42" unicode="42" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="40" unicode="40" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="61" unicode="61" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="43" unicode="43" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="57" unicode="57" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="48" unicode="48" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="49" unicode="49" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="52" unicode="52" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="64" unicode="64" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="53" unicode="53" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="55" unicode="55" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="22" unicode="22" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="50" unicode="50" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="24" unicode="24" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="54" unicode="54" modifiers="0" pressed="true" autorepeat="true"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="4097" pressed="true">
+ <event keycode="4132" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Normal"/>
+ </map>
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="40" pressed="true" autorepeat="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="124" unicode="124" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="126" unicode="126" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="41" unicode="41" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="60" unicode="60" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="33" unicode="33" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="45" unicode="45" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="3" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="35" unicode="35" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="51" unicode="51" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="36" unicode="36" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="37" unicode="37" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="95" unicode="95" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="56" unicode="56" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="38" unicode="38" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="42" unicode="42" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="40" unicode="40" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="61" unicode="61" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="43" unicode="43" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="57" unicode="57" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="48" unicode="48" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="49" unicode="49" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="52" unicode="52" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="64" unicode="64" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="53" unicode="53" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="55" unicode="55" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="22" unicode="22" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="50" unicode="50" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="24" unicode="24" modifiers="16" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="54" unicode="54" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Caps"/>
+ </map>
+ <map keycode="4165" pressed="false">
+ <event keycode="4165" unicode="-1" modifiers="0" pressed="true" autorepeat="false"/>
+ <next-state name="Caps-iFn"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/de.xml b/share/zkb/de.xml
new file mode 100644
index 0000000..679ebc3
--- a/dev/null
+++ b/share/zkb/de.xml
@@ -0,0 +1,617 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="LShift-RShift" parent="common"/>
+<state name="LShift-RShift-Caps" parent="common"/>
+
+<state name="LShift">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="223" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="252" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="246" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="228" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="8364" pressed="false"/>
+ </map>
+
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="223" pressed="false"/>
+ </map>
+
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="252" pressed="false"/>
+ </map>
+
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="246" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="228" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="true"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="223" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="220" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="214" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="196" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="8364" pressed="false"/>
+ </map>
+
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="223" pressed="false"/>
+ </map>
+
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="220" pressed="false"/>
+ </map>
+
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="214" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="196" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-RShift">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="223" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="220" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="214" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="196" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="8364" pressed="false"/>
+ </map>
+
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="223" pressed="false"/>
+ </map>
+
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="220" pressed="false"/>
+ </map>
+
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="214" pressed="false"/>
+ </map>
+
+ <map keycode="Period" pressed="false">
+ <event keycode="Period" unicode="196" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift"/>
+ </map>
+</state>
+
+<state name="LShift-RShift-Caps">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="8364" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="223" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="252" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="246" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="228" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="8364" pressed="false"/>
+ </map>
+
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="223" pressed="false"/>
+ </map>
+
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="252" pressed="false"/>
+ </map>
+
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="246" pressed="false"/>
+ </map>
+
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="228" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+</state>
+
+<state name="Caps">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="true"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+</state>
+
+<state name="lower-case">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="Apostrophe" unicode="39" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="44" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Period" unicode="46" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Slash" unicode="47" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="97" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="98" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="99" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="100" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="101" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="102" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="103" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="104" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="105" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="106" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="107" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="108" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="109" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="110" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="111" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="112" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="113" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="114" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="115" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="116" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="117" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="118" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="119" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="120" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="122" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="121" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="32" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="Apostrophe" unicode="39" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="44" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Period" unicode="46" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Slash" unicode="47" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="97" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="98" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="99" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="100" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="101" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="102" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="103" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="104" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="105" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="106" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="107" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="108" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="109" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="110" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="111" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="112" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="113" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="114" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="115" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="116" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="117" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="118" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="119" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="120" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="122" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="121" pressed="false"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="32" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Colon" unicode="58" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Question" unicode="63" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="65" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="66" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="67" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="68" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="69" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="70" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="71" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="72" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="73" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="74" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="75" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="76" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="77" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="78" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="79" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="80" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="81" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="82" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="83" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="84" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="85" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="86" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="87" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="88" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="90" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="89" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="32" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Colon" unicode="58" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Question" unicode="63" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="65" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="66" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="67" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="68" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="69" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="70" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="71" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="72" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="73" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="74" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="75" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="76" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="77" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="78" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="79" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="80" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="81" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="82" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="83" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="84" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="85" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="86" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="87" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="88" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="90" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="89" modifiers="Shift" pressed="false"/>
+ </map>
+</state>
+
+</keymap> \ No newline at end of file
diff --git a/share/zkb/de.xml.num b/share/zkb/de.xml.num
new file mode 100644
index 0000000..15ebf11
--- a/dev/null
+++ b/share/zkb/de.xml.num
@@ -0,0 +1,618 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="LShift-RShift" parent="common"/>
+<state name="LShift-RShift-Caps" parent="common"/>
+
+<state name="LShift">
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="252" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="246" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="228" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="252" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="246" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="228" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="4165" pressed="true">
+ <event keycode="4165" unicode="-1" modifiers="16" pressed="true" autorepeat="false"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="220" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="214" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="220" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="214" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="4128" pressed="true">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-RShift">
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="220" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="214" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="220" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="214" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="196" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift"/>
+ </map>
+</state>
+
+<state name="LShift-RShift-Caps">
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="223" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="252" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="246" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="228" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="8364" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="223" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="252" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="246" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="228" modifiers="0" pressed="false" autorepeat="true"/>
+ </map>
+
+ <map keycode="4128" pressed="false">
+ <event keycode="4128" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="4130" pressed="false">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+</state>
+
+<state name="Caps">
+ <map keycode="4130" pressed="true">
+ <event keycode="4130" unicode="-1" modifiers="0" pressed="false" autorepeat="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+</state>
+
+<state name="lower-case">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="39" unicode="39" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="47" unicode="47" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="97" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="98" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="99" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="100" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="101" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="102" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="103" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="104" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="105" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="106" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="107" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="108" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="109" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="110" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="111" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="112" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="113" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="114" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="115" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="116" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="117" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="118" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="119" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="120" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="121" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="122" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="39" unicode="39" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="false">
+ <event keycode="47" unicode="47" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="97" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="98" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="99" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="100" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="101" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="102" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="103" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="104" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="105" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="106" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="107" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="108" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="109" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="110" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="111" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="112" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="113" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="114" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="115" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="116" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="117" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="118" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="119" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="120" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="121" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="122" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="34" unicode="34" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="59" unicode="59" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="58" unicode="58" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="63" unicode="63" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="65" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="66" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="67" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="68" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="69" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="70" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="71" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="72" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="73" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="74" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="75" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="76" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="77" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="78" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="79" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="80" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="81" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="82" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="83" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="84" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="85" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="86" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="87" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="88" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="89" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="90" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="34" unicode="34" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="58" unicode="58" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="59" unicode="59" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="false">
+ <event keycode="63" unicode="63" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="65" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="66" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="67" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="68" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="69" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="70" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="71" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="72" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="73" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="74" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="75" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="76" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="77" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="78" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="79" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="80" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="81" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="82" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="83" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="84" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="85" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="86" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="87" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="88" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="89" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="90" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+
+</keymap>
diff --git a/share/zkb/en.xml b/share/zkb/en.xml
new file mode 100644
index 0000000..0b1c345
--- a/dev/null
+++ b/share/zkb/en.xml
@@ -0,0 +1,383 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="lower-case">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="32" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="Apostrophe" unicode="39" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Comma" unicode="44" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Period" unicode="46" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Slash" unicode="47" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="97" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="98" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="99" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="100" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="101" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="102" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="103" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="104" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="105" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="106" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="107" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="108" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="109" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="110" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="111" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="112" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="113" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="114" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="115" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="116" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="117" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="118" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="119" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="120" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="121" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="122" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="32" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="Apostrophe" unicode="39" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Comma" unicode="44" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Period" unicode="46" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Slash" unicode="47" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="97" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="98" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="99" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="100" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="101" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="102" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="103" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="104" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="105" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="106" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="107" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="108" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="109" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="110" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="111" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="112" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="113" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="114" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="115" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="116" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="117" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="118" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="119" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="120" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="121" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="122" pressed="false"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="Space" pressed="true">
+ <event keycode="Space" unicode="32" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Colon" unicode="58" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Question" unicode="63" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="65" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="66" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="67" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="68" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="69" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="70" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="71" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="72" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="73" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="74" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="75" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="76" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="77" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="78" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="79" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="80" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="81" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="82" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="83" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="84" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="85" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="86" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="87" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="88" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="89" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="90" modifiers="Shift" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Space" unicode="32" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="QuoteDbl" unicode="34" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Semicolon" unicode="59" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Colon" unicode="58" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Question" unicode="63" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="65" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="66" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="67" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="68" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="69" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="70" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="71" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="72" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="73" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="74" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="75" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="76" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="77" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="78" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="79" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="80" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="81" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="82" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="83" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="84" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="85" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="86" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="87" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="88" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="89" modifiers="Shift" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="90" modifiers="Shift" pressed="false"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/en.xml.num b/share/zkb/en.xml.num
new file mode 100644
index 0000000..0ffd57b
--- a/dev/null
+++ b/share/zkb/en.xml.num
@@ -0,0 +1,383 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="lower-case">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="39" unicode="39" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="44" unicode="44" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="46" unicode="46" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="47" unicode="47" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="97" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="98" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="99" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="100" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="101" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="102" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="103" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="104" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="105" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="106" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="107" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="108" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="109" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="110" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="111" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="112" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="113" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="114" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="115" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="116" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="117" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="118" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="119" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="120" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="121" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="122" modifiers="0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="39" unicode="39" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="44" unicode="44" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="46" unicode="46" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="false">
+ <event keycode="47" unicode="47" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="97" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="98" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="99" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="100" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="101" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="102" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="103" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="104" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="105" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="106" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="107" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="108" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="109" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="110" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="111" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="112" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="113" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="114" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="115" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="116" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="117" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="118" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="119" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="120" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="121" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="122" modifiers="0" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="32" pressed="true">
+ <event keycode="32" unicode="32" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="39" pressed="true">
+ <event keycode="34" unicode="34" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="44" pressed="true">
+ <event keycode="59" unicode="59" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="46" pressed="true">
+ <event keycode="58" unicode="58" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="47" pressed="true">
+ <event keycode="63" unicode="63" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="65" pressed="true">
+ <event keycode="65" unicode="65" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="66" pressed="true">
+ <event keycode="66" unicode="66" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="67" pressed="true">
+ <event keycode="67" unicode="67" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="68" pressed="true">
+ <event keycode="68" unicode="68" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="69" pressed="true">
+ <event keycode="69" unicode="69" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="70" pressed="true">
+ <event keycode="70" unicode="70" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="71" pressed="true">
+ <event keycode="71" unicode="71" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="72" pressed="true">
+ <event keycode="72" unicode="72" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="73" pressed="true">
+ <event keycode="73" unicode="73" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="74" pressed="true">
+ <event keycode="74" unicode="74" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="75" pressed="true">
+ <event keycode="75" unicode="75" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="76" pressed="true">
+ <event keycode="76" unicode="76" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="77" pressed="true">
+ <event keycode="77" unicode="77" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="78" pressed="true">
+ <event keycode="78" unicode="78" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="79" pressed="true">
+ <event keycode="79" unicode="79" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="80" pressed="true">
+ <event keycode="80" unicode="80" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="81" pressed="true">
+ <event keycode="81" unicode="81" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="82" pressed="true">
+ <event keycode="82" unicode="82" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="83" pressed="true">
+ <event keycode="83" unicode="83" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="84" pressed="true">
+ <event keycode="84" unicode="84" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="85" pressed="true">
+ <event keycode="85" unicode="85" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="86" pressed="true">
+ <event keycode="86" unicode="86" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="87" pressed="true">
+ <event keycode="87" unicode="87" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="88" pressed="true">
+ <event keycode="88" unicode="88" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="89" pressed="true">
+ <event keycode="89" unicode="89" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="90" pressed="true">
+ <event keycode="90" unicode="90" modifiers="8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="32" pressed="false">
+ <event keycode="32" unicode="32" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="39" pressed="false">
+ <event keycode="34" unicode="34" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="44" pressed="false">
+ <event keycode="58" unicode="58" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="46" pressed="false">
+ <event keycode="59" unicode="59" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="47" pressed="false">
+ <event keycode="63" unicode="63" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="65" pressed="false">
+ <event keycode="65" unicode="65" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="66" pressed="false">
+ <event keycode="66" unicode="66" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="67" pressed="false">
+ <event keycode="67" unicode="67" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="68" pressed="false">
+ <event keycode="68" unicode="68" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="69" pressed="false">
+ <event keycode="69" unicode="69" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="70" pressed="false">
+ <event keycode="70" unicode="70" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="71" pressed="false">
+ <event keycode="71" unicode="71" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="72" pressed="false">
+ <event keycode="72" unicode="72" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="73" pressed="false">
+ <event keycode="73" unicode="73" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="74" pressed="false">
+ <event keycode="74" unicode="74" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="75" pressed="false">
+ <event keycode="75" unicode="75" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="76" pressed="false">
+ <event keycode="76" unicode="76" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="77" pressed="false">
+ <event keycode="77" unicode="77" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="78" pressed="false">
+ <event keycode="78" unicode="78" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="79" pressed="false">
+ <event keycode="79" unicode="79" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="80" pressed="false">
+ <event keycode="80" unicode="80" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="81" pressed="false">
+ <event keycode="81" unicode="81" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="82" pressed="false">
+ <event keycode="82" unicode="82" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="83" pressed="false">
+ <event keycode="83" unicode="83" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="84" pressed="false">
+ <event keycode="84" unicode="84" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="85" pressed="false">
+ <event keycode="85" unicode="85" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="86" pressed="false">
+ <event keycode="86" unicode="86" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="87" pressed="false">
+ <event keycode="87" unicode="87" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="88" pressed="false">
+ <event keycode="88" unicode="88" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="89" pressed="false">
+ <event keycode="89" unicode="89" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+ <map keycode="90" pressed="false">
+ <event keycode="90" unicode="90" modifiers="8" pressed="false" autorepeat="false"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/latin1.xml b/share/zkb/latin1.xml
new file mode 100644
index 0000000..ec57746
--- a/dev/null
+++ b/share/zkb/latin1.xml
@@ -0,0 +1,1927 @@
+<keymap>
+
+<!--
+Zaurus Keyboard definition for Latin1 characters.
+================================================
+This keyboard should allow the entry of all characters used in latin
+languages like French or Spanish.
+
+The following rules are implemented:
+- Right Shift activate dead keys that allows to compose accentuated characters.
+- Keep Right Shift or press Left Shift to change case of letter
+- Space can be used to abort a key composition and return to Normal state, printing
+the accent.
+
+- Keys not defined are inherited from parent mapping.
+
+Key composition
+===============
+Use the Right Shift with one of the following keys to compose accentuated
+characters.
+ Key Action (Mnemonic)
+ / Accute accent (same slant)
+ ' Grave accent (no backslash!)
+ , Cedilla (a comma under the C)
+ V Circumflex accent (reversed circumflex)
+ J Ligature (Join letters)
+ B Trema (Near circumflex)
+ N Tilde (Same shape on N) ******* Bound to M due to a bug in the definition!
+ I Inversed (Inversed !)
+
+All accents are in the same area, around Space bar.
+
+
+Keyboard navigation (not implemented yet)
+===================
+To be put into common.xml. Use either Right of Left Shift:
+ <- Home
+ -> End
+ ^ PageUp
+ v PageDown
+
+
+Report bugs or comments to Pierre Métras <admin@alterna.tv>
+Version 0.1 - 20020901
+-->
+
+<!-- The base is English mapping -->
+<include file="en.xml"/>
+
+
+<state name="RShift-Accute" parent="RShift"/>
+<state name="RShift-Accute-Lower" parent="Normal"/>
+<state name="RShift-Caps-Accute" parent="Caps"/>
+<state name="RShift-Caps-Accute-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Grave" parent="RShift"/>
+<state name="RShift-Grave-Lower" parent="Normal"/>
+<state name="RShift-Caps-Grave" parent="Caps"/>
+<state name="RShift-Caps-Grave-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Circumflex" parent="RShift"/>
+<state name="RShift-Circumflex-Lower" parent="Normal"/>
+<state name="RShift-Caps-Circumflex" parent="Caps"/>
+<state name="RShift-Caps-Circumflex-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Cedilla" parent="RShift"/>
+<state name="RShift-Cedilla-Lower" parent="Normal"/>
+<state name="RShift-Caps-Cedilla" parent="Caps"/>
+<state name="RShift-Caps-Cedilla-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Ligature" parent="RShift"/>
+<state name="RShift-Ligature-Lower" parent="Normal"/>
+<state name="RShift-Caps-Ligature" parent="Caps"/>
+<state name="RShift-Caps-Ligature-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Trema" parent="RShift"/>
+<state name="RShift-Trema-Lower" parent="Normal"/>
+<state name="RShift-Caps-Trema" parent="Caps"/>
+<state name="RShift-Caps-Trema-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Tilde" parent="RShift"/>
+<state name="RShift-Tilde-Lower" parent="Normal"/>
+<state name="RShift-Caps-Tilde" parent="Caps"/>
+<state name="RShift-Caps-Tilde-Upper" parent="RShift-Caps"/>
+
+<state name="RShift-Inversed" parent="RShift"/>
+<state name="RShift-Caps-Inversed" parent="Caps"/>
+
+
+
+<!-- TO BE PLACED INTO COMMON -->
+<!-- START: EXTENDED KEY NAVIGATION -->
+<state name="LShift">
+ <map keycode="Left" pressed="true">
+ <event keycode="Home" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Left" pressed="false">
+ <event keycode="Home" unicode="-1" pressed="false"/>
+ </map>
+
+ <map keycode="Up" pressed="true">
+ <event keycode="PageUp" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Up" pressed="false">
+ <event keycode="PageUp" unicode="-1" pressed="false"/>
+ </map>
+
+ <map keycode="Right" pressed="true">
+ <event keycode="End" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Right" pressed="false">
+ <event keycode="End" unicode="-1" pressed="false"/>
+ </map>
+
+ <map keycode="Down" pressed="true">
+ <event keycode="PageDown" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Down" pressed="false">
+ <event keycode="PageDown" unicode="-1" pressed="false"/>
+ </map>
+</state>
+<state name="RShift">
+ <map keycode="Left" pressed="true">
+ <event keycode="Home" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Left" pressed="false">
+ <event keycode="Home" unicode="-1" pressed="false"/>
+ </map>
+
+ <map keycode="Up" pressed="true">
+ <event keycode="PageUp" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Up" pressed="false">
+ <event keycode="PageUp" unicode="-1" pressed="false"/>
+ </map>
+
+ <map keycode="Right" pressed="true">
+ <event keycode="End" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Right" pressed="false">
+ <event keycode="End" unicode="-1" pressed="false"/>
+ </map>
+
+ <map keycode="Down" pressed="true">
+ <event keycode="PageDown" unicode="-1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Down" pressed="false">
+ <event keycode="PageDown" unicode="-1" pressed="false"/>
+ </map>
+</state>
+<!-- END: EXTENDED KEY NAVIGATION -->
+
+
+
+<!-- RShift activate dead keys -->
+<state name="RShift">
+ <map keycode="Slash" pressed="true">
+ <next-state name="RShift-Accute"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <next-state name="RShift-Grave"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <next-state name="RShift-Cedilla"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <next-state name="RShift-Ligature"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <next-state name="RShift-Circumflex"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <next-state name="RShift-Trema"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <next-state name="RShift-Tilde"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <next-state name="RShift-Inversed"/>
+ </map>
+</state>
+
+
+<!-- RShift activate dead keys in CAPS mode -->
+<state name="RShift-Caps">
+ <map keycode="Slash" pressed="true">
+ <next-state name="RShift-Caps-Accute"/>
+ </map>
+ <map keycode="Apostrophe" pressed="true">
+ <next-state name="RShift-Caps-Grave"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <next-state name="RShift-Caps-Cedilla"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <next-state name="RShift-Caps-Ligature"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <next-state name="RShift-Caps-Circumflex"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <next-state name="RShift-Caps-Trema"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <next-state name="RShift-Caps-Tilde"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <next-state name="RShift-Caps-Inversed"/>
+ </map>
+</state>
+
+
+<!-- Accute Accentuated Upper-Case Characters: Á, É... because we still press Shift -->
+<state name="RShift-Accute">
+ <!-- RS + (/) + A = Á -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC1" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC1" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + E = É -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xC9" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xC9" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + I = Í -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCD" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCD" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + O = Ó -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD3" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD3" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + U = Ú -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xDA" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xDA" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + Y = Ý -->
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0xDD" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0xDD" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Accute-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Accute-Lower"/>
+ </map>
+
+ <!-- Abort operation: print ´ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Slash" unicode="0xB4" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Accute Accentuated Lower-Case Characters: á, é... because we have released RShift -->
+<state name="RShift-Accute-Lower">
+ <!-- RS + (/) + A = á -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE1" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + E = é -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xE9" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xE9" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + I = í -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xED" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xED" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + O = ó -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF3" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF3" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + U = ú -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xFA" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xFA" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (/) + Y = ý -->
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0xFD" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0xFD" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Accute"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Accute"/>
+ </map>
+
+ <!-- Abort operation: print ´ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Slash" unicode="0xB4" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Accute Accentuated Lower-Case Characters: á, é... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Accute">
+ <!-- Caps + RS + (/) + A = á -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE1" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + E = é -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xE9" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xE9" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + I = í -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xED" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xED" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + O = ó -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF3" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF3" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + U = ú -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xFA" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xFA" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + Y = ý -->
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0xFD" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0xFD" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Accute-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Accute-Upper"/>
+ </map>
+
+ <!-- Abort operation: print ´ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Slash" unicode="0xB4" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Accute Accentuated Upper-Case Characters: Á, É... because we have released RShift but we are in Caps -->
+<state name="RShift-Caps-Accute-Upper">
+ <!-- Caps + RS + (/) + A = Á -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC1" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC1" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + E = É -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xC9" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xC9" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + I = Í -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCD" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCD" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + O = Ó -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD3" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD3" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + U = Ú -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xDA" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xDA" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (/) + Y = Ý -->
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0xDD" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0xDD" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Accute"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Accute"/>
+ </map>
+
+ <!-- Abort operation: print ´ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Slash" unicode="0xB4" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Slash" unicode="0xB4" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Grave Accentuated Upper-Case Characters: À, È, Ì... because we still press Shift -->
+<state name="RShift-Grave">
+ <!-- RS + (') + A = À -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC0" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC0" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + E = È -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xC8" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xC8" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + I = Ì -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCC" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCC" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + O = Ò -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD2" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD2" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + U = Ù -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xD9" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xD9" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Grave-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Grave-Lower"/>
+ </map>
+
+ <!-- Abort operation: print ` -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Apostrophe" unicode="0x60" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Grave Accentuated Lower-Case Characters: à, è, ì... because we have released RShift -->
+<state name="RShift-Grave-Lower">
+ <!-- RS + (') + A = à -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE0" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + E = è -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xE8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xE8" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + I = ì -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xEC" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xEC" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + O = ò -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF2" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF2" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (') + U = ù -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xF9" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xF9" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Grave"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Grave"/>
+ </map>
+
+ <!-- Abort operation: print ` -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Apostrophe" unicode="0x60" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Grave Accentuated Lower-Case Characters: à, è... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Grave">
+ <!-- Caps + RS + (') + A = à -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE0" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE0" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + E = è -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xE8" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xE8" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + I = ì -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xEC" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xEC" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + O = ò -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF2" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF2" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + U = ú -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xF9" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xF9" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Grave-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Grave-Upper"/>
+ </map>
+
+ <!-- Abort operation: print ` -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Apostrophe" unicode="0x60" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Grave Accentuated Upper-Case Characters: À, È, Ì... because we have released RShift and we are in Caps -->
+<state name="RShift-Caps-Grave-Upper">
+ <!-- Caps + RS + (') + A = À -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC0" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC0" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + E = È -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xC8" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xC8" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + I = Ì -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCC" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCC" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + O = Ò -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD2" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD2" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (') + U = Ù -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xD9" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xD9" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Grave"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Grave"/>
+ </map>
+
+ <!-- Abort operation: print ` -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Apostrophe" unicode="0x60" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Apostrophe" unicode="0x60" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Circumflex Accentuated Upper-Case Characters: Â, Ê, Î... because we still press Shift -->
+<state name="RShift-Circumflex">
+ <!-- RS + (V) + A = Â -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC2" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC2" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + E = Ê -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xCA" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xCA" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + I = Î -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCE" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCE" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + O = Ô -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD4" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD4" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + U = Û -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xDB" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xDB" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Circumflex-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Circumflex-Lower"/>
+ </map>
+
+ <!-- Abort operation: print ^ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="V" unicode="0x5E" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Circumflex Accentuated Lower-Case Characters: â, ê, î... because we have released RShift -->
+<state name="RShift-Circumflex-Lower">
+ <!-- RS + (V) + A = â -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE2" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE2" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + E = ê -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xEA" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xEA" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + I = î -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xEE" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xEE" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + O = ô -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF4" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF4" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (V) + U = û -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xFB" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xFB" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Circumflex"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Circumflex"/>
+ </map>
+
+ <!-- Abort operation: print ^ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="V" unicode="0x5E" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Circumflex Accentuated Lower-Case Characters: â, ê... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Circumflex">
+ <!-- Caps + RS + (V) + A = â -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE2" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE2" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + E = ê -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xEA" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xEA" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + I = î -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xEE" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xEE" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + O = ô -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF4" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF4" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + U = û -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xFB" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xFB" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Circumflex-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Circumflex-Upper"/>
+ </map>
+
+ <!-- Abort operation: print ^ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="V" unicode="0x5E" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Circumflex Accentuated Upper-Case Characters: Â, Ê, Î... because we have released RShift and we are in Caps -->
+<state name="RShift-Caps-Circumflex-Upper">
+ <!-- Caps + RS + (V) + A = Â -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC2" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC2" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + E = Ê -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xCA" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xCA" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + I = Î -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCE" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCE" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + O = Ô -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD4" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD4" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (V) + U = Û -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xDB" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xDB" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Circumflex"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Circumflex"/>
+ </map>
+
+ <!-- Abort operation: print ^ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="V" unicode="0x5E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="V" unicode="0x5E" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Cedilla Upper-Case Characters: Ç... because we still press Shift -->
+<state name="RShift-Cedilla">
+ <!-- RS + (,) + C = Ç -->
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="0xC7" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="0xC7" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Cedilla-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Cedilla-Lower"/>
+ </map>
+
+ <!-- Abort operation: print ¸ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Comma" unicode="0xB8" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Cedilla Lower-Case Characters: ç... because we have released RShift -->
+<state name="RShift-Cedilla-Lower">
+ <!-- RS + (,) + C = ç -->
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="0xE7" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="0xE7" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Cedilla"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Cedilla"/>
+ </map>
+
+ <!-- Abort operation: print ¸ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Comma" unicode="0xB8" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Cedilla Lower-Case Characters: ç... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Cedilla">
+ <!-- Caps + RS + (,) + C = ç -->
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="0xE7" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="0xE7" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Cedilla-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Cedilla-Upper"/>
+ </map>
+
+ <!-- Abort operation: print ¸ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Comma" unicode="0xB8" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Cedilla Upper-Case Characters: Ç... because we have released RShift but we are in Caps -->
+<state name="RShift-Caps-Cedilla-Upper">
+ <!-- Caps + RS + (,) + C = Ç -->
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="0xC7" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="0xC7" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Cedilla"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Cedilla"/>
+ </map>
+
+ <!-- Abort operation: print ¸ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="Comma" unicode="0xB8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="Comma" unicode="0xB8" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Ligatured Upper-Case Characters: Æ, Œ ... because we still press Shift -->
+<state name="RShift-Ligature">
+ <!-- RS + (J) + A = Æ -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC6" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC6" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (J) + O = Œ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0x152" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0x152" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Ligature-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Ligature-Lower"/>
+ </map>
+
+ <!-- Abort operation: print J -->
+ <map keycode="Space" pressed="true">
+ <event keycode="J" unicode="0x4A" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="J" unicode="0x4A" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Ligatured Lower-Case Characters: æ, œ... because we have released RShift -->
+<state name="RShift-Ligature-Lower">
+ <!-- RS + (J) + A = æ -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE6" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE6" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (J) + O = œ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0x153" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0x153" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Ligature"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Ligature"/>
+ </map>
+
+ <!-- Abort operation: print j -->
+ <map keycode="Space" pressed="true">
+ <event keycode="J" unicode="0x6A" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="J" unicode="0x6A" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Ligatured Lower-Case Characters: æ, œ... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Ligature">
+ <!-- Caps + RS + (J) + A = æ -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE6" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE6" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (J) + O = œ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0x153" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0x153" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Ligature-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Ligature-Upper"/>
+ </map>
+
+ <!-- Abort operation: print j -->
+ <map keycode="Space" pressed="true">
+ <event keycode="J" unicode="0x6A" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="J" unicode="0x6A" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Ligatured Upper-Case Characters: Æ, Œ... because we have released RShift but we are in Caps -->
+<state name="RShift-Caps-Ligature-Upper">
+ <!-- Caps + RS + (J) + A = Æ -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC6" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC6" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (J) + O = Œ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0x152" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0x152" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Ligature"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Ligature"/>
+ </map>
+
+ <!-- Abort operation: print J -->
+ <map keycode="Space" pressed="true">
+ <event keycode="J" unicode="0x4A" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="J" unicode="0x4A" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Trema Accentuated Upper-Case Characters: Ä, Ë... because we still press Shift -->
+<state name="RShift-Trema">
+ <!-- RS + (B) + A = Ä -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC4" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC4" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + E = Ë -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xCB" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xCB" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + I = Ï -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCF" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCF" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + O = Ö -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD6" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD6" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + U = Ü -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xDC" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xDC" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Trema-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Trema-Lower"/>
+ </map>
+
+ <!-- Abort operation: print ¨ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="B" unicode="0xA8" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Trema Accentuated Lower-Case Characters: ä, ë... because we have released RShift -->
+<state name="RShift-Trema-Lower">
+ <!-- RS + (B) + A = ä -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE4" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE4" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + E = ë -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xEB" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xEB" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + I = ï -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xEF" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xEF" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + O = ö -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF6" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF6" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + U = ü -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xFC" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xFC" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (B) + Y = ÿ -->
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0xFF" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0xFF" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Trema"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Trema"/>
+ </map>
+
+ <!-- Abort operation: print ¨ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="B" unicode="0xA8" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Trema Accentuated Lower-Case Characters: ä, ë... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Trema">
+ <!-- Caps + RS + (B) + A = ä -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE4" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE4" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + E = ë -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xEB" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xEB" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + I = ï -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xEF" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xEF" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + O = ö -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF6" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF6" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + U = ü -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xFC" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xFC" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + Y = ÿ -->
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0xFF" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0xFF" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Trema-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Trema-Upper"/>
+ </map>
+
+ <!-- Abort operation: print ¨ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="B" unicode="0xA8" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Trema Accentuated Upper-Case Characters: Ä, Ë... because we have released RShift but we are in Caps -->
+<state name="RShift-Caps-Trema-Upper">
+ <!-- Caps + RS + (B) + A = Ä -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC4" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC4" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + E = Ë -->
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0xCB" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0xCB" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + I = Ï -->
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0xCF" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0xCF" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + O = Ö -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD6" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD6" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (B) + U = Ü -->
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0xDC" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0xDC" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Trema"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Trema"/>
+ </map>
+
+ <!-- Abort operation: print ¨ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="B" unicode="0xA8" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Tilde Upper-Case Characters: Ã, Ñ... because we still press Shift -->
+<state name="RShift-Tilde">
+ <!-- RS + (N) + A = Ã -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC3" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC3" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (N) + N = Ñ -->
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="0xD1" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0xD1" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (N) + O = Õ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD5" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD5" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Release shift to do lower-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Tilde-Lower"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Tilde-Lower"/>
+ </map>
+
+ <!-- Abort operation: print ~ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="N" unicode="0x7E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="N" unicode="0x7E" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Tilde Lower-Case Characters: ã, ñ, õ... because we have released RShift -->
+<state name="RShift-Tilde-Lower">
+ <!-- RS + (N) + A = ã -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE3" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE3" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (N) + N = ñ -->
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="0xF1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0xF1" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (N) + O = õ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF5" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF5" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Simple shift second time goes Upper-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Tilde"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Tilde"/>
+ </map>
+
+ <!-- Abort operation: print ¨ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="B" unicode="0xA8" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="B" unicode="0xA8" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Tilde Lower-Case Characters: ã, ñ, õ... because we still press Shift and we are in Caps -->
+<state name="RShift-Caps-Tilde">
+ <!-- Caps + RS + (N) + A = ã -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xE3" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xE3" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (N) + N = ñ -->
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="0xF1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0xF1" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (N) + O = õ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xF5" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xF5" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Release shift to go upper-case -->
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Tilde-Upper"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Tilde-Upper"/>
+ </map>
+
+ <!-- Abort operation: print ~ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="N" unicode="0x7E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="N" unicode="0x7E" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+<!-- Tilde Upper-Case Characters: Ã, Ñ, Õ... because we have released RShift but we are in Caps -->
+<state name="RShift-Caps-Tilde-Upper">
+ <!-- Caps + RS + (N) + A = Ã -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xC3" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xC3" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (N) + N = Ñ -->
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="0xD1" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0xD1" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (N) + O = Õ -->
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0xD5" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0xD5" pressed="false" modifiers="Shift"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Simple shift second time goes Lower-Case -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Tilde"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Tilde"/>
+ </map>
+
+ <!-- Abort operation: print ~ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="N" unicode="0x7E" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="N" unicode="0x7E" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+
+
+<!-- Inversed Characters: ¡, ¿... -->
+<state name="RShift-Inversed">
+ <!-- RS + (I) + A = ¡ -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xA1" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xA1" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- RS + (I) + / = ¿ -->
+ <map keycode="Slash" pressed="true">
+ <event keycode="Slash" unicode="0xBF" pressed="true" modifiers="Shift" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0xBF" pressed="false" modifiers="Shift"/>
+ <next-state name="Normal"/>
+ </map>
+
+ <!-- Shift has no action -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Inversed"/>
+ </map>
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Inversed"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Inversed"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Inversed"/>
+ </map>
+
+ <!-- Abort operation: print ¬ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="I" unicode="0xAC" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="I" unicode="0xAC" pressed="false"/>
+ <next-state name="Normal"/>
+ </map>
+</state>
+
+
+<!-- Inversed Characters: ¡, ¿... -->
+<state name="RShift-Caps-Inversed">
+ <!-- Caps + RS + (I) + A = ¡ -->
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0xA1" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0xA1" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Caps + RS + (I) + / = ¿ -->
+ <map keycode="Slash" pressed="true">
+ <event keycode="Slash" unicode="0xBF" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Slash" unicode="0xBF" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+
+ <!-- Shift has no effect -->
+ <map keycode="Right Shift" pressed="true">
+ <next-state name="RShift-Caps-Inversed"/>
+ </map>
+ <map keycode="Right Shift" pressed="false">
+ <next-state name="RShift-Caps-Inversed"/>
+ </map>
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="true" modifiers="Shift"/>
+ <next-state name="RShift-Caps-Inversed"/>
+ </map>
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps-Inversed"/>
+ </map>
+
+ <!-- Abort operation: print ¬ -->
+ <map keycode="Space" pressed="true">
+ <event keycode="I" unicode="0xAC" pressed="true" autorepeat="false"/>
+ </map>
+ <map keycode="Space" pressed="false">
+ <event keycode="I" unicode="0xAC" pressed="false"/>
+ <next-state name="Caps"/>
+ </map>
+</state>
+
+
+</keymap>
diff --git a/share/zkb/ru.xml b/share/zkb/ru.xml
new file mode 100644
index 0000000..f0cc214
--- a/dev/null
+++ b/share/zkb/ru.xml
@@ -0,0 +1,542 @@
+<keymap>
+
+<include file="common.xml"/>
+
+<state name="LShift-RShift" parent="common"/>
+<state name="LShift-RShift-Caps" parent="common"/>
+
+<state name="LShift">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="RShift">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0x44D" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="0x436" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0x44E" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0x44C" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0x44D" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="0x436" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0x44E" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0x44C" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift"/>
+ </map>
+</state>
+
+<state name="LShift-Caps">
+ <map keycode="Right Shift" pressed="true">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-Num">
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="Num"/>
+ </map>
+
+ <map keycode="Fn" pressed="true">
+ <event keycode="F22" unicode="-1" modifiers="Control" pressed="true"/>
+ <next-state name="LShift-Fn-Num"/>
+ </map>
+</state>
+
+<state name="RShift-Caps">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0x42D" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="0x416" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0x42E" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0x42C" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0x42D" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="0x416" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0x42E" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0x42C" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="true">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="LShift-RShift-Caps"/>
+ </map>
+</state>
+
+<state name="LShift-RShift">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0x42D" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="0x416" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0x42E" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0x42C" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0x42D" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="0x416" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0x42E" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0x42C" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift"/>
+ </map>
+</state>
+
+<state name="LShift-RShift-Caps">
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0x44D" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="0x436" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0x44E" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0x44C" pressed="true" autorepeat="true"/>
+ </map>
+
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0x44D" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="0x436" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0x44E" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0x44C" pressed="false"/>
+ </map>
+
+ <map keycode="Left Shift" pressed="false">
+ <event keycode="Shift" unicode="-1" pressed="false"/>
+ <next-state name="RShift-Caps"/>
+ </map>
+
+ <map keycode="Right Shift" pressed="false">
+ <event keycode="Meta" unicode="-1" pressed="false"/>
+ <next-state name="LShift-Caps"/>
+ </map>
+</state>
+
+<state name="upper-case">
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="QuoteDbl" unicode="34" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Semicolon" unicode="59" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Colon" unicode="58" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Question" unicode="63" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0x410" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="0x411" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="0x426" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="0x414" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0x415" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="0x424" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="0x413" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="0x425" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0x418" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="0x419" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="0x41A" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="0x41B" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="0x41C" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="0x41D" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0x41E" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="0x41F" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="0x42F" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="0x420" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="0x421" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="0x422" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0x423" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="0x412" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="0x428" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="0x427" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0x42B" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="0x417" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="QuoteDbl" unicode="34" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Semicolon" unicode="59" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Colon" unicode="58" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Question" unicode="63" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0x410" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="0x411" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="0x426" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="0x414" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0x415" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="0x424" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="0x413" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="0x425" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0x418" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="0x419" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="0x41A" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="0x41B" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="0x41C" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0x41D" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0x41E" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="0x41F" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="0x42F" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="0x420" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="0x421" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="0x422" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0x423" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="0x412" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="0x428" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="0x427" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0x42B" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="0x417" pressed="false"/>
+ </map>
+</state>
+
+<state name="lower-case">
+ <map keycode="Apostrophe" pressed="true">
+ <event keycode="QuoteDbl" unicode="34" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Comma" pressed="true">
+ <event keycode="Semicolon" unicode="59" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Period" pressed="true">
+ <event keycode="Colon" unicode="58" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Slash" pressed="true">
+ <event keycode="Question" unicode="63" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="A" pressed="true">
+ <event keycode="A" unicode="0x430" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="B" pressed="true">
+ <event keycode="B" unicode="0x431" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="C" pressed="true">
+ <event keycode="C" unicode="0x446" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="D" pressed="true">
+ <event keycode="D" unicode="0x434" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="E" pressed="true">
+ <event keycode="E" unicode="0x435" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="F" pressed="true">
+ <event keycode="F" unicode="0x444" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="G" pressed="true">
+ <event keycode="G" unicode="0x433" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="H" pressed="true">
+ <event keycode="H" unicode="0x445" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="I" pressed="true">
+ <event keycode="I" unicode="0x438" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="J" pressed="true">
+ <event keycode="J" unicode="0x439" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="K" pressed="true">
+ <event keycode="K" unicode="0x43A" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="L" pressed="true">
+ <event keycode="L" unicode="0x43B" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="M" pressed="true">
+ <event keycode="M" unicode="0x43C" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="N" pressed="true">
+ <event keycode="N" unicode="0x43D" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="O" pressed="true">
+ <event keycode="O" unicode="0x43E" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="P" pressed="true">
+ <event keycode="P" unicode="0x43F" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Q" pressed="true">
+ <event keycode="Q" unicode="0x44F" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="R" pressed="true">
+ <event keycode="R" unicode="0x440" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="S" pressed="true">
+ <event keycode="S" unicode="0x441" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="T" pressed="true">
+ <event keycode="T" unicode="0x442" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="U" pressed="true">
+ <event keycode="U" unicode="0x443" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="V" pressed="true">
+ <event keycode="V" unicode="0x432" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="W" pressed="true">
+ <event keycode="W" unicode="0x448" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="X" pressed="true">
+ <event keycode="X" unicode="0x447" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Y" pressed="true">
+ <event keycode="Y" unicode="0x44B" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Z" pressed="true">
+ <event keycode="Z" unicode="0x437" pressed="true" autorepeat="true"/>
+ </map>
+ <map keycode="Apostrophe" pressed="false">
+ <event keycode="QuoteDbl" unicode="34" pressed="false"/>
+ </map>
+ <map keycode="Comma" pressed="false">
+ <event keycode="Semicolon" unicode="59" pressed="false"/>
+ </map>
+ <map keycode="Period" pressed="false">
+ <event keycode="Colon" unicode="58" pressed="false"/>
+ </map>
+ <map keycode="Slash" pressed="false">
+ <event keycode="Question" unicode="63" pressed="false"/>
+ </map>
+ <map keycode="A" pressed="false">
+ <event keycode="A" unicode="0x430" pressed="false"/>
+ </map>
+ <map keycode="B" pressed="false">
+ <event keycode="B" unicode="0x431" pressed="false"/>
+ </map>
+ <map keycode="C" pressed="false">
+ <event keycode="C" unicode="0x446" pressed="false"/>
+ </map>
+ <map keycode="D" pressed="false">
+ <event keycode="D" unicode="0x434" pressed="false"/>
+ </map>
+ <map keycode="E" pressed="false">
+ <event keycode="E" unicode="0x435" pressed="false"/>
+ </map>
+ <map keycode="F" pressed="false">
+ <event keycode="F" unicode="0x444" pressed="false"/>
+ </map>
+ <map keycode="G" pressed="false">
+ <event keycode="G" unicode="0x433" pressed="false"/>
+ </map>
+ <map keycode="H" pressed="false">
+ <event keycode="H" unicode="0x445" pressed="false"/>
+ </map>
+ <map keycode="I" pressed="false">
+ <event keycode="I" unicode="0x438" pressed="false"/>
+ </map>
+ <map keycode="J" pressed="false">
+ <event keycode="J" unicode="0x439" pressed="false"/>
+ </map>
+ <map keycode="K" pressed="false">
+ <event keycode="K" unicode="0x43A" pressed="false"/>
+ </map>
+ <map keycode="L" pressed="false">
+ <event keycode="L" unicode="0x43B" pressed="false"/>
+ </map>
+ <map keycode="M" pressed="false">
+ <event keycode="M" unicode="0x43C" pressed="false"/>
+ </map>
+ <map keycode="N" pressed="false">
+ <event keycode="N" unicode="0x43D" pressed="false"/>
+ </map>
+ <map keycode="O" pressed="false">
+ <event keycode="O" unicode="0x43E" pressed="false"/>
+ </map>
+ <map keycode="P" pressed="false">
+ <event keycode="P" unicode="0x43F" pressed="false"/>
+ </map>
+ <map keycode="Q" pressed="false">
+ <event keycode="Q" unicode="0x44F" pressed="false"/>
+ </map>
+ <map keycode="R" pressed="false">
+ <event keycode="R" unicode="0x440" pressed="false"/>
+ </map>
+ <map keycode="S" pressed="false">
+ <event keycode="S" unicode="0x441" pressed="false"/>
+ </map>
+ <map keycode="T" pressed="false">
+ <event keycode="T" unicode="0x442" pressed="false"/>
+ </map>
+ <map keycode="U" pressed="false">
+ <event keycode="U" unicode="0x443" pressed="false"/>
+ </map>
+ <map keycode="V" pressed="false">
+ <event keycode="V" unicode="0x432" pressed="false"/>
+ </map>
+ <map keycode="W" pressed="false">
+ <event keycode="W" unicode="0x448" pressed="false"/>
+ </map>
+ <map keycode="X" pressed="false">
+ <event keycode="X" unicode="0x447" pressed="false"/>
+ </map>
+ <map keycode="Y" pressed="false">
+ <event keycode="Y" unicode="0x44B" pressed="false"/>
+ </map>
+ <map keycode="Z" pressed="false">
+ <event keycode="Z" unicode="0x437" pressed="false"/>
+ </map>
+</state>
+
+</keymap>
diff --git a/share/zkb/zkb.xml.sample b/share/zkb/zkb.xml.sample
new file mode 100644
index 0000000..7fc07a9
--- a/dev/null
+++ b/share/zkb/zkb.xml.sample
@@ -0,0 +1,55 @@
+<keymap autorepeat-delay="400" autorepeat-period="80" author="keyzcfg">
+ <label name="EN" state="km0:*"/>
+ <label name="BG" state="km1:*"/>
+ <include file="en.xml" prefix="km0"/>
+ <include file="bg.xml" prefix="km1"/>
+ <state name="km0:LShift">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km1:LShift"/>
+ </map>
+ </state>
+
+ <state name="km0:LShift-Caps">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km1:LShift-Caps"/>
+ </map>
+ </state>
+
+ <state name="km0:LShift-Num">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km1:LShift-Num"/>
+ </map>
+ </state>
+
+ <state name="km0:LShift-Num-Caps">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km1:LShift-Num-Caps"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km0:LShift"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift-Caps">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km0:LShift-Caps"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift-Num">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km0:LShift-Num"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift-Num-Caps">
+ <map keycode="Middle" pressed="true">
+ <next-state name="km0:LShift-Num-Caps"/>
+ </map>
+ </state>
+
+ <state name="km0:Normal" default="true"/>
+</keymap>
diff --git a/share/zkb/zkb.xml.sample.num b/share/zkb/zkb.xml.sample.num
new file mode 100644
index 0000000..667e6a5
--- a/dev/null
+++ b/share/zkb/zkb.xml.sample.num
@@ -0,0 +1,55 @@
+<keymap autorepeat-delay="400" autorepeat-period="80" author="keyzcfg">
+ <label name="EN" state="km0:*"/>
+ <label name="BG" state="km1:*"/>
+ <include file="en.xml" prefix="km0"/>
+ <include file="bg.xml" prefix="km1"/>
+ <state name="km0:LShift">
+ <map keycode="4173" pressed="true">
+ <next-state name="km1:LShift"/>
+ </map>
+ </state>
+
+ <state name="km0:LShift-Caps">
+ <map keycode="4173" pressed="true">
+ <next-state name="km1:LShift-Caps"/>
+ </map>
+ </state>
+
+ <state name="km0:LShift-Num">
+ <map keycode="4173" pressed="true">
+ <next-state name="km1:LShift-Num"/>
+ </map>
+ </state>
+
+ <state name="km0:LShift-Num-Caps">
+ <map keycode="4173" pressed="true">
+ <next-state name="km1:LShift-Num-Caps"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift">
+ <map keycode="4173" pressed="true">
+ <next-state name="km0:LShift"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift-Caps">
+ <map keycode="4173" pressed="true">
+ <next-state name="km0:LShift-Caps"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift-Num">
+ <map keycode="4173" pressed="true">
+ <next-state name="km0:LShift-Num"/>
+ </map>
+ </state>
+
+ <state name="km1:LShift-Num-Caps">
+ <map keycode="4173" pressed="true">
+ <next-state name="km0:LShift-Num-Caps"/>
+ </map>
+ </state>
+
+ <state name="km0:Normal" default="true"/>
+</keymap> \ No newline at end of file