Commit 797a834732da

Vincent Demeester <vincent@sbr.pm>
2026-04-14 23:49:45
feat(keyboards): add Keyball44 ZMK configuration
Added full ZMK firmware setup for Keyball44 split keyboard with PMW3360 trackball, nice!nano v2 controllers, and SSD1306 OLED displays. Ported keymap layers (Bépo, ErgoL, Qwerty, accents, symbols, nav, numbers, mouse) from eyelash_corne with adapted thumb cluster. Trackball auto-activates mouse layer with 1000ms timeout. Used spi3 for trackball to avoid i2c0 conflict with OLED. Added Makefile targets and keymap drawing.
1 parent 7d1f819
keyboards/keyball44/config/boards/shields/keyball_nano/Kconfig.defconfig
@@ -0,0 +1,47 @@
+if SHIELD_KEYBALL44_RIGHT
+
+config ZMK_KEYBOARD_NAME
+	default "Keyball44"
+
+config ZMK_SPLIT_BLE_ROLE_CENTRAL
+	default y
+
+endif
+
+if SHIELD_KEYBALL44_LEFT || SHIELD_KEYBALL44_RIGHT
+
+config ZMK_SPLIT
+	default y
+	
+endif
+
+if ZMK_DISPLAY
+
+config I2C
+    default y
+
+config SSD1306
+    default y
+
+choice ZMK_DISPLAY_WORK_QUEUE
+    default ZMK_DISPLAY_WORK_QUEUE_DEDICATED
+endchoice
+
+endif
+
+if LVGL
+
+config LV_Z_VDB_SIZE
+    default 64
+
+config LV_DPI_DEF
+    default 148
+
+config LV_Z_BITS_PER_PIXEL
+    default 1
+
+choice LV_COLOR_DEPTH
+    default LV_COLOR_DEPTH_1
+endchoice
+
+endif 
keyboards/keyball44/config/boards/shields/keyball_nano/Kconfig.shield
@@ -0,0 +1,5 @@
+config SHIELD_KEYBALL44_LEFT
+    def_bool $(shields_list_contains,keyball44_left)
+
+config SHIELD_KEYBALL44_RIGHT
+    def_bool $(shields_list_contains,keyball44_right)
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44.conf
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44.dtsi
@@ -0,0 +1,76 @@
+#include <dt-bindings/zmk/matrix_transform.h>
+
+/ {
+    chosen {
+        zephyr,display = &oled;
+        zmk,kscan = &kscan0;
+        zmk,matrix_transform = &default_transform;
+    };
+
+    default_transform: keymap_transform_0 {
+		compatible = "zmk,matrix-transform";
+        columns = <12>;
+        rows = <4>;
+
+        map = <
+            RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5)                      RC(0,11) RC(0,10) RC(0,9) RC(0,8) RC(0,7) RC(0,6)
+            RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5)                      RC(1,11) RC(1,10) RC(1,9) RC(1,8) RC(1,7) RC(1,6)
+            RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5)                      RC(2,11) RC(2,10) RC(2,9) RC(2,8) RC(2,7) RC(2,6)
+                    RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5)                      RC(3,11) RC(3,10)                 RC(3,7)
+        >;
+    };
+	
+    kscan0: kscan {
+        compatible = "zmk,kscan-gpio-matrix";
+        label = "KSCAN";
+
+        diode-direction = "col2row";
+		row-gpios
+			= <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+			, <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
+            ;
+    };
+};    
+
+&pinctrl {
+    i2c0_default: i2c0_default {
+        group1 {
+            psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
+                    <NRF_PSEL(TWIM_SCL, 0, 20)>;
+        };
+    };
+
+    i2c0_sleep: i2c0_sleep {
+        group1 {
+            psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
+                    <NRF_PSEL(TWIM_SCL, 0, 20)>;
+            low-power-enable;
+        };
+    };
+};
+
+&i2c0 {
+    status = "okay";
+    compatible = "nordic,nrf-twi";
+    pinctrl-0 = <&i2c0_default>;
+    pinctrl-1 = <&i2c0_sleep>;
+    pinctrl-names = "default", "sleep";
+
+    oled: ssd1306@3c {
+        compatible = "solomon,ssd1306fb";
+        reg = <0x3c>;
+        width = <128>;
+        height = <32>;
+        segment-offset = <0>;
+        page-offset = <0>;
+        display-offset = <0>;
+        multiplex-ratio = <31>;
+        segment-remap;
+        com-invdir;
+        com-sequential;
+        inversion-on;
+        prechargep = <0x22>;
+    };
+};
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44.zmk.yml
@@ -0,0 +1,13 @@
+file_format: "1"
+id: keyball44
+name: Keyball44
+type: shield
+url: https://github.com/Yowkees/keyball
+requires: [pro_micro]
+features:
+  - keys
+  - pointer
+  - underglow
+siblings:
+  - keyball44_left
+  - keyball44_right
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44_left.conf
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44_left.overlay
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2020 ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include "keyball44.dtsi"
+
+&kscan0 {
+	col-gpios
+		= <&pro_micro 4 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 5 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 6 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 7 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 8 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 9 GPIO_ACTIVE_HIGH>
+		;
+};
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44_right.conf
@@ -0,0 +1,6 @@
+CONFIG_SPI=y
+CONFIG_INPUT=y
+CONFIG_ZMK_MOUSE=y
+CONFIG_ZMK_EXT_POWER=y
+CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
+CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=y
keyboards/keyball44/config/boards/shields/keyball_nano/keyball44_right.overlay
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2020 ZMK Contributors
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <input/processors.dtsi>
+#include "keyball44.dtsi"
+
+&default_transform {
+    col-offset = <6>;
+};
+
+&kscan0 {
+	col-gpios
+		= <&pro_micro 4 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 5 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 6 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 7 GPIO_ACTIVE_HIGH>
+		, <&pro_micro 8 GPIO_ACTIVE_HIGH>
+        , <&pro_micro 9 GPIO_ACTIVE_HIGH>
+		;
+};
+
+/* Use spi3 for trackball to avoid conflict with i2c0 (OLED) */
+&pinctrl {
+    spi3_default: spi3_default {
+        group1 {
+            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
+                <NRF_PSEL(SPIM_MOSI, 0, 10)>,
+                <NRF_PSEL(SPIM_MISO, 1, 11)>;
+        };
+    };
+
+    spi3_sleep: spi3_sleep {
+        group1 {
+            psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
+                <NRF_PSEL(SPIM_MOSI, 0, 10)>,
+                <NRF_PSEL(SPIM_MISO, 1, 11)>;
+            low-power-enable;
+        };
+    };
+};
+
+&spi3 {
+    status = "okay";
+    compatible = "nordic,nrf-spim";
+    pinctrl-0 = <&spi3_default>;
+    pinctrl-1 = <&spi3_sleep>;
+    pinctrl-names = "default", "sleep";
+    cs-gpios = <&gpio0 9 GPIO_ACTIVE_LOW>;
+
+    trackball: trackball@0 {
+        status = "okay";
+        compatible = "pixart,pmw3360";
+        reg = <0>;
+        spi-max-frequency = <2000000>;
+        irq-gpios = <&gpio0 8 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
+    };
+};
+
+/ {
+  trackball_listener {
+    compatible = "zmk,input-listener";
+    device = <&trackball>;
+
+    /* Auto-activate mouse layer (layer 7) on trackball movement.
+     * Layer deactivates 1000ms after last movement. */
+    input-processors = <&zip_temp_layer 7 1000>;
+  };
+};
keyboards/keyball44/config/combos.dtsi
@@ -0,0 +1,62 @@
+/*                KEY POSITIONS (Keyball44)
+
+  ╭──────────────────────────────╮ ╭──────────────────────────────╮
+  │  0    1    2    3    4    5  │ │  6    7    8    9   10   11  │
+  │ 12   13   14   15   16   17 │ │ 18   19   20   21   22   23  │
+  │ 24   25   26   27   28   29 │ │ 30   31   32   33   34   35  │
+  ╰────╮ 36   37   38   39   40 │ │ 41   42        43 ╭─────────╯
+       ╰────────────────────────╯ ╰───────────────────╯
+ */
+
+#undef COMBO_TERM
+#define COMBO_TERM 40
+
+// All Layers - ESC on home row
+ZMK_COMBO(esc, &kp ESC, 21 22)
+
+// Layer switching combos
+ZMK_COMBO(to_bepo, &to BEP, 40 41, ERG QWE)
+ZMK_COMBO(to_ergol, &to ERG, 1 10, BEP QWE)
+ZMK_COMBO(to_qwerty, &to QWE, 39 42, BEP ERG)
+
+// Toggle mouse layer
+ZMK_COMBO(toggle_mouse, &tog MOU, 1 4, BEP ERG QWE MOU)
+
+// Caps word
+ZMK_COMBO(capsword, &caps_word, 25 34, BEP ERG QWE)
+
+// Symbol combos - left hand
+ZMK_COMBO(arobase, &kp AT, 2 3, BEP ERG QWE)
+ZMK_COMBO(pipe, &kp PIPE, 1 2, BEP ERG QWE)
+ZMK_COMBO(hash, &kp HASH, 3 4, BEP ERG QWE)
+ZMK_COMBO(ampr, &kp AMPS, 4 5, BEP ERG QWE)
+ZMK_COMBO(dollar, &kp DLLR, 4 16, BEP ERG QWE)
+ZMK_COMBO(slash, &kp SLASH, 3 15, BEP ERG QWE)
+ZMK_COMBO(bslash, &kp BSLH, 15 27, BEP ERG QWE)
+ZMK_COMBO(minus, &kp KP_MINUS, 2 14, BEP ERG QWE)
+ZMK_COMBO(underscore, &kp UNDER, 16 28, BEP ERG QWE)
+ZMK_COMBO(equal, &kp EQUAL, 14 26, BEP ERG QWE)
+
+// Symbol combos - right hand
+ZMK_COMBO(lprn, &kp LPAR, 8 20, BEP ERG QWE)
+ZMK_COMBO(rprn, &kp RPAR, 20 32, BEP ERG QWE)
+ZMK_COMBO(lcbr, &kp LBRC, 7 19, BEP ERG QWE)
+ZMK_COMBO(rcbr, &kp RBRC, 19 31, BEP ERG QWE)
+ZMK_COMBO(lbrc, &kp LBKT, 9 21, BEP ERG QWE)
+ZMK_COMBO(rbrc, &kp RBKT, 21 33, BEP ERG QWE)
+ZMK_COMBO(labk, &kp GT, 9 8, BEP ERG QWE)
+ZMK_COMBO(rabk, &kp LT, 8 7, BEP ERG QWE)
+
+ZMK_COMBO(dquo, &standalone_dquo, 6 18, BEP ERG QWE)
+ZMK_COMBO(tilde, &standalone_tild, 5 17, BEP ERG QWE)
+ZMK_COMBO(prcnt, &kp PRCNT, 17 29, BEP ERG QWE)
+ZMK_COMBO(grave, &standalone_grav, 18 30, BEP ERG QWE)
+ZMK_COMBO(star, &kp STAR, 10 22, BEP ERG QWE)
+ZMK_COMBO(plus, &kp PLUS, 22 34, BEP ERG QWE)
+
+
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/keyball44/config/constants.h
@@ -0,0 +1,43 @@
+#pragma once
+
+// Keys
+#define ___ &trans
+#define XXX &none
+
+// Layers
+#define BEP 0
+#define ERG 1
+#define QWE 2
+#define ACC 3
+#define SYM 4
+#define NAV 5
+#define NUM 6
+#define MOU 7
+
+// Modifier keys
+#define GL LGUI
+#define CL LCTRL
+#define AL LALT
+#define SL LSHFT
+#define GR RGUI
+#define CR RCTRL
+#define AR RALT
+#define SR RSHFT
+
+// OS
+#define WINDOWS 0
+#define LINUX 1
+#define MAC_OS 2
+
+// Hyper Key and Functions
+#define LEFT_HYPER LS(LA(LC(LGUI)))
+#define HL LEFT_HYPER
+#define LH(keycode)            LS(LA(LC(LG(keycode))))
+
+#define MATH_1_4 RA(N6) // ¼
+#define MATH_1_2 RA(N7) // ½
+#define MATH_3_4 RA(N8) // ¾
+
+#define MATH_PM    RA(N1)   // 
+#define MATH_DEG   RA(SEMI) // °
+#define MATH_MICRO RA(M)    // µ
keyboards/keyball44/config/hold-tap.dtsi
@@ -0,0 +1,45 @@
+/* Timerless Home Row Mods */
+/* https://github.com/urob/zmk-config#timeless-homerow-mods */
+/*
+ * Keyball44 key positions:
+ *  0  1  2  3  4  5    6  7  8  9 10 11
+ * 12 13 14 15 16 17   18 19 20 21 22 23
+ * 24 25 26 27 28 29   30 31 32 33 34 35
+ *    36 37 38 39 40   41 42    43
+ */
+
+/* left-hand HRMs */
+ZMK_HOLD_TAP(hml,
+    flavor = "balanced";
+    tapping-term-ms = <280>;
+    quick-tap-ms = <175>;
+    require-prior-idle-ms = <150>;
+    bindings = <&kp>, <&kp>;
+    hold-trigger-key-positions = <6 7 8 9 10 11 18 19 20 21 22 23 30 31 32 33 34 35 36 37 38 39 40 41 42 43>;
+    hold-trigger-on-release;
+)
+
+/* right-hand HRMs */
+ZMK_HOLD_TAP(hmr,
+    flavor = "balanced";
+    tapping-term-ms = <280>;
+    quick-tap-ms = <175>;
+    require-prior-idle-ms = <150>;
+    bindings = <&kp>, <&kp>;
+    hold-trigger-key-positions = <0 1 2 3 4 5 12 13 14 15 16 17 24 25 26 27 28 29 36 37 38 39 40 41 42 43>;
+    hold-trigger-on-release;
+)
+
+/* Smart number: hold for NUM layer, tap for numword */
+ZMK_HOLD_TAP(smart_num,
+    flavor = "balanced";
+    tapping-term-ms = <200>;
+    quick-tap-ms = <175>;
+    bindings = <&mo>, <&num_word>;
+)
+
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/keyball44/config/keyball44.conf
@@ -0,0 +1,25 @@
+# Bluetooth
+CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
+CONFIG_BT_PERIPHERAL_PREF_MAX_INT=9
+CONFIG_BT_PERIPHERAL_PREF_LATENCY=16
+CONFIG_BT_BUF_ACL_TX_COUNT=32
+CONFIG_BT_L2CAP_TX_BUF_COUNT=32
+
+# Split
+CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y
+CONFIG_ZMK_BEHAVIORS_QUEUE_SIZE=512
+
+# Display (OLED)
+CONFIG_ZMK_DISPLAY=y
+
+# Mouse / Trackball
+CONFIG_ZMK_POINTING=y
+CONFIG_ZMK_MOUSE=y
+
+# Power
+CONFIG_ZMK_EXT_POWER=y
+CONFIG_ZMK_SLEEP=y
+# 720000 ms = 12 min
+CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=720000
+
+CONFIG_ZMK_PM_SOFT_OFF=y
keyboards/keyball44/config/keyball44.json
@@ -0,0 +1,59 @@
+{
+  "id": "keyball44",
+  "name": "keyball44",
+  "layouts": {
+    "default_layout": {
+      "name": "default_layout",
+      "layout": [
+        { "row": 0, "col":  0, "x":  0, "y": 0.5 },
+        { "row": 0, "col":  1, "x":  1, "y": 0.5 },
+        { "row": 0, "col":  2, "x":  2, "y": 0.25 },
+        { "row": 0, "col":  3, "x":  3, "y": 0 },
+        { "row": 0, "col":  4, "x":  4, "y": 0.2 },
+        { "row": 0, "col":  5, "x":  5, "y": 0.4 },
+        { "row": 0, "col":  9, "x":  9, "y": 0.4 },
+        { "row": 0, "col": 10, "x": 10, "y": 0.2 },
+        { "row": 0, "col": 11, "x": 11, "y": 0 },
+        { "row": 0, "col": 12, "x": 12, "y": 0.25 },
+        { "row": 0, "col": 13, "x": 13, "y": 0.5 },
+        { "row": 0, "col": 14, "x": 14, "y": 0.5 },
+      
+        { "row": 1, "col":  0, "x":  0, "y": 1.5 },
+        { "row": 1, "col":  1, "x":  1, "y": 1.5 },
+        { "row": 1, "col":  2, "x":  2, "y": 1.25 },
+        { "row": 1, "col":  3, "x":  3, "y": 1 },
+        { "row": 1, "col":  4, "x":  4, "y": 1.2 },
+        { "row": 1, "col":  5, "x":  5, "y": 1.4 },
+        { "row": 1, "col":  9, "x":  9, "y": 1.4 },
+        { "row": 1, "col": 10, "x": 10, "y": 1.2 },
+        { "row": 1, "col": 11, "x": 11, "y": 1 },
+        { "row": 1, "col": 12, "x": 12, "y": 1.25 },
+        { "row": 1, "col": 13, "x": 13, "y": 1.5 },
+        { "row": 1, "col": 14, "x": 14, "y": 1.5 },
+      
+        { "row": 2, "col":  0, "x":  0, "y": 2.5 },
+        { "row": 2, "col":  1, "x":  1, "y": 2.5 },
+        { "row": 2, "col":  2, "x":  2, "y": 2.25 },
+        { "row": 2, "col":  3, "x":  3, "y": 2 },
+        { "row": 2, "col":  4, "x":  4, "y": 2.2 },
+        { "row": 2, "col":  5, "x":  5, "y": 2.4 },
+        { "row": 2, "col":  9, "x":  9, "y": 2.4 },
+        { "row": 2, "col": 10, "x": 10, "y": 2.2 },
+        { "row": 2, "col": 11, "x": 11, "y": 2 },
+        { "row": 2, "col": 12, "x": 12, "y": 2.25 },
+        { "row": 2, "col": 13, "x": 13, "y": 2.5 },
+        { "row": 2, "col": 14, "x": 14, "y": 2.5 },
+      
+        { "row": 3, "col":  0, "x":  2, "y": 3.25 },
+        { "row": 3, "col":  1, "x":  3, "y": 3 },
+        { "row": 3, "col":  2, "x":  4.25, "y": 4 },
+        { "row": 3, "col":  3, "x":  6, "y": 3, "r":  10, "rx": 0, "ry":  0  },
+        { "row": 3, "col":  4, "x":  7.75, "y": 1.04, "r":  25, "rx": 0, "ry":  0 },
+        { "row": 3, "col":  8, "x": 5.5, "y": 7.75, "r":  -25, "rx": 0, "ry":  0  },
+        { "row": 3, "col":  9, "x":  8.5, "y": 5.7, "r":  -10, "rx": 0, "ry":  0   },
+        { "row": 3, "col": 14, "x": 14, "y": 3.5 }
+      ]
+    }
+  },
+  "sensors": []
+}
keyboards/keyball44/config/keyball44.keymap
@@ -0,0 +1,185 @@
+#include <behaviors/mouse_keys.dtsi>
+#include <dt-bindings/zmk/mouse.h>
+#include <behaviors.dtsi>
+#include <dt-bindings/zmk/bt.h>
+#include <dt-bindings/zmk/keys.h>
+#include <dt-bindings/zmk/outputs.h>
+
+#include "constants.h"
+#define HOST_OS LINUX
+
+#include "zmk-helpers/helper.h"
+#include "zmk-helpers/unicode-chars/french.dtsi"
+#include "combos.dtsi"
+#include "leader.dtsi"
+#include "numword.dtsi"
+#include "hold-tap.dtsi"
+#include "mod-morph.dtsi"
+#include "mouse.dtsi"
+
+/*                KEY POSITIONS (Keyball44)
+
+  ╭──────────────────────────────╮ ╭──────────────────────────────╮
+  │  0    1    2    3    4    5  │ │  6    7    8    9   10   11  │
+  │ 12   13   14   15   16   17 │ │ 18   19   20   21   22   23  │
+  │ 24   25   26   27   28   29 │ │ 30   31   32   33   34   35  │
+  ╰────╮ 36   37   38   39   40 │ │ 41   42        43 ╭─────────╯
+       ╰────────────────────────╯ ╰───────────────────╯
+  Left thumb: 36=LGUI, 37=LALT, 38=ESC/MOU, 39=SPC, 40=TAB/NAV
+  Right thumb: 41=ENTER, 42=BSPC/SYM, trackball, 43=DEL
+*/
+
+&lt {
+    tapping-term-ms = <240>;
+    flavor = "balanced";
+    quick-tap-ms = <150>;
+};
+
+&mt {
+    tapping-term-ms = <200>;
+    flavor = "tap-preferred";
+    quick-tap-ms = <150>;
+};
+
+&caps_word { continue-list = <UNDERSCORE MINUS>; };
+
+/ {
+    keymap {
+        compatible = "zmk,keymap";
+
+        // 0: Bépo
+        Bepo_layer {
+            label = "Bépo";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     &kp TAB     &b_pipe     &kp EACUT   &p_amp      &kp O        &AGRA E        &car_excl   &kp V         &kp D         &kp L        &kp J        &kp Z
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+  &smart_num NUM NUM &hml GL A &hml AL U &hml SL I  &cl_e_euro   &hyp_com_smc    &hmr HL C   &hmr CR T     &hmr SR S     &hmr AR R    &hmr GL N    &kp M
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &kp GRAVE   &AGRA A     &kp Y       &kp X       &dot_col     &kp K          &sqt_qma    &kp Q         &kp G         &kp H        &kp F        &kp W
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+         &kp LGUI &kp LALT  &lt MOU DEL  &kp SPACE   &lt NAV BSPC              &lt SYM RET  &kp AR                     &kp DEL
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 1: ErgoL
+        ErgoL_layer {
+            label = "ErgoL";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     &kp TAB     &kp Q       &kp C       &kp O       &kp P        &kp W          &kp J       &kp M         &kp D         &kp EXCL     &kp Y        &kp LBKT
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &kp EQUAL   &hml GL A   &hml AL S   &hml SL E   &hml CL N    &kp F          &kp L       &hmr CR R     &hmr SR T     &hmr AR I    &hmr GL U    &kp SQT
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &kp GRAVE   &kp Z       &kp X       &min_qma    &kp V        &kp B          &dot_col    &kp H         &kp G         &com_smc     &kp K        &kp RBKT
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          ___     ___         ___          ___         ___                         ___         ___                        ___
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 2: Qwerty
+        Qwerty_layer {
+            label = "QWRT";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     &kp TAB     &kp Q       &kp W       &kp E       &kp R        &kp T          &kp Y       &kp U         &kp I         &kp O        &kp P        &kp LBKT
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &kp EQUAL   &hml GL A   &hml AL S   &hml SL D   &hml CL F    &kp G          &kp H       &hmr CR J     &hmr SR K     &hmr AR L   &hmr GL SEMI  &kp SQT
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &kp GRAVE   &kp Z       &kp X       &kp C       &kp V        &kp B          &kp N       &kp M         &kp COMMA     &kp DOT      &kp FSLH     &kp RBKT
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          ___     ___         ___          ___         ___                         ___         ___                        ___
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 3: Accents
+        Accents_layer {
+            label = "Acc";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     XXX         &kp AE      &AIGU I     &AGRA I     &CIRC I      &TREM I        &TREM O     &CIRC O       &AGRA O       &AIGU O      XXX          &kp DQT
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &kp GRAVE   &kp OE      &AIGU E     &AGRA E     &CIRC E      &TREM E        &TREM A     &CIRC A       &AGRA A       &AIGU A      &kp NTIL     &kp SQT
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         XXX         XXX         XXX         XXX          XXX            &TREM U     &CIRC U       &AGRA U       &AIGU U      &kp CDIL     &kp CARET
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          ___     ___         ___          ___         ___                         ___         ___                        ___
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 4: Symbols
+        Symbols_layer {
+            label = "Sym";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     &kp BSLH    &AGRA SPACE  &kp LT      &kp GT      &kp MINUS    &kp PIPE       &kp CARET   &kp LBRC      &kp RBRC      &kp DLLR     &CIRC SPACE  XXX
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         &kp EXCL &hml AL STAR &hml SL FSLH &hml CL EQUAL &kp AMPS       &kp HASH   &hmr CR LPAR  &hmr SR RPAR  &hmr AR SEMI  &TREM SPACE  XXX
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         &kp TILDE   &kp PLUS    &kp LBKT    &kp RBKT     &kp PRCNT      &kp AT      &kp COLON     &kp COMMA     &kp DOT      &AIGU SPACE  XXX
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          ___     ___         ___          ___         ___                         ___         ___                        ___
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 5: Navigation
+        Nav_layer {
+            label = "Nav";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+    &out OUT_TOG XXX         XXX         XXX         XXX          &bt BT_CLR    &kp PRINTSCREEN &kp HOME   &kp UP        &kp END      &kp PG_UP    XXX
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         &kp GL      &kp C_PREV  &kp C_PP    &kp C_NEXT   XXX            XXX         &kp LEFT      &kp DOWN      &kp RIGHT    &kp PG_DN    XXX
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         &bt BT_PRV  &bt BT_NXT  XXX         XXX          XXX            XXX         XXX           XXX           XXX          XXX          XXX
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          ___     ___         ___          ___         ___                         ___         ___                        ___
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 6: Numbers
+        Numbers_layer {
+            label = "Num";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     XXX         &kp F1      &kp F2      &kp F3      &kp F4      &kp F5        &kp MATH_1_4 &kp N7        &kp N8       &kp N9        &kp STAR     &kp SLASH
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         &kp F6      &kp F7      &kp F8      &kp F9      &kp F10       &kp MATH_1_2 &kp N4        &kp N5       &kp N6        &kp MINUS    &kp PLUS
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         &kp F11     &kp F12     &kp F13     &kp F14     &kp F15       &kp MATH_3_4 &kp N1        &kp N2       &kp N3        &kp DOT      &kp COMMA
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          ___     ___         ___          ___         ___                         ___         ___                        &kp N0
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+
+        // 7: Mouse (auto-activated on trackball movement, 1000ms timeout)
+        // Trackball = cursor movement. This layer provides clicks and scroll.
+        Mouse_layer {
+            label = "Mouse";
+            bindings = <
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮ ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     XXX         XXX         XXX         &mwh_up     XXX          XXX            XXX         XXX           XXX           XXX          XXX          XXX
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         XXX         &mwh_lf     &mwh_dn     &mwh_rg      XXX            XXX         &mkp LCLK     &mkp RCLK     &mkp MCLK    XXX          XXX
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤ ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     XXX         XXX         XXX         XXX         XXX          XXX            XXX         XXX           XXX           XXX          XXX          XXX
+// ╰────╮──────┼───────────┼───────────┼────────────┼────────────╮            ╭───────────┼─────────────╮             ╭────────────╯
+          XXX     XXX         XXX        &mkp LCLK   &mkp RCLK                  &mkp LCLK   &mkp RCLK                  &mkp MCLK
+//      ╰───────┴──────────┴───────────┴────────────┴────────────╯            ╰───────────┴─────────────╯             ╰────────────╯
+            >;
+        };
+    };
+};
+
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/keyball44/config/leader.dtsi
@@ -0,0 +1,232 @@
+// Leader key configuration for eyelash_corne
+// Port of Moonlander leader sequences to ZMK
+// Using zmk-leader-key module syntax
+
+/ {
+    behaviors {
+        leader: leader {
+            compatible = "zmk,behavior-leader-key";
+            #binding-cells = <0>;
+
+            // ====== LAYOUT SWITCHING ======
+            // Leader + l + <key> for layout changes
+
+            bepo { sequence = <L B>; bindings = <&to 0>; };
+            ergol { sequence = <L E>; bindings = <&to 1>; };
+            qwerty { sequence = <L Q>; bindings = <&to 2>; };
+
+            // ====== DEVELOPMENT PATTERNS - GENERAL ======
+            // Leader + c + <key> for code snippets
+
+            nil { sequence = <C N>; bindings = <&kp N &kp I &kp L>; };
+
+            // Note: Complex macros need to be defined as ZMK macros
+            // For now, keeping simpler sequences
+
+            // ====== PERSONAL MACROS ======
+            // Leader + m + <key> for personal macros
+
+            // These would need macro definitions for complex sequences
+            // Keeping placeholders for now
+
+            // ====== APPLICATION SHORTCUTS ======
+            // Leader + a + <key> for application launches (using niri keybindings)
+
+            fuzzel { sequence = <A D>; bindings = <&kp LG(D)>; };
+            emacs { sequence = <A E>; bindings = <&kp LG(LS(RET))>; };
+            terminal { sequence = <A T>; bindings = <&kp LG(RET)>; };
+            emoji { sequence = <A J>; bindings = <&kp LG(LC(D))>; };
+            clipboard { sequence = <A V>; bindings = <&kp LG(LC(V))>; };
+            raffi { sequence = <A R>; bindings = <&kp LG(LS(D))>; };
+        };
+    };
+
+    // Macros for complex leader sequences
+    macros {
+        // Development patterns - General
+        macro_go_err: macro_go_err {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp I &kp F &kp SPACE &kp E &kp R &kp R &kp SPACE &kp EXCL &kp EQUAL &kp SPACE &kp N &kp I &kp L &kp SPACE &kp LBRC &kp RET &kp TAB>;
+        };
+
+        macro_console_log: macro_console_log {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp C &kp O &kp N &kp S &kp O &kp L &kp E &kp DOT &kp L &kp O &kp G &kp LPAR &kp RPAR &kp LEFT>;
+        };
+
+        macro_fmt_println: macro_fmt_println {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp F &kp M &kp T &kp DOT &kp P &kp R &kp I &kp N &kp T &kp L &kp N &kp LPAR &kp RPAR &kp LEFT>;
+        };
+
+        macro_function: macro_function {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp F &kp U &kp N &kp C &kp T &kp I &kp O &kp N &kp LPAR &kp RPAR &kp SPACE &kp LBRC &kp RBRC &kp LEFT &kp LEFT>;
+        };
+
+        macro_arrow_fn: macro_arrow_fn {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp RPAR &kp SPACE &kp EQUAL &kp GT &kp SPACE &kp LBRC &kp RBRC &kp LEFT &kp LEFT>;
+        };
+
+        // Python patterns
+        macro_py_main: macro_py_main {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp I &kp F &kp SPACE &kp UNDER &kp UNDER &kp N &kp A &kp M &kp E &kp UNDER &kp UNDER &kp SPACE &kp EQUAL &kp EQUAL &kp SPACE &kp DQT &kp UNDER &kp UNDER &kp M &kp A &kp I &kp N &kp UNDER &kp UNDER &kp DQT &kp COLON &kp RET &kp TAB>;
+        };
+
+        macro_py_def: macro_py_def {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp D &kp E &kp F &kp SPACE &kp LPAR &kp RPAR &kp COLON &kp RET &kp TAB>;
+        };
+
+        macro_py_class: macro_py_class {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp C &kp L &kp A &kp S &kp S &kp SPACE &kp COLON &kp RET &kp TAB>;
+        };
+
+        macro_py_print: macro_py_print {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp P &kp R &kp I &kp N &kp T &kp LPAR &kp F &kp DQT &kp DQT &kp RPAR &kp LEFT &kp LEFT>;
+        };
+
+        macro_py_try: macro_py_try {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp T &kp R &kp Y &kp COLON &kp RET &kp TAB &kp RET &kp E &kp X &kp C &kp E &kp P &kp T &kp SPACE &kp E &kp X &kp C &kp E &kp P &kp T &kp I &kp O &kp N &kp SPACE &kp A &kp S &kp SPACE &kp E &kp COLON &kp RET &kp TAB>;
+        };
+
+        macro_py_with: macro_py_with {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp W &kp I &kp T &kp H &kp SPACE &kp O &kp P &kp E &kp N &kp LPAR &kp DQT &kp DQT &kp COMMA &kp SPACE &kp DQT &kp R &kp DQT &kp RPAR &kp SPACE &kp A &kp S &kp SPACE &kp F &kp COLON &kp RET &kp TAB>;
+        };
+
+        // Emacs Lisp patterns
+        macro_el_defun: macro_el_defun {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp D &kp E &kp F &kp U &kp N &kp SPACE &kp SPACE &kp LPAR &kp RPAR &kp RET>;
+        };
+
+        macro_el_interactive: macro_el_interactive {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp I &kp N &kp T &kp E &kp R &kp A &kp C &kp T &kp I &kp V &kp E &kp RPAR>;
+        };
+
+        macro_el_let: macro_el_let {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp L &kp E &kp T &kp SPACE &kp LPAR &kp LPAR>;
+        };
+
+        macro_el_setq: macro_el_setq {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp S &kp E &kp T &kp Q &kp SPACE &kp SPACE &kp RPAR &kp LEFT &kp LEFT>;
+        };
+
+        macro_el_message: macro_el_message {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp M &kp E &kp S &kp S &kp A &kp G &kp E &kp SPACE &kp DQT &kp DQT &kp RPAR &kp LEFT &kp LEFT>;
+        };
+
+        macro_el_require: macro_el_require {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp R &kp E &kp Q &kp U &kp I &kp R &kp E &kp SPACE &kp SQT &kp RPAR &kp LEFT>;
+        };
+
+        // Nix patterns
+        macro_nix_fn: macro_nix_fn {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LBRC &kp SPACE &kp P &kp K &kp G &kp S &kp COMMA &kp SPACE &kp DOT &kp DOT &kp DOT &kp SPACE &kp RBRC &kp COLON>;
+        };
+
+        macro_nix_let: macro_nix_let {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp L &kp E &kp T &kp RET &kp TAB &kp RET &kp I &kp N &kp RET>;
+        };
+
+        macro_nix_with: macro_nix_with {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp W &kp I &kp T &kp H &kp SPACE &kp P &kp K &kp G &kp S &kp SEMI &kp SPACE &kp LBKT &kp RET &kp TAB &kp RET &kp RBKT>;
+        };
+
+        macro_nix_inherit: macro_nix_inherit {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp I &kp N &kp H &kp E &kp R &kp I &kp T &kp SPACE &kp SEMI &kp LEFT &kp LEFT>;
+        };
+
+        macro_nix_build: macro_nix_build {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp B &kp U &kp I &kp L &kp D &kp I &kp N &kp P &kp U &kp T &kp S &kp SPACE &kp EQUAL &kp SPACE &kp LBKT &kp SPACE &kp RBKT &kp SEMI>;
+        };
+
+        macro_nix_script: macro_nix_script {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp P &kp K &kp G &kp S &kp DOT &kp W &kp R &kp I &kp T &kp E &kp S &kp H &kp E &kp L &kp L &kp S &kp C &kp R &kp I &kp P &kp T &kp B &kp I &kp N &kp SPACE &kp DQT &kp DQT &kp SPACE &kp SQT &kp SQT &kp RET &kp TAB &kp RET &kp SQT &kp SQT>;
+        };
+
+        // Import patterns
+        macro_import: macro_import {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp I &kp M &kp P &kp O &kp R &kp T &kp SPACE>;
+        };
+
+        macro_from_import: macro_from_import {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp F &kp R &kp O &kp M &kp SPACE &kp SPACE &kp I &kp M &kp P &kp O &kp R &kp T &kp SPACE>;
+        };
+
+        macro_nix_module: macro_nix_module {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LBRC &kp SPACE &kp P &kp K &kp G &kp S &kp SPACE &kp RBRC &kp COLON &kp SPACE &kp LBRC &kp RET &kp TAB &kp RET &kp RBRC>;
+        };
+
+        macro_use_package: macro_use_package {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp LPAR &kp U &kp S &kp E &kp MINUS &kp P &kp A &kp C &kp K &kp A &kp G &kp E &kp SPACE &kp RET &kp TAB>;
+        };
+
+        // Personal macros
+        macro_email: macro_email {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp AT &kp S &kp B &kp R &kp DOT &kp P &kp M>;
+        };
+
+        macro_git_sig: macro_git_sig {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp SPACE &kp D &kp E &kp M &kp E &kp E &kp S &kp T &kp E &kp R &kp SPACE &kp LT &kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp AT &kp S &kp B &kp R &kp DOT &kp P &kp M &kp GT>;
+        };
+
+        macro_email_sig: macro_email_sig {
+            compatible = "zmk,behavior-macro";
+            #binding-cells = <0>;
+            bindings = <&kp MINUS &kp MINUS &kp RET &kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp SPACE &kp D &kp E &kp M &kp E &kp E &kp S &kp T &kp E &kp R &kp RET &kp V &kp I &kp N &kp C &kp E &kp N &kp T &kp AT &kp S &kp B &kp R &kp DOT &kp P &kp M>;
+        };
+    };
+};
keyboards/keyball44/config/mod-morph.dtsi
@@ -0,0 +1,124 @@
+#define EACUT  RA(E)      // é/É
+#define EURO   RA(N5)     // €
+#define AE     RA(Z)      // æ/Æ
+#define OE     RA(K)       // œ/Œ
+#define CDIL   RA(COMMA)  // ç/Ç
+#define NTIL   RA(N)      // ñ/Ñ
+
+#define ACC_AC RC(SEMI)         // ´
+#define ACC_AI RA(SLASH)        // ´
+#define ACC_CI LBKT             // ^
+#define ACC_GR RA(LBKT)         // `
+#define ACC_TI RC(RBKT)         // ~
+#define ACC_TR LS(LBKT)         // ¨
+
+// ` to input
+ZMK_MACRO_ONE_PARAM(AGRA, bindings =
+    <&kp GRAVE>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+
+// ´ to input
+ZMK_MACRO_ONE_PARAM(AIGU, bindings =
+    <&kp SQT>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+
+// ¨ to input
+ZMK_MACRO_ONE_PARAM(TREM, bindings =
+    <&kp DQT>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+
+// ~ to input (TILDE = LS(GRAVE), so use shift + grave)
+// Note: can't use "TILD" as name — it's a deprecated ZMK keycode #define
+ZMK_MACRO_ONE_PARAM(TILDEMACRO, bindings =
+    <&macro_press &kp LSHFT>,
+    <&macro_tap &kp GRAVE>,
+    <&macro_release &kp LSHFT>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+
+// Standalone dead key macros (dead key + space) for use in combos
+ZMK_MACRO(standalone_dquo, bindings = <&macro_tap &kp DQT &kp SPACE>;)                                       // "
+ZMK_MACRO(standalone_tild, bindings = <&macro_press &kp LSHFT>, <&macro_tap &kp GRAVE>, <&macro_release &kp LSHFT>, <&macro_tap &kp SPACE>;) // ~
+ZMK_MACRO(standalone_grav, bindings = <&macro_tap &kp GRAVE &kp SPACE>;)                                     // `
+
+// ^ to input
+ZMK_MACRO_ONE_PARAM(CIRC, bindings =
+    <&kp CARET>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+
+// tap: minus | shift + tap: question mark
+ZMK_MOD_MORPH(min_qma,
+    bindings = <&kp MINUS>, <&kp QMARK>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+// tap: comma | shift + tab: semicolon
+ZMK_MOD_MORPH(com_smc,
+    bindings = <&kp COMMA>, <&kp SEMICOLON>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+  
+// tap: period | shift + tap: colon
+ZMK_MOD_MORPH(dot_col,
+    bindings = <&kp DOT>, <&kp COLON>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+// Bépo morphs
+
+// tap: quote (') | shift + tab: question mark
+ZMK_MOD_MORPH(sqt_qma,
+    bindings = <&AIGU SPACE>, <&kp QMARK>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+// tap: Caret (^) | shift + tap: EXCLAMATION (!)
+ZMK_MOD_MORPH(car_excl,
+    bindings = <&kp CARET>, <&kp EXCLAMATION>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+// tap: B | right_alt + tap : pipe (|)
+ZMK_MOD_MORPH(b_pipe,
+    bindings = <&kp B>, <&kp PIPE>;
+    mods = <(MOD_RALT)>;
+)
+
+// tap: P | right_alt + tap : ampersand (&)
+ZMK_MOD_MORPH(p_amp,
+    bindings = <&kp P>, <&kp AMPERSAND>;
+    mods = <(MOD_RALT)>;
+)
+
+// hold: numbers layer | tap: SPACE | right_alt + tap : undercore (_)
+ZMK_MOD_MORPH(num_spc_und,
+    bindings = <&lt NUM SPACE>, <&kp UNDERSCORE>;
+    mods = <(MOD_RALT)>;
+)
+
+// hold: left control | tap: E | right_alt + tap: EURO (€)
+ZMK_MOD_MORPH(cl_e_euro,
+    bindings = <&hml CL E>, <&kp EURO>;
+    mods = <(MOD_RALT)>;
+)
+
+// hold: right_hype | tap: comma | shift + tab: semicolon
+ZMK_MOD_MORPH(hyp_com_smc,
+    bindings = <&hml HL COMMA>, <&kp SEMICOLON>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
+
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/keyball44/config/mouse.dtsi
@@ -0,0 +1,39 @@
+&mmv {
+    acceleration-exponent=<1>;      // 0=linear (no accel), 1=natural acceleration curve
+    delay-ms=<0>;                   // no startup delay for snappier response
+    time-to-max-speed-ms = <400>;   // smoother ramp to top speed (was 200)
+};
+
+&msc {
+    acceleration-exponent=<1>;
+    delay-ms=<40>;                  // snappier scroll start (was 70)
+    time-to-max-speed-ms = <300>;   // smoother scroll ramp (was 200)
+};
+
+// Move cursor
+#define mmv_lf mmv MOVE_LEFT
+#define mmv_rg mmv MOVE_RIGHT
+#define mmv_up mmv MOVE_UP
+#define mmv_dn mmv MOVE_DOWN
+
+// Mouse buttons
+#define mkp_lf mkp LCLK
+#define mkp_md mkp MCLK
+#define mkp_rg mkp RCLK
+
+// Scroll wheel
+#define mwh_lf msc SCRL_LEFT
+#define mwh_rg msc SCRL_RIGHT
+#define mwh_up msc SCRL_UP
+#define mwh_dn msc SCRL_DOWN
+
+#define MWL SCRL_LEFT
+#define MWR SCRL_RIGHT
+#define MWU SCRL_UP
+#define MWD SCRL_DOWN
+
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/keyball44/config/numword.dtsi
@@ -0,0 +1,19 @@
+// Numword behavior - smart number layer
+// Based on https://github.com/urob/zmk-auto-layer
+
+/ {
+    behaviors {
+        num_word: num_word {
+            compatible = "zmk,behavior-auto-layer";
+            #binding-cells = <1>;
+            continue-list = <BACKSPACE DELETE DOT COMMA PLUS MINUS STAR FSLH EQUAL>;
+            ignore-numbers;
+        };
+    };
+};
+
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/keyball44/config/west.yml
@@ -0,0 +1,29 @@
+manifest:
+  remotes:
+    - name: zmkfirmware
+      url-base: https://github.com/zmkfirmware
+    - name: inorichi
+      url-base: https://github.com/inorichi
+    - name: george-norton
+      url-base: https://github.com/george-norton
+    - name: urob
+      url-base: https://github.com/urob
+  projects:
+    - name: zmk
+      remote: zmkfirmware
+      revision: v0.3.0
+      import: app/west.yml
+    - name: zmk-driver-pmw3360
+      remote: george-norton
+      revision: v0.3
+    - name: zmk-helpers
+      remote: urob
+      revision: v0.3.0
+    - name: zmk-auto-layer
+      remote: urob
+      revision: v0.3.0
+    - name: zmk-leader-key
+      remote: urob
+      revision: v0.3.0
+  self:
+    path: config
keyboards/keyball44/firmwares/keyball44_left.uf2
Binary file
keyboards/keyball44/firmwares/keyball44_right.uf2
Binary file
keyboards/keyball44/lib/functions.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+# Author: Chmouel Boudjnah <chmouel@chmouel.com>
+
+set -euo pipefail
+
+if [[ -e config/includes/local.h ]]; then
+  cat <<EOF >config/includes/local.h
+#define MYDEBUG_PASTE_MACRO &kp D &kp E &kp B &kp U &kp G
+#define MYDEBUG_PASTE_MACRO_2 &kp STAR &kp SPACE &kp D &kp E &kp B &kp U &kp G &kp SPACE &kp STAR
+EOF
+fi
+
+function echo_red() {
+  echo -e "\033[0;31m$1\033[0m"
+}
+
+function echo_green() {
+  echo -e "\033[0;32m$1\033[0m"
+}
+
+function echo_blue() {
+  echo -e "\033[0;34m$1\033[0m"
+}
+
+function echo_yellow() {
+  echo -e "\033[0;33m$1\033[0m"
+}
keyboards/keyball44/build.yaml
@@ -0,0 +1,10 @@
+---
+include:
+  - board: nice_nano_v2
+    shield: keyball44_left
+    #snippet: zmk-usb-logging    # Uncomment to log over USB.
+  - board: nice_nano_v2
+    shield: keyball44_right
+    #snippet: zmk-usb-logging
+  - board: nice_nano_v2
+    shield: settings_reset
keyboards/keyball44/Dockerfile
@@ -0,0 +1,28 @@
+# syntax=docker/dockerfile:1.17.0
+FROM zmkfirmware/zmk-build-arm:stable AS builder
+
+COPY ./config/west.yml /workspace/zmk-config/config/
+WORKDIR /workspace/zmk-config/
+
+RUN west init -l config
+RUN west update
+RUN west zephyr-export
+
+COPY ./config/* /workspace/zmk-config/config/
+COPY ./config/boards /workspace/zmk-config/config/boards
+
+FROM builder AS builder_left
+RUN west build -s zmk/app \
+    -b nice_nano_v2 -d /tmp/left -- \
+    -DZMK_CONFIG=/workspace/zmk-config/config \
+    -DSHIELD="keyball44_left"
+
+FROM builder AS builder_right
+RUN west build -s zmk/app \
+    -b nice_nano_v2 -d /tmp/right -- \
+    -DZMK_CONFIG=/workspace/zmk-config/config \
+    -DSHIELD="keyball44_right"
+
+FROM scratch AS output_collector
+COPY --from=builder_right /tmp/right/zephyr/zmk.uf2 keyball44_right.uf2
+COPY --from=builder_left /tmp/left/zephyr/zmk.uf2 keyball44_left.uf2
keyboards/keyball44/go.sh
@@ -0,0 +1,61 @@
+#!/usr/bin/env bash
+set -eufo pipefail
+
+cPWD="$(dirname "$(readlink -f "$0")")"
+# shellcheck disable=SC1091
+source "${cPWD}/lib/functions.sh"
+
+function build() {
+	tar -cf - Dockerfile build.yaml config | docker build --target output_collector --output type=local,dest="firmwares" -f Dockerfile -
+}
+
+function flash() {
+	side=${1}
+	id=${2}
+
+	echo -n "$(echo_red) Connect ${side} side as usb storage: "
+	while [[ ! -e /dev/disk/by-id/"${id}" ]]; do
+		echo -n "$(echo_blue .)"
+		sleep 1
+	done
+	echo " ✅"
+
+	if [[ -d /run/media/"${USER}"/NICENANO ]]; then
+		echo "$(echo_green ) Using auto-mounted /run/media/${USER}/NICENANO"
+		cp -bv "firmwares/keyball44_${side}.uf2" /run/media/"${USER}"/NICENANO/CURRENT.UF2
+	else
+		sudo umount /mnt 2>/dev/null >/dev/null || true
+		sudo mount /dev/disk/by-id/"${id}" /mnt
+		sudo cp -bv "firmwares/keyball44_${side}.uf2" /mnt/CURRENT.UF2
+	fi
+}
+
+help() {
+	echo "go.sh [build/flash]"
+}
+
+[[ -z ${1-""} ]] && {
+	set +x
+	echo "need at least one arg"
+	help
+	exit 1
+}
+
+case "$1" in
+build) build ;;
+flash)
+	build
+
+	flash left usb-Adafruit_nRF_UF2_FEA589DBF0ED86AA-0:0
+	echo "$(echo_green ) Left side is completed.."
+	sleep 2
+
+	flash right usb-Adafruit_nRF_UF2_DDCBE6D91191787B-0:0
+	echo "$(echo_green )" "Right side is completed.. enjoy 🥳"
+	;;
+*)
+	echo "Wrong argument $1"
+	help
+	exit 1
+	;;
+esac
keyboards/keyball44/README.md
@@ -0,0 +1,45 @@
+# Keyball44 ZMK Configuration
+
+Split keyboard with integrated trackball (PMW3360), running ZMK firmware on nice!nano v2 controllers.
+
+## Layout
+
+- 44 keys: 3×6 per side + 5 left thumb keys + 3 right thumb keys
+- Trackball on the right side (replaces one thumb key)
+- OLED display on each side
+
+## Layers
+
+| # | Name    | Description |
+|---|---------|-------------|
+| 0 | Bépo    | French ergonomic layout (default) |
+| 1 | ErgoL   | ErgoL layout |
+| 2 | Qwerty  | Standard QWERTY |
+| 3 | Accents | French accents |
+| 4 | Symbols | Programming symbols |
+| 5 | Nav     | Navigation + media + BT |
+| 6 | Numbers | Numpad + function keys |
+| 7 | Mouse   | Mouse buttons (trackball handles movement) |
+
+## Building
+
+```bash
+./go.sh build
+```
+
+## Flashing
+
+1. Put the nice!nano into bootloader mode (double-tap reset)
+2. Update USB IDs in `go.sh` to match your controllers
+3. Run `./go.sh flash`
+
+## Shield Source
+
+Based on [toeck98/zmk_config_Keyball44](https://github.com/toeck98/zmk_config_Keyball44) shield definitions, using PMW3360 trackball driver.
+
+## TODO
+
+- [ ] Update USB device IDs in `go.sh` after first flash
+- [ ] Tune trackball sensitivity/scroll in right overlay
+- [ ] Add scroll/snipe layer modes for trackball
+- [ ] Test and adjust combos for Keyball44 key positions
keyboards/generate-keymaps.sh
@@ -204,6 +204,34 @@ EOF
 	fi
 }
 
+generate_keyball44() {
+	log_info "Generating keymap for keyball44 (ZMK)..."
+
+	local zmk_config="$SCRIPT_DIR/keyball44/config/keyball44.keymap"
+	local layout_json="$SCRIPT_DIR/keyball44/config/keyball44.json"
+	local output_svg="$OUTPUT_DIR/keyball44.svg"
+	local keymap_yaml
+	keymap_yaml=$(mktemp "${TMPDIR:-/tmp}/keyball44-keymap.XXXXXX.yaml")
+
+	if [[ ! -f "$zmk_config" ]]; then
+		log_warn "ZMK config not found at $zmk_config"
+		return 1
+	fi
+
+	# Parse ZMK keymap to YAML, then replace layout with JSON reference
+	keymap -c "$RESOLVED_CONFIG" parse -z "$zmk_config" >"$keymap_yaml"
+
+	# Replace the layout line with the JSON physical layout
+	sed -i "s|^layout:.*|layout: {qmk_info_json: $layout_json}|" "$keymap_yaml"
+
+	# Draw SVG from YAML
+	keymap -c "$RESOLVED_CONFIG" draw "$keymap_yaml" >"$output_svg"
+	rm -f "$keymap_yaml"
+
+	log_success "Generated: $output_svg"
+	svg_to_png "$output_svg"
+}
+
 # Main logic
 case "${1:-all}" in
 eyelash | eyelash_corne)
@@ -212,16 +240,21 @@ eyelash | eyelash_corne)
 moonlander)
 	generate_moonlander
 	;;
+keyball | keyball44)
+	generate_keyball44
+	;;
 all)
 	generate_eyelash_corne || true
 	generate_moonlander || true
+	generate_keyball44 || true
 	;;
 *)
-	echo "Usage: $0 [eyelash|moonlander|all]"
+	echo "Usage: $0 [eyelash|moonlander|keyball44|all]"
 	echo ""
 	echo "Options:"
 	echo "  eyelash     Generate only eyelash_corne keymap"
 	echo "  moonlander  Generate only moonlander keymap"
+	echo "  keyball44   Generate only keyball44 keymap"
 	echo "  all         Generate all keymaps (default)"
 	echo ""
 	echo "Output directory: $OUTPUT_DIR"
keyboards/keyball44.png
Binary file
keyboards/keyball44.svg
@@ -0,0 +1,2950 @@
+<svg width="915" height="3775" viewBox="0 0 915 3775" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<defs>/* start glyphs */
+<svg id="bt-clear">
+<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-bluetooth-x" viewBox="0 0 32 32" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M7 8l10 8l-5 4v-16l1 .802m0 6.396l-6 4.802" />
+  <path d="M16 6l4 4" />
+  <path d="M20 6l-4 4" />
+</svg>
+
+</svg>
+<svg id="bt-next">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon icon-tabler icon-tabler-bluetooth-next">
+    <g stroke="none">
+        <path d="M10.59.5h13.65v13.64H10.59Z"/>
+        <path fill="currentColor" d="M2 5v14a1 1 0 0 0 1.66.75l8-7a1 1 0 0 0 0-1.5l-8-7A1 1 0 0 0 2 5Zm11 0v14a1 1 0 0 0 1.66.75l8-7a1 1 0 0 0 0-1.5l-8-7A1 1 0 0 0 13 5Z" style="fill:#fff;fill-opacity:1;stroke:none;stroke-opacity:1" transform="translate(10.59 .5) scale(.5686)"/>
+    </g>
+    \g&gt;
+    <path d="m1.69 7.1 12.45 9.96-6.23 4.98V2.1l1.25 1m0 7.97-7.47 5.98" style="stroke:#fff;stroke-width:2.49081;stroke-opacity:1"/>
+    \g&gt;
+</svg>
+
+</svg>
+<svg id="bt-prev">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon icon-tabler icon-tabler-bluetooth-next">
+    <g stroke="none">
+  <path d="M24.24 14.14H10.59V.5h13.65Z"/>
+  <path fill="currentColor" d="M2 5v14a1 1 0 0 0 1.66.75l8-7a1 1 0 0 0 0-1.5l-8-7A1 1 0 0 0 2 5Zm11 0v14a1 1 0 0 0 1.66.75l8-7a1 1 0 0 0 0-1.5l-8-7A1 1 0 0 0 13 5Z" style="fill:#fff;fill-opacity:1;stroke:none;stroke-opacity:1" transform="rotate(180 12.12 7.07) scale(.5686)"/>
+  </g>
+  \g&gt;
+  <path d="m1.69 7.1 12.45 9.96-6.23 4.98V2.1l1.25 1m0 7.97-7.47 5.98" style="stroke:#fff;stroke-width:2.49081;stroke-opacity:1"/>
+  \g&gt;
+</svg>
+
+</svg>
+<svg id="click-middle">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 1120 1120">
+    <path fill="#fff" d="m738.2-366.06-41.73-77.07q29-47.38 22.98-102.18-6-54.8-46.31-95.1Q626.47-687.1 560-687.1t-113.14 46.67q-40.3 40.3-46.31 95.11-6.01 54.8 22.98 102.18l-41.72 77.07q-64.35-71.42-62.23-166.88 2.13-95.46 70.71-164.04Q461.01-767.7 560-767.7q99 0 169.7 70.72 68.6 68.58 70.72 164.04 2.12 95.46-62.23 166.88zM615.85 10.83H504.14V-231L362-159.58l198-367.7 197.99 367.7L615.86-231Z"/>
+</svg>
+
+</svg>
+<svg id="delete">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="M360-200q-22 0-40-11.5T289-241L120-480l169-239q13-18 31-29.5t40-11.5h420q24.75 0 42.375 17.625T840-700v440q0 24.75-17.625 42.375T780-200H360Zm420-60v-440 440Zm-431 0h431v-440H349L195-480l154 220Zm99-66 112-112 112 112 43-43-113-111 111-111-43-43-110 112-112-112-43 43 113 111-113 111 43 43Z"/></svg>
+
+</svg>
+<svg id="material:backspace">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="m448-326 112-112 112 112 43-43-113-111 111-111-43-43-110 112-112-112-43 43 113 111-113 111 43 43Zm-98 166q-14.25 0-27-6.38-12.75-6.37-21-17.62L80-480l221-296q8.25-11.25 21-17.63 12.75-6.37 27-6.37h472q24.75 0 42.38 17.62Q881-764.75 881-740v520q0 24.75-17.62 42.37Q845.75-160 821-160H350ZM155-480l195 260h471v-520H350L155-480Zm431 0Z"/></svg>
+</svg>
+<svg id="material:keyboard_return">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="M359-240 120-479l239-239 43 43-167 167h545v-172h60v231H236l166 166-43 43Z"/></svg>
+</svg>
+<svg id="material:keyboard_tab">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="M820-240v-480h60v480h-60Zm-340 1-43-42 169-169H80v-60h526L438-679l42-42 241 241-241 241Z"/></svg>
+</svg>
+<svg id="material:left_click">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="M468-240q-96-5-162-74t-66-166q0-100 70-170t170-70q97 0 166 66t74 163l-63-20q-11-64-60-106.5T480-660q-75 0-127.5 52.5T300-480q0 67 42.5 116.5T449-303l19 63ZM821-60 650-231 600-80 480-480l400 120-151 50 171 171-79 79Z"/></svg>
+</svg>
+<svg id="material:right_click">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960"><path d="m492-240 19-63q64-11 106.5-60.5T660-480q0-75-52.5-127.5T480-660q-68 0-117 42.5T303-511l-63 20q5-97 74-163t166-66q100 0 170 70t70 170q0 97-66 166t-162 74ZM139-60l-79-79 171-171-151-50 400-120L360-80l-50-151L139-60Z"/></svg>
+</svg>
+<svg id="output-toggle">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 8.03 10.37">
+    <g style="fill:#fff;fill-opacity:1">
+        <g style="fill:#fff;fill-opacity:1;stroke-width:.365;stroke-dasharray:none">
+            <path d="M106.89 150.28a.53.53 0 1 0 1.06 0 .53.53 0 1 0-1.06 0" style="fill:#fff;fill-opacity:1;stroke-width:.365;stroke-dasharray:none" transform="translate(-100.98 -140.44)"/>
+            <path d="M107.42 149.75v-3.04m-1.32 1.19v.8l1.32.79m0-.39 1.32-.54v-.66" style="fill:none;fill-opacity:1;stroke:#fff;stroke-width:.365;stroke-dasharray:none;stroke-opacity:1" transform="translate(-100.98 -140.44)"/>
+            <path d="M108.48 147.9h.53v-.53h-.53zm-2.63-.26a.26.26 0 1 0 .53 0 .26.26 0 1 0-.53 0m1.05-.93h1.05l-.53-.66Z" style="fill:#fff;fill-opacity:1;stroke-width:.365;stroke-dasharray:none" transform="translate(-100.98 -140.44)"/>
+        </g>
+        <path d="m98.5 149.47 2.65 2.11-1.32 1.06v-4.23l1.32 1.06-2.64 2.11" style="fill:none;fill-opacity:1;stroke:#fff;stroke-width:.365;stroke-dasharray:none;stroke-opacity:1" transform="translate(-98.4 -148.03)"/>
+        <path d="m99.58 156.1 4.97-4.97" style="fill:none;fill-opacity:1;stroke:#fff;stroke-width:.365;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1" transform="translate(-98.4 -148.03)"/>
+    </g>
+</svg>
+
+</svg>
+<svg id="play-pause">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 26" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" class="icon icon-tabler icon-tabler-player-play">
+    <path fill="#fff" stroke="none" d="M11.02 4v16a1 1 0 0 0 1.52.85l13-8a1 1 0 0 0 0-1.7l-13-8a1 1 0 0 0-1.52.85Z" style="fill:#fff;fill-opacity:1"/>
+    <path fill="#fff" stroke="none" d="M1.6 3h2.72c.82 0 1.48.65 1.48 1.45V19.5c0 .8-.66 1.44-1.48 1.44h-2.7c-.82 0-1.48-.65-1.48-1.44V4.45C.14 3.65.8 3 1.61 3Z" style="fill:#fff;fill-opacity:1;stroke:none;stroke-width:0;stroke-dasharray:none"/>
+</svg>
+
+</svg>
+<svg id="scroll-down">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76.64 76.65">
+    <path d="M51.85 38.32a13.53 13.53 0 0 1-13.53 13.53 13.53 13.53 0 0 1-13.53-13.53 13.53 13.53 0 0 1 13.53-13.53 13.53 13.53 0 0 1 13.53 13.53z" style="fill:#fff;stroke-width:.30994;stroke-linecap:round"/>
+    <path d="m21.6 59.94 16.72 16.71 16.71-16.7H38.32Z" style="color:#000;fill:#fff;stroke-linecap:round;-inkscape-stroke:none"/>
+</svg>
+
+</svg>
+<svg id="scroll-left">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76.64 76.65">
+    <path d="M51.85 38.32a13.53 13.53 0 0 1-13.53 13.53 13.53 13.53 0 0 1-13.53-13.53 13.53 13.53 0 0 1 13.53-13.53 13.53 13.53 0 0 1 13.53 13.53z" style="fill:#fff;stroke-width:.30994;stroke-linecap:round"/>
+    <path d="M16.7 21.61 0 38.32l16.71 16.72V38.32Z" style="color:#000;fill:#fff;stroke-linecap:round;-inkscape-stroke:none"/>
+</svg>
+
+</svg>
+<svg id="scroll-right">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76.64 76.65">
+    <path d="M51.85 38.32a13.53 13.53 0 0 1-13.53 13.53 13.53 13.53 0 0 1-13.53-13.53 13.53 13.53 0 0 1 13.53-13.53 13.53 13.53 0 0 1 13.53 13.53z" style="fill:#fff;stroke-width:.30994;stroke-linecap:round"/>
+    <path d="m59.94 55.04 16.7-16.72-16.7-16.7v16.7z" style="color:#000;fill:#fff;stroke-linecap:round;-inkscape-stroke:none"/>
+</svg>
+
+</svg>
+<svg id="scroll-up">
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 76.64 76.65">
+    <path d="M51.85 38.32a13.53 13.53 0 0 1-13.53 13.53 13.53 13.53 0 0 1-13.53-13.53 13.53 13.53 0 0 1 13.53-13.53 13.53 13.53 0 0 1 13.53 13.53z" style="fill:#fff;stroke-width:.30994;stroke-linecap:round"/>
+    <path d="M55.03 16.7 38.32 0 21.6 16.7h16.7z" style="color:#000;fill:#fff;stroke-linecap:round;-inkscape-stroke:none"/>
+</svg>
+
+</svg>
+<svg id="tabler:arrow-big-down">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="currentColor"
+  class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-down"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M10 2l-.15 .005a2 2 0 0 0 -1.85 1.995v6.999l-2.586 .001a2 2 0 0 0 -1.414 3.414l6.586 6.586a2 2 0 0 0 2.828 0l6.586 -6.586a2 2 0 0 0 .434 -2.18l-.068 -.145a2 2 0 0 0 -1.78 -1.089l-2.586 -.001v-6.999a2 2 0 0 0 -2 -2h-4z" />
+</svg>
+</svg>
+<svg id="tabler:arrow-big-left">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="currentColor"
+  class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-left"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M9.586 4l-6.586 6.586a2 2 0 0 0 0 2.828l6.586 6.586a2 2 0 0 0 2.18 .434l.145 -.068a2 2 0 0 0 1.089 -1.78v-2.586h7a2 2 0 0 0 2 -2v-4l-.005 -.15a2 2 0 0 0 -1.995 -1.85l-7 -.001v-2.585a2 2 0 0 0 -3.414 -1.414z" />
+</svg>
+</svg>
+<svg id="tabler:arrow-big-right">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="currentColor"
+  class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-right"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M12.089 3.634a2 2 0 0 0 -1.089 1.78l-.001 2.586h-6.999a2 2 0 0 0 -2 2v4l.005 .15a2 2 0 0 0 1.995 1.85l6.999 -.001l.001 2.587a2 2 0 0 0 3.414 1.414l6.586 -6.586a2 2 0 0 0 0 -2.828l-6.586 -6.586a2 2 0 0 0 -2.18 -.434l-.145 .068z" />
+</svg>
+</svg>
+<svg id="tabler:arrow-big-up">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="currentColor"
+  class="icon icon-tabler icons-tabler-filled icon-tabler-arrow-big-up"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M10.586 3l-6.586 6.586a2 2 0 0 0 -.434 2.18l.068 .145a2 2 0 0 0 1.78 1.089h2.586v7a2 2 0 0 0 2 2h4l.15 -.005a2 2 0 0 0 1.85 -1.995l-.001 -7h2.587a2 2 0 0 0 1.414 -3.414l-6.586 -6.586a2 2 0 0 0 -2.828 0z" />
+</svg>
+</svg>
+<svg id="tabler:camera">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="none"
+  stroke="currentColor"
+  stroke-width="2"
+  stroke-linecap="round"
+  stroke-linejoin="round"
+  class="icon icon-tabler icons-tabler-outline icon-tabler-camera"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M5 7h1a2 2 0 0 0 2 -2a1 1 0 0 1 1 -1h6a1 1 0 0 1 1 1a2 2 0 0 0 2 2h1a2 2 0 0 1 2 2v9a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-9a2 2 0 0 1 2 -2" />
+  <path d="M9 13a3 3 0 1 0 6 0a3 3 0 0 0 -6 0" />
+</svg>
+</svg>
+<svg id="tabler:player-track-next">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="currentColor"
+  class="icon icon-tabler icons-tabler-filled icon-tabler-player-track-next"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M2 5v14c0 .86 1.012 1.318 1.659 .753l8 -7a1 1 0 0 0 0 -1.506l-8 -7c-.647 -.565 -1.659 -.106 -1.659 .753z" />
+  <path d="M13 5v14c0 .86 1.012 1.318 1.659 .753l8 -7a1 1 0 0 0 0 -1.506l-8 -7c-.647 -.565 -1.659 -.106 -1.659 .753z" />
+</svg>
+</svg>
+<svg id="tabler:player-track-prev">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="currentColor"
+  class="icon icon-tabler icons-tabler-filled icon-tabler-player-track-prev"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M20.341 4.247l-8 7a1 1 0 0 0 0 1.506l8 7c.647 .565 1.659 .106 1.659 -.753v-14c0 -.86 -1.012 -1.318 -1.659 -.753z" />
+  <path d="M9.341 4.247l-8 7a1 1 0 0 0 0 1.506l8 7c.647 .565 1.659 .106 1.659 -.753v-14c0 -.86 -1.012 -1.318 -1.659 -.753z" />
+</svg>
+</svg>
+<svg id="tabler:space">
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+ 
+ 
+  viewBox="0 0 24 24"
+  fill="none"
+  stroke="currentColor"
+  stroke-width="2"
+  stroke-linecap="round"
+  stroke-linejoin="round"
+  class="icon icon-tabler icons-tabler-outline icon-tabler-space"
+>
+  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
+  <path d="M4 10v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1 -1v-3" />
+</svg>
+</svg>
+</defs>/* end glyphs */
+<style>/* inherit to force styles through use tags */
+svg path {
+    fill: inherit;
+}
+
+/* font and background color specifications */
+svg.keymap {
+    font-family: SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;
+    font-size: 14px;
+    font-weight: bold;
+    font-kerning: normal;
+    text-rendering: optimizeLegibility;
+    fill: white;
+}
+
+/* default key styling */
+rect.key {
+    fill: #1c2128;
+    stroke: #adbac7;
+    stroke-width: 1;
+}
+
+/* default key side styling, only used is draw_key_sides is set */
+rect.side {
+    filter: brightness(90%);
+}
+
+/* color accent for combo boxes */
+rect.combo, rect.combo-separate {
+    fill: #4a5568;
+    stroke: #cbd5e0;
+    stroke-width: 2;
+}
+
+/* color accent for held keys */
+rect.held, rect.combo.held {
+    fill: #FF9E3B;
+}
+
+/* color accent for ghost (optional) keys */
+rect.ghost, rect.combo.ghost {
+    stroke-dasharray: 4, 4;
+    stroke-width: 2;
+}
+
+text {
+    text-anchor: middle;
+    dominant-baseline: middle;
+}
+
+/* styling for layer labels */
+text.label {
+    font-weight: bold;
+    text-anchor: start;
+    fill: #adbac7;
+    font-size: 28px;
+    stroke: #777;
+    stroke-width: 0px;
+    paint-order: stroke;
+}
+
+/* styling for combo tap, and key hold/shifted label text */
+text.combo, text.hold, text.shifted {
+    font-size: 10px;
+    font-weight: bold;
+    text-transform: uppercase;
+    fill: white;
+}
+
+text.hold {
+    text-anchor: middle;
+    dominant-baseline: auto;
+}
+
+text.shifted {
+    text-anchor: middle;
+    dominant-baseline: hanging;
+}
+
+/* styling for hold/shifted label text in combo box */
+text.combo.hold, text.combo.shifted {
+    font-size: 8px;
+}
+
+/* lighter symbol for transparent keys */
+text.trans {
+    fill: #7b7e81;
+}
+
+/* styling for unused/empty keys (XXXXXXX, KC_NO) */
+/* Target keys that have neither text nor glyph (use) elements */
+/* Exclude combo diagram keys */
+g[class*='layer-']:not([class*='combopos']) g.key:not(:has(text)):not(:has(use)) rect.key {
+    fill: #0d1117;
+    stroke: #30363d;
+    stroke-dasharray: 2, 2;
+    opacity: 0.5;
+}
+
+/* styling for combo dendrons */
+path.combo {
+    stroke-width: 1;
+    stroke: gray;
+    fill: none;
+}
+
+/* Start Tabler Icons Cleanup */
+/* cannot use height/width with glyphs */
+
+.icon-tabler > path {
+    fill: white;
+    stroke: none;
+}
+
+.icon-tabler-cut > path,
+.icon-tabler-space > path,
+.icon-tabler-copy > path,
+.icon-tabler-clipboard > path,
+.icon-tabler-camera > path,
+.icon-tabler-volume > path,
+.icon-tabler-volume-2 > path,
+.icon-tabler-bluetooth-x > path,
+.icon-tabler-bluetooth-prev > path,
+.icon-tabler-bluetooth-next > path {
+    fill: none;
+    stroke: white;
+}
+
+#tabler\:cut,
+#tabler\:copy,
+#tabler\:clipboard,
+#tabler\:camera {
+   transform: scale(1.4);
+   transform-box: fill-box;
+}
+
+#tabler\:space {
+    transform: scale(1.8);
+    transform-box: fill-box;
+}
+
+#tabler\:volume,
+#tabler\:volume-2 {
+    transform: scale(1.7);
+    transform-box: fill-box;
+}
+
+#tabler\:arrow-big-up,
+#tabler\:arrow-big-down,
+#tabler\:arrow-big-left,
+#tabler\:arrow-big-right {
+    transform: scale(1.3);
+    transform-box: fill-box;
+}
+
+/* hide tabler's default box */
+.icon-tabler > path[stroke="none"][fill="none"] {
+    visibility: hidden;
+}
+/* End Tabler Icons Cleanup */
+
+/* Material glyphs */
+#material\:keyboard_return{
+  transform: scale(2);
+  transform-box: fill-box;
+}
+
+#material\:backspace{
+  transform: scale(2) translateY(1px);
+  transform-box: fill-box;
+}
+
+.shifted.material\:left_click {
+    transform: scale(1.2) translateY(5px);
+    transform-box: fill-box;
+}
+
+#material\:left_click,
+#material\:right_click,
+#material\:keyboard_tab {
+    transform: scale(1.5);
+    transform-box: fill-box;
+}
+
+/* Custom glyphs */
+.bt-clear {
+    transform: scale(2.4) translate(2px, 1.5px);
+}
+
+.bt-prev,
+.bt-next {
+    transform: scale(1.5) translate(2px);
+}
+
+#delete {
+  transform: scale(2) rotate(180deg) translate(-1px, -1px);
+  transform-box: fill-box;
+}
+
+#nbsp {
+    transform: scale(2.5);
+    transform-box: fill-box;
+}
+
+.combo.scroll {
+    transform: scale(1.2) translate(-19px, -6px);
+}
+
+.scroll,
+.scroll-right {
+    transform: scale(1.5);
+}
+
+.scroll-down {
+    transform: scale(1.5) translateY(-2px);
+}
+
+.scroll-up {
+    transform: scale(1.5) translateY(2px);
+}
+
+.scroll-left {
+    transform: scale(1.5) translate(2px);
+}
+
+.click-middle {
+    transform: scale(1.7) translate(2px, 1px);
+    transform-box: fill-box;
+}
+
+.cursor-right {
+    transform: scale(1.8);
+}
+
+.cursor-down {
+    transform: scale(1.8) translateY(-1px);
+}
+
+.cursor-up {
+    transform: scale(1.9) translateY(1px);
+}
+
+.cursor-left {
+    transform: scale(1.8) translate(1px);
+}
+
+.output-toggle {
+    transform: scale(2.5);
+    fill: none;
+    stroke: white;
+    stroke-width: 4px;
+}
+
+.layer-lock {
+    transform: scale(1.8);
+    transform-box: fill-box;
+}
+</style>
+<g transform="translate(30, 0)" class="layer-Bépo">
+<text x="0" y="28" class="label" id="Bpo">Bépo</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:keyboard_tab" xlink:href="#material:keyboard_tab" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_tab"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">B</text>
+<text x="0" y="-23" class="key shifted">|</text>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">É</text>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">P</text>
+<text x="0" y="-23" class="key shifted">&amp;</text>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">O</text>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">È</text>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">^</text>
+<text x="0" y="-23" class="key shifted">!</text>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">V</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">D</text>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">L</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">J</text>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Z</text>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">
+<tspan x="0" dy="-0.9em" style="font-size: 67%">&amp;num_word</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">6</tspan>
+</text>
+<a href="#Num">
+<text x="0" y="23" class="key hold layer-activator">Num</text>
+</a></g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">A</text>
+<text x="0" y="23" class="key hold">GUI</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">U</text>
+<text x="0" y="23" class="key hold">ALT</text>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">I</text>
+<text x="0" y="23" class="key hold">SHIFT</text>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">E</text>
+<text x="0" y="23" class="key hold">CTRL</text>
+<text x="0" y="-23" class="key shifted">€</text>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">,</text>
+<text x="0" y="23" class="key hold"><tspan style="font-size: 86%">Meh+GUI</tspan></text>
+<text x="0" y="-23" class="key shifted">;</text>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">C</text>
+<text x="0" y="23" class="key hold"><tspan style="font-size: 86%">Meh+GUI</tspan></text>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">T</text>
+<text x="0" y="23" class="key hold">RCTRL</text>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">S</text>
+<text x="0" y="23" class="key hold">RSHFT</text>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">R</text>
+<text x="0" y="23" class="key hold">RALT</text>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">N</text>
+<text x="0" y="23" class="key hold">GUI</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">M</text>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">`</text>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">À</text>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Y</text>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">X</text>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">.</text>
+<text x="0" y="-23" class="key shifted">:</text>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">K</text>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&#x27;</text>
+<text x="0" y="-23" class="key shifted">?</text>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Q</text>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">G</text>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">H</text>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F</text>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">W</text>
+</g>
+<g transform="translate(140, 210)" class="key keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">GUI</text>
+</g>
+<g transform="translate(196, 196)" class="key keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">ALT</text>
+</g>
+<g transform="translate(266, 252)" class="key keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#delete" xlink:href="#delete" x="-7" y="-7" height="14" width="14.0" class="key tap glyph delete"/>
+<a href="#Mouse">
+<text x="0" y="23" class="key hold layer-activator">Mouse</text>
+</a></g>
+<g transform="translate(324, 256) rotate(10.0)" class="key keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:space" xlink:href="#tabler:space" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:space"/>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:backspace" xlink:href="#material:backspace" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:backspace"/>
+<a href="#Nav">
+<text x="0" y="23" class="key hold layer-activator">Nav</text>
+</a></g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:keyboard_return" xlink:href="#material:keyboard_return" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_return"/>
+<a href="#Sym">
+<text x="0" y="23" class="key hold layer-activator">Sym</text>
+</a></g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">RALT</text>
+</g>
+<g transform="translate(812, 224)" class="key keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#delete" xlink:href="#delete" x="-7" y="-7" height="14" width="14.0" class="key tap glyph delete"/>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+<g class="combo combopos-1">
+<rect rx="6" ry="6" x="152" y="19" width="32" height="32" class="combo"/>
+<text x="168" y="35" class="combo tap">@</text>
+</g>
+<g class="combo combopos-2">
+<rect rx="6" ry="6" x="96" y="33" width="32" height="32" class="combo"/>
+<text x="112" y="49" class="combo tap">|</text>
+</g>
+<g class="combo combopos-3">
+<rect rx="6" ry="6" x="208" y="18" width="32" height="32" class="combo"/>
+<text x="224" y="34" class="combo tap">#</text>
+</g>
+<g class="combo combopos-4">
+<rect rx="6" ry="6" x="264" y="29" width="32" height="32" class="combo"/>
+<text x="280" y="45" class="combo tap">&amp;</text>
+</g>
+<g class="combo combopos-5">
+<rect rx="6" ry="6" x="236" y="51" width="32" height="32" class="combo"/>
+<text x="252" y="67" class="combo tap">$</text>
+</g>
+<g class="combo combopos-6">
+<rect rx="6" ry="6" x="180" y="40" width="32" height="32" class="combo"/>
+<text x="196" y="56" class="combo tap">/</text>
+</g>
+<g class="combo combopos-7">
+<rect rx="6" ry="6" x="180" y="96" width="32" height="32" class="combo"/>
+<text x="196" y="112" class="combo tap">\</text>
+</g>
+<g class="combo combopos-8">
+<rect rx="6" ry="6" x="124" y="54" width="32" height="32" class="combo"/>
+<text x="140" y="70" class="combo tap">-</text>
+</g>
+<g class="combo combopos-9">
+<rect rx="6" ry="6" x="236" y="107" width="32" height="32" class="combo"/>
+<text x="252" y="123" class="combo tap">_</text>
+</g>
+<g class="combo combopos-10">
+<rect rx="6" ry="6" x="124" y="110" width="32" height="32" class="combo"/>
+<text x="140" y="126" class="combo tap">=</text>
+</g>
+<g class="combo combopos-11">
+<rect rx="6" ry="6" x="628" y="40" width="32" height="32" class="combo"/>
+<text x="644" y="56" class="combo tap">(</text>
+</g>
+<g class="combo combopos-12">
+<rect rx="6" ry="6" x="628" y="96" width="32" height="32" class="combo"/>
+<text x="644" y="112" class="combo tap">)</text>
+</g>
+<g class="combo combopos-13">
+<rect rx="6" ry="6" x="572" y="51" width="32" height="32" class="combo"/>
+<text x="588" y="67" class="combo tap">{</text>
+</g>
+<g class="combo combopos-14">
+<rect rx="6" ry="6" x="572" y="107" width="32" height="32" class="combo"/>
+<text x="588" y="123" class="combo tap">}</text>
+</g>
+<g class="combo combopos-15">
+<rect rx="6" ry="6" x="684" y="54" width="32" height="32" class="combo"/>
+<text x="700" y="70" class="combo tap">[</text>
+</g>
+<g class="combo combopos-16">
+<rect rx="6" ry="6" x="684" y="110" width="32" height="32" class="combo"/>
+<text x="700" y="126" class="combo tap">]</text>
+</g>
+<g class="combo combopos-17">
+<rect rx="6" ry="6" x="656" y="19" width="32" height="32" class="combo"/>
+<text x="672" y="35" class="combo tap">&gt;</text>
+</g>
+<g class="combo combopos-18">
+<rect rx="6" ry="6" x="600" y="18" width="32" height="32" class="combo"/>
+<text x="616" y="34" class="combo tap">&lt;</text>
+</g>
+<g class="combo combopos-19">
+<rect rx="6" ry="6" x="516" y="62" width="32" height="32" class="combo"/>
+<text x="532" y="78" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-20">
+<rect rx="6" ry="6" x="292" y="62" width="32" height="32" class="combo"/>
+<text x="308" y="78" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-21">
+<rect rx="6" ry="6" x="292" y="118" width="32" height="32" class="combo"/>
+<text x="308" y="134" class="combo tap">%</text>
+</g>
+<g class="combo combopos-22">
+<rect rx="6" ry="6" x="516" y="118" width="32" height="32" class="combo"/>
+<text x="532" y="134" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-23">
+<rect rx="6" ry="6" x="740" y="68" width="32" height="32" class="combo"/>
+<text x="756" y="84" class="combo tap">*</text>
+</g>
+<g class="combo combopos-24">
+<rect rx="6" ry="6" x="740" y="124" width="32" height="32" class="combo"/>
+<text x="756" y="140" class="combo tap">+</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 370)" class="layer-ErgoL">
+<text x="0" y="28" class="label" id="ErgoL">ErgoL</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:keyboard_tab" xlink:href="#material:keyboard_tab" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_tab"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Q</text>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">C</text>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">O</text>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">P</text>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">W</text>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">J</text>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">M</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">D</text>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">!</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Y</text>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">[</text>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">=</text>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">A</text>
+<text x="0" y="23" class="key hold">GUI</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">S</text>
+<text x="0" y="23" class="key hold">ALT</text>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">E</text>
+<text x="0" y="23" class="key hold">SHIFT</text>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">N</text>
+<text x="0" y="23" class="key hold">CTRL</text>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F</text>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">L</text>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">R</text>
+<text x="0" y="23" class="key hold">RCTRL</text>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">T</text>
+<text x="0" y="23" class="key hold">RSHFT</text>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">I</text>
+<text x="0" y="23" class="key hold">RALT</text>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">U</text>
+<text x="0" y="23" class="key hold">GUI</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&#x27;</text>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">`</text>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Z</text>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">X</text>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">-</text>
+<text x="0" y="-23" class="key shifted">?</text>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">V</text>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">B</text>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">.</text>
+<text x="0" y="-23" class="key shifted">:</text>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">H</text>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">G</text>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">,</text>
+<text x="0" y="-23" class="key shifted">;</text>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">K</text>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">]</text>
+</g>
+<g transform="translate(140, 210)" class="key trans keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(196, 196)" class="key trans keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(266, 252)" class="key trans keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key trans keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key trans keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key trans keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key trans keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(812, 224)" class="key trans keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+<g class="combo combopos-1">
+<rect rx="6" ry="6" x="152" y="19" width="32" height="32" class="combo"/>
+<text x="168" y="35" class="combo tap">@</text>
+</g>
+<g class="combo combopos-2">
+<rect rx="6" ry="6" x="96" y="33" width="32" height="32" class="combo"/>
+<text x="112" y="49" class="combo tap">|</text>
+</g>
+<g class="combo combopos-3">
+<rect rx="6" ry="6" x="208" y="18" width="32" height="32" class="combo"/>
+<text x="224" y="34" class="combo tap">#</text>
+</g>
+<g class="combo combopos-4">
+<rect rx="6" ry="6" x="264" y="29" width="32" height="32" class="combo"/>
+<text x="280" y="45" class="combo tap">&amp;</text>
+</g>
+<g class="combo combopos-5">
+<rect rx="6" ry="6" x="236" y="51" width="32" height="32" class="combo"/>
+<text x="252" y="67" class="combo tap">$</text>
+</g>
+<g class="combo combopos-6">
+<rect rx="6" ry="6" x="180" y="40" width="32" height="32" class="combo"/>
+<text x="196" y="56" class="combo tap">/</text>
+</g>
+<g class="combo combopos-7">
+<rect rx="6" ry="6" x="180" y="96" width="32" height="32" class="combo"/>
+<text x="196" y="112" class="combo tap">\</text>
+</g>
+<g class="combo combopos-8">
+<rect rx="6" ry="6" x="124" y="54" width="32" height="32" class="combo"/>
+<text x="140" y="70" class="combo tap">-</text>
+</g>
+<g class="combo combopos-9">
+<rect rx="6" ry="6" x="236" y="107" width="32" height="32" class="combo"/>
+<text x="252" y="123" class="combo tap">_</text>
+</g>
+<g class="combo combopos-10">
+<rect rx="6" ry="6" x="124" y="110" width="32" height="32" class="combo"/>
+<text x="140" y="126" class="combo tap">=</text>
+</g>
+<g class="combo combopos-11">
+<rect rx="6" ry="6" x="628" y="40" width="32" height="32" class="combo"/>
+<text x="644" y="56" class="combo tap">(</text>
+</g>
+<g class="combo combopos-12">
+<rect rx="6" ry="6" x="628" y="96" width="32" height="32" class="combo"/>
+<text x="644" y="112" class="combo tap">)</text>
+</g>
+<g class="combo combopos-13">
+<rect rx="6" ry="6" x="572" y="51" width="32" height="32" class="combo"/>
+<text x="588" y="67" class="combo tap">{</text>
+</g>
+<g class="combo combopos-14">
+<rect rx="6" ry="6" x="572" y="107" width="32" height="32" class="combo"/>
+<text x="588" y="123" class="combo tap">}</text>
+</g>
+<g class="combo combopos-15">
+<rect rx="6" ry="6" x="684" y="54" width="32" height="32" class="combo"/>
+<text x="700" y="70" class="combo tap">[</text>
+</g>
+<g class="combo combopos-16">
+<rect rx="6" ry="6" x="684" y="110" width="32" height="32" class="combo"/>
+<text x="700" y="126" class="combo tap">]</text>
+</g>
+<g class="combo combopos-17">
+<rect rx="6" ry="6" x="656" y="19" width="32" height="32" class="combo"/>
+<text x="672" y="35" class="combo tap">&gt;</text>
+</g>
+<g class="combo combopos-18">
+<rect rx="6" ry="6" x="600" y="18" width="32" height="32" class="combo"/>
+<text x="616" y="34" class="combo tap">&lt;</text>
+</g>
+<g class="combo combopos-19">
+<rect rx="6" ry="6" x="516" y="62" width="32" height="32" class="combo"/>
+<text x="532" y="78" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-20">
+<rect rx="6" ry="6" x="292" y="62" width="32" height="32" class="combo"/>
+<text x="308" y="78" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-21">
+<rect rx="6" ry="6" x="292" y="118" width="32" height="32" class="combo"/>
+<text x="308" y="134" class="combo tap">%</text>
+</g>
+<g class="combo combopos-22">
+<rect rx="6" ry="6" x="516" y="118" width="32" height="32" class="combo"/>
+<text x="532" y="134" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-23">
+<rect rx="6" ry="6" x="740" y="68" width="32" height="32" class="combo"/>
+<text x="756" y="84" class="combo tap">*</text>
+</g>
+<g class="combo combopos-24">
+<rect rx="6" ry="6" x="740" y="124" width="32" height="32" class="combo"/>
+<text x="756" y="140" class="combo tap">+</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 740)" class="layer-QWRT">
+<text x="0" y="28" class="label" id="QWRT">QWRT</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:keyboard_tab" xlink:href="#material:keyboard_tab" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:keyboard_tab"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Q</text>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">W</text>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">E</text>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">R</text>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">T</text>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Y</text>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">U</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">I</text>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">O</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">P</text>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">[</text>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">=</text>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">A</text>
+<text x="0" y="23" class="key hold">GUI</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">S</text>
+<text x="0" y="23" class="key hold">ALT</text>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">D</text>
+<text x="0" y="23" class="key hold">SHIFT</text>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F</text>
+<text x="0" y="23" class="key hold">CTRL</text>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">G</text>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">H</text>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">J</text>
+<text x="0" y="23" class="key hold">RCTRL</text>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">K</text>
+<text x="0" y="23" class="key hold">RSHFT</text>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">L</text>
+<text x="0" y="23" class="key hold">RALT</text>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">;</text>
+<text x="0" y="23" class="key hold">GUI</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&#x27;</text>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">`</text>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Z</text>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">X</text>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">C</text>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">V</text>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">B</text>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">N</text>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">M</text>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">,</text>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">.</text>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">/</text>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">]</text>
+</g>
+<g transform="translate(140, 210)" class="key trans keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(196, 196)" class="key trans keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(266, 252)" class="key trans keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key trans keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key trans keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key trans keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key trans keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(812, 224)" class="key trans keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+<g class="combo combopos-1">
+<rect rx="6" ry="6" x="152" y="19" width="32" height="32" class="combo"/>
+<text x="168" y="35" class="combo tap">@</text>
+</g>
+<g class="combo combopos-2">
+<rect rx="6" ry="6" x="96" y="33" width="32" height="32" class="combo"/>
+<text x="112" y="49" class="combo tap">|</text>
+</g>
+<g class="combo combopos-3">
+<rect rx="6" ry="6" x="208" y="18" width="32" height="32" class="combo"/>
+<text x="224" y="34" class="combo tap">#</text>
+</g>
+<g class="combo combopos-4">
+<rect rx="6" ry="6" x="264" y="29" width="32" height="32" class="combo"/>
+<text x="280" y="45" class="combo tap">&amp;</text>
+</g>
+<g class="combo combopos-5">
+<rect rx="6" ry="6" x="236" y="51" width="32" height="32" class="combo"/>
+<text x="252" y="67" class="combo tap">$</text>
+</g>
+<g class="combo combopos-6">
+<rect rx="6" ry="6" x="180" y="40" width="32" height="32" class="combo"/>
+<text x="196" y="56" class="combo tap">/</text>
+</g>
+<g class="combo combopos-7">
+<rect rx="6" ry="6" x="180" y="96" width="32" height="32" class="combo"/>
+<text x="196" y="112" class="combo tap">\</text>
+</g>
+<g class="combo combopos-8">
+<rect rx="6" ry="6" x="124" y="54" width="32" height="32" class="combo"/>
+<text x="140" y="70" class="combo tap">-</text>
+</g>
+<g class="combo combopos-9">
+<rect rx="6" ry="6" x="236" y="107" width="32" height="32" class="combo"/>
+<text x="252" y="123" class="combo tap">_</text>
+</g>
+<g class="combo combopos-10">
+<rect rx="6" ry="6" x="124" y="110" width="32" height="32" class="combo"/>
+<text x="140" y="126" class="combo tap">=</text>
+</g>
+<g class="combo combopos-11">
+<rect rx="6" ry="6" x="628" y="40" width="32" height="32" class="combo"/>
+<text x="644" y="56" class="combo tap">(</text>
+</g>
+<g class="combo combopos-12">
+<rect rx="6" ry="6" x="628" y="96" width="32" height="32" class="combo"/>
+<text x="644" y="112" class="combo tap">)</text>
+</g>
+<g class="combo combopos-13">
+<rect rx="6" ry="6" x="572" y="51" width="32" height="32" class="combo"/>
+<text x="588" y="67" class="combo tap">{</text>
+</g>
+<g class="combo combopos-14">
+<rect rx="6" ry="6" x="572" y="107" width="32" height="32" class="combo"/>
+<text x="588" y="123" class="combo tap">}</text>
+</g>
+<g class="combo combopos-15">
+<rect rx="6" ry="6" x="684" y="54" width="32" height="32" class="combo"/>
+<text x="700" y="70" class="combo tap">[</text>
+</g>
+<g class="combo combopos-16">
+<rect rx="6" ry="6" x="684" y="110" width="32" height="32" class="combo"/>
+<text x="700" y="126" class="combo tap">]</text>
+</g>
+<g class="combo combopos-17">
+<rect rx="6" ry="6" x="656" y="19" width="32" height="32" class="combo"/>
+<text x="672" y="35" class="combo tap">&gt;</text>
+</g>
+<g class="combo combopos-18">
+<rect rx="6" ry="6" x="600" y="18" width="32" height="32" class="combo"/>
+<text x="616" y="34" class="combo tap">&lt;</text>
+</g>
+<g class="combo combopos-19">
+<rect rx="6" ry="6" x="516" y="62" width="32" height="32" class="combo"/>
+<text x="532" y="78" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-20">
+<rect rx="6" ry="6" x="292" y="62" width="32" height="32" class="combo"/>
+<text x="308" y="78" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-21">
+<rect rx="6" ry="6" x="292" y="118" width="32" height="32" class="combo"/>
+<text x="308" y="134" class="combo tap">%</text>
+</g>
+<g class="combo combopos-22">
+<rect rx="6" ry="6" x="516" y="118" width="32" height="32" class="combo"/>
+<text x="532" y="134" class="combo tap"><tspan style="font-size: 60%">&amp;standalo…</tspan></text>
+</g>
+<g class="combo combopos-23">
+<rect rx="6" ry="6" x="740" y="68" width="32" height="32" class="combo"/>
+<text x="756" y="84" class="combo tap">*</text>
+</g>
+<g class="combo combopos-24">
+<rect rx="6" ry="6" x="740" y="124" width="32" height="32" class="combo"/>
+<text x="756" y="140" class="combo tap">+</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 1110)" class="layer-Acc">
+<text x="0" y="28" class="label" id="Acc">Acc</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Æ</text>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Í</text>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ì</text>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Î</text>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ï</text>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ö</text>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ô</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ò</text>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ó</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&quot;</text>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">`</text>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Œ</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">É</text>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">È</text>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ê</text>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ë</text>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ä</text>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Â</text>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">À</text>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Á</text>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ñ</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&#x27;</text>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ü</text>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Û</text>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ù</text>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">Ú</text>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&lt;</text>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">^</text>
+</g>
+<g transform="translate(140, 210)" class="key trans keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(196, 196)" class="key trans keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(266, 252)" class="key trans keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key trans keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key trans keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key trans keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key trans keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(812, 224)" class="key trans keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 1480)" class="layer-Sym">
+<text x="0" y="28" class="label" id="Sym">Sym</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">\</text>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">`</text>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&lt;</text>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&gt;</text>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">-</text>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">|</text>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">^</text>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">{</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">}</text>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">$</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">^</text>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">!</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">*</text>
+<text x="0" y="23" class="key hold">ALT</text>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">/</text>
+<text x="0" y="23" class="key hold">SHIFT</text>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">=</text>
+<text x="0" y="23" class="key hold">CTRL</text>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&amp;</text>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">#</text>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">(</text>
+<text x="0" y="23" class="key hold">RCTRL</text>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">)</text>
+<text x="0" y="23" class="key hold">RSHFT</text>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">;</text>
+<text x="0" y="23" class="key hold">RALT</text>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&quot;</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">~</text>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">+</text>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">[</text>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">]</text>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">%</text>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">@</text>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">:</text>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">,</text>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">.</text>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">&#x27;</text>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 210)" class="key trans keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(196, 196)" class="key trans keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(266, 252)" class="key trans keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key trans keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key trans keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key held keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key held"/>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key trans keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(812, 224)" class="key trans keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 1850)" class="layer-Nav">
+<text x="0" y="28" class="label" id="Nav">Nav</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#output-toggle" xlink:href="#output-toggle" x="-5" y="-7" height="14" width="10.840887174541948" class="key tap glyph output-toggle"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#bt-clear" xlink:href="#bt-clear" x="-7" y="-7" height="14" width="14.0" class="key tap glyph bt-clear"/>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:camera" xlink:href="#tabler:camera" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:camera"/>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">HOME</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:arrow-big-up" xlink:href="#tabler:arrow-big-up" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:arrow-big-up"/>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">END</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">
+<tspan x="0" dy="-0.6em">PAGE</tspan><tspan x="0" dy="1.2em">UP</tspan>
+</text>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">GUI</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:player-track-prev" xlink:href="#tabler:player-track-prev" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:player-track-prev"/>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#play-pause" xlink:href="#play-pause" x="-6" y="-7" height="14" width="12.923076923076923" class="key tap glyph play-pause"/>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:player-track-next" xlink:href="#tabler:player-track-next" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:player-track-next"/>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:arrow-big-left" xlink:href="#tabler:arrow-big-left" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:arrow-big-left"/>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:arrow-big-down" xlink:href="#tabler:arrow-big-down" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:arrow-big-down"/>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#tabler:arrow-big-right" xlink:href="#tabler:arrow-big-right" x="-7" y="-7" height="14" width="14.0" class="key tap glyph tabler:arrow-big-right"/>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">
+<tspan x="0" dy="-0.6em">PAGE</tspan><tspan x="0" dy="1.2em">DOWN</tspan>
+</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#bt-prev" xlink:href="#bt-prev" x="-7" y="-7" height="14" width="14.0" class="key tap glyph bt-prev"/>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#bt-next" xlink:href="#bt-next" x="-7" y="-7" height="14" width="14.0" class="key tap glyph bt-next"/>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 210)" class="key trans keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(196, 196)" class="key trans keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(266, 252)" class="key trans keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key trans keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key held keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key held"/>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key trans keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key trans keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(812, 224)" class="key trans keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 2220)" class="layer-Num">
+<text x="0" y="28" class="label" id="Num">Num</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F1</text>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F2</text>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F3</text>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F4</text>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F5</text>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">¼</text>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">7</text>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">8</text>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">9</text>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">*</text>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">/</text>
+</g>
+<g transform="translate(28, 112)" class="key held keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key held"/>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F6</text>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F7</text>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F8</text>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F9</text>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F10</text>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">½</text>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">4</text>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">5</text>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">6</text>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">-</text>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">+</text>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F11</text>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F12</text>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F13</text>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F14</text>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">F15</text>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">¾</text>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">1</text>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">2</text>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">3</text>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">.</text>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">,</text>
+</g>
+<g transform="translate(140, 210)" class="key trans keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(196, 196)" class="key trans keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(266, 252)" class="key trans keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key trans keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key trans keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key trans keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key trans keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key trans"/>
+<text x="0" y="0" class="key trans tap">▽</text>
+</g>
+<g transform="translate(812, 224)" class="key keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<text x="0" y="0" class="key tap">0</text>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+</g>
+</g>
+<g transform="translate(30, 2589)" class="layer-Mouse">
+<text x="0" y="28" class="label" id="Mouse">Mouse</text>
+<g transform="translate(0, 56)">
+<g transform="translate(28, 56)" class="key keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 56)" class="key keypos-1">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 42)" class="key keypos-2">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(196, 28)" class="key keypos-3">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#scroll-up" xlink:href="#scroll-up" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-up"/>
+</g>
+<g transform="translate(252, 39)" class="key keypos-4">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(308, 50)" class="key keypos-5">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(532, 50)" class="key keypos-6">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(588, 39)" class="key keypos-7">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(644, 28)" class="key keypos-8">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(700, 42)" class="key keypos-9">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(756, 56)" class="key keypos-10">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(812, 56)" class="key keypos-11">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(28, 112)" class="key keypos-12">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 112)" class="key keypos-13">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 98)" class="key keypos-14">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#scroll-left" xlink:href="#scroll-left" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-left"/>
+</g>
+<g transform="translate(196, 84)" class="key keypos-15">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#scroll-down" xlink:href="#scroll-down" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-down"/>
+</g>
+<g transform="translate(252, 95)" class="key keypos-16">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#scroll-right" xlink:href="#scroll-right" x="-7" y="-7" height="14" width="13.998173515981735" class="key tap glyph scroll-right"/>
+</g>
+<g transform="translate(308, 106)" class="key keypos-17">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(532, 106)" class="key keypos-18">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(588, 95)" class="key keypos-19">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:left_click" xlink:href="#material:left_click" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:left_click"/>
+</g>
+<g transform="translate(644, 84)" class="key keypos-20">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:right_click" xlink:href="#material:right_click" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:right_click"/>
+</g>
+<g transform="translate(700, 98)" class="key keypos-21">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#click-middle" xlink:href="#click-middle" x="-7" y="-7" height="14" width="14.0" class="key tap glyph click-middle"/>
+</g>
+<g transform="translate(756, 112)" class="key keypos-22">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(812, 112)" class="key keypos-23">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(28, 168)" class="key keypos-24">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(84, 168)" class="key keypos-25">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 154)" class="key keypos-26">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(196, 140)" class="key keypos-27">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(252, 151)" class="key keypos-28">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(308, 162)" class="key keypos-29">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(532, 162)" class="key keypos-30">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(588, 151)" class="key keypos-31">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(644, 140)" class="key keypos-32">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(700, 154)" class="key keypos-33">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(756, 168)" class="key keypos-34">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(812, 168)" class="key keypos-35">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(140, 210)" class="key keypos-36">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(196, 196)" class="key keypos-37">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+</g>
+<g transform="translate(266, 252)" class="key held keypos-38">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key held"/>
+</g>
+<g transform="translate(324, 256) rotate(10.0)" class="key keypos-39">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:left_click" xlink:href="#material:left_click" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:left_click"/>
+</g>
+<g transform="translate(382, 273) rotate(25.0)" class="key keypos-40">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:right_click" xlink:href="#material:right_click" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:right_click"/>
+</g>
+<g transform="translate(500, 277) rotate(-25.0)" class="key keypos-41">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:left_click" xlink:href="#material:left_click" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:left_click"/>
+</g>
+<g transform="translate(557, 254) rotate(-10.0)" class="key keypos-42">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#material:right_click" xlink:href="#material:right_click" x="-7" y="-7" height="14" width="14.0" class="key tap glyph material:right_click"/>
+</g>
+<g transform="translate(812, 224)" class="key keypos-43">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key"/>
+<use href="#click-middle" xlink:href="#click-middle" x="-7" y="-7" height="14" width="14.0" class="key tap glyph click-middle"/>
+</g>
+<g class="combo combopos-0">
+<rect rx="6" ry="6" x="712" y="89" width="32" height="32" class="combo"/>
+<text x="728" y="105" class="combo tap">ESC</text>
+</g>
+</g>
+</g>
+<text x="30" y="2987" class="label" id="Combos">Combos</text>
+<g transform="translate(30, 2959)" class="layer-combopos-0">
+<g transform="translate(0, 56)">
+<g transform="translate(28, 28)" class="key  combo-separate keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key  combo-separate"/>
+<a href="#Bpo">
+<text x="0" y="0" class="key  combo-separate tap layer-activator">Bépo</text>
+</a><text x="0" y="23" class="key  combo-separate hold">toggle</text>
+</g>
+<g transform="translate(14, 87)" class="key keypos-1">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 87)" class="key keypos-2">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 80)" class="key keypos-3">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 73)" class="key keypos-4">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 79)" class="key keypos-5">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 84)" class="key keypos-6">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 84)" class="key keypos-7">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 79)" class="key keypos-8">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 73)" class="key keypos-9">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 80)" class="key keypos-10">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 87)" class="key keypos-11">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 87)" class="key keypos-12">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 115)" class="key keypos-13">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 115)" class="key keypos-14">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 108)" class="key keypos-15">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 101)" class="key keypos-16">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 107)" class="key keypos-17">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 112)" class="key keypos-18">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 112)" class="key keypos-19">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 107)" class="key keypos-20">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 101)" class="key keypos-21">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 108)" class="key keypos-22">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 115)" class="key keypos-23">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 115)" class="key keypos-24">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 143)" class="key keypos-25">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 143)" class="key keypos-26">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 136)" class="key keypos-27">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 129)" class="key keypos-28">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 135)" class="key keypos-29">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 140)" class="key keypos-30">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 140)" class="key keypos-31">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 135)" class="key keypos-32">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 129)" class="key keypos-33">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 136)" class="key keypos-34">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 143)" class="key keypos-35">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 143)" class="key keypos-36">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 164)" class="key keypos-37">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 157)" class="key keypos-38">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(133, 185)" class="key keypos-39">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(162, 187) rotate(10.0)" class="key keypos-40">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(191, 196) rotate(25.0)" class="key held keypos-41">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(250, 197) rotate(-25.0)" class="key held keypos-42">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(278, 186) rotate(-10.0)" class="key keypos-43">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 171)" class="key keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+</g>
+</g>
+<g transform="translate(480, 2959)" class="layer-combopos-1">
+<g transform="translate(0, 56)">
+<g transform="translate(28, 28)" class="key  combo-separate keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key  combo-separate"/>
+<a href="#ErgoL">
+<text x="0" y="0" class="key  combo-separate tap layer-activator">ErgoL</text>
+</a><text x="0" y="23" class="key  combo-separate hold">toggle</text>
+</g>
+<g transform="translate(14, 87)" class="key keypos-1">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 87)" class="key held keypos-2">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(70, 80)" class="key keypos-3">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 73)" class="key keypos-4">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 79)" class="key keypos-5">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 84)" class="key keypos-6">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 84)" class="key keypos-7">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 79)" class="key keypos-8">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 73)" class="key keypos-9">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 80)" class="key keypos-10">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 87)" class="key held keypos-11">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(406, 87)" class="key keypos-12">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 115)" class="key keypos-13">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 115)" class="key keypos-14">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 108)" class="key keypos-15">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 101)" class="key keypos-16">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 107)" class="key keypos-17">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 112)" class="key keypos-18">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 112)" class="key keypos-19">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 107)" class="key keypos-20">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 101)" class="key keypos-21">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 108)" class="key keypos-22">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 115)" class="key keypos-23">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 115)" class="key keypos-24">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 143)" class="key keypos-25">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 143)" class="key keypos-26">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 136)" class="key keypos-27">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 129)" class="key keypos-28">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 135)" class="key keypos-29">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 140)" class="key keypos-30">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 140)" class="key keypos-31">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 135)" class="key keypos-32">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 129)" class="key keypos-33">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 136)" class="key keypos-34">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 143)" class="key keypos-35">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 143)" class="key keypos-36">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 164)" class="key keypos-37">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 157)" class="key keypos-38">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(133, 185)" class="key keypos-39">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(162, 187) rotate(10.0)" class="key keypos-40">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(191, 196) rotate(25.0)" class="key keypos-41">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(250, 197) rotate(-25.0)" class="key keypos-42">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(278, 186) rotate(-10.0)" class="key keypos-43">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 171)" class="key keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+</g>
+</g>
+<g transform="translate(30, 3231)" class="layer-combopos-2">
+<g transform="translate(0, 28)">
+<g transform="translate(28, 28)" class="key  combo-separate keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key  combo-separate"/>
+<a href="#QWRT">
+<text x="0" y="0" class="key  combo-separate tap layer-activator">QWRT</text>
+</a><text x="0" y="23" class="key  combo-separate hold">toggle</text>
+</g>
+<g transform="translate(14, 87)" class="key keypos-1">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 87)" class="key keypos-2">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 80)" class="key keypos-3">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 73)" class="key keypos-4">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 79)" class="key keypos-5">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 84)" class="key keypos-6">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 84)" class="key keypos-7">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 79)" class="key keypos-8">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 73)" class="key keypos-9">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 80)" class="key keypos-10">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 87)" class="key keypos-11">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 87)" class="key keypos-12">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 115)" class="key keypos-13">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 115)" class="key keypos-14">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 108)" class="key keypos-15">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 101)" class="key keypos-16">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 107)" class="key keypos-17">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 112)" class="key keypos-18">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 112)" class="key keypos-19">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 107)" class="key keypos-20">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 101)" class="key keypos-21">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 108)" class="key keypos-22">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 115)" class="key keypos-23">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 115)" class="key keypos-24">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 143)" class="key keypos-25">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 143)" class="key keypos-26">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 136)" class="key keypos-27">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 129)" class="key keypos-28">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 135)" class="key keypos-29">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 140)" class="key keypos-30">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 140)" class="key keypos-31">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 135)" class="key keypos-32">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 129)" class="key keypos-33">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 136)" class="key keypos-34">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 143)" class="key keypos-35">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 143)" class="key keypos-36">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 164)" class="key keypos-37">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 157)" class="key keypos-38">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(133, 185)" class="key keypos-39">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(162, 187) rotate(10.0)" class="key held keypos-40">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(191, 196) rotate(25.0)" class="key keypos-41">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(250, 197) rotate(-25.0)" class="key keypos-42">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(278, 186) rotate(-10.0)" class="key held keypos-43">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(406, 171)" class="key keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+</g>
+</g>
+<g transform="translate(480, 3231)" class="layer-combopos-3">
+<g transform="translate(0, 28)">
+<g transform="translate(28, 28)" class="key  combo-separate keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key  combo-separate"/>
+<a href="#Mouse">
+<text x="0" y="0" class="key  combo-separate tap layer-activator">Mouse</text>
+</a><text x="0" y="23" class="key  combo-separate hold">toggle</text>
+</g>
+<g transform="translate(14, 87)" class="key keypos-1">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 87)" class="key held keypos-2">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(70, 80)" class="key keypos-3">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 73)" class="key keypos-4">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 79)" class="key held keypos-5">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(154, 84)" class="key keypos-6">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 84)" class="key keypos-7">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 79)" class="key keypos-8">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 73)" class="key keypos-9">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 80)" class="key keypos-10">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 87)" class="key keypos-11">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 87)" class="key keypos-12">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 115)" class="key keypos-13">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 115)" class="key keypos-14">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 108)" class="key keypos-15">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 101)" class="key keypos-16">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 107)" class="key keypos-17">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 112)" class="key keypos-18">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 112)" class="key keypos-19">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 107)" class="key keypos-20">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 101)" class="key keypos-21">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 108)" class="key keypos-22">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 115)" class="key keypos-23">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 115)" class="key keypos-24">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 143)" class="key keypos-25">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 143)" class="key keypos-26">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 136)" class="key keypos-27">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 129)" class="key keypos-28">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 135)" class="key keypos-29">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 140)" class="key keypos-30">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 140)" class="key keypos-31">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 135)" class="key keypos-32">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 129)" class="key keypos-33">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 136)" class="key keypos-34">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 143)" class="key keypos-35">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 143)" class="key keypos-36">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 164)" class="key keypos-37">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 157)" class="key keypos-38">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(133, 185)" class="key keypos-39">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(162, 187) rotate(10.0)" class="key keypos-40">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(191, 196) rotate(25.0)" class="key keypos-41">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(250, 197) rotate(-25.0)" class="key keypos-42">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(278, 186) rotate(-10.0)" class="key keypos-43">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 171)" class="key keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+</g>
+</g>
+<g transform="translate(30, 3475)" class="layer-combopos-4">
+<g transform="translate(0, 28)">
+<g transform="translate(28, 28)" class="key  combo-separate keypos-0">
+<rect rx="6" ry="6" x="-25" y="-25" width="50" height="50" class="key  combo-separate"/>
+<text x="0" y="0" class="key  combo-separate tap">
+<tspan x="0" dy="-0.6em">CAPS</tspan><tspan x="0" dy="1.2em">WORD</tspan>
+</text>
+</g>
+<g transform="translate(14, 87)" class="key keypos-1">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 87)" class="key keypos-2">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 80)" class="key keypos-3">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 73)" class="key keypos-4">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 79)" class="key keypos-5">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 84)" class="key keypos-6">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 84)" class="key keypos-7">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 79)" class="key keypos-8">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 73)" class="key keypos-9">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 80)" class="key keypos-10">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 87)" class="key keypos-11">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 87)" class="key keypos-12">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 115)" class="key keypos-13">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 115)" class="key keypos-14">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 108)" class="key keypos-15">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 101)" class="key keypos-16">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 107)" class="key keypos-17">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 112)" class="key keypos-18">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 112)" class="key keypos-19">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 107)" class="key keypos-20">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 101)" class="key keypos-21">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 108)" class="key keypos-22">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 115)" class="key keypos-23">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 115)" class="key keypos-24">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(14, 143)" class="key keypos-25">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(42, 143)" class="key held keypos-26">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(70, 136)" class="key keypos-27">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 129)" class="key keypos-28">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(126, 135)" class="key keypos-29">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(154, 140)" class="key keypos-30">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(266, 140)" class="key keypos-31">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(294, 135)" class="key keypos-32">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(322, 129)" class="key keypos-33">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(350, 136)" class="key keypos-34">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(378, 143)" class="key held keypos-35">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key held"/>
+</g>
+<g transform="translate(406, 143)" class="key keypos-36">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(70, 164)" class="key keypos-37">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(98, 157)" class="key keypos-38">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(133, 185)" class="key keypos-39">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(162, 187) rotate(10.0)" class="key keypos-40">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(191, 196) rotate(25.0)" class="key keypos-41">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(250, 197) rotate(-25.0)" class="key keypos-42">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(278, 186) rotate(-10.0)" class="key keypos-43">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+<g transform="translate(406, 171)" class="key keypos-44">
+<rect rx="6" ry="6" x="-11" y="-11" width="22" height="22" class="key"/>
+</g>
+</g>
+</g>
+</svg>
keyboards/Makefile
@@ -1,6 +1,7 @@
 .PHONY: help moonlander/build moonlander/flash moonlander/clean moonlander/update
 .PHONY: eyelash_corne/build eyelash_corne/flash
-.PHONY: draw moonlander/draw eyelash_corne/draw
+.PHONY: keyball44/build keyball44/flash
+.PHONY: draw moonlander/draw eyelash_corne/draw keyball44/draw
 .PHONY: all clean
 
 # Default target
@@ -14,13 +15,18 @@ help:
 	@echo "  moonlander/clean     - Clean Moonlander build artifacts"
 	@echo ""
 	@echo "Eyelash Corne (ZMK):"
-	@echo "  eyelash_corne/build  - Build Eyelash Corne firmware (aliases: corne/build)"
-	@echo "  eyelash_corne/flash  - Build and flash Eyelash Corne firmware (aliases: corne/flash)"
+	@echo "  eyelash_corne/build  - Build Eyelash Corne firmware"
+	@echo "  eyelash_corne/flash  - Build and flash Eyelash Corne firmware"
+	@echo ""
+	@echo "Keyball44 (ZMK):"
+	@echo "  keyball44/build      - Build Keyball44 firmware"
+	@echo "  keyball44/flash      - Build and flash Keyball44 firmware"
 	@echo ""
 	@echo "Keymap Drawing:"
 	@echo "  draw                 - Generate keymap SVGs for all keyboards"
 	@echo "  moonlander/draw      - Generate keymap SVG for Moonlander"
 	@echo "  eyelash_corne/draw   - Generate keymap SVG for Eyelash Corne"
+	@echo "  keyball44/draw       - Generate keymap SVG for Keyball44"
 	@echo ""
 	@echo "Other:"
 	@echo "  all                  - Build all keyboards"
@@ -46,6 +52,13 @@ eyelash_corne/build:
 eyelash_corne/flash:
 	cd eyelash_corne && ./go.sh flash
 
+# Keyball44 targets
+keyball44/build:
+	cd keyball44 && ./go.sh build
+
+keyball44/flash:
+	cd keyball44 && ./go.sh flash
+
 # Keymap drawing targets
 draw:
 	./generate-keymaps.sh all
@@ -56,8 +69,12 @@ moonlander/draw:
 eyelash_corne/draw:
 	./generate-keymaps.sh eyelash_corne
 
+keyball44/draw:
+	./generate-keymaps.sh keyball44
+
 # Composite targets
-all: moonlander/build eyelash_corne/build
+all: moonlander/build eyelash_corne/build keyball44/build
 
 clean: moonlander/clean
 	rm -rf eyelash_corne/firmwares
+	rm -rf keyball44/firmwares