feat: add lily58 and splitkb_aurora_sofle support

This commit is contained in:
mctechnology17 2025-01-06 19:35:51 +01:00 committed by github-actions[bot]
parent a5d6700e21
commit 51779bb90f
52 changed files with 4778 additions and 815 deletions

View file

@ -1,6 +1,16 @@
Changelog file for Structures extra. Changelog file for Structures extra.
https://github.com/mctechnology17/zmk-config/blob/main/CHANGELOG.txt https://github.com/mctechnology17/zmk-config/blob/main/CHANGELOG.txt
# FEATURES 0.0.2-beta3 (Jan 06, 2025)
=======================================
+ NEW FEATURES
- [x] lily58 support (see boards/shields/lily58/)
- [x] splitkb_aurora_sofle support (boards/shields/splitkb_aurora_sofle/)
- [x] readme updated
- [x] build.yaml updated
- [x] config_keymap-drawer.yaml updated
- [x] corne.keymap updated (The option to see the layer on the screen was added)
# FEATURES 0.0.2-beta2 (Jan 03, 2025) # FEATURES 0.0.2-beta2 (Jan 03, 2025)
======================================= =======================================
+ NEW FEATURES + NEW FEATURES

212
README.md
View file

@ -14,18 +14,26 @@
- [INTRO](#INTRO) - [INTRO](#INTRO)
- [QUICK START](#QUICK-START) - [QUICK START](#QUICK-START)
- [keymap corne](#keymap-corne)
- [keymap sofle](#keymap-sofle)
- [keymap splitkb_aurora_sofle](#keymap-splitkb_aurora_sofle)
- [keymap lily58](#keymap-lily58)
- [LOCAL INSTALLATION](#LOCAL-INSTALLATION) - [LOCAL INSTALLATION](#LOCAL-INSTALLATION)
- [DISPLAY](#DISPLAY) - [DISPLAY](#DISPLAY)
- [RGB](#RGB) - [RGB](#RGB)
- [rgb with niceview](#rgb-with-niceview)
- [rgb with niceview in two step](#rgb-with-niceview-in-two-step)
- [DONGLE](#DONGLE) - [DONGLE](#DONGLE)
- [USEFUL TIPS](#USEFUL-TIPS) - [USEFUL TIPS](#USEFUL-TIPS)
- [RELATED PROJECTS](#RELATED-PROJECTS)
- [DONGLE DESIGNS](#DONGLE-DESIGNS)
- [ZMK STUDIO](#ZMK-STUDIO) - [ZMK STUDIO](#ZMK-STUDIO)
- [MODULE INTEGRATION](#MODULE-INTEGRATION) - [MODULE INTEGRATION](#MODULE-INTEGRATION)
- [modules used in this repository](#modules-used-in-this-repository)
- [list of useful modules](#list-of-useful-modules)
- [THIS REPOSITORY AS A MODULE](#THIS-REPOSITORY-AS-A-MODULE) - [THIS REPOSITORY AS A MODULE](#THIS-REPOSITORY-AS-A-MODULE)
- [INSPIRATIONS](#INSPIRATIONS) - [INSPIRATIONS](#INSPIRATIONS)
- [MY OTHER PROJECTS](#MY-OTHER-PROJECTS) - [MY OTHER PROJECTS](#MY-OTHER-PROJECTS)
- [RELATED PROJECTS](#RELATED-PROJECTS)
- [DONGLE DESIGNS](#DONGLE-DESIGNS)
---- ----
@ -156,7 +164,14 @@ Here you can see the visual changes to the configuration:
> [config](./config/config_keymap-drawer.yaml). > [config](./config/config_keymap-drawer.yaml).
> The file for the workflows is in [workflows](./.github/workflows/keymap-drawer.yaml) in case you want to modify it. > The file for the workflows is in [workflows](./.github/workflows/keymap-drawer.yaml) in case you want to modify it.
[![keymap-drawer-demo](keymap-drawer/corne.svg)](https://www.youtube.com/c/mctechnology17) ## keymap corne
[![keymap-drawer-demo-corne](keymap-drawer/corne.svg)](https://www.youtube.com/c/mctechnology17)
## keymap sofle
[![keymap-drawer-demo-sofle](keymap-drawer/sofle.svg)](https://www.youtube.com/c/mctechnology17)
## keymap splitkb_aurora_sofle
[![keymap-drawer-demo-splitkb_aurora_sofle](keymap-drawer/splitkb_aurora_sofle.svg)](https://www.youtube.com/c/mctechnology17)
## keymap lily58
[![keymap-drawer-demo-lily58](keymap-drawer/lily58.svg)](https://www.youtube.com/c/mctechnology17)
If you want to customize this image with shapes/colors/etc. You can see these references: If you want to customize this image with shapes/colors/etc. You can see these references:
[^1] [^2] [^3] [^1] [^2] [^3]
@ -245,12 +260,25 @@ make corne_urob # compile all the *.uf2 of the corne and copy them to the firmwa
``` ```
# DISPLAY # DISPLAY
1. ePAPER [nice-view] 1. ePAPER
- The nice!view is a SSD1306 OLED replacement boasting >1,000x power savings
while keeping a 30Hz refresh rate. It has a similar pinout to SSD1306
OLEDs with one extra pin making it easy to add on to existing boards.
- the [nice-view] screen is compiled by default in this repository. - the [nice-view] screen is compiled by default in this repository.
2. OLED 2. OLED
- SSD1306 / sh1107 / sh1106 OLED displays are one of the most common in
mechanical keyboard kits. They're often used to display information about
your keyboard, such as which layer is active, or if any modifiers like
Caps Lock, Num Lock or Scroll Lock are on. Of course, you can display
anything you want, including images and animations.
- These displays work over I2C and should be powered with 5V. They are
compatible with Pro Micro-based kits.
- the oled screen for the dongle is enabled by default in this repository. - the oled screen for the dongle is enabled by default in this repository.
- If you want to enable the OLED screen for the halves, you can do so by modifying the `.conf` files for their respective halves. - If you want to enable the OLED screen for the halves, you can do so by
modifying the `.conf` files for their respective halves.
- Remember to disable the [nice-view] screens to avoid conflict in the compilation. - Remember to disable the [nice-view] screens to avoid conflict in the compilation.
3. FULL COLOR LCD SCREEN
- [Prospector](https://github.com/carrefinho/prospector) is a desktop ZMK dongle with full color LCD screen.
> [!IMPORTANT] > [!IMPORTANT]
> >
@ -301,7 +329,6 @@ You just have to modify the following line:
``` ```
# RGB # RGB
> [!WARNING] > [!WARNING]
> >
@ -316,6 +343,26 @@ from this same repository.
Here is an example of what it looks like: Here is an example of what it looks like:
[![rgb-demo](src/demo.GIF)](https://www.youtube.com/c/mctechnology17) [![rgb-demo](src/demo.GIF)](https://www.youtube.com/c/mctechnology17)
## rgb with niceview
Points to take into account if you want to use niceview with RGB:
- In a nutshell, the problem is that the backlight and the nice!view display
use the same pin on the pcb, causing conflicts.
- The common solution is to solder the backlight to pin 008 and set it to the keymap.
- However, this means that both the screen and backlight share the same power
source, which can drain the battery quickly.
- There is no ideal solution, but some options include redesigning the boards
to separate the power or powering the display directly from a gpio pin.
## rgb with niceview in two step
1. solder the nice!view display to pin 008
2. set the display to use pin 008 in the keymap
3. recompile the firmware and enjoy the nice!view display with RGB
```c
&nice_view_spi {
cs-gpios = <&pro_micro 0 GPIO_ACTIVE_HIGH>; // use D0 (008) for CS (no 006)
};
```
# DONGLE # DONGLE
> [!TIP] > [!TIP]
> >
@ -337,36 +384,42 @@ Information about this image:
- The right side acts as a peripheral in this case, the board is a [nice_nano_v2]. - The right side acts as a peripheral in this case, the board is a [nice_nano_v2].
- The photo shows a clone [nice_nano_v2] dongle with an OLED display connected to a traditional i2c port in a pcb style. This dongle is only for sample photo and is not connected to any device shown in the photo. - The photo shows a clone [nice_nano_v2] dongle with an OLED display connected to a traditional i2c port in a pcb style. This dongle is only for sample photo and is not connected to any device shown in the photo.
Macro example to enter bootloader mode. On your Combo example to enter bootloader mode. On your
[corne.keymap](./config/corne.keymap) file you can add the following macro (Thanks @chadtrans for the tip!): [corne.keymap](./config/corne.keymap) file you can add the following combo (Thanks @VictorSCamargo for the tip!):
> [!TIP] > [!TIP]
> >
> 1. You can program this macro with the online editor [keymap-editor] > 1. You can program this `combo` with the online editor [keymap-editor]
> 2. These examples were tested using a `corne` keyboard, so the numbers `0 1 2` correspond to the keys on the left of the first row of the keyboard and the numbers `9 10 11` correspond to the 3 right keys at the top of columns 3, 4 and 5. see the reference below `COMBO` for more details.
> 3. You can combine both forms of combos and in both cases the keyboard that is the master (dongle or central) is the one that executes the action, in this case the dongle or the left master enters bootloader mode.
1. This is the manual way to do it using `c` code:
```c ```c
// this is the manual way to do it // this is the manual way to do it
#define MACRO(name, keys) \ #define COMBO(NAME, BINDINGS, KEYPOS, LAYERS) \
name: name##_macro { \ combo_##NAME { \
compatible = "zmk,behavior-macro";\ bindings = <BINDINGS>; \
#binding-cells = <0>; \ key-positions = <KEYPOS>; \
tap-ms = <1>; \ layers = <LAYERS>; \
wait-ms = <1>; \ };
bindings = <keys>; \ // for the right side
}; // COMBO NAME = combo_bootloader_right,
MACRO(dongle_boot, &bootloader) // BINDINGS = &bootloader,
/ { // KEYPOSITION = 9 10 11,
keymap { // LAYERS = 0
compatible = "zmk,keymap"; COMBO(combo_bootloader_right, &bootloader, 9 10 11, 0);
... // other layers ```
config_layer {
display-name = "CON"; 2. This is the manual way to do it using `dts` code:
bindings = <
... // other bindings ```dts
&dongle_boot // for the left side
... // other bindings combo_bootloader_left {
}; timeout-ms = <50>;
... // other layers key-positions = <0 1 2>; // Pressing the 3 first keys on the keyboard will trigger &bootloader
}; bindings = <&bootloader>;
};
};
``` ```
# USEFUL TIPS # USEFUL TIPS
@ -383,42 +436,6 @@ MACRO(dongle_boot, &bootloader)
- Remember that if your corne - sofle - lily58 only has some functional RGB lights you can activate only the ones that you have functional, it is not necessary to activate all the lights. see reference in [led strip](./config/corne.keymap) - Remember that if your corne - sofle - lily58 only has some functional RGB lights you can activate only the ones that you have functional, it is not necessary to activate all the lights. see reference in [led strip](./config/corne.keymap)
- You can combine the boards, for example: on the left you can have a [nice_nano_v2], on the right a [puchi_ble_v1] and on the dongle a [seeeduino_xiao_ble] or some clone [nice_nano_v2], or any combination you can think of. - You can combine the boards, for example: on the left you can have a [nice_nano_v2], on the right a [puchi_ble_v1] and on the dongle a [seeeduino_xiao_ble] or some clone [nice_nano_v2], or any combination you can think of.
# RELATED PROJECTS
I used this project as a reference to configure the dongles with OLED screen:
- [cygnus](https://github.com/rain2813/zmk-cygnus-oled.git) by @rain2813
- [zmk keyboard Macintosh dongle display](https://makerworld.com/en/models/403660) by @rain2813
- [corne with dongle](https://github.com/tomgroenwoldt/zmk-config.git) by @tomgroenwoldt
- [zmk-dongle-display](https://github.com/englmaxi/zmk-dongle-display.git) by @englmaxi
- [zmk-config for module](https://github.com/englmaxi/zmk-config/tree/master/boards/shields) by @englmaxi
- [zmk-config for dongle pro micro](https://github.com/joaopedropio/zmk-swoop/tree/dongle-sdd1306) by @joaopedropio
In the following animations created by @englmaxi you can see what the dongle
looks like with the 128x64 OLED screen:
![output](https://github.com/englmaxi/zmk-config/assets/43675074/8d268f23-1a4f-44c3-817e-c36dc96a1f8b)
In that animation you can see the connection or output with the computer, that
is, if it is through a USB or Bluetooth port. Also information about the status
of both batteries.
![mods](https://github.com/englmaxi/zmk-config/assets/43675074/af9ec3f5-8f61-4629-abed-14ba0047f0bd)
In this animation you can see the actions of the modifier keys, such as
control, shift, alt, windows/mac, etc.
# DONGLE DESIGNS
- [case1](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case1.zip) by @englmaxi
- [case2](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case2.zip) by @englmaxi
- [Cyberdeck](https://github.com/rafaelromao/keyboards/tree/main/stls/Dongle) by @rafaelromao
- [Dongle PCB](https://github.com/spe2/zmk_dongle_hardware) by @spe2
- [Macintosh](https://makerworld.com/en/models/403660) by @rain2813
- [Redox](https://makerworld.com/en/models/242951) by @rurounikexin
- [ZMK Display Dongle](https://makerworld.com/en/models/496738) by @yingeling
An example of Dongle Designs (by @rain2813):
[![dongle-designs-demo](src/macintosh.png)](https://www.youtube.com/c/mctechnology17)
# ZMK STUDIO # ZMK STUDIO
This repository includes the necessary configuration to use zmk-studio without This repository includes the necessary configuration to use zmk-studio without
@ -464,12 +481,27 @@ host OS, app/browser details, keyboard used, link to your config repo, etc.
> 1. Remember that animations consume energy, so if you want to conserve your battery, turn off the animations! > 1. Remember that animations consume energy, so if you want to conserve your battery, turn off the animations!
> 2. Please consult the documentation of each module that you are going to use, here I leave you the links for each one. > 2. Please consult the documentation of each module that you are going to use, here I leave you the links for each one.
## modules used in this repository
See module details here for more information and more configurations: See module details here for more information and more configurations:
- [nice_view_gem](https://github.com/M165437/nice-view-gem) - [**nice_view_gem**](https://github.com/M165437/nice-view-gem) a sleek customization for the nice!view shield
- [nice_oled](https://github.com/mctechnology17/zmk-nice-oled) - [**nice_oled**](https://github.com/mctechnology17/zmk-nice-oled) vertical widgets for oled screens with zmk for split and non-split keyboards using the standard [oled screen](https://keycapsss.com/keyboard-parts/parts/80/0.91-oled-lcd-display-128x32-ssd1306-i2c) 128x32.
- [dongle_display](https://github.com/englmaxi/zmk-dongle-display) - [**zmk-dongle-display**](https://github.com/englmaxi/zmk-dongle-display) to show the peripheral battery percentage (and more!) on the display of the dongle.
- [dongle_display!view](https://github.com/mctechnology17/zmk-dongle-display-view) - [**dongle_display!view**](https://github.com/mctechnology17/zmk-dongle-display-view) to show the peripheral battery percentage (and more!) on the display of the dongle using the nice!view display.
- [oled Adapter](https://github.com/mctechnology17/zmk-oled-adapter) - [**oled Adapter**](https://github.com/mctechnology17/zmk-oled-adapter) to use the 128x32, 128x64 and 128x128 OLED screens on keyboards with ZMK without having to modify the shields of the keyboards.
## list of useful modules
Additional features are provided by the following [modules](https://zmk.dev/docs/features/modules):
- [**zmk-antecedent-morph**](https://github.com/ssbb/zmk-antecedent-morph) to change the behavior of a key based on the previously pressed key. This is used to type `<=`, `>=`, `!=`, `=>`, `->`, `|>`, `./` and `#include ` more comfortably.
- [**zmk-locales**](https://github.com/joelspadin/zmk-locales) to provide key codes for non-US keyboard locales.
- [**zmk-rgbled-widgets**](https://github.com/caksoylar/zmk-rgbled-widget) to show the connection and battery status with the built-in LEDs of the Xiao BLE controller.
- [**zmk-led_indicator**](https://github.com/englmaxi/zmk-config/tree/main/boards/shields/led_indicator) to show the connection and battery status with the built-in LEDs to be used with the single LED of the nice!nano. Based on the [**zmk-rgbled-widgets**](https://github.com/caksoylar/zmk-rgbled-widget)
- [**zmk-tri-state**](https://github.com/urob/zmk-tri-state) to define a custom <kbd>swapper</kbd> and a <kbd>select-word</kbd> behavior.
- [**zmk-layer-listeners**](https://github.com/ssbb/zmk-layer-listeners) - call something on layer enter/leave. I use it for haptic feedback and to reset nav layer toggled keys on leave.
- [**zmk-deadkey-slayer**](https://github.com/ssbb/zmk-deadkey-slayer) - drop invalid keycodes. I use them quite a lot as a markers, way to reset sticky keys, etc. so they aren't sent to the host (in which case eg MacOS disconnects device after some limit)
- [**zmk-raw-hid**](https://github.com/zzeneg/zmk-raw-hid) - raw HID - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK).
- [**zmk-nice-view-hid**](https://github.com/zzeneg/zmk-nice-view-hid) - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK).
- [**zmk-hid-host**](https://github.com/zzeneg/qmk-hid-host) - HID host - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK).
# THIS REPOSITORY AS A MODULE # THIS REPOSITORY AS A MODULE
1. In the `config/west.yml` file, add a new remote and its related project. 1. In the `config/west.yml` file, add a new remote and its related project.
@ -538,6 +570,42 @@ If you enjoy my contributions, feel free to donate. I appreciate if you follow m
- [paypal] - [paypal]
- [sponsor] - [sponsor]
# RELATED PROJECTS
I used this project as a reference to configure the dongles with OLED screen:
- [cygnus](https://github.com/rain2813/zmk-cygnus-oled.git) by @rain2813
- [zmk keyboard Macintosh dongle display](https://makerworld.com/en/models/403660) by @rain2813
- [corne with dongle](https://github.com/tomgroenwoldt/zmk-config.git) by @tomgroenwoldt
- [zmk-dongle-display](https://github.com/englmaxi/zmk-dongle-display.git) by @englmaxi
- [zmk-config for module](https://github.com/englmaxi/zmk-config/tree/master/boards/shields) by @englmaxi
- [zmk-config for dongle pro micro](https://github.com/joaopedropio/zmk-swoop/tree/dongle-sdd1306) by @joaopedropio
In the following animations created by @englmaxi you can see what the dongle
looks like with the 128x64 OLED screen:
![output](https://github.com/englmaxi/zmk-config/assets/43675074/8d268f23-1a4f-44c3-817e-c36dc96a1f8b)
In that animation you can see the connection or output with the computer, that
is, if it is through a USB or Bluetooth port. Also information about the status
of both batteries.
![mods](https://github.com/englmaxi/zmk-config/assets/43675074/af9ec3f5-8f61-4629-abed-14ba0047f0bd)
In this animation you can see the actions of the modifier keys, such as
control, shift, alt, windows/mac, etc.
# DONGLE DESIGNS
- [case1](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case1.zip) by @englmaxi
- [case2](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case2.zip) by @englmaxi
- [Cyberdeck](https://github.com/rafaelromao/keyboards/tree/main/stls/Dongle) by @rafaelromao
- [Dongle PCB](https://github.com/spe2/zmk_dongle_hardware) by @spe2
- [Macintosh](https://makerworld.com/en/models/403660) by @rain2813
- [Redox](https://makerworld.com/en/models/242951) by @rurounikexin
- [ZMK Display Dongle](https://makerworld.com/en/models/496738) by @yingeling
An example of Dongle Designs (by @rain2813):
[![dongle-designs-demo](src/macintosh.png)](https://www.youtube.com/c/mctechnology17)
# TODO # TODO
- [ ] Add more features to the repository - [ ] Add more features to the repository
- [ ] Update the documentation - [ ] Update the documentation

View file

@ -0,0 +1,52 @@
if SHIELD_LILY58_LEFT || SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO
config ZMK_KEYBOARD_NAME
default "Lily58"
config ZMK_SPLIT_ROLE_CENTRAL
default y
endif
if SHIELD_LILY58_LEFT || SHIELD_LILY58_RIGHT || SHIELD_LILY58_LEFT_PERIPHERAL || SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO
config ZMK_SPLIT
default y
if ZMK_DISPLAY
config I2C
default y
config SSD1306
default y
if SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO
choice ZMK_DISPLAY_WORK_QUEUE
default ZMK_DISPLAY_WORK_QUEUE_DEDICATED
endchoice
endif
endif # ZMK_DISPLAY
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 # LVGL
endif

View file

@ -0,0 +1,17 @@
# Copyright (c) 2020 Pete Johanson
# SPDX-License-Identifier: MIT
config SHIELD_LILY58_LEFT
def_bool $(shields_list_contains,lily58_left)
config SHIELD_LILY58_RIGHT
def_bool $(shields_list_contains,lily58_right)
config SHIELD_LILY58_LEFT_PERIPHERAL
def_bool $(shields_list_contains,lily58_left_peripheral)
config SHIELD_LILY58_DONGLE_XIAO
def_bool $(shields_list_contains,lily58_dongle_xiao)
config SHIELD_LILY58_DONGLE_PRO_MICRO
def_bool $(shields_list_contains,lily58_dongle_pro_micro)

View file

@ -0,0 +1,46 @@
#include <dt-bindings/led/led.h>
&pinctrl {
spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
};
};
spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
low-power-enable;
};
};
};
&spi3 {
compatible = "nordic,nrf-spim";
status = "okay";
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep";
led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi";
/* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>;
/* WS2812 */
chain-length = <10>; /* arbitrary; change at will */
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
};
};
/ {
chosen {
zmk,underglow = &led_strip;
};
};

View file

@ -0,0 +1,46 @@
#include <dt-bindings/led/led.h>
&pinctrl {
spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
};
};
spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
low-power-enable;
};
};
};
&spi3 {
compatible = "nordic,nrf-spim";
status = "okay";
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep";
led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi";
/* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>;
/* WS2812 */
chain-length = <10>; /* arbitrary; change at will */
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
};
};
/ {
chosen {
zmk,underglow = &led_strip;
};
};

View file

@ -0,0 +1,6 @@
# Uncomment to enable encoder
# CONFIG_EC11=y
# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
# Uncomment the following line to enable the Lily58 OLED Display
# CONFIG_ZMK_DISPLAY=y

View file

@ -0,0 +1,87 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/kata0510/lily58.dtsi>
/ {
chosen {
zephyr,display = &oled;
zmk,kscan = &kscan0;
zmk,physical-layout = &kata0510_lily58_layout;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <16>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 |
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10)
>;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
};
left_encoder: encoder_left {
compatible = "alps,ec11";
a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
steps = <80>;
};
sensors: sensors {
compatible = "zmk,keymap-sensors";
sensors = <&left_encoder>;
triggers-per-rotation = <20>;
};
};
&kata0510_lily58_layout {
transform = <&default_transform>;
};
&pro_micro_i2c {
status = "okay";
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>;
};
};

View file

@ -0,0 +1,70 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
// ------------------------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT |
// | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI |
bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS
&kp LCTRL &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 LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
lower_layer {
// ------------------------------------------------------------------------------------------------------------
// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ |
// | | | | | | | | | | | _ | + | { | } | "|" |
// | | | | | | | | | |
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12
&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR &kp TILDE
&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE
&trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
raise_layer {
// ------------------------------------------------------------------------------------------------------------
// | | | | | | | | | | | | | |
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | |
// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ |
// | | | | | | | | | |
bindings = <
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans
&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH
&trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
};
};

View file

@ -0,0 +1,17 @@
file_format: "1"
id: lily58
name: Lily58
type: shield
url: https://github.com/kata0510/Lily58
requires: [pro_micro]
exposes: [i2c_oled]
features:
- keys
- display
- studio
siblings:
- lily58_left
- lily58_right
- lily58_left_peripheral
- lily58_dongle_xiao
- lily58_dongle_pro_micro

View file

@ -0,0 +1,30 @@
# MC:
# compatible con todas las versiones de nrf52840 (pro_micro):
# - nice_nano (no probado)
# - nice_nano_v2 (probado)
# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado)
# - nrfmicro_11 (no probado)
# - nrfmicro_11_flipped (no probado)
# - nrfmicro_13 (no probado)
# - puchi_ble_v1 (probado)
### DONGLE MODE
CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2
### DONGLE OPTIONS
# 3 profiles (n+2)
CONFIG_BT_MAX_CONN=5
CONFIG_BT_MAX_PAIRED=5
### DISPLAY DONGLE OPTIONS
CONFIG_ZMK_DISPLAY=y
CONFIG_BT_BAS=n
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
### POWER OPTIONS
# La unidad del intervalo del informe de energía de la batería es segundos
CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

View file

@ -0,0 +1,150 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/kata0510/lily58.dtsi>
/ {
chosen {
zephyr,display = &oled;
zmk,kscan = &mock_kscan;
zmk,physical-layout = &kata0510_lily58_layout;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <16>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 |
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10)
>;
};
mock_kscan: kscan_0 {
compatible = "zmk,kscan-mock";
// wakeup-source;
columns = <0>;
rows = <0>;
events = <0>;
};
// TODO: per-key RGB node(s)?
};
&kata0510_lily58_layout {
transform = <&default_transform>;
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
/*
// 128x64 OLED
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x32 OLED
&pro_micro_i2c {
status = "okay";
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>;
};
};
// 128x64 OLED model sh1106
&pro_micro_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <129>;
height = <64>;
segment-offset = <1>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x128 OLED model sh1107
&pro_micro_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <120>;
height = <128>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <119>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
*/
// vim: filetype=dts fdm=marker:

View file

@ -0,0 +1,24 @@
# MC:
# compatible con todas las versiones de nrf52840 (xiao):
# - seeeduino_xiao_ble (probado)
### DONGLE MODE
CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2
### DONGLE OPTIONS
# 3 profiles (n+2)
CONFIG_BT_MAX_CONN=5
CONFIG_BT_MAX_PAIRED=5
### DISPLAY DONGLE OPTIONS
CONFIG_ZMK_DISPLAY=y
CONFIG_BT_BAS=n
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
### POWER OPTIONS
# La unidad del intervalo del informe de energía de la batería es segundos
CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

View file

@ -0,0 +1,187 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/kata0510/lily58.dtsi>
/ {
chosen {
zephyr,display = &oled;
zmk,kscan = &mock_kscan;
zmk,physical-layout = &kata0510_lily58_layout;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <16>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 |
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10)
>;
};
mock_kscan: kscan_0 {
compatible = "zmk,kscan-mock";
// wakeup-source;
columns = <0>;
rows = <0>;
events = <0>;
};
// TODO: per-key RGB node(s)?
};
&kata0510_lily58_layout {
transform = <&default_transform>;
};
&xiao_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
/*
// 128x64 OLED
&xiao_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x32 OLED
&xiao_i2c {
status = "okay";
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>;
};
};
// 128x64 OLED model sh1106
&xiao_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <129>;
height = <64>;
segment-offset = <1>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x128 OLED model sh1107
&xiao_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <120>;
height = <128>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <119>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// ################# niceview working fine START #################
// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/
// @bravekarma nice Discord server
// The &gpioX Y and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF
// pin numbers), &xiao_d x uses the unified pinout Dx
&pinctrl {
spi0_default: spi0_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
<NRF_PSEL(SPIM_MOSI, 1, 15)>,
<NRF_PSEL(SPIM_MISO, 1, 14)>;
};
};
spi0_sleep: spi0_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
<NRF_PSEL(SPIM_MOSI, 1, 15)>,
<NRF_PSEL(SPIM_MISO, 1, 14)>;
low-power-enable;
};
};
};
nice_view_spi: &spi0 {
compatible = "nordic,nrf-spim";
pinctrl-0 = <&spi0_default>;
pinctrl-1 = <&spi0_sleep>;
pinctrl-names = "default", "sleep";
cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>; // Pin D6 as CS
};
&xiao_i2c {
status = "disabled";
};
// ################# niceview working fine END #################
*/
// vim: filetype=dts fdm=marker:

View file

@ -0,0 +1,3 @@
# Uncomment to enable encoder
# CONFIG_EC11=y
# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y

View file

@ -0,0 +1,22 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include "lily58.dtsi"
&kscan0 {
col-gpios
= <&pro_micro 19 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 10 GPIO_ACTIVE_HIGH>
;
};
&left_encoder {
status = "okay";
};

View file

@ -0,0 +1,22 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include "lily58.dtsi"
&kscan0 {
col-gpios
= <&pro_micro 19 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 10 GPIO_ACTIVE_HIGH>
;
};
&left_encoder {
status = "okay";
};

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,22 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include "lily58.dtsi"
&default_transform {
col-offset = <6>;
};
&kscan0 {
col-gpios
= <&pro_micro 10 GPIO_ACTIVE_HIGH>
, <&pro_micro 16 GPIO_ACTIVE_HIGH>
, <&pro_micro 14 GPIO_ACTIVE_HIGH>
, <&pro_micro 15 GPIO_ACTIVE_HIGH>
, <&pro_micro 18 GPIO_ACTIVE_HIGH>
, <&pro_micro 19 GPIO_ACTIVE_HIGH>
;
};

View file

@ -0,0 +1,58 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
if SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO
config ZMK_KEYBOARD_NAME
default "Aurora Sofle"
config ZMK_SPLIT_ROLE_CENTRAL
default y
endif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT
if SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT || SHIELD_SPLITKB_AURORA_SOFLE_LEFT_PERIPHERAL || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO
config ZMK_SPLIT
default y
config ZMK_RGB_UNDERGLOW
select WS2812_STRIP
select SPI
if ZMK_DISPLAY
config SSD1306
default y
config I2C
default y
if SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO
choice ZMK_DISPLAY_WORK_QUEUE
default ZMK_DISPLAY_WORK_QUEUE_DEDICATED
endchoice
endif
endif # ZMK_DISPLAY
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 # LVGL
endif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT

View file

@ -0,0 +1,17 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
config SHIELD_SPLITKB_AURORA_SOFLE_LEFT
def_bool $(shields_list_contains,splitkb_aurora_sofle_left)
config SHIELD_SPLITKB_AURORA_SOFLE_RIGHT
def_bool $(shields_list_contains,splitkb_aurora_sofle_right)
config SHIELD_SPLITKB_AURORA_SOFLE_LEFT_PERIPHERAL
def_bool $(shields_list_contains,splitkb_aurora_sofle_left_peripheral)
config SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO
def_bool $(shields_list_contains,splitkb_aurora_sofle_dongle_xiao)
config SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO
def_bool $(shields_list_contains,splitkb_aurora_sofle_dongle_pro_micro)

View file

@ -0,0 +1,45 @@
#include <dt-bindings/led/led.h>
&pinctrl {
spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
};
};
spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
low-power-enable;
};
};
};
&spi3 {
compatible = "nordic,nrf-spim";
status = "okay";
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep";
led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi";
/* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>;
/* WS2812 */
chain-length = <6>; /* arbitrary; change at will */
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
};
};
/ {
chosen {
zmk,underglow = &led_strip;
};
};

View file

@ -0,0 +1,45 @@
#include <dt-bindings/led/led.h>
&pinctrl {
spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
};
};
spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 0, 6)>;
low-power-enable;
};
};
};
&spi3 {
compatible = "nordic,nrf-spim";
status = "okay";
pinctrl-0 = <&spi3_default>;
pinctrl-1 = <&spi3_sleep>;
pinctrl-names = "default", "sleep";
led_strip: ws2812@0 {
compatible = "worldsemi,ws2812-spi";
/* SPI */
reg = <0>; /* ignored, but necessary for SPI bindings */
spi-max-frequency = <4000000>;
/* WS2812 */
chain-length = <6>; /* arbitrary; change at will */
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
};
};
/ {
chosen {
zmk,underglow = &led_strip;
};
};

View file

@ -0,0 +1,9 @@
# Uncomment these two line to add support for encoders to your firmware
# CONFIG_EC11=y
# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
# Uncomment the following line to enable the OLED Display
# CONFIG_ZMK_DISPLAY=y
# Uncomment the following lines to enable RGB underglow
# CONFIG_ZMK_RGB_UNDERGLOW=y

View file

@ -0,0 +1,83 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/josefadamcik/sofle.dtsi>
&josefadamcik_sofle_layout {
transform = <&default_transform>;
};
/ {
chosen {
zephyr,display = &oled;
zmk,physical-layout = &josefadamcik_sofle_layout;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <14>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 |
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
>;
};
left_encoder: left_encoder {
compatible = "alps,ec11";
steps = <144>;
status = "disabled";
a-gpios = <&pro_micro 16 GPIO_PULL_UP>;
b-gpios = <&pro_micro 10 GPIO_PULL_UP>;
};
right_encoder: right_encoder {
compatible = "alps,ec11";
steps = <144>;
status = "disabled";
a-gpios = <&pro_micro 16 GPIO_PULL_UP>;
b-gpios = <&pro_micro 10 GPIO_PULL_UP>;
};
sensors: sensors {
compatible = "zmk,keymap-sensors";
sensors = <&left_encoder &right_encoder>;
triggers-per-rotation = <36>;
};
};
&pro_micro_i2c {
status = "okay";
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>;
};
};

View file

@ -0,0 +1,78 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
/* Uncomment this block if using RGB
&led_strip {
chain-length = <6>;
// chain-length = <35>; // Uncomment if using both per-key and underglow LEDs
// chain-length = <29>; // Uncomment if using only per-key LEDs.
};
*/
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
// ------------------------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT |
// |CTRL | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | RALT |
bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS
&kp LCTRL &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 LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&kp LCTRL &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI &kp RALT
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
lower_layer {
// ------------------------------------------------------------------------------------------------------------
// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ |
// | | | | | | | | | | | _ | + | { | } | "|" |
// | | | | | | | | | | | |
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12
&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &kp TILDE
&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
raise_layer {
// ------------------------------------------------------------------------------------------------------------
// | | | | | | | | | | | | | |
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | |
// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ |
// | | | | | | | | | | | |
bindings = <
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans
&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
};
};

View file

@ -0,0 +1,19 @@
file_format: "1"
id: splitkb_aurora_sofle
name: splitkb.com Aurora Sofle
type: shield
url: https://splitkb.com/products/aurora-sofle-pcb-kit
requires: [pro_micro]
exposes: [i2c_oled]
features:
- keys
- display
- encoder
- underglow
- studio
siblings:
- splitkb_aurora_sofle_left
- splitkb_aurora_sofle_right
- splitkb_aurora_sofle_left_peripheral
- splitkb_aurora_sofle_dongle_xiao
- splitkb_aurora_sofle_dongle_pro_micro

View file

@ -0,0 +1,30 @@
# MC:
# compatible con todas las versiones de nrf52840 (pro_micro):
# - nice_nano (no probado)
# - nice_nano_v2 (probado)
# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado)
# - nrfmicro_11 (no probado)
# - nrfmicro_11_flipped (no probado)
# - nrfmicro_13 (no probado)
# - puchi_ble_v1 (probado)
### DONGLE MODE
CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2
### DONGLE OPTIONS
# 3 profiles (n+2)
CONFIG_BT_MAX_CONN=5
CONFIG_BT_MAX_PAIRED=5
### DISPLAY DONGLE OPTIONS
CONFIG_ZMK_DISPLAY=y
CONFIG_BT_BAS=n
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
### POWER OPTIONS
# La unidad del intervalo del informe de energía de la batería es segundos
CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

View file

@ -0,0 +1,149 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/josefadamcik/sofle.dtsi>
&josefadamcik_sofle_layout {
transform = <&default_transform>;
};
/ {
chosen {
zephyr,display = &oled;
zmk,kscan = &mock_kscan;
zmk,physical-layout = &josefadamcik_sofle_layout;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <14>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 |
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
>;
};
mock_kscan: kscan_0 {
compatible = "zmk,kscan-mock";
// wakeup-source;
columns = <0>;
rows = <0>;
events = <0>;
};
// TODO: per-key RGB node(s)?
};
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
/*
// 128x64 OLED
&pro_micro_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x32 OLED
&pro_micro_i2c {
status = "okay";
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>;
};
};
// 128x64 OLED model sh1106
&pro_micro_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <129>;
height = <64>;
segment-offset = <1>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x128 OLED model sh1107
&pro_micro_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <120>;
height = <128>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <119>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
*/
// vim: filetype=dts fdm=marker:

View file

@ -0,0 +1,24 @@
# MC:
# compatible con todas las versiones de nrf52840 (xiao):
# - seeeduino_xiao_ble (probado)
### DONGLE MODE
CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2
### DONGLE OPTIONS
# 3 profiles (n+2)
CONFIG_BT_MAX_CONN=5
CONFIG_BT_MAX_PAIRED=5
### DISPLAY DONGLE OPTIONS
CONFIG_ZMK_DISPLAY=y
CONFIG_BT_BAS=n
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
### POWER OPTIONS
# La unidad del intervalo del informe de energía de la batería es segundos
CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

View file

@ -0,0 +1,186 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <layouts/josefadamcik/sofle.dtsi>
&josefadamcik_sofle_layout {
transform = <&default_transform>;
};
/ {
chosen {
zephyr,display = &oled;
zmk,kscan = &mock_kscan;
zmk,physical-layout = &josefadamcik_sofle_layout;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <14>;
rows = <5>;
// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 |
// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 |
// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 |
// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 |
// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 |
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11)
RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11)
RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
>;
};
mock_kscan: kscan_0 {
compatible = "zmk,kscan-mock";
// wakeup-source;
columns = <0>;
rows = <0>;
events = <0>;
};
// TODO: per-key RGB node(s)?
};
&xiao_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
/*
// 128x64 OLED
&xiao_i2c {
status = "okay";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
width = <128>;
height = <64>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x32 OLED
&xiao_i2c {
status = "okay";
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>;
};
};
// 128x64 OLED model sh1106
&xiao_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <129>;
height = <64>;
segment-offset = <1>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <63>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// 128x128 OLED model sh1107
&xiao_i2c {
status = "okay";
oled: sh1106@3c {
compatible = "sinowealth,sh1106";
reg = <0x3c>;
width = <120>;
height = <128>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <119>;
segment-remap;
com-invdir;
inversion-on;
prechargep = <0x22>;
};
};
// ################# niceview working fine START #################
// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/
// @bravekarma nice Discord server
// The &gpioX Y and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF
// pin numbers), &xiao_d x uses the unified pinout Dx
&pinctrl {
spi0_default: spi0_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
<NRF_PSEL(SPIM_MOSI, 1, 15)>,
<NRF_PSEL(SPIM_MISO, 1, 14)>;
};
};
spi0_sleep: spi0_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 1, 13)>,
<NRF_PSEL(SPIM_MOSI, 1, 15)>,
<NRF_PSEL(SPIM_MISO, 1, 14)>;
low-power-enable;
};
};
};
nice_view_spi: &spi0 {
compatible = "nordic,nrf-spim";
pinctrl-0 = <&spi0_default>;
pinctrl-1 = <&spi0_sleep>;
pinctrl-names = "default", "sleep";
cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>; // Pin D6 as CS
};
&xiao_i2c {
status = "disabled";
};
// ################# niceview working fine END #################
*/
// vim: filetype=dts fdm=marker:

View file

@ -0,0 +1,43 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "splitkb_aurora_sofle.dtsi"
/ {
chosen {
zmk,kscan = &kscan;
};
kscan: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
;
col-gpios
= <&pro_micro 9 GPIO_ACTIVE_HIGH>
, <&pro_micro 8 GPIO_ACTIVE_HIGH>
, <&pro_micro 7 GPIO_ACTIVE_HIGH>
, <&pro_micro 6 GPIO_ACTIVE_HIGH>
, <&pro_micro 5 GPIO_ACTIVE_HIGH>
, <&pro_micro 4 GPIO_ACTIVE_HIGH>
;
};
};
&left_encoder {
status = "okay";
};

View file

@ -0,0 +1,41 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "splitkb_aurora_sofle.dtsi"
/ {
chosen {
zmk,kscan = &kscan;
};
kscan: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
;
col-gpios
= <&pro_micro 9 GPIO_ACTIVE_HIGH>
, <&pro_micro 8 GPIO_ACTIVE_HIGH>
, <&pro_micro 7 GPIO_ACTIVE_HIGH>
, <&pro_micro 6 GPIO_ACTIVE_HIGH>
, <&pro_micro 5 GPIO_ACTIVE_HIGH>
, <&pro_micro 4 GPIO_ACTIVE_HIGH>
;
};
};
&left_encoder {
status = "okay";
};

View file

@ -0,0 +1,45 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include "splitkb_aurora_sofle.dtsi"
/ {
chosen {
zmk,kscan = &kscan;
};
kscan: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
, <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)>
;
col-gpios
= <&pro_micro 6 GPIO_ACTIVE_HIGH>
, <&pro_micro 7 GPIO_ACTIVE_HIGH>
, <&pro_micro 8 GPIO_ACTIVE_HIGH>
, <&pro_micro 9 GPIO_ACTIVE_HIGH>
, <&pro_micro 4 GPIO_ACTIVE_HIGH>
, <&pro_micro 5 GPIO_ACTIVE_HIGH>
;
};
};
&right_encoder {
status = "okay";
};
&default_transform {
col-offset = <6>;
};

View file

@ -185,28 +185,87 @@ include:
cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_sofle_left_peripheral_oled artifact-name: nice_sofle_left_peripheral_oled
# Xiao_Dongle + oled adapter # Xiao_Dongle
- board: seeeduino_xiao_ble - board: seeeduino_xiao_ble
shield: sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display shield: sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: xiao_sofle_dongle_xiao_oled artifact-name: xiao_sofle_dongle_xiao_oled
snippet: studio-rpc-usb-uart snippet: studio-rpc-usb-uart
# ProMicro_Dongle + dongle_display # ProMicro_Dongle
- board: nice_nano_v2 - board: nice_nano_v2
shield: sofle_dongle_pro_micro dongle_display shield: sofle_dongle_pro_micro dongle_display
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000 cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_sofle_dongle_oled artifact-name: nice_sofle_dongle_oled
snippet: studio-rpc-usb-uart snippet: studio-rpc-usb-uart
# ProMicro_Dongle + dongle_display!view
- board: puchi_ble_v1
shield: sofle_dongle_pro_micro nice_view_adapter dongle_display_view_pro_micro
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_PV\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: puchi_sofle_dongle_view
snippet: studio-rpc-usb-uart
### SOFLEV2 SOFLEV1 SOFLEPLUS END ### ### SOFLEV2 SOFLEV1 SOFLEPLUS END ###
### LILY58 START ###
# nice!oled lily58
- board: nice_nano_v2
shield: lily58_left nice_oled
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"lily58_Oled\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_lily58_left_oled
snippet: studio-rpc-usb-uart
- board: nice_nano_v2
shield: lily58_right nice_oled
cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_lily58_right_oled
# peripheral_left
- board: nice_nano_v2
shield: lily58_left_peripheral nice_oled
cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_lily58_left_peripheral_oled
# Xiao_Dongle
- board: seeeduino_xiao_ble
shield: lily58_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"lily58Dongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: xiao_lily58_dongle_xiao_oled
snippet: studio-rpc-usb-uart
# ProMicro_Dongle
- board: nice_nano_v2
shield: lily58_dongle_pro_micro dongle_display
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"lily58Dongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_lily58_dongle_oled
snippet: studio-rpc-usb-uart
### LILY58 END ###
### SPLITKB AURORA SOFLE START ###
# nice!oled splitkb_aurora_sofle
- board: nice_nano_v2
shield: splitkb_aurora_sofle_left nice_oled
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"A_Sofle_Oled\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_splitkb_aurora_sofle_left_oled
snippet: studio-rpc-usb-uart
- board: nice_nano_v2
shield: splitkb_aurora_sofle_right nice_oled
cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_splitkb_aurora_sofle_right_oled
# peripheral_left
- board: nice_nano_v2
shield: splitkb_aurora_sofle_left_peripheral nice_oled
cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_splitkb_aurora_sofle_left_peripheral_oled
# Xiao_Dongle
- board: seeeduino_xiao_ble
shield: splitkb_aurora_sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"A_SofleDongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: xiao_splitkb_aurora_sofle_dongle_xiao_oled
snippet: studio-rpc-usb-uart
# ProMicro_Dongle
- board: nice_nano_v2
shield: splitkb_aurora_sofle_dongle_pro_micro dongle_display
cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"A_SofleDongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000
artifact-name: nice_splitkb_aurora_sofle_dongle_oled
snippet: studio-rpc-usb-uart
### SPLITKB AURORA SOFLE END ###
### SETTINGS_RESET START ### ### SETTINGS_RESET START ###
- board: nice_nano_v2 - board: nice_nano_v2
shield: settings_reset shield: settings_reset

View file

@ -150,19 +150,91 @@ parse_config:
'&bt BT_SEL 3': BT 4 '&bt BT_SEL 3': BT 4
'&bt BT_SEL 4': BT 5 '&bt BT_SEL 4': BT 5
'&mmv MOVE_UP': Mouse ↑ # Display
'&mmv MOVE_DOWN': Mouse ↓ 'DISPLAY_UP': {t: $$mdi:television-classic$$, h: $$mdi:arrow-up$$, type: tap_dance}
'&mmv MOVE_LEFT': Mouse ← 'DISPLAY_DOWN': {t: $$mdi:television-classic$$, h: $$mdi:arrow-down$$, type: tap_dance}
'&mmv MOVE_RIGHT': Mouse → 'DISPLAY_LEFT': {t: $$mdi:television-classic$$, h: $$mdi:arrow-left$$, type: tap_dance}
'DISPLAY_RIGHT': {t: $$mdi:television-classic$$, h: $$mdi:arrow-right$$, type: tap_dance}
'DISPLAY_SPACE': {t: $$mdi:television-classic$$, h: $$mdi:keyboard-space$$, type: tap_dance}
'&msc SCRL_UP': Scroll ↑
'&msc SCRL_DOWN': Scroll ↓
'&msc SCRL_LEFT': Scroll ←
'&msc SCRL_RIGHT': Scroll →
'&mkp MCLK': Middle Click # Rgb
'&mkp MB4': Back Click '&rgb_ug RGB_TOG': {t: $$mdi:led-on$$, h: $$mdi:toggle-switch$$, s: $$mdi:led-outline$$, type: toggle}
'&mkp MB5': Forward Click '&rgb_ug RGB_VAI': {t: $$mdi:led-on$$, s: $$tabler:brightness-up$$, type: sym_by_sym}
'&rgb_ug RGB_VAD': {t: $$mdi:led-outline$$, s: $$tabler:brightness-down$$, type: sym_by_sym}
'&rgb_ug RGB_BRD': {t: $$mdi:led-on$$, s: $$tabler:brightness-up$$, type: sym_by_sym}
'&rgb_ug RGB_BRI': {t: $$mdi:led-outline$$, s: $$tabler:brightness-down$$, type: sym_by_sym}
'&rgb_ug RGB_SAI': {t: $$mdi:led-outline$$, s: $$mdi:eyedropper$$, type: sym_by_sym}
'&rgb_ug RGB_SAD': {t: $$mdi:led-on$$, s: $$mdi:eyedropper$$, type: sym_by_sym}
'&rgb_ug RGB_HUI': {t: $$mdi:led-on$$, s: $$mdi:palette$$, type: sym_by_sym}
'&rgb_ug RGB_HUD': {t: $$mdi:led-outline$$, s: $$mdi:palette$$, type: sym_by_sym}
'&rgb_ug RGB_RMOD': {t: $$mdi:led-on$$, h: $$mdi:page-previous-outline$$, type: tap_dance}
'&rgb_ug RGB_MOD': {t: $$mdi:led-on$$, h: $$mdi:page-next-outline$$, type: tap_dance}
'&rgb_ug RGB_EFF': {t: $$mdi:led-on$$, h: $$mdi:page-previous-outline$$, type: tap_dance}
'&rgb_ug RGB_EFR': {t: $$mdi:led-on$$, h: $$mdi:page-next-outline$$, type: tap_dance}
'&rgb_ug RGB_SPI': {t: $$mdi:led-on$$, h: $$mdi:speedometer$$, type: sym_by_sym}
'&rgb_ug RGB_SPD': {t: $$mdi:led-on$$, h: $$mdi:speedometer-slow$$, type: sym_by_sym}
'&rgb_ug RGB_UP': {t: $$mdi:led-on$$, h: $$mdi:arrow-up$$, type: tap_dance}
'&rgb_ug RGB_DOWN': {t: $$mdi:led-on$$, h: $$mdi:arrow-down$$, type: tap_dance}
'&rgb_ug RGB_LEFT': {t: $$mdi:led-on$$, h: $$mdi:arrow-left$$, type: tap_dance}
'&rgb_ug RGB_RIGHT': {t: $$mdi:led-on$$, h: $$mdi:arrow-right$$, type: tap_dance}
'&rgb_ug RGB_SPACE': {t: $$mdi:led-on$$, h: $$mdi:keyboard-space$$, type: tap_dance}
'&rgb_ug RGB_COLOR_HSB(0,0,100)': {t: $$mdi:led-on$$, h: $$mdi:palette$$, type: tap_dance}
'&rgb_ug RGB_COLOR_HSB(224,100,100)': {t: $$mdi:led-on$$, h: $$mdi:palette$$, type: tap_dance}
# Mouse
'U_WH_L': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-left$$, type: tap_dance}
'U_WH_R': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-right$$, type: tap_dance}
'U_WH_U': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-up$$, type: tap_dance}
'U_WH_D': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-down$$, type: tap_dance}
'U_MS_L': {t: $$mdi:mouse$$, h: $$mdi:arrow-left$$, type: tap_dance}
'U_MS_D': {t: $$mdi:mouse$$, h: $$mdi:arrow-down$$, type: tap_dance}
'U_MS_R': {t: $$mdi:mouse$$, h: $$mdi:arrow-right$$, type: tap_dance}
'U_MS_U': {t: $$mdi:mouse$$, h: $$mdi:arrow-up$$, type: tap_dance}
'CLICK_LEFT': $$mdi:cursor-default-click$$
'CLICK_RIGHT': $$mdi:cursor-default-click-outline$$
'CLICK_MIDDLE': $$mdi:cursor-default-click-outline$$
# '&mmv MOVE_UP': Mouse ↑
# '&mmv MOVE_DOWN': Mouse ↓
# '&mmv MOVE_LEFT': Mouse ←
# '&mmv MOVE_RIGHT': Mouse →
# '&msc SCRL_UP': Scroll ↑
# '&msc SCRL_DOWN': Scroll ↓
# '&msc SCRL_LEFT': Scroll ←
# '&msc SCRL_RIGHT': Scroll →
# '&mkp MCLK': Middle Click
# '&mkp MB4': Back Click
# '&mkp MB5': Forward Click
# layers
'MEDIA_ESC': {t: $$mdi:keyboard-esc$$, h: $$mdi:music-note$$}
'MOUSE_TAB': {t: $$mdi:keyboard-tab$$, h: $$mdi:mouse$$}
'NUMBER_SPACE': {t: $$mdi:keyboard-space$$, h: $$mdi:numeric$$}
'&mo _FUNCTION': $$mdi:function-variant$$
'&mo _CONFIG': $$mdi:cog$$
'&mo _LOCK': $$mdi:lock$$
'&mo _SYMBOL': $$mdi:symbol$$
'&mo _DISPLAY': $$mdi:television-classic$$
'&mo _OLED': $$mdi:television-classic$$
'&mo _LINUX': $$mdi:linux$$
'&mo _RGB': $$mdi:led-on$$
'DE_CAPS': $$mdi:keyboard-caps$$
'TAB': $$mdi:keyboard-tab$$
'&mt LSHFT COMMA': {t: $$mdi:google-downasaur$$, h: $$mdi:apple-keyboard-shift$$, type: tap_dance}
# CONTROL CMD/WINDOWS SHIFT ALT/META/OPTION
'&kp LSHFT': $$mdi:apple-keyboard-shift$$
'&kp LCTRL': $$mdi:apple-keyboard-control$$
'&kp RCTRL': $$mdi:apple-keyboard-control$$
'&kp LGUI': $$mdi:apple-keyboard-command$$
'&kp RGUI': $$mdi:apple-keyboard-command$$
'&kp LALT': $$mdi:apple-keyboard-option$$
'&kp RALT': $$mdi:apple-keyboard-option$$
'&kp RSHFT': $$mdi:apple-keyboard-shift$$
'&kp BSPC': $$mdi:backspace-outline$$
qmk_keycode_map: qmk_keycode_map:
XXXXXXX: '' XXXXXXX: ''
@ -254,6 +326,7 @@ parse_config:
combo_slsh: {draw_separate: true} combo_slsh: {draw_separate: true}
zmk_keycode_map: zmk_keycode_map:
# custom mappings # custom mappings
C_VOL_UP: Vol Up C_VOL_UP: Vol Up
C_VOL_DN: Vol Down C_VOL_DN: Vol Down

View file

@ -14,6 +14,7 @@
compatible = "zmk,keymap"; compatible = "zmk,keymap";
default_layer { default_layer {
display-name = "BAS";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP | // | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | // | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
@ -29,6 +30,7 @@
}; };
lower_layer { lower_layer {
display-name = "LOW";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP | // | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP |
// | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | | // | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | |
@ -44,6 +46,7 @@
}; };
raise_layer { raise_layer {
display-name = "RAI";
// ----------------------------------------------------------------------------------------- // -----------------------------------------------------------------------------------------
// | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP | // | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP |
// | CTRL | | | | | | | - | = | [ | ] | \ | ` | // | CTRL | | | | | | | - | = | [ | ] | \ | ` |

136
config/lily58.conf Normal file
View file

@ -0,0 +1,136 @@
# ========================================
# FileName: corne.conf
# Date: 07.06.2023
# Author: Marcos Chow Castro
# Email: mctechnology170318@gmail.com
# GitHub: https://github.com/mctechnology17
# Brief: configuration file for ZMK firmware
# Board: nice_nano_v2 and puchi_ble_v1
# ╔═╦═╦═╗
# ╔════╗ ║║║║║╔╝
# ║╔╗╔╗║ ║║║║║╚╗
# ╚╝║║╚╝ ║╠═╩╩═╝
# ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗
# ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║
# ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║
# ╚═╩═╝
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
# =========================================
# on config_zmk.h file enable/disable the following options, if you want to
# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y
# mouse config, 1 = enable, 0 = disable, default = 1
# 2 = enable, but with rgb matrix
# #define MC_TECHNOLOGY_MOUSE_ENABLE 1
# rgb matrix config, 1 = enable, 0 = disable, default = 0
# #define MC_TECHNOLOGY_RGB_ENABLE 0
# define macros on for .dtsi file 1 = enable, 0 = disable default = 1
# #define MC_TECHNOLOGY_MACROS_ENABLE 1
### Keyboard name
# CONFIG_ZMK_KEYBOARD_NAME="Nice Lily58 View"
# CONFIG_ZMK_KEYBOARD_NAME="Puchi Lily58 View"
# CONFIG_ZMK_KEYBOARD_NAME="Nice Lily58 Oled"
# CONFIG_ZMK_KEYBOARD_NAME="Puchi Lily58 Oled"
### Boost Bluetooth TX power, also make Bluetooth stronger
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y
# Tune bluetooth profiles for quick select
# CONFIG_BT_MAX_CONN=3
# Uncomment the following line if you facing issue on win 11 connection
# Enables a combination of settings that are planned to be default in future
# versions of ZMK to improve connection stability. This includes changes to
# timing on BLE pairing initiation, restores use of the updated/new LLCP
# implementation, and disables 2M PHY support.
CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y
### POWER OPTIONS
CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_EXT_POWER=y
# 15 min (15*60*1000ms)
# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000
# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo
# CONFIG_ZMK_IDLE_TIMEOUT=60000
# 30 min (30*60*1000ms)
# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000
# CONFIG_ZMK_IDLE_TIMEOUT=120000
# Disable external power when not connected to USB
# CONFIG_ZMK_EXT_POWER_USB_ONLY=y
### MOUSE
# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md
CONFIG_ZMK_MOUSE=y
### ZMK STUDIO
# MC: 2. zmk-studio test START
# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md
CONFIG_ZMK_STUDIO=y
CONFIG_ZMK_STUDIO_LOCKING=n
# MC: zmk-studio test END
### RGB UNDERGLOW
# uncomment to enable RGB Underglow or backlight
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y
# apaga si no se usa el teclado
# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
# 0 Solid color 1 Breathe 2 Spectrum 3 Swirl
# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3
# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento
# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1
# Turn off RGB underglow when keyboard goes into idle state
# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
# # Hue step in degrees (0-359) used by RGB actions default 10
# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30
# # Brightness step in percent used by RGB actions default 10
# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2
# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240
# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10
# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15
# Uncomment the line below to disable external power toggling by the underglow.
# By default toggling the underglow on and off also toggles external power
# on and off. This also causes the display to turn off.
# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n
### OLED DISPLAY
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y
# esto creo que ya no es necesario
# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
### WIDGET SETTINGS
# No Widget configurations added since nice!view has its own custom widgets
# activar solo estos dos widgets
# CONFIG_ZMK_WIDGET_WPM_STATUS=n
# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y
# CONFIG_ZMK_WIDGET_LAYER_STATUS=y
# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y
# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y
### HID para nice!view ePaperDisplay
# Enable eager debouncing
# "Eager Debouncing"
# Trying to lower the input lag.
CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1
CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5
### Improves compatibility with iPad
# ref: https://zmk.dev/docs/config/system#hid
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
# RDP compatibility.
# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y
# NKRO
# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
# enable F13-F24
# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

85
config/lily58.keymap Normal file
View file

@ -0,0 +1,85 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
// ------------------------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT |
// | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI |
display-name = "Bas";
bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS
&kp LCTRL &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 LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
lower_layer {
// ------------------------------------------------------------------------------------------------------------
// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ |
// | | | | | | | | | | | _ | + | { | } | "|" |
// | | | | | | | | | |
display-name = "Low";
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12
&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp TILDE
&trans &trans &trans &trans &trans &trans &trans &trans &trans &kp MINUS &kp KP_PLUS &kp LBRC &kp RBRC &kp PIPE
&trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
raise_layer {
// ------------------------------------------------------------------------------------------------------------
// | | | | | | | | | | | | | |
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | |
// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ |
// | | | | | | | | | |
display-name = "Rai";
bindings = <
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans
&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH
&trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
extra_1 {
status = "reserved";
};
extra_2 {
status = "reserved";
};
extra_3 {
status = "reserved";
};
};
};

View file

@ -14,6 +14,7 @@
compatible = "zmk,keymap"; compatible = "zmk,keymap";
default_layer { default_layer {
display-name = "BAS";
// ------------------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------------
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | // | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | ESC | Q | W | E | R | T | | Y | U | I | O | P | BKSPC | // | ESC | Q | W | E | R | T | | Y | U | I | O | P | BKSPC |
@ -33,7 +34,7 @@
}; };
lower_layer { lower_layer {
// TODO: Some binds are waiting for shifted keycode support. display-name = "LOW";
// ------------------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------------
// | ` | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | // | ` | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
// | RAISE | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | // | RAISE | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
@ -53,6 +54,7 @@
}; };
raise_layer { raise_layer {
display-name = "RAI";
// ------------------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------------------
// |BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | // |BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | |
// | | INS | PSCR | GUI | | | | PGUP | | | | | | // | | INS | PSCR | GUI | | | | PGUP | | | | | |
@ -70,25 +72,5 @@
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>;
}; };
layer_3 {
bindings = <
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
};
layer_4 {
bindings = <
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
};
}; };
}; };

View file

@ -0,0 +1,140 @@
# ========================================
# FileName: splitkb_aurora_sofle.conf
# Date: 03.01.2025
# Author: Marcos Chow Castro
# Email: mctechnology170318@gmail.com
# GitHub: https://github.com/mctechnology17
# Brief: configuration file for ZMK firmware
# Board: nice_nano_v2 and puchi_ble_v1
# ╔═╦═╦═╗
# ╔════╗ ║║║║║╔╝
# ║╔╗╔╗║ ║║║║║╚╗
# ╚╝║║╚╝ ║╠═╩╩═╝
# ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗
# ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║
# ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║
# ╚═╩═╝
# Copyright (c) 2020 The ZMK Contributors
# SPDX-License-Identifier: MIT
# =========================================
# on config_zmk.h file enable/disable the following options, if you want to
# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y
# mouse config, 1 = enable, 0 = disable, default = 1
# 2 = enable, but with rgb matrix
# #define MC_TECHNOLOGY_MOUSE_ENABLE 1
# rgb matrix config, 1 = enable, 0 = disable, default = 0
# #define MC_TECHNOLOGY_RGB_ENABLE 0
# define macros on for .dtsi file 1 = enable, 0 = disable default = 1
# #define MC_TECHNOLOGY_MACROS_ENABLE 1
### Keyboard name
# CONFIG_ZMK_KEYBOARD_NAME="Nice splitkb_aurora_sofle View"
# CONFIG_ZMK_KEYBOARD_NAME="Puchi splitkb_aurora_sofle View"
# CONFIG_ZMK_KEYBOARD_NAME="Nice splitkb_aurora_sofle Oled"
# CONFIG_ZMK_KEYBOARD_NAME="Puchi splitkb_aurora_sofle Oled"
### Boost Bluetooth TX power, also make Bluetooth stronger
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y
# Tune bluetooth profiles for quick select
# CONFIG_BT_MAX_CONN=3
# Uncomment the following line if you facing issue on win 11 connection
# Enables a combination of settings that are planned to be default in future
# versions of ZMK to improve connection stability. This includes changes to
# timing on BLE pairing initiation, restores use of the updated/new LLCP
# implementation, and disables 2M PHY support.
CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y
### POWER OPTIONS
CONFIG_ZMK_SLEEP=y
CONFIG_ZMK_EXT_POWER=y
# 15 min (15*60*1000ms)
# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000
# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo
# CONFIG_ZMK_IDLE_TIMEOUT=60000
# 30 min (30*60*1000ms)
# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000
# CONFIG_ZMK_IDLE_TIMEOUT=120000
# Disable external power when not connected to USB
# CONFIG_ZMK_EXT_POWER_USB_ONLY=y
### MOUSE
# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md
CONFIG_ZMK_MOUSE=y
### ZMK STUDIO
# MC: 2. zmk-studio test START
# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md
CONFIG_ZMK_STUDIO=y
CONFIG_ZMK_STUDIO_LOCKING=n
# MC: zmk-studio test END
### RGB UNDERGLOW
# uncomment to enable RGB Underglow or backlight
# CONFIG_ZMK_RGB_UNDERGLOW=y
# CONFIG_WS2812_STRIP=y
# apaga si no se usa el teclado
# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
# 0 Solid color 1 Breathe 2 Spectrum 3 Swirl
# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3
# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento
# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1
# Turn off RGB underglow when keyboard goes into idle state
# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
# # Hue step in degrees (0-359) used by RGB actions default 10
# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30
# # Brightness step in percent used by RGB actions default 10
# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2
# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240
# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10
# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15
# Uncomment the line below to disable external power toggling by the underglow.
# By default toggling the underglow on and off also toggles external power
# on and off. This also causes the display to turn off.
# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n
### OLED DISPLAY
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y
# esto creo que ya no es necesario
# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
### WIDGET SETTINGS
# No Widget configurations added since nice!view has its own custom widgets
# activar solo estos dos widgets
# CONFIG_ZMK_WIDGET_WPM_STATUS=n
# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y
# CONFIG_ZMK_WIDGET_LAYER_STATUS=y
# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y
# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y
### HID para nice!view ePaperDisplay
# Enable eager debouncing
# "Eager Debouncing"
# Trying to lower the input lag.
CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1
CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5
### Improves compatibility with iPad
# ref: https://zmk.dev/docs/config/system#hid
CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
# RDP compatibility.
# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y
# NKRO
# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y
# enable F13-F24
# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000
### ENABLE ENCODER
CONFIG_EC11=y
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y

View file

@ -0,0 +1,93 @@
/*
* Copyright (c) 2023 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
/* Uncomment this block if using RGB
&led_strip {
chain-length = <6>;
// chain-length = <35>; // Uncomment if using both per-key and underglow LEDs
// chain-length = <29>; // Uncomment if using only per-key LEDs.
};
*/
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
display-name = "BAS";
// ------------------------------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - |
// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' |
// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT |
// |CTRL | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | RALT |
bindings = <
&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS
&kp LCTRL &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 LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&kp LCTRL &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI &kp RALT
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
lower_layer {
display-name = "LOW";
// ------------------------------------------------------------------------------------------------------------
// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ |
// | | | | | | | | | | | _ | + | { | } | "|" |
// | | | | | | | | | | | |
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12
&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &kp TILDE
&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
raise_layer {
display-name = "RAI";
// ------------------------------------------------------------------------------------------------------------
// | | | | | | | | | | | | | |
// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | |
// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ |
// | | | | | | | | | | | |
bindings = <
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans
&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans
&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>;
sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>;
};
extra_1 {
status = "reserved";
};
extra_2 {
status = "reserved";
};
extra_3 {
status = "reserved";
};
};
};

View file

@ -1,4 +1,21 @@
<svg width="920" height="1048" viewBox="0 0 920 1048" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="920" height="1048" viewBox="0 0 920 1048" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>/* start glyphs */
<svg id="mdi:apple-keyboard-command">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-command" viewBox="0 0 24 24"><path d="M6,2A4,4 0 0,1 10,6V8H14V6A4,4 0 0,1 18,2A4,4 0 0,1 22,6A4,4 0 0,1 18,10H16V14H18A4,4 0 0,1 22,18A4,4 0 0,1 18,22A4,4 0 0,1 14,18V16H10V18A4,4 0 0,1 6,22A4,4 0 0,1 2,18A4,4 0 0,1 6,14H8V10H6A4,4 0 0,1 2,6A4,4 0 0,1 6,2M16,18A2,2 0 0,0 18,20A2,2 0 0,0 20,18A2,2 0 0,0 18,16H16V18M14,10H10V14H14V10M6,16A2,2 0 0,0 4,18A2,2 0 0,0 6,20A2,2 0 0,0 8,18V16H6M8,6A2,2 0 0,0 6,4A2,2 0 0,0 4,6A2,2 0 0,0 6,8H8V6M18,8A2,2 0 0,0 20,6A2,2 0 0,0 18,4A2,2 0 0,0 16,6V8H18Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-control">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-control" viewBox="0 0 24 24"><path d="M19.78,11.78L18.36,13.19L12,6.83L5.64,13.19L4.22,11.78L12,4L19.78,11.78Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-option">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-option" viewBox="0 0 24 24"><path d="M3,4H9.11L16.15,18H21V20H14.88L7.84,6H3V4M14,4H21V6H14V4Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-shift">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-shift" viewBox="0 0 24 24"><path d="M15,18V12H17.17L12,6.83L6.83,12H9V18H15M12,4L22,14H17V20H7V14H2L12,4Z" /></svg>
</svg>
<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>
</defs>/* end glyphs */
<style>/* inherit to force styles through use tags */ <style>/* inherit to force styles through use tags */
svg path { svg path {
fill: inherit; fill: inherit;
@ -67,8 +84,8 @@ text.footer {
paint-order: stroke; paint-order: stroke;
} }
/* styling for combo tap, and key hold/shifted label text */ /* styling for combo tap, and key non-tap label text */
text.combo, text.hold, text.shifted { text.combo, text.hold, text.shifted, text.left, text.right {
font-size: 11px; font-size: 11px;
} }
@ -82,12 +99,20 @@ text.shifted {
dominant-baseline: hanging; dominant-baseline: hanging;
} }
text.left {
text-anchor: start;
}
text.right {
text-anchor: end;
}
text.layer-activator { text.layer-activator {
text-decoration: underline; text-decoration: underline;
} }
/* styling for hold/shifted label text in combo box */ /* styling for hold/shifted label text in combo box */
text.combo.hold, text.combo.shifted { text.combo.hold, text.combo.shifted, text.combo.left, text.combo.right {
font-size: 8px; font-size: 8px;
} }
@ -207,8 +232,8 @@ rect.held, rect.combo.held {
visibility: hidden; visibility: hidden;
} }
</style> </style>
<g transform="translate(40, 0)" class="layer-default"> <g transform="translate(40, 0)" class="layer-BAS">
<text x="0" y="28" class="label" id="default">default:</text> <text x="0" y="28" class="label" id="BAS">BAS:</text>
<g transform="translate(0, 56)"> <g transform="translate(0, 56)">
<g transform="translate(28, 49)" class="key keypos-0"> <g transform="translate(28, 49)" class="key keypos-0">
<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"/>
@ -256,11 +281,11 @@ rect.held, rect.combo.held {
</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"/>
<text x="0" y="0" class="key tap"></text> <use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g> </g>
<g transform="translate(28, 105)" class="key keypos-12"> <g transform="translate(28, 105)" class="key keypos-12">
<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">Ctrl</text> <use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g> </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"/>
@ -308,7 +333,7 @@ rect.held, rect.combo.held {
</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"/>
<text x="0" y="0" class="key tap">Shift</text> <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 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"/>
@ -356,12 +381,12 @@ 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">Gui</text> <use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</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"/>
<a href="#lower"> <a href="#LOW">
<text x="0" y="0" class="key tap layer-activator">lower</text> <text x="0" y="0" class="key tap layer-activator">LOW</text>
</a></g> </a></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"/>
@ -373,17 +398,17 @@ rect.held, rect.combo.held {
</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"/>
<a href="#raise"> <a href="#RAI">
<text x="0" y="0" class="key tap layer-activator">raise</text> <text x="0" y="0" class="key tap layer-activator">RAI</text>
</a></g> </a></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">Alt</text> <use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g> </g>
</g> </g>
</g> </g>
<g transform="translate(40, 331)" class="layer-lower"> <g transform="translate(40, 331)" class="layer-LOW">
<text x="0" y="28" class="label" id="lower">lower:</text> <text x="0" y="28" class="label" id="LOW">LOW:</text>
<g transform="translate(0, 56)"> <g transform="translate(0, 56)">
<g transform="translate(28, 49)" class="key keypos-0"> <g transform="translate(28, 49)" class="key keypos-0">
<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"/>
@ -431,7 +456,7 @@ rect.held, rect.combo.held {
</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"/>
<text x="0" y="0" class="key tap"></text> <use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g> </g>
<g transform="translate(28, 105)" class="key keypos-12"> <g transform="translate(28, 105)" class="key keypos-12">
<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"/>
@ -495,7 +520,7 @@ rect.held, rect.combo.held {
</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"/>
<text x="0" y="0" class="key tap">Shift</text> <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 trans keypos-25"> <g transform="translate(84, 161)" class="key trans keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
@ -543,7 +568,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">Gui</text> <use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g> </g>
<g transform="translate(286, 213) rotate(15.0)" class="key held keypos-37"> <g transform="translate(286, 213) rotate(15.0)" class="key held keypos-37">
<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"/>
@ -562,12 +587,12 @@ 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">Alt</text> <use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g> </g>
</g> </g>
</g> </g>
<g transform="translate(40, 661)" class="layer-raise"> <g transform="translate(40, 661)" class="layer-RAI">
<text x="0" y="28" class="label" id="raise">raise:</text> <text x="0" y="28" class="label" id="RAI">RAI:</text>
<g transform="translate(0, 56)"> <g transform="translate(0, 56)">
<g transform="translate(28, 49)" class="key keypos-0"> <g transform="translate(28, 49)" class="key keypos-0">
<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"/>
@ -617,11 +642,11 @@ rect.held, rect.combo.held {
</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"/>
<text x="0" y="0" class="key tap"></text> <use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g> </g>
<g transform="translate(28, 105)" class="key keypos-12"> <g transform="translate(28, 105)" class="key keypos-12">
<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">Ctrl</text> <use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g> </g>
<g transform="translate(84, 105)" class="key trans keypos-13"> <g transform="translate(84, 105)" class="key trans keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
@ -673,7 +698,7 @@ rect.held, rect.combo.held {
</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"/>
<text x="0" y="0" class="key tap">Shift</text> <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 trans keypos-25"> <g transform="translate(84, 161)" class="key trans keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
@ -721,7 +746,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">Gui</text> <use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</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"/>
@ -741,7 +766,7 @@ 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">Alt</text> <use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g> </g>
</g> </g>
</g> </g>

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Before After
Before After

View file

@ -1,7 +1,8 @@
layout: {qmk_keyboard: corne_rotated, layout_name: LAYOUT_split_3x6_3} layout: {qmk_keyboard: corne_rotated, layout_name: LAYOUT_split_3x6_3}
layers: layers:
default: [↹, Q, W, E, R, T, Y, U, I, O, P, ⌫, Ctrl, A, S, D, F, G, H, J, K, L, ;, '''', Shift, Z, X, C, V, B, N, M, ',', ., /, Esc, Gui, lower, ␣, ⏎, raise, Alt] BAS: [↹, Q, W, E, R, T, Y, U, I, O, P, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K, L, ;, '''', '$$mdi:apple-keyboard-shift$$',
lower: Z, X, C, V, B, N, M, ',', ., /, Esc, '$$mdi:apple-keyboard-command$$', LOW, ␣, ⏎, RAI, '$$mdi:apple-keyboard-option$$']
LOW:
- -
- '1' - '1'
- '2' - '2'
@ -13,7 +14,7 @@ layers:
- '8' - '8'
- '9' - '9'
- '0' - '0'
- - $$mdi:backspace-outline$$
- BT CLR - BT CLR
- BT 1 - BT 1
- BT 2 - BT 2
@ -26,7 +27,7 @@ layers:
- -
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- Shift - $$mdi:apple-keyboard-shift$$
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
@ -38,13 +39,13 @@ layers:
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- Gui - $$mdi:apple-keyboard-command$$
- {type: held} - {type: held}
- -
- -
- {t: ▽, type: trans} - {t: ▽, type: trans}
- Alt - $$mdi:apple-keyboard-option$$
raise: RAI:
- -
- '!' - '!'
- '@' - '@'
@ -56,8 +57,8 @@ layers:
- KP MULTIPLY - KP MULTIPLY
- ( - (
- ) - )
- - $$mdi:backspace-outline$$
- Ctrl - $$mdi:apple-keyboard-control$$
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- '&mkp LCLK' - '&mkp LCLK'
@ -69,7 +70,7 @@ layers:
- ']' - ']'
- \ - \
- '`' - '`'
- Shift - $$mdi:apple-keyboard-shift$$
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
@ -81,9 +82,9 @@ layers:
- '}' - '}'
- '|' - '|'
- '~' - '~'
- Gui - $$mdi:apple-keyboard-command$$
- '&studio_unlock' - '&studio_unlock'
- -
- -
- {t: '&studio_unlock', type: held} - {t: '&studio_unlock', type: held}
- Alt - $$mdi:apple-keyboard-option$$

964
keymap-drawer/lily58.svg Normal file
View file

@ -0,0 +1,964 @@
<svg width="1004" height="1173" viewBox="0 0 1004 1173" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>/* start glyphs */
<svg id="mdi:apple-keyboard-command">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-command" viewBox="0 0 24 24"><path d="M6,2A4,4 0 0,1 10,6V8H14V6A4,4 0 0,1 18,2A4,4 0 0,1 22,6A4,4 0 0,1 18,10H16V14H18A4,4 0 0,1 22,18A4,4 0 0,1 18,22A4,4 0 0,1 14,18V16H10V18A4,4 0 0,1 6,22A4,4 0 0,1 2,18A4,4 0 0,1 6,14H8V10H6A4,4 0 0,1 2,6A4,4 0 0,1 6,2M16,18A2,2 0 0,0 18,20A2,2 0 0,0 20,18A2,2 0 0,0 18,16H16V18M14,10H10V14H14V10M6,16A2,2 0 0,0 4,18A2,2 0 0,0 6,20A2,2 0 0,0 8,18V16H6M8,6A2,2 0 0,0 6,4A2,2 0 0,0 4,6A2,2 0 0,0 6,8H8V6M18,8A2,2 0 0,0 20,6A2,2 0 0,0 18,4A2,2 0 0,0 16,6V8H18Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-control">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-control" viewBox="0 0 24 24"><path d="M19.78,11.78L18.36,13.19L12,6.83L5.64,13.19L4.22,11.78L12,4L19.78,11.78Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-option">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-option" viewBox="0 0 24 24"><path d="M3,4H9.11L16.15,18H21V20H14.88L7.84,6H3V4M14,4H21V6H14V4Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-shift">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-shift" viewBox="0 0 24 24"><path d="M15,18V12H17.17L12,6.83L6.83,12H9V18H15M12,4L22,14H17V20H7V14H2L12,4Z" /></svg>
</svg>
<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>
</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-kerning: normal;
text-rendering: optimizeLegibility;
fill: #24292e;
}
/* default key styling */
rect.key {
fill: #f6f8fa;
}
rect.key, rect.combo {
stroke: #c9cccf;
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: #cdf;
}
/* color accent for held keys */
rect.held, rect.combo.held {
fill: #fdd;
}
/* 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;
stroke: white;
stroke-width: 4;
paint-order: stroke;
}
/* styling for optional footer */
text.footer {
text-anchor: end;
dominant-baseline: auto;
stroke: white;
stroke-width: 4;
paint-order: stroke;
}
/* styling for combo tap, and key non-tap label text */
text.combo, text.hold, text.shifted, text.left, text.right {
font-size: 11px;
}
text.hold {
text-anchor: middle;
dominant-baseline: auto;
}
text.shifted {
text-anchor: middle;
dominant-baseline: hanging;
}
text.left {
text-anchor: start;
}
text.right {
text-anchor: end;
}
text.layer-activator {
text-decoration: underline;
}
/* styling for hold/shifted label text in combo box */
text.combo.hold, text.combo.shifted, text.combo.left, text.combo.right {
font-size: 8px;
}
/* lighter symbol for transparent keys */
text.trans {
fill: #7b7e81;
}
/* 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: inherit;
stroke: inherit;
stroke-width: 2;
}
/* hide tabler's default box */
.icon-tabler > path[stroke="none"][fill="none"] {
visibility: hidden;
}
/* End Tabler Icons Cleanup */
/* For default sytles, see https://github.com/caksoylar/keymap-drawer/blob/main/keymap_drawer/config.py#L85 */
svg.keymap {
font-family: Ubuntu Mono, Inconsolata, Consolas, Liberation Mono, Menlo, monospace;
font-size: 16px;
font-weight: bold;
text-rendering: optimizeLegibility;
}
/* Color accent for held keys
red = #f00
green = #0f0
blue = #00f
yellow = #ff0
cyan = #0ff
magenta = #f0f
white = #fff
black = #000
grey = #888
light grey = #ccc
#ffc
*/
rect.held, rect.combo.held {
fill: #f00;
}
/* Technique borrowed and extended from https://github.com/englmaxi/zmk-config/blob/master/keymap-drawer/config.yaml */
.sym_sub_text.tap {
translate: -5px 2px;
font-size: 20px;
}
.sym_sub_text.shifted {
translate: 10px 13px;
font-size: 10px;
opacity: 1.0;
}
.combo.sym_sub_text.tap {
translate: -1px 1px;
}
.combo.sym_sub_text.shifted {
translate: 7px 5px;
font-size: 10px;
opacity: 1.0;
}
/* Toggle */
.toggle.shifted {
translate: -10px 12px;
}
.toggle.hold {
translate: 13px -23px;
}
/* Variant for tap-dances */
.tap_dance.tap {
translate: -7px 0px;
font-size: 12px;
}
.tap_dance.shifted {
translate: 7px 17px;
font-size: 12px;
opacity: 1.0;
}
/* Variant for symbol next to symbol */
.sym_by_sym.tap {
translate: -6px 0px;
}
.sym_by_sym.shifted {
translate: 10px 12px;
opacity: 1.0;
}
.combo.sym_by_sym.tap {
translate: -35px 0px;
}
.combo.sym_by_sym.shifted {
translate: 35px 20px;
opacity: 1.0;
}
.combo.sym_by_sym.hold {
visibility: hidden;
}
/* hide hold box for combo sym_by_sym */
.combo.sym_by_sym.hold > path[stroke="none"][fill="none"] {
visibility: hidden;
}
</style>
<g transform="translate(40, 0)" class="layer-Bas">
<text x="0" y="28" class="label" id="Bas">Bas:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 56)" class="key keypos-0">
<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>
</g>
<g transform="translate(84, 49)" class="key keypos-1">
<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>
</g>
<g transform="translate(140, 35)" class="key keypos-2">
<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>
</g>
<g transform="translate(196, 28)" class="key keypos-3">
<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>
</g>
<g transform="translate(252, 35)" class="key keypos-4">
<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>
</g>
<g transform="translate(308, 42)" class="key keypos-5">
<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>
</g>
<g transform="translate(616, 42)" class="key keypos-6">
<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>
</g>
<g transform="translate(672, 35)" class="key keypos-7">
<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>
</g>
<g transform="translate(728, 28)" class="key keypos-8">
<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>
</g>
<g transform="translate(784, 35)" class="key keypos-9">
<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>
</g>
<g transform="translate(840, 49)" class="key keypos-10">
<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>
</g>
<g transform="translate(896, 56)" class="key keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" 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="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(84, 105)" class="key keypos-13">
<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>
</g>
<g transform="translate(140, 91)" class="key keypos-14">
<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>
</g>
<g transform="translate(196, 84)" class="key keypos-15">
<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>
</g>
<g transform="translate(252, 91)" class="key keypos-16">
<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>
</g>
<g transform="translate(308, 98)" class="key keypos-17">
<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>
</g>
<g transform="translate(616, 98)" class="key keypos-18">
<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>
</g>
<g transform="translate(672, 91)" class="key keypos-19">
<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>
</g>
<g transform="translate(728, 84)" class="key keypos-20">
<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>
</g>
<g transform="translate(784, 91)" class="key keypos-21">
<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>
</g>
<g transform="translate(840, 105)" class="key keypos-22">
<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>
</g>
<g transform="translate(896, 112)" class="key keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" 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="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g>
<g transform="translate(84, 161)" class="key keypos-25">
<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>
</g>
<g transform="translate(140, 147)" class="key keypos-26">
<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>
</g>
<g transform="translate(196, 140)" class="key keypos-27">
<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>
</g>
<g transform="translate(252, 147)" class="key keypos-28">
<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>
</g>
<g transform="translate(308, 154)" class="key keypos-29">
<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>
</g>
<g transform="translate(616, 154)" class="key keypos-30">
<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>
</g>
<g transform="translate(672, 147)" class="key keypos-31">
<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>
</g>
<g transform="translate(728, 140)" class="key keypos-32">
<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>
</g>
<g transform="translate(784, 147)" class="key keypos-33">
<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>
</g>
<g transform="translate(840, 161)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">;</text>
</g>
<g transform="translate(896, 168)" class="key keypos-35">
<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>
</g>
<g transform="translate(28, 224)" class="key keypos-36">
<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"/>
</g>
<g transform="translate(84, 217)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">Z</text>
</g>
<g transform="translate(140, 203)" class="key keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">X</text>
</g>
<g transform="translate(196, 196)" class="key keypos-39">
<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>
</g>
<g transform="translate(252, 203)" class="key keypos-40">
<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>
</g>
<g transform="translate(308, 210)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">B</text>
</g>
<g transform="translate(364, 182)" class="key keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">[</text>
</g>
<g transform="translate(560, 182)" class="key keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">]</text>
</g>
<g transform="translate(616, 210)" class="key keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">N</text>
</g>
<g transform="translate(672, 203)" class="key keypos-45">
<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>
</g>
<g transform="translate(728, 196)" class="key keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">,</text>
</g>
<g transform="translate(784, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">.</text>
</g>
<g transform="translate(840, 217)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">/</text>
</g>
<g transform="translate(896, 224)" class="key keypos-49">
<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"/>
</g>
<g transform="translate(168, 259)" class="key keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g>
<g transform="translate(224, 260)" class="key keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g>
<g transform="translate(280, 266)" class="key keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<a href="#Low">
<text x="0" y="0" class="key tap layer-activator">Low</text>
</a></g>
<g transform="translate(350, 266) rotate(30.0)" class="key keypos-53">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(574, 266) rotate(-30.0)" class="key keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(644, 266)" class="key keypos-55">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<a href="#Rai">
<text x="0" y="0" class="key tap layer-activator">Rai</text>
</a></g>
<g transform="translate(700, 260)" class="key keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g>
<g transform="translate(756, 260)" class="key keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g>
</g>
</g>
<g transform="translate(40, 372)" class="layer-Low">
<text x="0" y="28" class="label" id="Low">Low:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 56)" class="key keypos-0">
<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">BT</tspan><tspan x="0" dy="1.2em">CLR</tspan>
</text>
</g>
<g transform="translate(84, 49)" class="key keypos-1">
<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">BT</tspan><tspan x="0" dy="1.2em">1</tspan>
</text>
</g>
<g transform="translate(140, 35)" class="key keypos-2">
<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">BT</tspan><tspan x="0" dy="1.2em">2</tspan>
</text>
</g>
<g transform="translate(196, 28)" class="key keypos-3">
<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">BT</tspan><tspan x="0" dy="1.2em">3</tspan>
</text>
</g>
<g transform="translate(252, 35)" class="key keypos-4">
<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">BT</tspan><tspan x="0" dy="1.2em">4</tspan>
</text>
</g>
<g transform="translate(308, 42)" class="key keypos-5">
<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">BT</tspan><tspan x="0" dy="1.2em">5</tspan>
</text>
</g>
<g transform="translate(616, 42)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(672, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(728, 28)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(784, 35)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(840, 49)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(896, 56)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 112)" class="key keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F1</text>
</g>
<g transform="translate(84, 105)" class="key keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F2</text>
</g>
<g transform="translate(140, 91)" class="key keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F3</text>
</g>
<g transform="translate(196, 84)" class="key keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F4</text>
</g>
<g transform="translate(252, 91)" class="key keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F5</text>
</g>
<g transform="translate(308, 98)" class="key keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F6</text>
</g>
<g transform="translate(616, 98)" class="key keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F7</text>
</g>
<g transform="translate(672, 91)" class="key keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F8</text>
</g>
<g transform="translate(728, 84)" class="key keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F9</text>
</g>
<g transform="translate(784, 91)" class="key keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F10</text>
</g>
<g transform="translate(840, 105)" class="key keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F11</text>
</g>
<g transform="translate(896, 112)" class="key keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F12</text>
</g>
<g transform="translate(28, 168)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">`</text>
</g>
<g transform="translate(84, 161)" class="key keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">!</text>
</g>
<g transform="translate(140, 147)" class="key keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" 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="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">#</text>
</g>
<g transform="translate(252, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">$</text>
</g>
<g transform="translate(308, 154)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">%</text>
</g>
<g transform="translate(616, 154)" class="key keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">^</text>
</g>
<g transform="translate(672, 147)" class="key keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">AMPS</text>
</g>
<g transform="translate(728, 140)" class="key keypos-32">
<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" style="font-size: 75%">KP</tspan><tspan x="0" dy="1.2em" style="font-size: 75%">MULTIPLY</tspan>
</text>
</g>
<g transform="translate(784, 147)" class="key keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">(</text>
</g>
<g transform="translate(840, 161)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">)</text>
</g>
<g transform="translate(896, 168)" class="key keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">~</text>
</g>
<g transform="translate(28, 224)" class="key trans keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 217)" class="key trans keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 203)" class="key trans keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 196)" class="key trans keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 203)" class="key trans keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 210)" class="key trans keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(364, 182)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(560, 182)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(616, 210)" class="key trans keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(672, 203)" class="key keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">-</text>
</g>
<g transform="translate(728, 196)" class="key keypos-46">
<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">KP</tspan><tspan x="0" dy="1.2em">PLUS</tspan>
</text>
</g>
<g transform="translate(784, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">{</text>
</g>
<g transform="translate(840, 217)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">}</text>
</g>
<g transform="translate(896, 224)" class="key keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">|</text>
</g>
<g transform="translate(168, 259)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(224, 260)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(280, 266)" class="key held keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/>
</g>
<g transform="translate(350, 266) rotate(30.0)" class="key trans keypos-53">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(574, 266) rotate(-30.0)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 266)" class="key trans keypos-55">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 260)" class="key trans keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 260)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
</g>
</g>
<g transform="translate(40, 745)" class="layer-Rai">
<text x="0" y="28" class="label" id="Rai">Rai:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 56)" class="key trans keypos-0">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 49)" class="key trans keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 35)" class="key trans keypos-2">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 28)" class="key trans keypos-3">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 35)" class="key trans keypos-4">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 42)" class="key trans keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(616, 42)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(672, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(728, 28)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(784, 35)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(840, 49)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(896, 56)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 112)" class="key keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">`</text>
</g>
<g transform="translate(84, 105)" class="key keypos-13">
<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>
</g>
<g transform="translate(140, 91)" class="key keypos-14">
<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>
</g>
<g transform="translate(196, 84)" class="key keypos-15">
<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>
</g>
<g transform="translate(252, 91)" class="key keypos-16">
<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>
</g>
<g transform="translate(308, 98)" class="key keypos-17">
<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>
</g>
<g transform="translate(616, 98)" class="key keypos-18">
<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>
</g>
<g transform="translate(672, 91)" class="key keypos-19">
<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>
</g>
<g transform="translate(728, 84)" class="key keypos-20">
<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>
</g>
<g transform="translate(784, 91)" class="key keypos-21">
<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>
</g>
<g transform="translate(840, 105)" class="key keypos-22">
<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>
</g>
<g transform="translate(896, 112)" class="key trans keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 168)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F1</text>
</g>
<g transform="translate(84, 161)" class="key keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F2</text>
</g>
<g transform="translate(140, 147)" class="key keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F3</text>
</g>
<g transform="translate(196, 140)" class="key keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F4</text>
</g>
<g transform="translate(252, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F5</text>
</g>
<g transform="translate(308, 154)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F6</text>
</g>
<g transform="translate(616, 154)" class="key trans keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(672, 147)" class="key keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(728, 140)" class="key keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(784, 147)" class="key keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(840, 161)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(896, 168)" class="key trans keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 224)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F7</text>
</g>
<g transform="translate(84, 217)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F8</text>
</g>
<g transform="translate(140, 203)" class="key keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F9</text>
</g>
<g transform="translate(196, 196)" class="key keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F10</text>
</g>
<g transform="translate(252, 203)" class="key keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F11</text>
</g>
<g transform="translate(308, 210)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F12</text>
</g>
<g transform="translate(364, 182)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(560, 182)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(616, 210)" class="key keypos-44">
<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">KP</tspan><tspan x="0" dy="1.2em">PLUS</tspan>
</text>
</g>
<g transform="translate(672, 203)" class="key keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">-</text>
</g>
<g transform="translate(728, 196)" class="key keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">=</text>
</g>
<g transform="translate(784, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">[</text>
</g>
<g transform="translate(840, 217)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">]</text>
</g>
<g transform="translate(896, 224)" class="key keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">\</text>
</g>
<g transform="translate(168, 259)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(224, 260)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(280, 266)" class="key trans keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(350, 266) rotate(30.0)" class="key trans keypos-53">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(574, 266) rotate(-30.0)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 266)" class="key held keypos-55">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/>
</g>
<g transform="translate(700, 260)" class="key trans keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 260)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
</g>
</g>
<text x="964.0" y="1145.0" class="footer">Keymap View: <a href="https://github.com/caksoylar/keymap-drawer">keymap-drawer</a></text></svg>

After

Width:  |  Height:  |  Size: 39 KiB

123
keymap-drawer/lily58.yaml Normal file
View file

@ -0,0 +1,123 @@
layout: {qmk_keyboard: lily58_rotated}
layers:
Bas: [Esc, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '`', ↹, Q, W, E, R, T, Y, U, I, O, P, '-', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K,
L, ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, '[', ']', N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-option$$', '$$mdi:apple-keyboard-command$$',
Low, ␣, ⏎, Rai, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-command$$']
Low:
- BT CLR
- BT 1
- BT 2
- BT 3
- BT 4
- BT 5
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- F1
- F2
- F3
- F4
- F5
- F6
- F7
- F8
- F9
- F10
- F11
- F12
- '`'
- '!'
- '@'
- '#'
- $
- '%'
- ^
- AMPS
- KP MULTIPLY
- (
- )
- '~'
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- '-'
- KP PLUS
- '{'
- '}'
- '|'
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {type: held}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
Rai:
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- '`'
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '0'
- {t: ▽, type: trans}
- F1
- F2
- F3
- F4
- F5
- F6
- {t: ▽, type: trans}
-
-
-
-
- {t: ▽, type: trans}
- F7
- F8
- F9
- F10
- F11
- F12
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- KP PLUS
- '-'
- '='
- '['
- ']'
- \
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {type: held}
- {t: ▽, type: trans}
- {t: ▽, type: trans}

View file

@ -1,4 +1,21 @@
<svg width="976" height="2044" viewBox="0 0 976 2044" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg width="976" height="1249" viewBox="0 0 976 1249" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>/* start glyphs */
<svg id="mdi:apple-keyboard-command">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-command" viewBox="0 0 24 24"><path d="M6,2A4,4 0 0,1 10,6V8H14V6A4,4 0 0,1 18,2A4,4 0 0,1 22,6A4,4 0 0,1 18,10H16V14H18A4,4 0 0,1 22,18A4,4 0 0,1 18,22A4,4 0 0,1 14,18V16H10V18A4,4 0 0,1 6,22A4,4 0 0,1 2,18A4,4 0 0,1 6,14H8V10H6A4,4 0 0,1 2,6A4,4 0 0,1 6,2M16,18A2,2 0 0,0 18,20A2,2 0 0,0 20,18A2,2 0 0,0 18,16H16V18M14,10H10V14H14V10M6,16A2,2 0 0,0 4,18A2,2 0 0,0 6,20A2,2 0 0,0 8,18V16H6M8,6A2,2 0 0,0 6,4A2,2 0 0,0 4,6A2,2 0 0,0 6,8H8V6M18,8A2,2 0 0,0 20,6A2,2 0 0,0 18,4A2,2 0 0,0 16,6V8H18Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-control">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-control" viewBox="0 0 24 24"><path d="M19.78,11.78L18.36,13.19L12,6.83L5.64,13.19L4.22,11.78L12,4L19.78,11.78Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-option">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-option" viewBox="0 0 24 24"><path d="M3,4H9.11L16.15,18H21V20H14.88L7.84,6H3V4M14,4H21V6H14V4Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-shift">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-shift" viewBox="0 0 24 24"><path d="M15,18V12H17.17L12,6.83L6.83,12H9V18H15M12,4L22,14H17V20H7V14H2L12,4Z" /></svg>
</svg>
<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>
</defs>/* end glyphs */
<style>/* inherit to force styles through use tags */ <style>/* inherit to force styles through use tags */
svg path { svg path {
fill: inherit; fill: inherit;
@ -67,8 +84,8 @@ text.footer {
paint-order: stroke; paint-order: stroke;
} }
/* styling for combo tap, and key hold/shifted label text */ /* styling for combo tap, and key non-tap label text */
text.combo, text.hold, text.shifted { text.combo, text.hold, text.shifted, text.left, text.right {
font-size: 11px; font-size: 11px;
} }
@ -82,12 +99,20 @@ text.shifted {
dominant-baseline: hanging; dominant-baseline: hanging;
} }
text.left {
text-anchor: start;
}
text.right {
text-anchor: end;
}
text.layer-activator { text.layer-activator {
text-decoration: underline; text-decoration: underline;
} }
/* styling for hold/shifted label text in combo box */ /* styling for hold/shifted label text in combo box */
text.combo.hold, text.combo.shifted { text.combo.hold, text.combo.shifted, text.combo.left, text.combo.right {
font-size: 8px; font-size: 8px;
} }
@ -207,8 +232,8 @@ rect.held, rect.combo.held {
visibility: hidden; visibility: hidden;
} }
</style> </style>
<g transform="translate(40, 0)" class="layer-default"> <g transform="translate(40, 0)" class="layer-BAS">
<text x="0" y="28" class="label" id="default">default:</text> <text x="0" y="28" class="label" id="BAS">BAS:</text>
<g transform="translate(0, 56)"> <g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key keypos-0"> <g transform="translate(28, 63)" class="key keypos-0">
<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"/>
@ -224,14 +249,12 @@ rect.held, rect.combo.held {
</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"/>
<a href="#x_x"> <text x="0" y="0" class="key tap">3</text>
<text x="0" y="0" class="key tap layer-activator">3</text> </g>
</a></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"/>
<a href="#x_x"> <text x="0" y="0" class="key tap">4</text>
<text x="0" y="0" class="key tap layer-activator">4</text> </g>
</a></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">5</text>
@ -306,7 +329,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(868, 119)" class="key keypos-23"> <g transform="translate(868, 119)" 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> <use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g> </g>
<g transform="translate(28, 175)" class="key keypos-24"> <g transform="translate(28, 175)" 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"/>
@ -358,7 +381,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(28, 231)" class="key keypos-36"> <g transform="translate(28, 231)" 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">Shift</text> <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, 231)" class="key keypos-37"> <g transform="translate(84, 231)" 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"/>
@ -410,24 +433,24 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(868, 231)" class="key keypos-49"> <g transform="translate(868, 231)" class="key keypos-49">
<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">Shift</text> <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(140, 259)" class="key keypos-50"> <g transform="translate(140, 259)" class="key keypos-50">
<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">Gui</text> <use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g> </g>
<g transform="translate(196, 252)" class="key keypos-51"> <g transform="translate(196, 252)" class="key keypos-51">
<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">Alt</text> <use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g> </g>
<g transform="translate(252, 259)" class="key keypos-52"> <g transform="translate(252, 259)" class="key keypos-52">
<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">Ctrl</text> <use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g> </g>
<g transform="translate(316, 274) rotate(22.5)" class="key keypos-53"> <g transform="translate(316, 274) rotate(22.5)" class="key keypos-53">
<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"/>
<a href="#lower"> <a href="#LOW">
<text x="0" y="0" class="key tap layer-activator">lower</text> <text x="0" y="0" class="key tap layer-activator">LOW</text>
</a></g> </a></g>
<g transform="translate(378, 291) rotate(30.0)" class="key keypos-54"> <g transform="translate(378, 291) rotate(30.0)" class="key keypos-54">
<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"/>
@ -439,25 +462,25 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(580, 274) rotate(-22.5)" class="key keypos-56"> <g transform="translate(580, 274) rotate(-22.5)" class="key keypos-56">
<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"/>
<a href="#raise"> <a href="#RAI">
<text x="0" y="0" class="key tap layer-activator">raise</text> <text x="0" y="0" class="key tap layer-activator">RAI</text>
</a></g> </a></g>
<g transform="translate(644, 259)" class="key keypos-57"> <g transform="translate(644, 259)" class="key keypos-57">
<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">Ctrl</text> <use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g> </g>
<g transform="translate(700, 252)" class="key keypos-58"> <g transform="translate(700, 252)" class="key keypos-58">
<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">Alt</text> <use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g> </g>
<g transform="translate(756, 259)" class="key keypos-59"> <g transform="translate(756, 259)" class="key keypos-59">
<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">Gui</text> <use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g> </g>
</g> </g>
</g> </g>
<g transform="translate(40, 398)" class="layer-lower"> <g transform="translate(40, 398)" class="layer-LOW">
<text x="0" y="28" class="label" id="lower">lower:</text> <text x="0" y="28" class="label" id="LOW">LOW:</text>
<g transform="translate(0, 56)"> <g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key keypos-0"> <g transform="translate(28, 63)" class="key keypos-0">
<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"/>
@ -509,8 +532,8 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(28, 119)" class="key keypos-12"> <g transform="translate(28, 119)" class="key keypos-12">
<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"/>
<a href="#raise"> <a href="#RAI">
<text x="0" y="0" class="key tap layer-activator">raise</text> <text x="0" y="0" class="key tap layer-activator">RAI</text>
</a></g> </a></g>
<g transform="translate(84, 119)" class="key keypos-13"> <g transform="translate(84, 119)" 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"/>
@ -522,14 +545,12 @@ rect.held, rect.combo.held {
</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"/>
<a href="#x_x"> <text x="0" y="0" class="key tap">3</text>
<text x="0" y="0" class="key tap layer-activator">3</text> </g>
</a></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"/>
<a href="#x_x"> <text x="0" y="0" class="key tap">4</text>
<text x="0" y="0" class="key tap layer-activator">4</text> </g>
</a></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">5</text> <text x="0" y="0" class="key tap">5</text>
@ -707,8 +728,8 @@ rect.held, rect.combo.held {
</g> </g>
</g> </g>
</g> </g>
<g transform="translate(40, 795)" class="layer-raise"> <g transform="translate(40, 795)" class="layer-RAI">
<text x="0" y="28" class="label" id="raise">raise:</text> <text x="0" y="28" class="label" id="RAI">RAI:</text>
<g transform="translate(0, 56)"> <g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key keypos-0"> <g transform="translate(28, 63)" class="key keypos-0">
<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"/>
@ -828,15 +849,15 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(84, 175)" class="key keypos-25"> <g transform="translate(84, 175)" 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">Alt</text> <use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</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">Ctrl</text> <use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</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">Shift</text> <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(252, 147)" class="key trans keypos-28"> <g transform="translate(252, 147)" class="key trans keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
@ -868,7 +889,7 @@ rect.held, rect.combo.held {
</g> </g>
<g transform="translate(868, 175)" class="key keypos-35"> <g transform="translate(868, 175)" 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"></text> <use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g> </g>
<g transform="translate(28, 231)" class="key trans keypos-36"> <g transform="translate(28, 231)" class="key trans keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/> <rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
@ -967,494 +988,4 @@ rect.held, rect.combo.held {
</g> </g>
</g> </g>
</g> </g>
<g transform="translate(40, 1193)" class="layer-3"> <text x="936.0" y="1221.0" class="footer">Keymap View: <a href="https://github.com/caksoylar/keymap-drawer">keymap-drawer</a></text></svg>
<text x="0" y="28" class="label" id="x_x">3:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key trans keypos-0">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 63)" class="key trans keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 35)" class="key trans keypos-2">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 28)" class="key trans keypos-3">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 35)" class="key trans keypos-4">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 42)" class="key trans keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 42)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 28)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 35)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 63)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 63)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 119)" class="key trans keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 119)" class="key trans keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 91)" class="key trans keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 84)" class="key trans keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 91)" class="key trans keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 98)" class="key trans keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 98)" class="key trans keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 91)" class="key trans keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 84)" class="key trans keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 91)" class="key trans keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 119)" class="key trans keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 119)" class="key trans keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 175)" class="key trans keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 175)" class="key trans keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 147)" class="key trans keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 140)" class="key trans keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 147)" class="key trans keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 154)" class="key trans keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 154)" class="key trans keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 147)" class="key trans keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 140)" class="key trans keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 147)" class="key trans keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 175)" class="key trans keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 175)" class="key trans keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 231)" class="key trans keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 231)" class="key trans keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 203)" class="key trans keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 196)" class="key trans keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 203)" class="key trans keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 210)" class="key trans keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(371, 210)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(525, 210)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 210)" class="key trans keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 203)" class="key trans keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 196)" class="key trans keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 203)" class="key trans keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 231)" class="key trans keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 231)" class="key trans keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 259)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 252)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 259)" class="key trans keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(316, 274) rotate(22.5)" class="key trans keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(378, 291) rotate(30.0)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(518, 291) rotate(-30.0)" class="key trans keypos-55">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(580, 274) rotate(-22.5)" class="key trans keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 259)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 252)" class="key trans keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 259)" class="key trans keypos-59">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
</g>
</g>
<g transform="translate(40, 1590)" class="layer-4">
<text x="0" y="28" class="label" id="x_x">4:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key trans keypos-0">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 63)" class="key trans keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 35)" class="key trans keypos-2">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 28)" class="key trans keypos-3">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 35)" class="key trans keypos-4">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 42)" class="key trans keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 42)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 28)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 35)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 63)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 63)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 119)" class="key trans keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 119)" class="key trans keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 91)" class="key trans keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 84)" class="key trans keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 91)" class="key trans keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 98)" class="key trans keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 98)" class="key trans keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 91)" class="key trans keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 84)" class="key trans keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 91)" class="key trans keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 119)" class="key trans keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 119)" class="key trans keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 175)" class="key trans keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 175)" class="key trans keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 147)" class="key trans keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 140)" class="key trans keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 147)" class="key trans keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 154)" class="key trans keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 154)" class="key trans keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 147)" class="key trans keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 140)" class="key trans keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 147)" class="key trans keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 175)" class="key trans keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 175)" class="key trans keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 231)" class="key trans keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 231)" class="key trans keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 203)" class="key trans keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 196)" class="key trans keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 203)" class="key trans keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 210)" class="key trans keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(371, 210)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(525, 210)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 210)" class="key trans keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 203)" class="key trans keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 196)" class="key trans keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 203)" class="key trans keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 231)" class="key trans keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 231)" class="key trans keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 259)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 252)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 259)" class="key trans keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(316, 274) rotate(22.5)" class="key trans keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(378, 291) rotate(30.0)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(518, 291) rotate(-30.0)" class="key trans keypos-55">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(580, 274) rotate(-22.5)" class="key trans keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 259)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 252)" class="key trans keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 259)" class="key trans keypos-59">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
</g>
</g>
<text x="936.0" y="2016.0" class="footer">Keymap View: <a href="https://github.com/caksoylar/keymap-drawer">keymap-drawer</a></text></svg>

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Before After
Before After

View file

@ -1,8 +1,9 @@
layout: {qmk_keyboard: sofle/rev1} layout: {qmk_keyboard: sofle/rev1}
layers: layers:
default: ['`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', Esc, Q, W, E, R, T, Y, U, I, O, P, ⌫, ↹, A, S, D, F, G, H, J, K, L, ;, '''', Shift, Z, X, BAS: ['`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', Esc, Q, W, E, R, T, Y, U, I, O, P, '$$mdi:backspace-outline$$', ↹, A, S, D, F, G, H, J, K, L,
C, V, B, MUTE, MUTE, N, M, ',', ., /, Shift, Gui, Alt, Ctrl, lower, ⏎, ␣, raise, Ctrl, Alt, Gui] ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, MUTE, MUTE, N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-command$$', '$$mdi:apple-keyboard-option$$',
lower: '$$mdi:apple-keyboard-control$$', LOW, ⏎, ␣, RAI, '$$mdi:apple-keyboard-control$$', '$$mdi:apple-keyboard-option$$', '$$mdi:apple-keyboard-command$$']
LOW:
- '`' - '`'
- F1 - F1
- F2 - F2
@ -15,7 +16,7 @@ layers:
- F9 - F9
- F10 - F10
- F11 - F11
- raise - RAI
- '1' - '1'
- '2' - '2'
- '3' - '3'
@ -63,7 +64,7 @@ layers:
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
raise: RAI:
- BT CLR - BT CLR
- BT 1 - BT 1
- BT 2 - BT 2
@ -89,9 +90,9 @@ layers:
- '0' - '0'
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- Alt - $$mdi:apple-keyboard-option$$
- Ctrl - $$mdi:apple-keyboard-control$$
- Shift - $$mdi:apple-keyboard-shift$$
- {t: ▽, type: trans} - {t: ▽, type: trans}
- CLCK - CLCK
- -
@ -99,7 +100,7 @@ layers:
- -
- -
- -
- - $$mdi:backspace-outline$$
- {t: ▽, type: trans} - {t: ▽, type: trans}
- UNDO - UNDO
- CUT - CUT
@ -124,125 +125,3 @@ layers:
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
- {t: ▽, type: trans} - {t: ▽, type: trans}
'3':
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
'4':
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}

View file

@ -0,0 +1,990 @@
<svg width="976" height="1249" viewBox="0 0 976 1249" class="keymap" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>/* start glyphs */
<svg id="mdi:apple-keyboard-command">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-command" viewBox="0 0 24 24"><path d="M6,2A4,4 0 0,1 10,6V8H14V6A4,4 0 0,1 18,2A4,4 0 0,1 22,6A4,4 0 0,1 18,10H16V14H18A4,4 0 0,1 22,18A4,4 0 0,1 18,22A4,4 0 0,1 14,18V16H10V18A4,4 0 0,1 6,22A4,4 0 0,1 2,18A4,4 0 0,1 6,14H8V10H6A4,4 0 0,1 2,6A4,4 0 0,1 6,2M16,18A2,2 0 0,0 18,20A2,2 0 0,0 20,18A2,2 0 0,0 18,16H16V18M14,10H10V14H14V10M6,16A2,2 0 0,0 4,18A2,2 0 0,0 6,20A2,2 0 0,0 8,18V16H6M8,6A2,2 0 0,0 6,4A2,2 0 0,0 4,6A2,2 0 0,0 6,8H8V6M18,8A2,2 0 0,0 20,6A2,2 0 0,0 18,4A2,2 0 0,0 16,6V8H18Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-control">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-control" viewBox="0 0 24 24"><path d="M19.78,11.78L18.36,13.19L12,6.83L5.64,13.19L4.22,11.78L12,4L19.78,11.78Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-option">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-option" viewBox="0 0 24 24"><path d="M3,4H9.11L16.15,18H21V20H14.88L7.84,6H3V4M14,4H21V6H14V4Z" /></svg>
</svg>
<svg id="mdi:apple-keyboard-shift">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-shift" viewBox="0 0 24 24"><path d="M15,18V12H17.17L12,6.83L6.83,12H9V18H15M12,4L22,14H17V20H7V14H2L12,4Z" /></svg>
</svg>
<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>
</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-kerning: normal;
text-rendering: optimizeLegibility;
fill: #24292e;
}
/* default key styling */
rect.key {
fill: #f6f8fa;
}
rect.key, rect.combo {
stroke: #c9cccf;
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: #cdf;
}
/* color accent for held keys */
rect.held, rect.combo.held {
fill: #fdd;
}
/* 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;
stroke: white;
stroke-width: 4;
paint-order: stroke;
}
/* styling for optional footer */
text.footer {
text-anchor: end;
dominant-baseline: auto;
stroke: white;
stroke-width: 4;
paint-order: stroke;
}
/* styling for combo tap, and key non-tap label text */
text.combo, text.hold, text.shifted, text.left, text.right {
font-size: 11px;
}
text.hold {
text-anchor: middle;
dominant-baseline: auto;
}
text.shifted {
text-anchor: middle;
dominant-baseline: hanging;
}
text.left {
text-anchor: start;
}
text.right {
text-anchor: end;
}
text.layer-activator {
text-decoration: underline;
}
/* styling for hold/shifted label text in combo box */
text.combo.hold, text.combo.shifted, text.combo.left, text.combo.right {
font-size: 8px;
}
/* lighter symbol for transparent keys */
text.trans {
fill: #7b7e81;
}
/* 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: inherit;
stroke: inherit;
stroke-width: 2;
}
/* hide tabler's default box */
.icon-tabler > path[stroke="none"][fill="none"] {
visibility: hidden;
}
/* End Tabler Icons Cleanup */
/* For default sytles, see https://github.com/caksoylar/keymap-drawer/blob/main/keymap_drawer/config.py#L85 */
svg.keymap {
font-family: Ubuntu Mono, Inconsolata, Consolas, Liberation Mono, Menlo, monospace;
font-size: 16px;
font-weight: bold;
text-rendering: optimizeLegibility;
}
/* Color accent for held keys
red = #f00
green = #0f0
blue = #00f
yellow = #ff0
cyan = #0ff
magenta = #f0f
white = #fff
black = #000
grey = #888
light grey = #ccc
#ffc
*/
rect.held, rect.combo.held {
fill: #f00;
}
/* Technique borrowed and extended from https://github.com/englmaxi/zmk-config/blob/master/keymap-drawer/config.yaml */
.sym_sub_text.tap {
translate: -5px 2px;
font-size: 20px;
}
.sym_sub_text.shifted {
translate: 10px 13px;
font-size: 10px;
opacity: 1.0;
}
.combo.sym_sub_text.tap {
translate: -1px 1px;
}
.combo.sym_sub_text.shifted {
translate: 7px 5px;
font-size: 10px;
opacity: 1.0;
}
/* Toggle */
.toggle.shifted {
translate: -10px 12px;
}
.toggle.hold {
translate: 13px -23px;
}
/* Variant for tap-dances */
.tap_dance.tap {
translate: -7px 0px;
font-size: 12px;
}
.tap_dance.shifted {
translate: 7px 17px;
font-size: 12px;
opacity: 1.0;
}
/* Variant for symbol next to symbol */
.sym_by_sym.tap {
translate: -6px 0px;
}
.sym_by_sym.shifted {
translate: 10px 12px;
opacity: 1.0;
}
.combo.sym_by_sym.tap {
translate: -35px 0px;
}
.combo.sym_by_sym.shifted {
translate: 35px 20px;
opacity: 1.0;
}
.combo.sym_by_sym.hold {
visibility: hidden;
}
/* hide hold box for combo sym_by_sym */
.combo.sym_by_sym.hold > path[stroke="none"][fill="none"] {
visibility: hidden;
}
</style>
<g transform="translate(40, 0)" class="layer-BAS">
<text x="0" y="28" class="label" id="BAS">BAS:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key keypos-0">
<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>
</g>
<g transform="translate(84, 63)" class="key keypos-1">
<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>
</g>
<g transform="translate(140, 35)" class="key keypos-2">
<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>
</g>
<g transform="translate(196, 28)" class="key keypos-3">
<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>
</g>
<g transform="translate(252, 35)" class="key keypos-4">
<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>
</g>
<g transform="translate(308, 42)" class="key keypos-5">
<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>
</g>
<g transform="translate(588, 42)" class="key keypos-6">
<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>
</g>
<g transform="translate(644, 35)" class="key keypos-7">
<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>
</g>
<g transform="translate(700, 28)" class="key keypos-8">
<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>
</g>
<g transform="translate(756, 35)" class="key keypos-9">
<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>
</g>
<g transform="translate(812, 63)" class="key keypos-10">
<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>
</g>
<g transform="translate(868, 63)" class="key keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">`</text>
</g>
<g transform="translate(28, 119)" class="key keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(84, 119)" class="key keypos-13">
<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>
</g>
<g transform="translate(140, 91)" class="key keypos-14">
<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>
</g>
<g transform="translate(196, 84)" class="key keypos-15">
<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>
</g>
<g transform="translate(252, 91)" class="key keypos-16">
<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>
</g>
<g transform="translate(308, 98)" class="key keypos-17">
<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>
</g>
<g transform="translate(588, 98)" class="key keypos-18">
<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>
</g>
<g transform="translate(644, 91)" class="key keypos-19">
<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>
</g>
<g transform="translate(700, 84)" class="key keypos-20">
<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>
</g>
<g transform="translate(756, 91)" class="key keypos-21">
<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>
</g>
<g transform="translate(812, 119)" class="key keypos-22">
<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>
</g>
<g transform="translate(868, 119)" class="key keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">-</text>
</g>
<g transform="translate(28, 175)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g>
<g transform="translate(84, 175)" class="key keypos-25">
<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>
</g>
<g transform="translate(140, 147)" class="key keypos-26">
<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>
</g>
<g transform="translate(196, 140)" class="key keypos-27">
<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>
</g>
<g transform="translate(252, 147)" class="key keypos-28">
<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>
</g>
<g transform="translate(308, 154)" class="key keypos-29">
<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>
</g>
<g transform="translate(588, 154)" class="key keypos-30">
<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>
</g>
<g transform="translate(644, 147)" class="key keypos-31">
<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>
</g>
<g transform="translate(700, 140)" class="key keypos-32">
<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>
</g>
<g transform="translate(756, 147)" class="key keypos-33">
<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>
</g>
<g transform="translate(812, 175)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">;</text>
</g>
<g transform="translate(868, 175)" class="key keypos-35">
<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>
</g>
<g transform="translate(28, 231)" class="key keypos-36">
<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"/>
</g>
<g transform="translate(84, 231)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">Z</text>
</g>
<g transform="translate(140, 203)" class="key keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">X</text>
</g>
<g transform="translate(196, 196)" class="key keypos-39">
<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>
</g>
<g transform="translate(252, 203)" class="key keypos-40">
<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>
</g>
<g transform="translate(308, 210)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">B</text>
</g>
<g transform="translate(371, 210)" class="key keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">[</text>
</g>
<g transform="translate(525, 210)" class="key keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">]</text>
</g>
<g transform="translate(588, 210)" class="key keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">N</text>
</g>
<g transform="translate(644, 203)" class="key keypos-45">
<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>
</g>
<g transform="translate(700, 196)" class="key keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">,</text>
</g>
<g transform="translate(756, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">.</text>
</g>
<g transform="translate(812, 231)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">/</text>
</g>
<g transform="translate(868, 231)" class="key keypos-49">
<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"/>
</g>
<g transform="translate(140, 259)" class="key keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g>
<g transform="translate(196, 252)" class="key keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g>
<g transform="translate(252, 259)" class="key keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g>
<g transform="translate(316, 274) rotate(22.5)" class="key keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<a href="#LOW">
<text x="0" y="0" class="key tap layer-activator">LOW</text>
</a></g>
<g transform="translate(378, 291) rotate(30.0)" class="key keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(518, 291) rotate(-30.0)" class="key keypos-55">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(580, 274) rotate(-22.5)" class="key keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<a href="#RAI">
<text x="0" y="0" class="key tap layer-activator">RAI</text>
</a></g>
<g transform="translate(644, 259)" class="key keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:backspace-outline" xlink:href="#mdi:backspace-outline" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:backspace-outline"/>
</g>
<g transform="translate(700, 252)" class="key keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-command" xlink:href="#mdi:apple-keyboard-command" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-command"/>
</g>
<g transform="translate(756, 259)" class="key keypos-59">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-9" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g>
</g>
</g>
<g transform="translate(40, 398)" class="layer-LOW">
<text x="0" y="28" class="label" id="LOW">LOW:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key keypos-0">
<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">BT</tspan><tspan x="0" dy="1.2em">CLR</tspan>
</text>
</g>
<g transform="translate(84, 63)" class="key keypos-1">
<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">BT</tspan><tspan x="0" dy="1.2em">1</tspan>
</text>
</g>
<g transform="translate(140, 35)" class="key keypos-2">
<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">BT</tspan><tspan x="0" dy="1.2em">2</tspan>
</text>
</g>
<g transform="translate(196, 28)" class="key keypos-3">
<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">BT</tspan><tspan x="0" dy="1.2em">3</tspan>
</text>
</g>
<g transform="translate(252, 35)" class="key keypos-4">
<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">BT</tspan><tspan x="0" dy="1.2em">4</tspan>
</text>
</g>
<g transform="translate(308, 42)" class="key keypos-5">
<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">BT</tspan><tspan x="0" dy="1.2em">5</tspan>
</text>
</g>
<g transform="translate(588, 42)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 28)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 35)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 63)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 63)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 119)" class="key keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F1</text>
</g>
<g transform="translate(84, 119)" class="key keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F2</text>
</g>
<g transform="translate(140, 91)" class="key keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F3</text>
</g>
<g transform="translate(196, 84)" class="key keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F4</text>
</g>
<g transform="translate(252, 91)" class="key keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F5</text>
</g>
<g transform="translate(308, 98)" class="key keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F6</text>
</g>
<g transform="translate(588, 98)" class="key keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F7</text>
</g>
<g transform="translate(644, 91)" class="key keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F8</text>
</g>
<g transform="translate(700, 84)" class="key keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F9</text>
</g>
<g transform="translate(756, 91)" class="key keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F10</text>
</g>
<g transform="translate(812, 119)" class="key keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F11</text>
</g>
<g transform="translate(868, 119)" class="key keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F12</text>
</g>
<g transform="translate(28, 175)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">`</text>
</g>
<g transform="translate(84, 175)" class="key keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">!</text>
</g>
<g transform="translate(140, 147)" class="key keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" 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="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">#</text>
</g>
<g transform="translate(252, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">$</text>
</g>
<g transform="translate(308, 154)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">%</text>
</g>
<g transform="translate(588, 154)" class="key keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">^</text>
</g>
<g transform="translate(644, 147)" class="key keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">AMPS</text>
</g>
<g transform="translate(700, 140)" class="key keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">*</text>
</g>
<g transform="translate(756, 147)" class="key keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">(</text>
</g>
<g transform="translate(812, 175)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">)</text>
</g>
<g transform="translate(868, 175)" class="key keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">~</text>
</g>
<g transform="translate(28, 231)" class="key trans keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 231)" class="key keypos-37">
<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">EP</tspan><tspan x="0" dy="1.2em">ON</tspan>
</text>
</g>
<g transform="translate(140, 203)" class="key keypos-38">
<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">EP</tspan><tspan x="0" dy="1.2em">OFF</tspan>
</text>
</g>
<g transform="translate(196, 196)" class="key keypos-39">
<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">EP</tspan><tspan x="0" dy="1.2em">TOG</tspan>
</text>
</g>
<g transform="translate(252, 203)" class="key trans keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 210)" class="key trans keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(371, 210)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(525, 210)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 210)" class="key trans keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 203)" class="key keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">-</text>
</g>
<g transform="translate(700, 196)" class="key keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">+</text>
</g>
<g transform="translate(756, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">{</text>
</g>
<g transform="translate(812, 231)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">}</text>
</g>
<g transform="translate(868, 231)" class="key keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">|</text>
</g>
<g transform="translate(140, 259)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 252)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 259)" class="key trans keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(316, 274) rotate(22.5)" class="key held keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/>
</g>
<g transform="translate(378, 291) rotate(30.0)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(518, 291) rotate(-30.0)" class="key trans keypos-55">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(580, 274) rotate(-22.5)" class="key trans keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 259)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 252)" class="key trans keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 259)" class="key trans keypos-59">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
</g>
</g>
<g transform="translate(40, 795)" class="layer-RAI">
<text x="0" y="28" class="label" id="RAI">RAI:</text>
<g transform="translate(0, 56)">
<g transform="translate(28, 63)" class="key trans keypos-0">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(84, 63)" class="key trans keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(140, 35)" class="key trans keypos-2">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 28)" class="key trans keypos-3">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 35)" class="key trans keypos-4">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(308, 42)" class="key trans keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 42)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 28)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 35)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(812, 63)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(868, 63)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 119)" class="key keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">`</text>
</g>
<g transform="translate(84, 119)" class="key keypos-13">
<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>
</g>
<g transform="translate(140, 91)" class="key keypos-14">
<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>
</g>
<g transform="translate(196, 84)" class="key keypos-15">
<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>
</g>
<g transform="translate(252, 91)" class="key keypos-16">
<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>
</g>
<g transform="translate(308, 98)" class="key keypos-17">
<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>
</g>
<g transform="translate(588, 98)" class="key keypos-18">
<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>
</g>
<g transform="translate(644, 91)" class="key keypos-19">
<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>
</g>
<g transform="translate(700, 84)" class="key keypos-20">
<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>
</g>
<g transform="translate(756, 91)" class="key keypos-21">
<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>
</g>
<g transform="translate(812, 119)" class="key keypos-22">
<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>
</g>
<g transform="translate(868, 119)" class="key trans keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 175)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F1</text>
</g>
<g transform="translate(84, 175)" class="key keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F2</text>
</g>
<g transform="translate(140, 147)" class="key keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F3</text>
</g>
<g transform="translate(196, 140)" class="key keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F4</text>
</g>
<g transform="translate(252, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F5</text>
</g>
<g transform="translate(308, 154)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F6</text>
</g>
<g transform="translate(588, 154)" class="key trans keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(644, 147)" class="key keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(700, 140)" class="key keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(756, 147)" class="key keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(812, 175)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap"></text>
</g>
<g transform="translate(868, 175)" class="key trans keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(28, 231)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F7</text>
</g>
<g transform="translate(84, 231)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F8</text>
</g>
<g transform="translate(140, 203)" class="key keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F9</text>
</g>
<g transform="translate(196, 196)" class="key keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F10</text>
</g>
<g transform="translate(252, 203)" class="key keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F11</text>
</g>
<g transform="translate(308, 210)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">F12</text>
</g>
<g transform="translate(371, 210)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(525, 210)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(588, 210)" class="key keypos-44">
<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">KP</tspan><tspan x="0" dy="1.2em">PLUS</tspan>
</text>
</g>
<g transform="translate(644, 203)" class="key keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">-</text>
</g>
<g transform="translate(700, 196)" class="key keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">=</text>
</g>
<g transform="translate(756, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">[</text>
</g>
<g transform="translate(812, 231)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">]</text>
</g>
<g transform="translate(868, 231)" class="key keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key"/>
<text x="0" y="0" class="key tap">\</text>
</g>
<g transform="translate(140, 259)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(196, 252)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(252, 259)" class="key trans keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(316, 274) rotate(22.5)" class="key trans keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(378, 291) rotate(30.0)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(518, 291) rotate(-30.0)" class="key trans keypos-55">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(580, 274) rotate(-22.5)" class="key held keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key held"/>
</g>
<g transform="translate(644, 259)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(700, 252)" class="key trans keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
<g transform="translate(756, 259)" class="key trans keypos-59">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans"/>
<text x="0" y="0" class="key trans tap"></text>
</g>
</g>
</g>
<text x="936.0" y="1221.0" class="footer">Keymap View: <a href="https://github.com/caksoylar/keymap-drawer">keymap-drawer</a></text></svg>

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -0,0 +1,127 @@
layout: {qmk_keyboard: sofle/rev1}
layers:
BAS: [Esc, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '`', ↹, Q, W, E, R, T, Y, U, I, O, P, '-', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K,
L, ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, '[', ']', N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-control$$', '$$mdi:apple-keyboard-option$$',
'$$mdi:apple-keyboard-command$$', LOW, ␣, ⏎, RAI, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-command$$', '$$mdi:apple-keyboard-option$$']
LOW:
- BT CLR
- BT 1
- BT 2
- BT 3
- BT 4
- BT 5
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- F1
- F2
- F3
- F4
- F5
- F6
- F7
- F8
- F9
- F10
- F11
- F12
- '`'
- '!'
- '@'
- '#'
- $
- '%'
- ^
- AMPS
- '*'
- (
- )
- '~'
- {t: ▽, type: trans}
- EP ON
- EP OFF
- EP TOG
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- '-'
- +
- '{'
- '}'
- '|'
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {type: held}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
RAI:
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- '`'
- '1'
- '2'
- '3'
- '4'
- '5'
- '6'
- '7'
- '8'
- '9'
- '0'
- {t: ▽, type: trans}
- F1
- F2
- F3
- F4
- F5
- F6
- {t: ▽, type: trans}
-
-
-
-
- {t: ▽, type: trans}
- F7
- F8
- F9
- F10
- F11
- F12
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- KP PLUS
- '-'
- '='
- '['
- ']'
- \
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {type: held}
- {t: ▽, type: trans}
- {t: ▽, type: trans}
- {t: ▽, type: trans}