Compare commits

...
Sign in to create a new pull request.

10 commits

Author SHA1 Message Date
842d2dfac2 Disable ZMK Studio + steno for flash measurement 2026-06-24 15:11:03 +08:00
937ffb437b Use Plover dict only, disable Lapwing 2026-06-24 01:22:36 +08:00
54aabd02f6 Use Lapwing dict only, disable Plover 2026-06-24 01:16:09 +08:00
9050f06ff4 Retrigger build after javelin dict embed fix 2026-06-24 00:32:13 +08:00
885d4bde62 Point javelin module at debug/dict-inspect branch 2026-06-24 00:19:51 +08:00
00a4b60a2e Move USB logging to left-half-only cmake-args
Shared corne.conf breaks right half (no USB device).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-23 23:27:29 +08:00
463a377986 Add zmk-usb-logging snippet for USB serial console
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-23 22:06:00 +08:00
1571a711aa Enable USB logging for steno debug
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-23 17:47:12 +08:00
b894e53a36 Integrate zmk-javelin-steno module
- west.yml: add zmk-javelin-steno module + javelin-steno source
- corne.conf: enable steno engine with Plover + Lapwing dicts
- corne.keymap: replace steno layer with &javsteno behavior bindings
2026-06-23 01:05:27 +08:00
7041dbccd5 Add RGB, media, and output controls to HUB layer and thumbs
- HUB layer: RGB hue/sat/brightness, volume, screen brightness, OUT_TOG
- Tap-dance td_rgb on thumb: 1×=toggle, 2×=effect fwd, 3×=effect rev
- Tap-dance td_colors on HUB pos 34: 5 color presets (purple/white/red/blue/green)
- Hold-tap mute/play-pause on right outer thumb (CARP/QWRT/STEN/HUB)
- Update README with new layer diagrams and legends

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-22 15:35:27 +08:00
7 changed files with 352 additions and 127 deletions

View file

@ -65,7 +65,7 @@ Key positions reference:
` Q G M L W | Y F U B ; ->HUB ` Q G M L W | Y F U B ; ->HUB
[HUB] D S T N R | I A E O H ' [HUB] D S T N R | I A E O H '
LSHFT Z X C V J | K P , . / RSHFT LSHFT Z X C V J | K P , . / RSHFT
_ CTRL GUI | SPC ALT _ [RGB] CTRL GUI | SPC ALT MUTE/PP
Combos (layers 0+1): Combos (layers 0+1):
top+home row same col = 1-0, shift+combo = ! @ # $ % ^ & * ( ) top+home row same col = 1-0, shift+combo = ! @ # $ % ^ & * ( )
@ -74,6 +74,8 @@ Combos (layers 0+1):
U+B (I+O on QWRT) = BSPC U+B (I+O on QWRT) = BSPC
E+O (K+L on QWRT) = ENTER E+O (K+L on QWRT) = ENTER
[HUB] = hold opens HUB layer, release goes back [HUB] = hold opens HUB layer, release goes back
[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev
MUTE/PP = tap mute, hold play/pause
``` ```
### Layer 1: QWRT (QWERTY) ### Layer 1: QWRT (QWERTY)
@ -81,10 +83,12 @@ Combos (layers 0+1):
` Q W E R T | Y U I O P ->HUB ` Q W E R T | Y U I O P ->HUB
[HUB] A S D F G | H J K L ; ' [HUB] A S D F G | H J K L ; '
LSHFT Z X C V B | N M , . / RSHFT LSHFT Z X C V B | N M , . / RSHFT
_ CTRL GUI | SPC ALT _ [RGB] CTRL GUI | SPC ALT MUTE/PP
Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = ENTER) Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = ENTER)
[HUB] = hold opens HUB layer, release goes back [HUB] = hold opens HUB layer, release goes back
[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev
MUTE/PP = tap mute, hold play/pause
``` ```
### Layer 2: STEN (Plover keyboard mode) ### Layer 2: STEN (Plover keyboard mode)
@ -92,7 +96,7 @@ Combos: same as CARP (top+home = 1-0, W+E = ESC, S+D = TAB, I+O = BSPC, K+L = EN
_ # # # # # | # # # # # ->HUB _ # # # # # | # # # # # ->HUB
[HUB] S T P H * | * F P L T D [HUB] S T P H * | * F P L T D
_ S K W R * | * R B G S Z _ S K W R * | * R B G S Z
_ A O | E U _ [RGB] A O | E U MUTE/PP
``` ```
### Layer 3: FPS (WASD shifted right for ortho) ### Layer 3: FPS (WASD shifted right for ortho)
@ -105,13 +109,20 @@ M/ALT Z X C V G | _ _ _ _ _ _
Hold-taps: 1=tap/ESC=hold, E=tap/3=hold, R=tap/4=hold, M=tap/ALT=hold Hold-taps: 1=tap/ESC=hold, E=tap/3=hold, R=tap/4=hold, M=tap/ALT=hold
``` ```
### Layer 4: HUB ### Layer 4: HUB (Utility — BT, RGB, Media, Nav)
``` ```
BT_CLR BT0 BT1 BT2 BT3 BT4 | + [ UP ] * = BT_CLR BT0 BT1 BT2 BT3 BT4 | + [ UP ] * =
_ _ _ _ _ _ | - LEFT DOWN RIGHT / \ OUT_TOG HUE+ SAT+ BRT+ SCRN+ VOL+ | - LEFT DOWN RIGHT / \
LSHFT Z X C V _ | ->CARP ->QWRT ->STEN ->FPS _ RSHFT LSHFT HUE- SAT- BRT- SCRN- VOL- | ->CARP ->QWRT ->STEN ->FPS [CLR] RSHFT
ESC CTRL GUI | SPC ALT _ [RGB] CTRL GUI | SPC ALT MUTE/PP
OUT_TOG = toggle USB/BLE output
HUE/SAT/BRT = RGB underglow hue, saturation, brightness
SCRN = display brightness (C_BRI_UP/DN)
VOL = volume up/down
[RGB] = tap-dance: 1×=toggle, 2×=effect fwd, 3×=effect rev
[CLR] = tap-dance color presets: 1×=purple, 2×=white, 3×=red, 4×=blue, 5×=green
MUTE/PP = tap mute, hold play/pause
``` ```
# Related Resources # Related Resources

View file

@ -58,7 +58,7 @@ include:
- board: nice_nano_v2 - board: nice_nano_v2
shield: corne_left nice_oled shield: corne_left nice_oled
artifact-name: nice_corne_left_oled_rgb artifact-name: nice_corne_left_oled_rgb
snippet: rgb-config studio-rpc-usb-uart snippet: rgb-config
# nice_nano_v2 + nice_oled + RGB (RIGHT) # nice_nano_v2 + nice_oled + RGB (RIGHT)
- board: nice_nano_v2 - board: nice_nano_v2
shield: corne_right nice_oled shield: corne_right nice_oled

View file

@ -68,8 +68,8 @@ CONFIG_ZMK_EXT_POWER=y
### ZMK STUDIO ### ZMK STUDIO
# MC: 2. zmk-studio test START # MC: 2. zmk-studio test START
# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md # https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md
CONFIG_ZMK_STUDIO=y CONFIG_ZMK_STUDIO=n
CONFIG_ZMK_STUDIO_LOCKING=n # CONFIG_ZMK_STUDIO_LOCKING=n
# MC: zmk-studio test END # MC: zmk-studio test END
### RGB UNDERGLOW ### RGB UNDERGLOW
@ -126,6 +126,12 @@ CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5
# ref: https://zmk.dev/docs/config/system#hid # ref: https://zmk.dev/docs/config/system#hid
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
### STENO ENGINE (disabled for flash measurement)
# CONFIG_ZMK_JAVELIN_STENO=y
# CONFIG_CPLUSPLUS=y
# CONFIG_LIB_CPLUSPLUS=y
# CONFIG_HEAP_MEM_POOL_SIZE=32768
### DEBUG OPTIONS ### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y # CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 # CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

View file

@ -13,12 +13,39 @@
#include <dt-bindings/zmk/backlight.h> #include <dt-bindings/zmk/backlight.h>
#include <dt-bindings/zmk/rgb.h> #include <dt-bindings/zmk/rgb.h>
#include <dt-bindings/zmk/reset.h> #include <dt-bindings/zmk/reset.h>
#include <dt-bindings/zmk/javelin_steno.h>
#include <behaviors/javelin_steno.dtsi>
&led_strip { &led_strip {
chain-length = <27>; chain-length = <27>;
}; };
/ { / {
behaviors {
ht_mute_pp: ht_mute_pp {
compatible = "zmk,behavior-hold-tap";
#binding-cells = <2>;
tapping-term-ms = <200>;
bindings = <&kp>, <&kp>;
};
td_rgb: td_rgb {
compatible = "zmk,behavior-tap-dance";
#binding-cells = <0>;
tapping-term-ms = <300>;
bindings = <&rgb_ug RGB_TOG>, <&rgb_ug RGB_EFF>, <&rgb_ug RGB_EFR>;
};
td_colors: td_colors {
compatible = "zmk,behavior-tap-dance";
#binding-cells = <0>;
tapping-term-ms = <400>;
bindings = <&rgb_ug RGB_COLOR_HSB(270,89,90)>,
<&rgb_ug RGB_COLOR_HSB(0,0,100)>,
<&rgb_ug RGB_COLOR_HSB(0,100,100)>,
<&rgb_ug RGB_COLOR_HSB(240,100,100)>,
<&rgb_ug RGB_COLOR_HSB(120,100,100)>;
};
};
combos { combos {
compatible = "zmk,combos"; compatible = "zmk,combos";
// Top + home row combos = numbers (like ecosteno) // Top + home row combos = numbers (like ecosteno)
@ -51,7 +78,7 @@
&kp GRAVE &kp Q &kp G &kp M &kp L &kp W &kp Y &kp F &kp U &kp B &kp SEMI &to 4 &kp GRAVE &kp Q &kp G &kp M &kp L &kp W &kp Y &kp F &kp U &kp B &kp SEMI &to 4
&mo 4 &kp D &kp S &kp T &kp N &kp R &kp I &kp A &kp E &kp O &kp H &kp SQT &mo 4 &kp D &kp S &kp T &kp N &kp R &kp I &kp A &kp E &kp O &kp H &kp SQT
&kp LSHFT &kp Z &kp X &kp C &kp V &kp J &kp K &kp P &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp LSHFT &kp Z &kp X &kp C &kp V &kp J &kp K &kp P &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&none &kp LCTRL &kp LGUI &kp SPACE &kp RALT &none &td_rgb &kp LCTRL &kp LGUI &kp SPACE &kp RALT &ht_mute_pp C_PLAY_PAUSE C_MUTE
>; >;
}; };
@ -61,17 +88,17 @@
&kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &to 4 &kp GRAVE &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &to 4
&mo 4 &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &mo 4 &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&none &kp LCTRL &kp LGUI &kp SPACE &kp RALT &none &td_rgb &kp LCTRL &kp LGUI &kp SPACE &kp RALT &ht_mute_pp C_PLAY_PAUSE C_MUTE
>; >;
}; };
steno_layer { steno_layer {
display-name = "STEN"; display-name = "STEN";
bindings = < bindings = <
&none &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &to 4 &none &javsteno STENO_NUM1 &javsteno STENO_NUM2 &javsteno STENO_NUM3 &javsteno STENO_NUM4 &javsteno STENO_NUM5 &javsteno STENO_NUM6 &javsteno STENO_NUM7 &javsteno STENO_NUM8 &javsteno STENO_NUM9 &javsteno STENO_NUM10 &to 4
&mo 4 &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &mo 4 &javsteno STENO_S1 &javsteno STENO_TL &javsteno STENO_PL &javsteno STENO_HL &javsteno STENO_STAR1 &javsteno STENO_STAR3 &javsteno STENO_FR &javsteno STENO_PR &javsteno STENO_LR &javsteno STENO_TR &javsteno STENO_DR
&none &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &none &javsteno STENO_S2 &javsteno STENO_KL &javsteno STENO_WL &javsteno STENO_RL &javsteno STENO_STAR2 &javsteno STENO_STAR4 &javsteno STENO_RR &javsteno STENO_BR &javsteno STENO_GR &javsteno STENO_SR &javsteno STENO_ZR
&none &kp C &kp V &kp N &kp M &none &none &javsteno STENO_A &javsteno STENO_O &javsteno STENO_E &javsteno STENO_U &none
>; >;
}; };
@ -89,9 +116,9 @@
display-name = "HUB"; display-name = "HUB";
bindings = < bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp PLUS &kp LBKT &kp UP &kp RBKT &kp ASTRK &kp EQUAL &bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &kp PLUS &kp LBKT &kp UP &kp RBKT &kp ASTRK &kp EQUAL
&none &none &none &none &none &none &kp MINUS &kp LEFT &kp DOWN &kp RIGHT &kp FSLH &kp BSLH &out OUT_TOG &rgb_ug RGB_HUI &rgb_ug RGB_SAI &rgb_ug RGB_BRI &kp C_BRI_UP &kp C_VOL_UP &kp MINUS &kp LEFT &kp DOWN &kp RIGHT &kp FSLH &kp BSLH
&kp LSHFT &kp Z &kp X &kp C &kp V &none &to 0 &to 1 &to 2 &to 3 &none &kp RSHFT &kp LSHFT &rgb_ug RGB_HUD &rgb_ug RGB_SAD &rgb_ug RGB_BRD &kp C_BRI_DN &kp C_VOL_DN &to 0 &to 1 &to 2 &to 3 &td_colors &kp RSHFT
&kp ESC &kp LCTRL &kp LGUI &kp SPACE &kp RALT &none &td_rgb &kp LCTRL &kp LGUI &kp SPACE &kp RALT &ht_mute_pp C_PLAY_PAUSE C_MUTE
>; >;
}; };

View file

@ -11,6 +11,12 @@ manifest:
# fork of zmk-nice-oled with custom KM medal animation # fork of zmk-nice-oled with custom KM medal animation
- name: KeebMaker - name: KeebMaker
url-base: https://github.com/KeebMaker url-base: https://github.com/KeebMaker
# javelin steno engine module
- name: afiqzudinhadi
url-base: https://github.com/afiqzudinhadi
# javelin steno engine source
- name: jthlim
url-base: https://github.com/jthlim
projects: projects:
# Pinned to v0.3.0 instead of `main`: ZMK main tracks Zephyr 4.1, whose # Pinned to v0.3.0 instead of `main`: ZMK main tracks Zephyr 4.1, whose
# board-model rewrite renamed `nice_nano_v2` (now `nice_nano//zmk`) and # board-model rewrite renamed `nice_nano_v2` (now `nice_nano//zmk`) and
@ -36,5 +42,14 @@ manifest:
- name: zmk-oled-adapter - name: zmk-oled-adapter
remote: mctechnology17 remote: mctechnology17
revision: main revision: main
# javelin steno engine module
- name: zmk-javelin-steno
remote: afiqzudinhadi
revision: main
# javelin steno engine source (fetched into module's javelin/ dir)
- name: javelin-steno
remote: jthlim
revision: main
path: zmk-javelin-steno/javelin
self: self:
path: config path: config

View file

@ -15,6 +15,68 @@
<svg id="mdi:backspace-outline"> <svg id="mdi:backspace-outline">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-backspace-outline" viewBox="0 0 24 24"><path d="M19,15.59L17.59,17L14,13.41L10.41,17L9,15.59L12.59,12L9,8.41L10.41,7L14,10.59L17.59,7L19,8.41L15.41,12L19,15.59M22,3A2,2 0 0,1 24,5V19A2,2 0 0,1 22,21H7C6.31,21 5.77,20.64 5.41,20.11L0,12L5.41,3.88C5.77,3.35 6.31,3 7,3H22M22,5H7L2.28,12L7,19H22V5Z" /></svg> <svg xmlns="http://www.w3.org/2000/svg" id="mdi-backspace-outline" viewBox="0 0 24 24"><path d="M19,15.59L17.59,17L14,13.41L10.41,17L9,15.59L12.59,12L9,8.41L10.41,7L14,10.59L17.59,7L19,8.41L15.41,12L19,15.59M22,3A2,2 0 0,1 24,5V19A2,2 0 0,1 22,21H7C6.31,21 5.77,20.64 5.41,20.11L0,12L5.41,3.88C5.77,3.35 6.31,3 7,3H22M22,5H7L2.28,12L7,19H22V5Z" /></svg>
</svg> </svg>
<svg id="mdi:eyedropper">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-eyedropper" viewBox="0 0 24 24"><path d="M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z" /></svg>
</svg>
<svg id="mdi:led-on">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-led-on" viewBox="0 0 24 24"><path d="M11,0V4H13V0H11M18.3,2.29L15.24,5.29L16.64,6.71L19.7,3.71L18.3,2.29M5.71,2.29L4.29,3.71L7.29,6.71L8.71,5.29L5.71,2.29M12,6A4,4 0 0,0 8,10V16H6V18H9V23H11V18H13V23H15V18H18V16H16V10A4,4 0 0,0 12,6M2,9V11H6V9H2M18,9V11H22V9H18Z" /></svg>
</svg>
<svg id="mdi:led-outline">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-led-outline" viewBox="0 0 24 24"><path d="M12,6A4,4 0 0,0 8,10V16H6V18H9V23H11V18H13V23H15V18H18V16H16V10A4,4 0 0,0 12,6M12,8A2,2 0 0,1 14,10V15H10V10A2,2 0 0,1 12,8Z" /></svg>
</svg>
<svg id="mdi:palette">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-palette" viewBox="0 0 24 24"><path d="M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z" /></svg>
</svg>
<svg id="tabler:brightness-down">
<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-brightness-down"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M12 5l0 .01" />
<path d="M17 7l0 .01" />
<path d="M19 12l0 .01" />
<path d="M17 17l0 .01" />
<path d="M12 19l0 .01" />
<path d="M7 17l0 .01" />
<path d="M5 12l0 .01" />
<path d="M7 7l0 .01" />
</svg>
</svg>
<svg id="tabler:brightness-up">
<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-brightness-up"
>
<path stroke="none" d="M0 0h24v24H0z" fill="none" />
<path d="M9 12a3 3 0 1 0 6 0a3 3 0 1 0 -6 0" />
<path d="M12 5l0 -2" />
<path d="M17 7l1.4 -1.4" />
<path d="M19 12l2 0" />
<path d="M17 17l1.4 1.4" />
<path d="M12 19l0 2" />
<path d="M7 17l-1.4 1.4" />
<path d="M6 12l-2 0" />
<path d="M7 7l-1.4 -1.4" />
</svg>
</svg>
</defs>/* end glyphs */ </defs>/* end glyphs */
<style>/* inherit to force styles through use tags */ <style>/* inherit to force styles through use tags */
svg path { svg path {
@ -384,6 +446,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(224, 205)" class="key keypos-36"> <g transform="translate(224, 205)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"><tspan style="font-size: 86%">&amp;td_rgb</tspan></text>
</g> </g>
<g transform="translate(286, 213) rotate(15.0)" class="key keypos-37"> <g transform="translate(286, 213) rotate(15.0)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -403,6 +466,8 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(616, 205)" class="key keypos-41"> <g transform="translate(616, 205)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">MUTE</text>
<text x="0" y="24" class="key hold"><tspan style="font-size: 60%">PLAY PAUSE</tspan></text>
</g> </g>
<g class="combo combopos-0"> <g class="combo combopos-0">
<rect rx="6" ry="6" x="70" y="64" width="28" height="26" class="combo"/> <rect rx="6" ry="6" x="70" y="64" width="28" height="26" class="combo"/>
@ -606,6 +671,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(224, 205)" class="key keypos-36"> <g transform="translate(224, 205)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"><tspan style="font-size: 86%">&amp;td_rgb</tspan></text>
</g> </g>
<g transform="translate(286, 213) rotate(15.0)" class="key keypos-37"> <g transform="translate(286, 213) rotate(15.0)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -625,6 +691,8 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(616, 205)" class="key keypos-41"> <g transform="translate(616, 205)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">MUTE</text>
<text x="0" y="24" class="key hold"><tspan style="font-size: 60%">PLAY PAUSE</tspan></text>
</g> </g>
<g class="combo combopos-0"> <g class="combo combopos-0">
<rect rx="6" ry="6" x="70" y="64" width="28" height="26" class="combo"/> <rect rx="6" ry="6" x="70" y="64" width="28" height="26" class="combo"/>
@ -684,43 +752,63 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(84, 49)" class="key keypos-1"> <g transform="translate(84, 49)" class="key keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">1</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM1</tspan>
</text>
</g> </g>
<g transform="translate(140, 35)" class="key keypos-2"> <g transform="translate(140, 35)" class="key keypos-2">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">2</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM2</tspan>
</text>
</g> </g>
<g transform="translate(196, 28)" class="key keypos-3"> <g transform="translate(196, 28)" class="key keypos-3">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">3</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM3</tspan>
</text>
</g> </g>
<g transform="translate(252, 35)" class="key keypos-4"> <g transform="translate(252, 35)" class="key keypos-4">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">4</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM4</tspan>
</text>
</g> </g>
<g transform="translate(308, 42)" class="key keypos-5"> <g transform="translate(308, 42)" class="key keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">5</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM5</tspan>
</text>
</g> </g>
<g transform="translate(532, 42)" class="key keypos-6"> <g transform="translate(532, 42)" class="key keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">6</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM6</tspan>
</text>
</g> </g>
<g transform="translate(588, 35)" class="key keypos-7"> <g transform="translate(588, 35)" class="key keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">7</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM7</tspan>
</text>
</g> </g>
<g transform="translate(644, 28)" class="key keypos-8"> <g transform="translate(644, 28)" class="key keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">8</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM8</tspan>
</text>
</g> </g>
<g transform="translate(700, 35)" class="key keypos-9"> <g transform="translate(700, 35)" class="key keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">9</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM9</tspan>
</text>
</g> </g>
<g transform="translate(756, 49)" class="key keypos-10"> <g transform="translate(756, 49)" class="key keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">0</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_NUM…</tspan>
</text>
</g> </g>
<g transform="translate(812, 49)" class="key keypos-11"> <g transform="translate(812, 49)" class="key keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -735,113 +823,165 @@ rect.held, rect.combo.held {
</a></g> </a></g>
<g transform="translate(84, 105)" class="key keypos-13"> <g transform="translate(84, 105)" class="key keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">Q</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_S1</tspan>
</text>
</g> </g>
<g transform="translate(140, 91)" class="key keypos-14"> <g transform="translate(140, 91)" class="key keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">W</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_TL</tspan>
</text>
</g> </g>
<g transform="translate(196, 84)" class="key keypos-15"> <g transform="translate(196, 84)" class="key keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">E</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_PL</tspan>
</text>
</g> </g>
<g transform="translate(252, 91)" class="key keypos-16"> <g transform="translate(252, 91)" class="key keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">R</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_HL</tspan>
</text>
</g> </g>
<g transform="translate(308, 98)" class="key keypos-17"> <g transform="translate(308, 98)" class="key keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">T</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_STA…</tspan>
</text>
</g> </g>
<g transform="translate(532, 98)" class="key keypos-18"> <g transform="translate(532, 98)" class="key keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">Y</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_STA…</tspan>
</text>
</g> </g>
<g transform="translate(588, 91)" class="key keypos-19"> <g transform="translate(588, 91)" class="key keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">U</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_FR</tspan>
</text>
</g> </g>
<g transform="translate(644, 84)" class="key keypos-20"> <g transform="translate(644, 84)" class="key keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">I</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_PR</tspan>
</text>
</g> </g>
<g transform="translate(700, 91)" class="key keypos-21"> <g transform="translate(700, 91)" class="key keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">O</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_LR</tspan>
</text>
</g> </g>
<g transform="translate(756, 105)" class="key keypos-22"> <g transform="translate(756, 105)" class="key keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">P</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_TR</tspan>
</text>
</g> </g>
<g transform="translate(812, 105)" class="key keypos-23"> <g transform="translate(812, 105)" class="key keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">[</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_DR</tspan>
</text>
</g> </g>
<g transform="translate(28, 161)" class="key keypos-24"> <g transform="translate(28, 161)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
</g> </g>
<g transform="translate(84, 161)" class="key keypos-25"> <g transform="translate(84, 161)" class="key keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">A</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_S2</tspan>
</text>
</g> </g>
<g transform="translate(140, 147)" class="key keypos-26"> <g transform="translate(140, 147)" class="key keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">S</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_KL</tspan>
</text>
</g> </g>
<g transform="translate(196, 140)" class="key keypos-27"> <g transform="translate(196, 140)" class="key keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">D</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_WL</tspan>
</text>
</g> </g>
<g transform="translate(252, 147)" class="key keypos-28"> <g transform="translate(252, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_RL</tspan>
</text>
</g> </g>
<g transform="translate(308, 154)" class="key keypos-29"> <g transform="translate(308, 154)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">G</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_STA…</tspan>
</text>
</g> </g>
<g transform="translate(532, 154)" class="key keypos-30"> <g transform="translate(532, 154)" class="key keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">H</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 60%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 60%">STENO_STA…</tspan>
</text>
</g> </g>
<g transform="translate(588, 147)" class="key keypos-31"> <g transform="translate(588, 147)" class="key keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">J</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_RR</tspan>
</text>
</g> </g>
<g transform="translate(644, 140)" class="key keypos-32"> <g transform="translate(644, 140)" class="key keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">K</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_BR</tspan>
</text>
</g> </g>
<g transform="translate(700, 147)" class="key keypos-33"> <g transform="translate(700, 147)" class="key keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">L</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_GR</tspan>
</text>
</g> </g>
<g transform="translate(756, 161)" class="key keypos-34"> <g transform="translate(756, 161)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">;</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_SR</tspan>
</text>
</g> </g>
<g transform="translate(812, 161)" class="key keypos-35"> <g transform="translate(812, 161)" class="key keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">&#x27;</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_ZR</tspan>
</text>
</g> </g>
<g transform="translate(224, 205)" class="key keypos-36"> <g transform="translate(224, 205)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
</g> </g>
<g transform="translate(286, 213) rotate(15.0)" class="key keypos-37"> <g transform="translate(286, 213) rotate(15.0)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">C</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_A</tspan>
</text>
</g> </g>
<g transform="translate(351, 224) rotate(30.0)" class="key keypos-38"> <g transform="translate(351, 224) rotate(30.0)" class="key keypos-38">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/> <rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/>
<text x="0" y="0" class="key tap">V</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_O</tspan>
</text>
</g> </g>
<g transform="translate(489, 224) rotate(-30.0)" class="key keypos-39"> <g transform="translate(489, 224) rotate(-30.0)" class="key keypos-39">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/> <rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/>
<text x="0" y="0" class="key tap">N</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_E</tspan>
</text>
</g> </g>
<g transform="translate(554, 213) rotate(-15.0)" class="key keypos-40"> <g transform="translate(554, 213) rotate(-15.0)" class="key keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">M</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em" style="font-size: 67%">&amp;javsteno</tspan><tspan x="0" dy="1.2em" style="font-size: 67%">STENO_U</tspan>
</text>
</g> </g>
<g transform="translate(616, 205)" class="key keypos-41"> <g transform="translate(616, 205)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -1077,21 +1217,36 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(28, 105)" class="key held keypos-12"> <g transform="translate(28, 105)" class="key held keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/>
<text x="0" y="0" class="key held tap">
<tspan x="0" dy="-0.6em">OUT</tspan><tspan x="0" dy="1.2em">TOG</tspan>
</text>
</g> </g>
<g transform="translate(84, 105)" class="key keypos-13"> <g transform="translate(84, 105)" class="key sym_by_sym keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key sym_by_sym"/>
<use href="#mdi:led-on" xlink:href="#mdi:led-on" x="-9" y="-9" height="18" width="18.0" class="key sym_by_sym tap glyph mdi:led-on"/>
<use href="#mdi:palette" xlink:href="#mdi:palette" x="-8" y="-24" height="15" width="15.0" class="key sym_by_sym shifted glyph mdi:palette"/>
</g> </g>
<g transform="translate(140, 91)" class="key keypos-14"> <g transform="translate(140, 91)" class="key sym_by_sym keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key sym_by_sym"/>
<use href="#mdi:led-outline" xlink:href="#mdi:led-outline" x="-9" y="-9" height="18" width="18.0" class="key sym_by_sym tap glyph mdi:led-outline"/>
<use href="#mdi:eyedropper" xlink:href="#mdi:eyedropper" x="-8" y="-24" height="15" width="15.0" class="key sym_by_sym shifted glyph mdi:eyedropper"/>
</g> </g>
<g transform="translate(196, 84)" class="key keypos-15"> <g transform="translate(196, 84)" class="key sym_by_sym keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key sym_by_sym"/>
<use href="#mdi:led-outline" xlink:href="#mdi:led-outline" x="-9" y="-9" height="18" width="18.0" class="key sym_by_sym tap glyph mdi:led-outline"/>
<use href="#tabler:brightness-down" xlink:href="#tabler:brightness-down" x="-8" y="-24" height="15" width="15.0" class="key sym_by_sym shifted glyph tabler:brightness-down"/>
</g> </g>
<g transform="translate(252, 91)" class="key keypos-16"> <g transform="translate(252, 91)" class="key keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em">BRI</tspan><tspan x="0" dy="1.2em">UP</tspan>
</text>
</g> </g>
<g transform="translate(308, 98)" class="key keypos-17"> <g transform="translate(308, 98)" class="key keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em">Vol</tspan><tspan x="0" dy="1.2em">Up</tspan>
</text>
</g> </g>
<g transform="translate(532, 98)" class="key keypos-18"> <g transform="translate(532, 98)" class="key keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -1121,24 +1276,32 @@ rect.held, rect.combo.held {
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-shift" xlink:href="#mdi:apple-keyboard-shift" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-shift"/> <use href="#mdi:apple-keyboard-shift" xlink:href="#mdi:apple-keyboard-shift" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-shift"/>
</g> </g>
<g transform="translate(84, 161)" class="key keypos-25"> <g transform="translate(84, 161)" class="key sym_by_sym keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key sym_by_sym"/>
<text x="0" y="0" class="key tap">Z</text> <use href="#mdi:led-outline" xlink:href="#mdi:led-outline" x="-9" y="-9" height="18" width="18.0" class="key sym_by_sym tap glyph mdi:led-outline"/>
<use href="#mdi:palette" xlink:href="#mdi:palette" x="-8" y="-24" height="15" width="15.0" class="key sym_by_sym shifted glyph mdi:palette"/>
</g> </g>
<g transform="translate(140, 147)" class="key keypos-26"> <g transform="translate(140, 147)" class="key sym_by_sym keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key sym_by_sym"/>
<text x="0" y="0" class="key tap">X</text> <use href="#mdi:led-on" xlink:href="#mdi:led-on" x="-9" y="-9" height="18" width="18.0" class="key sym_by_sym tap glyph mdi:led-on"/>
<use href="#mdi:eyedropper" xlink:href="#mdi:eyedropper" x="-8" y="-24" height="15" width="15.0" class="key sym_by_sym shifted glyph mdi:eyedropper"/>
</g> </g>
<g transform="translate(196, 140)" class="key keypos-27"> <g transform="translate(196, 140)" class="key sym_by_sym keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key sym_by_sym"/>
<text x="0" y="0" class="key tap">C</text> <use href="#mdi:led-on" xlink:href="#mdi:led-on" x="-9" y="-9" height="18" width="18.0" class="key sym_by_sym tap glyph mdi:led-on"/>
<use href="#tabler:brightness-up" xlink:href="#tabler:brightness-up" x="-8" y="-24" height="15" width="15.0" class="key sym_by_sym shifted glyph tabler:brightness-up"/>
</g> </g>
<g transform="translate(252, 147)" class="key keypos-28"> <g transform="translate(252, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">V</text> <text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em">BRI</tspan><tspan x="0" dy="1.2em">DN</tspan>
</text>
</g> </g>
<g transform="translate(308, 154)" class="key keypos-29"> <g transform="translate(308, 154)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">
<tspan x="0" dy="-0.6em">Vol</tspan><tspan x="0" dy="1.2em">Down</tspan>
</text>
</g> </g>
<g transform="translate(532, 154)" class="key keypos-30"> <g transform="translate(532, 154)" class="key keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -1166,6 +1329,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(756, 161)" class="key keypos-34"> <g transform="translate(756, 161)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"><tspan style="font-size: 60%">&amp;td_colors</tspan></text>
</g> </g>
<g transform="translate(812, 161)" class="key keypos-35"> <g transform="translate(812, 161)" class="key keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -1173,7 +1337,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(224, 205)" class="key keypos-36"> <g transform="translate(224, 205)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">Esc</text> <text x="0" y="0" class="key tap"><tspan style="font-size: 86%">&amp;td_rgb</tspan></text>
</g> </g>
<g transform="translate(286, 213) rotate(15.0)" class="key keypos-37"> <g transform="translate(286, 213) rotate(15.0)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
@ -1193,6 +1357,8 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(616, 205)" class="key keypos-41"> <g transform="translate(616, 205)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">MUTE</text>
<text x="0" y="24" class="key hold"><tspan style="font-size: 60%">PLAY PAUSE</tspan></text>
</g> </g>
</g> </g>
</g> </g>

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Before After
Before After

View file

@ -37,12 +37,12 @@ layers:
- . - .
- / - /
- $$mdi:apple-keyboard-shift$$ - $$mdi:apple-keyboard-shift$$
- '' - '&td_rgb'
- $$mdi:apple-keyboard-control$$ - $$mdi:apple-keyboard-control$$
- $$mdi:apple-keyboard-command$$ - $$mdi:apple-keyboard-command$$
- -
- $$mdi:apple-keyboard-option$$ - $$mdi:apple-keyboard-option$$
- '' - {t: MUTE, h: PLAY PAUSE}
QWRT: QWRT:
- '`' - '`'
- Q - Q
@ -80,54 +80,54 @@ layers:
- . - .
- / - /
- $$mdi:apple-keyboard-shift$$ - $$mdi:apple-keyboard-shift$$
- '' - '&td_rgb'
- $$mdi:apple-keyboard-control$$ - $$mdi:apple-keyboard-control$$
- $$mdi:apple-keyboard-command$$ - $$mdi:apple-keyboard-command$$
- -
- $$mdi:apple-keyboard-option$$ - $$mdi:apple-keyboard-option$$
- '' - {t: MUTE, h: PLAY PAUSE}
STEN: STEN:
- '' - ''
- '1' - '&javsteno STENO_NUM1'
- '2' - '&javsteno STENO_NUM2'
- '3' - '&javsteno STENO_NUM3'
- '4' - '&javsteno STENO_NUM4'
- '5' - '&javsteno STENO_NUM5'
- '6' - '&javsteno STENO_NUM6'
- '7' - '&javsteno STENO_NUM7'
- '8' - '&javsteno STENO_NUM8'
- '9' - '&javsteno STENO_NUM9'
- '0' - '&javsteno STENO_NUM10'
- {t: HUB, h: toggle} - {t: HUB, h: toggle}
- HUB - HUB
- Q - '&javsteno STENO_S1'
- W - '&javsteno STENO_TL'
- E - '&javsteno STENO_PL'
- R - '&javsteno STENO_HL'
- T - '&javsteno STENO_STAR1'
- Y - '&javsteno STENO_STAR3'
- U - '&javsteno STENO_FR'
- I - '&javsteno STENO_PR'
- O - '&javsteno STENO_LR'
- P - '&javsteno STENO_TR'
- '[' - '&javsteno STENO_DR'
- '' - ''
- A - '&javsteno STENO_S2'
- S - '&javsteno STENO_KL'
- D - '&javsteno STENO_WL'
- F - '&javsteno STENO_RL'
- G - '&javsteno STENO_STAR2'
- H - '&javsteno STENO_STAR4'
- J - '&javsteno STENO_RR'
- K - '&javsteno STENO_BR'
- L - '&javsteno STENO_GR'
- ; - '&javsteno STENO_SR'
- '''' - '&javsteno STENO_ZR'
- '' - ''
- C - '&javsteno STENO_A'
- V - '&javsteno STENO_O'
- N - '&javsteno STENO_E'
- M - '&javsteno STENO_U'
- '' - ''
FPS: FPS:
- {t: '1', h: Esc} - {t: '1', h: Esc}
@ -185,12 +185,12 @@ layers:
- ']' - ']'
- '*' - '*'
- '=' - '='
- {type: held} - {t: OUT TOG, type: held}
- '' - {t: '$$mdi:led-on$$', s: '$$mdi:palette$$', type: sym_by_sym}
- '' - {t: '$$mdi:led-outline$$', s: '$$mdi:eyedropper$$', type: sym_by_sym}
- '' - {t: '$$mdi:led-outline$$', s: '$$tabler:brightness-down$$', type: sym_by_sym}
- '' - BRI UP
- '' - Vol Up
- '-' - '-'
- -
- -
@ -198,23 +198,23 @@ layers:
- / - /
- \ - \
- $$mdi:apple-keyboard-shift$$ - $$mdi:apple-keyboard-shift$$
- Z - {t: '$$mdi:led-outline$$', s: '$$mdi:palette$$', type: sym_by_sym}
- X - {t: '$$mdi:led-on$$', s: '$$mdi:eyedropper$$', type: sym_by_sym}
- C - {t: '$$mdi:led-on$$', s: '$$tabler:brightness-up$$', type: sym_by_sym}
- V - BRI DN
- '' - Vol Down
- {t: CARP, h: toggle} - {t: CARP, h: toggle}
- {t: QWRT, h: toggle} - {t: QWRT, h: toggle}
- {t: STEN, h: toggle} - {t: STEN, h: toggle}
- {t: FPS, h: toggle} - {t: FPS, h: toggle}
- '' - '&td_colors'
- $$mdi:apple-keyboard-shift$$ - $$mdi:apple-keyboard-shift$$
- Esc - '&td_rgb'
- $$mdi:apple-keyboard-control$$ - $$mdi:apple-keyboard-control$$
- $$mdi:apple-keyboard-command$$ - $$mdi:apple-keyboard-command$$
- -
- $$mdi:apple-keyboard-option$$ - $$mdi:apple-keyboard-option$$
- '' - {t: MUTE, h: PLAY PAUSE}
combos: combos:
- p: [1, 13] - p: [1, 13]
k: '1' k: '1'