diff --git a/examples/uhk.key-design.svg b/examples/uhk.key-design.svg
old mode 100644
new mode 100755
index a2a41692..ff8f7b02
--- a/examples/uhk.key-design.svg
+++ b/examples/uhk.key-design.svg
@@ -28,7 +28,14 @@
+ id="defs228">
+
+
Base layer
-
-
+ rx="3.5433071"
+ ry="3.5433071"
+ x="699.9024"
+ y="92.948509"
+ height="63.779526"
+ width="63.779526"
+ id="a11" />
+
-
-
-
+ y="684.57452"
+ rx="3.5433099"
+ ry="3.5433097" />
+
+
+ rx="3.5433099"
+ ry="3.5433097" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ rx="3.5433099"
+ ry="3.5433097" />
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ←
-
-
- Y
-
-
- U
-
-
- I
-
-
- O
-
-
- P
-
-
- H
-
-
- J
-
-
- K
-
-
- L
-
-
- Enter
-
-
- N
-
-
- M
-
-
- Shift
-
-
- Space
-
-
- Fn
-
-
- Alt
-
-
- Super
-
-
- Ctrl
-
-
- Mod
-
-
-
-
-
-
-
-
+ y="717.52637"
+ rx="3.5433102"
+ ry="3.5433099" />
+ rx="3.5433099"
+ ry="3.5433099" />
-
-
-
-
-
+ y="673.94373"
+ rx="3.5433099"
+ ry="3.5433099" />
-
+ height="21.259842"
+ x="363.28802"
+ y="695.20355"
+ rx="3.5433099"
+ ry="3.5433099" />
+
+
+
+ height="21.259842"
+ x="363.28802"
+ y="716.46338"
+ rx="3.5433102"
+ ry="3.5433099" />
+ height="21.259842"
+ x="363.28802"
+ y="673.94373"
+ rx="3.5433099"
+ ry="3.5433099" />
+ height="21.259842"
+ x="363.28802"
+ y="695.20355"
+ rx="3.5433099"
+ ry="3.5433099" />
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ←
+
+
+ Y
+
+
+ U
+
+
+ I
+
+
+ O
+
+
+ P
+
+
+ H
+
+
+ J
+
+
+ K
+
+
+ L
+
+
+ Enter
+
+
+ N
+
+
+ M
+
+
+ Shift
+
+
+ Space
+
+
+ Fn
+
+
+ Alt
+
+
+ Super
+
+
+ Ctrl
+
+
+ Mod
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
- Tab
-
- Tab
+
+
+
- Q
-
- Q
+
+
+
- W
-
- W
+
+
+
- E
-
- E
+
+
+
- R
-
- R
+
+
+
- T
-
- T
+
+
+
- Mouse
-
- Mouse
+
+
+
- A
-
- A
+
+
+
- S
-
- S
+
+
+
- D
-
- D
+
+
+
- F
-
- F
+
+
+
- G
-
- G
+
+
+
- Shift
-
- Shift
+
+
+
- Z
-
- Z
+
+
+
- X
-
- X
+
+
+
- C
-
- C
+
+
+
- V
-
- V
+
+
+
- B
-
- B
+
+
+
- Ctrl
-
- Ctrl
+
+
+
- Super
-
- Super
+
+
+
- Alt
-
- Alt
+
+
+
- Fn
-
- Fn
+
+
+
- Mod
-
-
- Space
-
- Mod
+
+
+ Space
+
+
-
+ @2
+ y="111.77499"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19px;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">@2
+
+
+
+
+
+
+ C
+ A
+
+ <,
+ >.
+ ?/
+
+
+ !1
+ #3
+
+ transform="translate(324.32598,1034.4438)">
C
+
A
- <,
- >.
- ?/
-
-
- !1
- #3
-
-
-
-
-
-
-
- C
-
- A
- S
-
- $
- S
+
+ $
+ &7
- &7
+ *8
- 8
+ (9
- (9
+ )0
- 0
+ _-
- _-
+ +=
- 4
+ y="110.5483"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:19px;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">+=
+ 4
+
-
-
-
+
+ Mouse
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
- %
- 5
-
-
-
- Mod
-
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:14.13553333px;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;text-anchor:middle;fill:#ffffff;fill-opacity:1">Mouse
- ^
- 6
+
+
-
-
- Fn
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
+ transform="translate(257.00314,1034.4438)">
+
+
+
+
:;
- "'
- {[
- }]
- |\
-
-
-
-
-
-
-
- C
-
-
-
-
- ~`
-
-
-
-
- C
+
+ %
+ 5
+
+
+
+ Mod
+
+
+ ^
+ 6
+
+
+
+ Fn
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+ :;
+ "'
+ {[
+ }]
+ |\
+
+
+
+
+
+
+
+ C
+
+
+
+
+ ~`
+
+
+
+
+ C
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
-
-
C
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
- C
+
+
+
+
+
+
+
+
+ C
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
+ y="422.35764"
+ style="font-size:12.12682629px;fill:#787878;fill-opacity:1">C
+
+
+
+
C
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+ width="27.197886"
+ id="rect4399-2-5-997-67-1"
+ style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.70565689;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ width="27.197886"
+ id="rect4399-0-2-4-00-1-3"
+ style="overflow:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.70565689;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ width="27.197886"
+ id="rect4399-0-9-3-2-44-4-6"
+ style="overflow:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.70565689;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+ width="27.197886"
+ id="rect4399-0-0-2-7-39-8-1"
+ style="overflow:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.70565689;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
C
+
+
+ C
+
+
+
+
+
+ transform="translate(-1.358645,0)"
+ id="g5437-4">
+
+ Mouse
+
+
+
+
- C
-
-
-
+ C
+
+
+
+
+
+ id="g4443-3-9-3-46"
+ style="overflow:visible;fill:none;stroke:none;stroke-opacity:1"
+ transform="translate(526.29449,1034.4438)">
+ inkscape:transform-center-x="4.5741767"
+ inkscape:transform-center-y="-1.5619265" />
- C
-
+ inkscape:transform-center-x="4.5741767"
+ inkscape:transform-center-y="-1.5619265" />
+ inkscape:transform-center-x="4.5741767"
+ inkscape:transform-center-y="-1.5619265" />
-
-
+ inkscape:transform-center-x="4.5741767"
+ inkscape:transform-center-y="-1.5619265" />
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
-
-
- Mouse
-
-
-
+ id="g6873-1-5"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0">
C
+ id="path5460-44-93-16" />
+ id="path5453-7-89-9" />
+
+
+
+ id="g6873-1-5-9"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0-7">
C
+ id="path5460-44-93-16-0" />
+ id="path5453-7-89-9-9" />
+
+
+
+ id="g6873-1-5-5"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0-3">
C
+ id="path5460-44-93-16-2" />
+ id="path5453-7-89-9-8" />
+
+
+
+ id="g6873-1-5-96"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0-5">
C
+ id="path5460-44-93-16-9" />
+ id="path5453-7-89-9-1" />
+
+
+
+ id="g6873-1-5-0"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0-78">
C
+ id="path5460-44-93-16-94" />
+ id="path5453-7-89-9-4" />
+
+
+
+ id="g6873-1-5-01"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0-1">
C
+ id="path5460-44-93-16-23" />
+ id="path5453-7-89-9-3" />
+
+
+
+ id="g6873-1-5-8"
+ transform="translate(-288.81346,134.99848)">
+ id="g4443-3-9-3-2-0-52">
C
+ style="font-size:12.12682629px;fill:#82b2dc;fill-opacity:1">C
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
- C
-
+ style="fill:#82b2dc;fill-opacity:1;stroke:none" />
+ id="path5460-44-93-16-28" />
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- C
-
-
-
-
-
+ id="path5453-7-89-9-0" />
-
+
+
+ id="g6873-1-5-7"
+ transform="translate(-288.81346,134.99848)">
-
-
-
-
-
-
- C
-
-
-
+ transform="translate(526.29449,1034.4438)"
+ style="overflow:visible;fill:none;stroke:none;stroke-opacity:1"
+ id="g4443-3-9-3-2-0-32">
+
+
+
+
+ C
+ id="path4622-94-6-0-7"
+ d="m 436.2305,732.10947 0,-2.07047 -1.16463,0 c -0.64056,0 -1.16465,-0.008 -1.16465,-0.0177 0,-0.01 1.05347,-1.07113 2.34105,-2.35866 l 2.34104,-2.34096 2.34105,2.34096 c 1.28758,1.28753 2.34104,2.34892 2.34104,2.35866 0,0.01 -0.52408,0.0177 -1.16463,0.0177 l -1.16464,0 0,2.07047 0,2.07048 -2.35282,0 -2.35281,0 0,-2.07048 z m 4.02331,-0.65878 0,-2.04695 0.71171,0 0.7117,0 -1.54694,-1.54693 -1.54692,-1.54693 -1.54121,1.54105 -1.54122,1.54106 0.71183,0.0118 0.71183,0.0118 0.006,2.04106 0.006,2.04106 1.6586,0 1.65861,0 0,-2.04695 z"
+ style="fill:#82b2dc;fill-opacity:1;stroke:none" />
+
+
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+
+
+
+
+ C
+
+
+
+
+
+ *
+ )