summaryrefslogtreecommitdiff
path: root/share/zkb
Side-by-side diff
Diffstat (limited to 'share/zkb') (more/less context) (show whitespace changes)
-rw-r--r--share/zkb/common_c8x0.xml2121
-rw-r--r--share/zkb/de_c8x0.xml68
2 files changed, 2189 insertions, 0 deletions
diff --git a/share/zkb/common_c8x0.xml b/share/zkb/common_c8x0.xml
new file mode 100644
index 0000000..49ffb59
--- a/dev/null
+++ b/share/zkb/common_c8x0.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="false"/>
+ </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/de_c8x0.xml b/share/zkb/de_c8x0.xml
new file mode 100644
index 0000000..7e7f42a
--- a/dev/null
+++ b/share/zkb/de_c8x0.xml
@@ -0,0 +1,68 @@
+<keymap>
+
+<include file="common_c8x0.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="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>
+
+</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="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>
+</state>
+
+</keymap>