inital corne configuration

This commit is contained in:
Chen Zeng 2024-07-21 11:22:32 +08:00
commit 0dcb541f71
30 changed files with 2619 additions and 0 deletions

26
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,26 @@
name: Build ZMK firmware
on:
workflow_dispatch:
push:
paths:
- "config/**"
jobs:
build:
uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main
draw:
uses: caksoylar/keymap-drawer/.github/workflows/draw-zmk.yml@main
permissions:
contents: write
with:
commit_message: "[Draw] ${{ github.event.head_commit.message }}"
amend_commit: false
install_branch: "main"
keymap_patterns: "config/*.keymap"
json_path: "config"
config_path: "keymap_drawer.config.yaml" # config file, ignored if not exists
output_folder: "keymap-drawer"
destination: "both"
parse_args: "" # map of extra args to pass to `keymap parse`, e.g. "corne:'-l Def Lwr Rse' cradio:''"
draw_args: "" # map of extra args to pass to `keymap draw`, e.g. "corne:'-k corne_rotated' cradio:'-k paroxysm'"

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
build/
zmk/
zephyr/
modules/
tools/
.west/

5
README.md Normal file
View File

@ -0,0 +1,5 @@
# zmk-config-corne
<img src="keymap-drawer/corne.svg" >

11
build.yaml Normal file
View File

@ -0,0 +1,11 @@
include:
- board: corne_left
- board: corne_right
- board: nice_nano_v2
shield: settings_reset
- board: corne_left
shield: nice_view_adapter nice_view
artifact-name: corne_left_nice_view
- board: corne_right
shield: nice_view_adapter nice_view
artifact-name: corne_right_nice_view

10
config/Kconfig Normal file
View File

@ -0,0 +1,10 @@
#
# Copyright (c) 2022 The ZMK Contributors
# SPDX-License-Identifier: MIT
#
config BOARD_CORNE_LEFT
bool
config BOARD_CORNE_RIGHT
bool

View File

@ -0,0 +1,15 @@
#
# Copyright (c) 2022 Darryl deHaan
# SPDX-License-Identifier: MIT
#
config BOARD_CORNE_LEFT
bool "corne left"
depends on SOC_NRF52840_QIAA
config BOARD_CORNE_RIGHT
bool "corne right"
depends on SOC_NRF52840_QIAA

View File

@ -0,0 +1,70 @@
#
# Copyright (c) 2022 Darryl deHaan
# SPDX-License-Identifier: MIT
#
if BOARD_CORNE_LEFT
config ZMK_KEYBOARD_NAME
default "Corne"
config ZMK_SPLIT_ROLE_CENTRAL
default y
endif # BOARD_CORNE_LEFT
if BOARD_CORNE_LEFT || BOARD_CORNE_RIGHT
config BOARD
default "corne"
config ZMK_SPLIT
default y
config BT_CTLR
default BT
if USB
config USB_NRFX
default y
config USB_DEVICE_STACK
default y
endif # USB
if ZMK_DISPLAY
config I2C
default y
config SSD1306
default y
choice ZMK_DISPLAY_WORK_QUEUE
default ZMK_DISPLAY_WORK_QUEUE_DEDICATED
endchoice
endif
if LVGL
config LV_Z_VDB_SIZE
default 64
config LV_DPI_DEF
default 148
config LV_Z_BITS_PER_PIXEL
default 1
choice LV_COLOR_DEPTH
default LV_COLOR_DEPTH_1
endchoice
endif
endif # BOARD_CORNE_LEFT || BOARD_CORNE_RIGHT

View File

@ -0,0 +1,6 @@
# Copyright (c) 2021 @MangoIV
# SPDX-License-Identifier: MIT
board_runner_args(nrfjprog "--nrf-family=NRF52" "--softreset")
include(${ZEPHYR_BASE}/boards/common/blackmagicprobe.board.cmake)
include(${ZEPHYR_BASE}/boards/common/nrfjprog.board.cmake)

View File

@ -0,0 +1,23 @@
# go to sleep after one hour (1*60*60*1000ms)
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=3600000
# Turn on logging, and set ZMK logging to debug output
# CONFIG_ZMK_USB_LOGGING=n
#
# Copyright (c) 2022 Darryl deHaan
# SPDX-License-Identifier: MIT
#
CONFIG_ZMK_SLEEP=y
CONFIG_WS2812_STRIP=y
CONFIG_ZMK_RGB_UNDERGLOW=y
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=y
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
CONFIG_ZMK_RGB_UNDERGLOW_BRT_MAX=90
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_USB=y
CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=160
CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3
#CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y

View File

@ -0,0 +1,189 @@
/*
*
* Copyright (c) 2021 Darryl deHaan
* SPDX-License-Identifier: MIT
*
*/
/dts-v1/;
#include <nordic/nrf52840_qiaa.dtsi>
#include <dt-bindings/led/led.h>
#include <dt-bindings/zmk/matrix_transform.h>
/ {
model = "corne";
compatible = "corne";
chosen {
zephyr,code-partition = &code_partition;
zephyr,sram = &sram0;
zephyr,flash = &flash0;
zmk,kscan = &kscan0;
zephyr,display = &oled;
zephyr,console = &cdc_acm_uart;
zmk,underglow = &led_strip;
zmk,matrix-transform = &default_transform;
};
left_encoder: encoder_left {
compatible = "alps,ec11";
label = "LEFT_ENCODER";
resolution = <4>;
status = "disabled";
};
sensors {
compatible = "zmk,keymap-sensors";
sensors = <&left_encoder>;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <14>;
rows = <5>;
map = <
RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) RC(0,12) RC(0,13)
RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) RC(1,12) RC(1,13)
RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) RC(2,12) RC(2,13)
RC(3,3) RC(3,4) RC(3,5) RC(3,7) RC(3,8) RC(3,9) RC(2,10)
RC(4,2) RC(4,7)
>;
};
};
&adc {
status = "okay";
};
&gpiote {
status = "okay";
};
&gpio0 {
status = "okay";
};
&gpio1 {
status = "okay";
};
&usbd {
status = "okay";
cdc_acm_uart: cdc_acm_uart {
compatible = "zephyr,cdc-acm-uart";
};
};
&flash0 {
/*
* For more information, see:
* http://docs.zephyrproject.org/latest/devices/dts/flash_partitions.html
*/
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
sd_partition: partition@0 {
reg = <0x00000000 0x00026000>;
};
code_partition: partition@26000 {
reg = <0x00026000 0x000c6000>;
};
/*
* The flash starting at 0x000ec000 and ending at
* 0x000f3fff is reserved for use by the application.
*/
/*
* Storage partition will be used by FCB/LittleFS/NVS
* if enabled.
*/
storage_partition: partition@ec000 {
reg = <0x000ec000 0x00008000>;
};
boot_partition: partition@f4000 {
reg = <0x000f4000 0x0000c000>;
};
};
};
&pinctrl {
i2c0_default: i2c0_default {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
<NRF_PSEL(TWIM_SCL, 0, 20)>;
};
};
i2c0_sleep: i2c0_sleep {
group1 {
psels = <NRF_PSEL(TWIM_SDA, 0, 17)>,
<NRF_PSEL(TWIM_SCL, 0, 20)>;
low-power-enable;
};
};
spi3_default: spi3_default {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 1, 12)>; // WS2812_VEXT_DATA
};
};
spi3_sleep: spi3_sleep {
group1 {
psels = <NRF_PSEL(SPIM_MOSI, 1, 12)>;
low-power-enable;
};
};
};
&i2c0 {
status = "okay";
compatible = "nordic,nrf-twi";
pinctrl-0 = <&i2c0_default>;
pinctrl-1 = <&i2c0_sleep>;
pinctrl-names = "default", "sleep";
oled: ssd1306@3c {
compatible = "solomon,ssd1306fb";
reg = <0x3c>;
label = "DISPLAY";
width = <128>;
height = <32>;
segment-offset = <0>;
page-offset = <0>;
display-offset = <0>;
multiplex-ratio = <31>;
segment-remap;
com-invdir;
com-sequential;
prechargep = <0x22>;
};
};
&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>;
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
};
};

View File

@ -0,0 +1,20 @@
identifier: corne
name: Solfe
url: https://github.com/tokyo2006/zmk-config-corne
type: mcu
arch: arm
toolchain:
- zephyr
- gnuarmemb
- xtools
ram: 40
supported:
- adc
- usb_device
- ble
- ieee802154
- pwm
- watchdog
- gpio
- i2c
- spi

View File

@ -0,0 +1,15 @@
file_format: "1"
id: corne
name: Sofle
url: https://github.com/tokyo2006/zmk-config-corne
type: board
arch: arm
features:
- keys
- display
outputs:
- usb
- ble
siblings:
- corne_left
- corne_right

View File

@ -0,0 +1,55 @@
/*
*
* Copyright (c) 2021 Darryl deHaan
* SPDX-License-Identifier: MIT
*
*/
#include "corne.dtsi"
/{
chosen {
zmk,battery = &vbatt;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio0 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio0 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio0 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio1 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&gpio0 3 GPIO_ACTIVE_HIGH>
, <&gpio0 28 GPIO_ACTIVE_HIGH>
, <&gpio0 30 GPIO_ACTIVE_HIGH>
, <&gpio0 21 GPIO_ACTIVE_HIGH>
, <&gpio0 23 GPIO_ACTIVE_HIGH>
, <&gpio0 22 GPIO_ACTIVE_HIGH>
;
};
ext-power {
compatible = "zmk,ext-power-generic";
label = "EXT_POWER";
control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
init-delay-ms = <50>;
};
vbatt: vbatt {
compatible = "zmk,battery-nrf-vddh";
};
};
&left_encoder {
a-gpios = <&gpio1 10 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
b-gpios = <&gpio1 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>;
status = "okay";
};

View File

@ -0,0 +1,77 @@
#
# Copyright (c) 2022 Darryl deHaan
# SPDX-License-Identifier: MIT
#
CONFIG_SOC_SERIES_NRF52X=y
CONFIG_SOC_NRF52840_QIAA=y
CONFIG_BOARD_CORNE_LEFT=y
CONFIG_ZMK_SLEEP=y
# Enable MPU
CONFIG_ARM_MPU=y
# enable pinctrl
CONFIG_PINCTRL=y
# enable GPIO
CONFIG_GPIO=y
# Enable SPI
CONFIG_SPI=y
# Enable writing to flash
CONFIG_USE_DT_CODE_PARTITION=y
CONFIG_BUILD_OUTPUT_UF2=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
# Enable 32kHz crystal
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM=y
CONFIG_ZMK_USB=y
CONFIG_ZMK_BLE=y
# enable display drivers
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=2048
CONFIG_LV_Z_BITS_PER_PIXEL=1
CONFIG_LV_COLOR_DEPTH_1=y
CONFIG_LV_DPI_DEF=145
CONFIG_LV_Z_VDB_SIZE=100
CONFIG_LV_USE_THEME_MONO=y
CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00
CONFIG_ZMK_LV_FONT_DEFAULT_SMALL_MONTSERRAT_16=y
CONFIG_LV_FONT_MONTSERRAT_26=y
CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26=y
#EXT POWER
CONFIG_ZMK_EXT_POWER=y
#BLE-passkey
CONFIG_ZMK_BLE_PASSKEY_ENTRY=n
#BLE-clean
CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START=n
#usb-name
CONFIG_USB_DEVICE_MANUFACTURER="corne"
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_ZMK_HID_REPORT_TYPE_NKRO=n
#CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
#EC11 enable
CONFIG_EC11=y
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y

View File

@ -0,0 +1,76 @@
/*
*
* Copyright (c) 2021 Darryl deHaan
* SPDX-License-Identifier: MIT
*
*/
#include "corne.dtsi"
/{
chosen {
zmk,battery = &vbatt;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&gpio0 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio0 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio0 12 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio0 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&gpio1 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
col-gpios
= <&gpio0 22 GPIO_ACTIVE_HIGH>
, <&gpio0 29 GPIO_ACTIVE_HIGH>
, <&gpio0 3 GPIO_ACTIVE_HIGH>
, <&gpio0 28 GPIO_ACTIVE_HIGH>
, <&gpio0 30 GPIO_ACTIVE_HIGH>
, <&gpio0 21 GPIO_ACTIVE_HIGH>
, <&gpio0 23 GPIO_ACTIVE_HIGH>
;
};
ext-power {
compatible = "zmk,ext-power-generic";
label = "EXT_POWER";
control-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
init-delay-ms = <50>;
};
vbatt: vbatt {
compatible = "zmk,battery-nrf-vddh";
// init-delay-ms = <50>;
};
};
&default_transform {
col-offset = <7>;
};
&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 = <7>; /* 6 keys have underglow at the moment */
spi-one-frame = <0x70>;
spi-zero-frame = <0x40>;
color-mapping = <LED_COLOR_ID_GREEN LED_COLOR_ID_RED LED_COLOR_ID_BLUE>;
};
};

View File

@ -0,0 +1,74 @@
#
# Copyright (c) 2022 Darryl deHaan
# SPDX-License-Identifier: MIT
#
CONFIG_SOC_SERIES_NRF52X=y
CONFIG_SOC_NRF52840_QIAA=y
CONFIG_BOARD_CORNE_RIGHT=y
CONFIG_ZMK_SLEEP=y
# Enable MPU
CONFIG_ARM_MPU=y
# enable pinctrl
CONFIG_PINCTRL=y
# enable GPIO
CONFIG_GPIO=y
# Enable SPI
CONFIG_SPI=y
# Enable writing to flash
CONFIG_USE_DT_CODE_PARTITION=y
CONFIG_BUILD_OUTPUT_UF2=y
CONFIG_MPU_ALLOW_FLASH_WRITE=y
CONFIG_NVS=y
CONFIG_SETTINGS_NVS=y
CONFIG_FLASH=y
CONFIG_FLASH_PAGE_LAYOUT=y
CONFIG_FLASH_MAP=y
# Enable 32kHz crystal
CONFIG_CLOCK_CONTROL_NRF_K32SRC_XTAL=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_30PPM=y
CONFIG_ZMK_USB=n
CONFIG_ZMK_BLE=y
# enable display drivers
CONFIG_ZMK_DISPLAY=y
CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y
CONFIG_ZMK_DISPLAY_DEDICATED_THREAD_STACK_SIZE=2048
CONFIG_LV_Z_BITS_PER_PIXEL=1
CONFIG_LV_COLOR_DEPTH_1=y
CONFIG_LV_DPI_DEF=145
CONFIG_LV_Z_VDB_SIZE=100
CONFIG_LV_USE_THEME_MONO=y
CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00
CONFIG_ZMK_LV_FONT_DEFAULT_SMALL_MONTSERRAT_16=y
CONFIG_LV_FONT_MONTSERRAT_26=y
CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26=y
#EXT POWER
CONFIG_ZMK_EXT_POWER=y
#BLE-passkey
CONFIG_ZMK_BLE_PASSKEY_ENTRY=n
#BLE-clean
CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START=n
#usb-name
CONFIG_USB_DEVICE_MANUFACTURER="corne"
CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
CONFIG_ZMK_HID_REPORT_TYPE_NKRO=n

View File

@ -0,0 +1,2 @@
config SHIELD_NICE_VIEW_ADAPTER
def_bool $(shields_list_contains,nice_view_adapter)

View File

@ -0,0 +1,29 @@
&pinctrl {
spi0_default: spi0_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 20)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>,
<NRF_PSEL(SPIM_MISO, 0, 25)>;
};
};
spi0_sleep: spi0_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 20)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>,
<NRF_PSEL(SPIM_MISO, 0, 25)>;
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 = <&gpio0 6 GPIO_ACTIVE_HIGH>;
};
&i2c0 {
status = "disabled";
};

View File

@ -0,0 +1,29 @@
&pinctrl {
spi0_default: spi0_default {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 20)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>,
<NRF_PSEL(SPIM_MISO, 0, 25)>;
};
};
spi0_sleep: spi0_sleep {
group1 {
psels = <NRF_PSEL(SPIM_SCK, 0, 20)>,
<NRF_PSEL(SPIM_MOSI, 0, 17)>,
<NRF_PSEL(SPIM_MISO, 0, 25)>;
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 = <&gpio0 6 GPIO_ACTIVE_HIGH>;
};
&i2c0 {
status = "disabled";
};

View File

@ -0,0 +1,5 @@
CONFIG_SSD1306=n
# Enable Nice View
CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
CONFIG_ZMK_LV_FONT_DEFAULT_SMALL_MONTSERRAT_26=y
CONFIG_LV_FONT_DEFAULT_MONTSERRAT_26=y

View File

@ -0,0 +1,7 @@
file_format: "1"
id: nice_view_adapter
name: nice!view adapter
type: shield
url: https://nicekeyboards.com/nice-view
requires: [i2c_oled]
exposes: [nice_view_header]

28
config/corne.conf Normal file
View File

@ -0,0 +1,28 @@
# go to sleep after one hour (1*60*60*1000ms)
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=3600000
# Turn on logging, and set ZMK logging to debug output
# CONFIG_ZMK_USB_LOGGING=n
#
# Copyright (c) 2022 Darryl deHaan
# SPDX-License-Identifier: MIT
#
CONFIG_ZMK_SLEEP=y
CONFIG_WS2812_STRIP=y
CONFIG_ZMK_RGB_UNDERGLOW=y
CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n
CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
CONFIG_ZMK_RGB_UNDERGLOW_BRT_MAX=90
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_USB=y
CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=160
CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3
#CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
#EC11 enable
CONFIG_EC11=y
CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y

73
config/corne.json Normal file
View File

@ -0,0 +1,73 @@
{
"id": "corne",
"name": "Corne",
"layouts": {
"default_layout": {
"name": "default_layout",
"layout": [
{ "row": 0, "col": 0, "x": 1.5, "y": 1.13, "label": "0\n0" },
{ "row": 0, "col": 1, "x": 2.5, "y": 1.13, "label": "0\n1" },
{ "row": 0, "col": 2, "x": 3.5, "y": 0.75, "label": "0\n2" },
{ "row": 0, "col": 3, "x": 4.5, "y": 0.63, "label": "0\n3" },
{ "row": 0, "col": 4, "x": 5.5, "y": 0.75, "label": "0\n4" },
{ "row": 0, "col": 5, "x": 6.5, "y": 1, "label": "0\n5" },
{ "row": 0, "col": 7, "x": 9.25, "y": 0.25, "label": "0\n7" },
{ "row": 0, "col": 8, "x": 12, "y": 1, "label": "0\n8" },
{ "row": 0, "col": 9, "x": 13, "y": 0.75, "label": "0\n9" },
{ "row": 0, "col": 10, "x": 14, "y": 0.63, "label": "0\n10" },
{ "row": 0, "col": 11, "x": 15, "y": 0.75, "label": "0\n11" },
{ "row": 0, "col": 12, "x": 16, "y": 1.13, "label": "0\n12" },
{ "row": 0, "col": 13, "x": 17, "y": 1.13, "label": "0\n13" },
{ "row": 1, "col": 0, "x": 1.5, "y": 2.13, "label": "1\n0" },
{ "row": 1, "col": 1, "x": 2.5, "y": 2.13, "label": "1\n1" },
{ "row": 1, "col": 2, "x": 3.5, "y": 1.75, "label": "1\n2" },
{ "row": 1, "col": 3, "x": 4.5, "y": 1.63, "label": "1\n3" },
{ "row": 1, "col": 4, "x": 5.5, "y": 1.75, "label": "1\n4" },
{ "row": 1, "col": 5, "x": 6.5, "y": 2, "label": "1\n5" },
{ "row": 1, "col": 7, "x": 9.25, "y": 2.25, "label": "1\n7" },
{ "row": 1, "col": 8, "x": 12, "y": 2, "label": "1\n8" },
{ "row": 1, "col": 9, "x": 13, "y": 1.75, "label": "1\n9" },
{ "row": 1, "col": 10, "x": 14, "y": 1.63, "label": "1\n10" },
{ "row": 1, "col": 11, "x": 15, "y": 1.75, "label": "1\n11" },
{ "row": 1, "col": 12, "x": 16, "y": 2.13, "label": "1\n12" },
{ "row": 1, "col": 13, "x": 17, "y": 2.13, "label": "1\n13" },
{ "row": 2, "col": 0, "x": 1.5, "y": 3.13, "label": "2\n0" },
{ "row": 2, "col": 1, "x": 2.5, "y": 3.13, "label": "2\n1" },
{ "row": 2, "col": 2, "x": 3.5, "y": 2.75, "label": "2\n2" },
{ "row": 2, "col": 3, "x": 4.5, "y": 2.63, "label": "2\n3" },
{ "row": 2, "col": 4, "x": 5.5, "y": 2.75, "label": "2\n4" },
{ "row": 2, "col": 5, "x": 6.5, "y": 3, "label": "2\n5" },
{ "row": 2, "col": 7, "x": 8.25, "y": 1.25, "label": "2\n7" },
{ "row": 2, "col": 8, "x": 12, "y": 3, "label": "2\n8" },
{ "row": 2, "col": 9, "x": 13, "y": 2.75, "label": "2\n9" },
{ "row": 2, "col": 10, "x": 14, "y": 2.63, "label": "2\n10" },
{ "row": 2, "col": 11, "x": 15, "y": 2.75, "label": "2\n11" },
{ "row": 2, "col": 12, "x": 16, "y": 3.13, "label": "2\n12" },
{ "row": 2, "col": 13, "x": 17, "y": 3.13, "label": "2\n13" },
{ "row": 3, "col": 3, "x": 5.5, "y": 4.25, "label": "3\n3" },
{ "row": 3, "col": 4, "x": 7, "y": 4.25, "label": "3\n4", "r": 30, "rx": 6.5, "ry": 4.25 },
{ "row": 3, "col": 5, "x": 8.25, "y": 3.75, "label": "3\n5", "r": 30, "rx": 6.5, "ry": 4.25, "h": 1.5 },
{ "row": 3, "col": 7, "x": 10.25, "y": 1.25, "label": "3\n7" },
{ "row": 3, "col": 8, "x": 10.25, "y": 3.75, "label": "3\n8", "r": -30, "rx": 13, "ry": 4.25, "h": 1.5 },
{ "row": 3, "col": 9, "x": 11.5, "y": 4.25, "label": "3\n9", "r": -30, "rx": 13, "ry": 4.25 },
{ "row": 3, "col": 10, "x": 13, "y": 4.25, "label": "3\n10" },
{ "row": 4, "col": 2, "x": 8, "y": 3.5, "label": "4\n2" },
{ "row": 4, "col": 7, "x": 9.25, "y": 1.25, "label": "4\n7" }
]
}
},
"sensors": [
{
"ref": "left_encoder",
"name": "encoder_left",
"identifier": "encoder_left",
"compatible": "alps,ec11",
"label": "LEFT_ENCODER",
"enabled": true
}
]
}

150
config/corne.keymap Normal file
View File

@ -0,0 +1,150 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/ext_power.h>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/outputs.h>
#include <dt-bindings/zmk/rgb.h>
/ {
macros {
flash_macro: flash_macro {
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
bindings = <&bootloader>;
};
layer_s: layer_s {
label = "layer shift color";
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
wait-ms = <0>;
tap-ms = <0>;
bindings =
<&macro_press>,
<&kp LSHFT>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(35,100,50)>,
<&macro_pause_for_release>,
<&macro_release>,
<&kp LSHFT>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(240,50,30)>;
};
layer_1: layer_1 {
label = "layer 1";
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
wait-ms = <0>;
tap-ms = <0>;
bindings =
<&macro_press>,
<&lt 1 END>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(300,100,50)>,
<&macro_pause_for_release>,
<&macro_release>,
<&lt 1 END>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(240,50,30)>;
};
layer_2: layer_2 {
label = "layer 2";
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
wait-ms = <0>;
tap-ms = <0>;
bindings =
<&macro_press>,
<&mo 2>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(175,100,50)>,
<&macro_pause_for_release>,
<&macro_release>,
<&mo 2>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(240,50,30)>;
};
layer_3: layer_3 {
label = "layer 3";
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
wait-ms = <0>;
tap-ms = <0>;
bindings =
<&macro_press>,
<&lt 3 DEL>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(0,100,50)>,
<&macro_pause_for_release>,
<&macro_release>,
<&lt 3 DEL>,
<&macro_tap>,
<&rgb_ug RGB_COLOR_HSB(240,50,30)>;
};
};
behaviors {
hm: homerow_mods {
compatible = "zmk,behavior-hold-tap";
label = "HOMEROW_MODS";
bindings = <&kp>, <&kp>;
#binding-cells = <2>;
tapping-term-ms = <200>;
quick-tap-ms = <180>;
flavor = "tap-preferred";
};
ltq: ltq {
compatible = "zmk,behavior-hold-tap";
label = "LTQ";
bindings = <&mo>, <&kp>;
#binding-cells = <2>;
tapping-term-ms = <200>;
quick-tap-ms = <180>;
};
as: auto_shift {
compatible = "zmk,behavior-hold-tap";
label = "AUTO_SHIFT";
bindings = <&kp>, <&kp>;
#binding-cells = <2>;
tapping-term-ms = <135>;
quick-tap-ms = <0>;
};
};
keymap {
compatible = "zmk,keymap";
Qwery {
bindings = <
&rgb_ug RGB_TOG &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp UP_ARROW &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS
&ext_power EP_ON &kp Q &kp W &kp E &kp R &kp T &kp DOWN_ARROW &kp Y &kp U &kp I &kp O &kp P &kp RBKT
&ext_power EP_OFF &kp A &kp S &kp D &kp F &kp G &kp LEFT_ARROW &kp H &kp J &kp K &kp L &kp SEMI &kp APOS
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp RIGHT_ARROW &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp ENTER
&kp BSPC &kp LCTRL &kp LALT &kp LGUI &kp SPACE &kp ENTER &kp ENTER &kp ENTER &kp SPACE &kp RGUI &kp RALT &kp RCTRL
>;
sensor-bindings = <&inc_dec_kp C_VOLUME_UP C_VOL_DN>;
display-name = "Qwery";
};
Flash {
bindings = <
&flash_macro &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 &trans &trans &trans
>;
display-name = "Flash";
};
};
};

11
config/west.yml Normal file
View File

@ -0,0 +1,11 @@
manifest:
remotes:
- name: zmkfirmware
url-base: https://github.com/zmkfirmware
projects:
- name: zmk
remote: zmkfirmware
revision: main
import: app/west.yml
self:
path: config

917
keymap-drawer/sofle.svg Normal file
View File

@ -0,0 +1,917 @@
<svg width="1004" height="881" viewBox="0 0 1004 881" 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-caps">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-apple-keyboard-caps" viewBox="0 0 24 24"><path d="M15,14V8H17.17L12,2.83L6.83,8H9V14H15M12,0L22,10H17V16H7V10H2L12,0M7,18H17V24H7V18M15,20H9V22H15V20Z" /></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:arrow-down-bold">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-arrow-down-bold" viewBox="0 0 24 24"><path d="M9,4H15V12H19.84L12,19.84L4.16,12H9V4Z" /></svg>
</svg>
<svg id="mdi:arrow-left-bold">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-arrow-left-bold" viewBox="0 0 24 24"><path d="M20,9V15H12V19.84L4.16,12L12,4.16V9H20Z" /></svg>
</svg>
<svg id="mdi:arrow-right-bold">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-arrow-right-bold" viewBox="0 0 24 24"><path d="M4,15V9H12V4.16L19.84,12L12,19.84V15H4Z" /></svg>
</svg>
<svg id="mdi:arrow-up-bold">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-arrow-up-bold" viewBox="0 0 24 24"><path d="M15,20H9V12H4.16L12,4.16L19.84,12H15V20Z" /></svg>
</svg>
<svg id="mdi:backspace">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-backspace" viewBox="0 0 24 24"><path d="M22,3H7C6.31,3 5.77,3.35 5.41,3.88L0,12L5.41,20.11C5.77,20.64 6.31,21 7,21H22A2,2 0 0,0 24,19V5A2,2 0 0,0 22,3M19,15.59L17.59,17L14,13.41L10.41,17L9,15.59L12.59,12L9,8.41L10.41,7L14,10.59L17.59,7L19,8.41L15.41,12" /></svg>
</svg>
<svg id="mdi:keyboard-esc">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-keyboard-esc" viewBox="0 0 24 24"><path d="M1 7H7V9H3V11H7V13H3V15H7V17H1V7M11 7H15V9H11V11H13C14.11 11 15 11.9 15 13V15C15 16.11 14.11 17 13 17H9V15H13V13H11C9.9 13 9 12.11 9 11V9C9 7.9 9.9 7 11 7M19 7H21C22.11 7 23 7.9 23 9V10H21V9H19V15H21V14H23V15C23 16.11 22.11 17 21 17H19C17.9 17 17 16.11 17 15V9C17 7.9 17.9 7 19 7Z" /></svg>
</svg>
<svg id="mdi:keyboard-return">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-keyboard-return" viewBox="0 0 24 24"><path d="M19,7V11H5.83L9.41,7.41L8,6L2,12L8,18L9.41,16.58L5.83,13H21V7H19Z" /></svg>
</svg>
<svg id="mdi:keyboard-space">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-keyboard-space" viewBox="0 0 24 24"><path d="M3 15H5V19H19V15H21V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V15Z" /></svg>
</svg>
<svg id="mdi:keyboard-tab">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-keyboard-tab" viewBox="0 0 24 24"><path d="M20,18H22V6H20M11.59,7.41L15.17,11H1V13H15.17L11.59,16.58L13,18L19,12L13,6L11.59,7.41Z" /></svg>
</svg>
<svg id="mdi:transfer">
<svg xmlns="http://www.w3.org/2000/svg" id="mdi-transfer" viewBox="0 0 24 24"><path d="M8 4A2 2 0 0 0 6 6V10H8V6H16V9H13.5L17 12.5L20.5 9H18V6A2 2 0 0 0 16 4H8M3 12V14H11V12H3M3 15V17H11V15H3M13 15V17H21V15H13M3 18V20H11V18H3M13 18V20H21V18H13Z" /></svg>
</svg>
</defs>/* end glyphs */
<style>:root {
--fg-color: #24292e;
--key-color: #f6f8fa;
--outline-color: #c9cccf;
--combo-color: #ccddff;
--held-color: #ffdddd;
--font-size: 14px;
--small-font-size: 11px;
--tiny-font-size: 8px;
--dendron-color: #808080;
--trans-fg-color: #7b7e81;
}
/* 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: var(--font-size);
font-kerning: normal;
text-rendering: optimizeLegibility;
fill: var(--fg-color);
}
/* default key styling */
rect.key {
fill: var(--key-color);
}
rect.key, rect.combo {
stroke: var(--outline-color);
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: var(--combo-color);
}
/* color accent for held keys */
rect.held, rect.combo.held {
fill: var(--held-color);
}
/* styling 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 hold/shifted label text */
text.combo, text.hold, text.shifted {
font-size: var(--small-font-size);
}
text.hold {
text-anchor: middle;
dominant-baseline: auto;
}
text.shifted {
text-anchor: middle;
dominant-baseline: hanging;
}
/* styling for hold/shifted label text in combo box */
text.combo.hold, text.combo.shifted {
font-size: var(--tiny-font-size);
}
/* lighter symbol for transparent keys */
text.trans {
fill: var(--trans-fg-color);
}
/* styling for combo dendrons */
path.combo {
stroke-width: 1;
stroke: var(--dendron-color);
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: 12px;
font-weight: bold;
text-rendering: optimizeLegibility;
}
/* Color accent for held keys */
rect.held, rect.combo.held {
fill: #ffc;
}
/* 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-Qwery">
<text x="0" y="28" class="label">Qwery:</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:keyboard-esc" xlink:href="#mdi:keyboard-esc" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:keyboard-esc"/>
</g>
<g transform="translate(84, 56)" class="key keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">1</text>
<text x="0" y="-24" class="key shifted">!</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">2</text>
<text x="0" y="-24" class="key shifted">@</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">3</text>
<text x="0" y="-24" class="key shifted">#</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">4</text>
<text x="0" y="-24" class="key shifted">$</text>
</g>
<g transform="translate(308, 35)" class="key keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">5</text>
<text x="0" y="-24" class="key shifted">%</text>
</g>
<g transform="translate(462, 35)" class="key keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:arrow-up-bold" xlink:href="#mdi:arrow-up-bold" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:arrow-up-bold"/>
</g>
<g transform="translate(616, 35)" class="key keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">6</text>
<text x="0" y="-24" class="key shifted">^</text>
</g>
<g transform="translate(672, 35)" class="key keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">7</text>
<text x="0" y="-24" class="key shifted">&amp;</text>
</g>
<g transform="translate(728, 28)" class="key keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">8</text>
<text x="0" y="-24" class="key shifted">*</text>
</g>
<g transform="translate(784, 35)" class="key keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">9</text>
<text x="0" y="-24" class="key shifted">(</text>
</g>
<g transform="translate(840, 56)" class="key keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">0</text>
<text x="0" y="-24" class="key shifted">)</text>
</g>
<g transform="translate(896, 56)" class="key keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">-</text>
<text x="0" y="-24" class="key shifted">_</text>
</g>
<g transform="translate(28, 112)" class="key keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:keyboard-tab" xlink:href="#mdi:keyboard-tab" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:keyboard-tab"/>
</g>
<g transform="translate(84, 112)" class="key keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">Q</text>
</g>
<g transform="translate(140, 91)" class="key keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">W</text>
</g>
<g transform="translate(196, 84)" class="key keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">E</text>
</g>
<g transform="translate(252, 91)" class="key keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">R</text>
</g>
<g transform="translate(308, 91)" class="key keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">T</text>
</g>
<g transform="translate(462, 147)" class="key keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:arrow-down-bold" xlink:href="#mdi:arrow-down-bold" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:arrow-down-bold"/>
</g>
<g transform="translate(616, 91)" class="key keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">Y</text>
</g>
<g transform="translate(672, 91)" class="key keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">U</text>
</g>
<g transform="translate(728, 84)" class="key keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">I</text>
</g>
<g transform="translate(784, 91)" class="key keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">O</text>
</g>
<g transform="translate(840, 112)" class="key keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">P</text>
</g>
<g transform="translate(896, 112)" class="key keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">]</text>
<text x="0" y="-24" class="key shifted">}</text>
</g>
<g transform="translate(28, 168)" class="key keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:apple-keyboard-caps" xlink:href="#mdi:apple-keyboard-caps" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-caps"/>
</g>
<g transform="translate(84, 168)" class="key keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">A</text>
</g>
<g transform="translate(140, 147)" class="key keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">S</text>
</g>
<g transform="translate(196, 140)" class="key keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">D</text>
</g>
<g transform="translate(252, 147)" class="key keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">F</text>
</g>
<g transform="translate(308, 147)" class="key keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">G</text>
</g>
<g transform="translate(406, 91)" class="key keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:arrow-left-bold" xlink:href="#mdi:arrow-left-bold" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:arrow-left-bold"/>
</g>
<g transform="translate(616, 147)" class="key keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">H</text>
</g>
<g transform="translate(672, 147)" class="key keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">J</text>
</g>
<g transform="translate(728, 140)" class="key keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">K</text>
</g>
<g transform="translate(784, 147)" class="key keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">L</text>
</g>
<g transform="translate(840, 168)" class="key keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">;</text>
<text x="0" y="-24" class="key shifted">:</text>
</g>
<g transform="translate(896, 168)" class="key keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">.</text>
</g>
<g transform="translate(28, 224)" class="key keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:apple-keyboard-shift" xlink:href="#mdi:apple-keyboard-shift" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-shift"/>
</g>
<g transform="translate(84, 224)" class="key keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">Z</text>
</g>
<g transform="translate(140, 203)" class="key keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">X</text>
</g>
<g transform="translate(196, 196)" class="key keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">C</text>
</g>
<g transform="translate(252, 203)" class="key keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">V</text>
</g>
<g transform="translate(308, 203)" class="key keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">B</text>
</g>
<g transform="translate(518, 91)" class="key keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:arrow-right-bold" xlink:href="#mdi:arrow-right-bold" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:arrow-right-bold"/>
</g>
<g transform="translate(616, 203)" class="key keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">N</text>
</g>
<g transform="translate(672, 203)" class="key keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">M</text>
</g>
<g transform="translate(728, 196)" class="key keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">,</text>
<text x="0" y="-24" class="key shifted">&lt;</text>
</g>
<g transform="translate(784, 203)" class="key keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">.</text>
<text x="0" y="-24" class="key shifted">&gt;</text>
</g>
<g transform="translate(840, 224)" class="key keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">/</text>
<text x="0" y="-24" class="key shifted">?</text>
</g>
<g transform="translate(896, 224)" class="key enter keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key enter side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key enter"/>
<use href="#mdi:keyboard-return" xlink:href="#mdi:keyboard-return" x="-9" y="-13" height="18" width="18.0" class="key enter tap glyph mdi:keyboard-return"/>
</g>
<g transform="translate(392, 217)" class="key backspace keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key backspace side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key backspace"/>
<use href="#mdi:backspace" xlink:href="#mdi:backspace" x="-9" y="-13" height="18" width="18.0" class="key backspace tap glyph mdi:backspace"/>
</g>
<g transform="translate(140, 259)" class="key keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g>
<g transform="translate(196, 252)" class="key keypos-54">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g>
<g transform="translate(252, 259)" class="key keypos-55">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">LGUI</text>
</g>
<g transform="translate(314, 283) rotate(30.0)" class="key keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:keyboard-space" xlink:href="#mdi:keyboard-space" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:keyboard-space"/>
</g>
<g transform="translate(382, 306) rotate(30.0)" class="key enter keypos-57">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key enter side"/>
<rect rx="4" ry="4" x="-20" y="-38" width="40" height="68" class="key enter"/>
<use href="#mdi:keyboard-return" xlink:href="#mdi:keyboard-return" x="-9" y="-13" height="18" width="18.0" class="key enter tap glyph mdi:keyboard-return"/>
</g>
<g transform="translate(462, 91)" class="key enter keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key enter side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key enter"/>
<use href="#mdi:keyboard-return" xlink:href="#mdi:keyboard-return" x="-9" y="-13" height="18" width="18.0" class="key enter tap glyph mdi:keyboard-return"/>
</g>
<g transform="translate(542, 306) rotate(-30.0)" class="key enter keypos-59">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key enter side"/>
<rect rx="4" ry="4" x="-20" y="-38" width="40" height="68" class="key enter"/>
<use href="#mdi:keyboard-return" xlink:href="#mdi:keyboard-return" x="-9" y="-13" height="18" width="18.0" class="key enter tap glyph mdi:keyboard-return"/>
</g>
<g transform="translate(610, 283) rotate(-30.0)" class="key keypos-60">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:keyboard-space" xlink:href="#mdi:keyboard-space" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:keyboard-space"/>
</g>
<g transform="translate(672, 259)" class="key keypos-61">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap">RGUI</text>
</g>
<g transform="translate(728, 252)" class="key keypos-62">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:apple-keyboard-option" xlink:href="#mdi:apple-keyboard-option" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-option"/>
</g>
<g transform="translate(784, 259)" class="key keypos-63">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<use href="#mdi:apple-keyboard-control" xlink:href="#mdi:apple-keyboard-control" x="-9" y="-13" height="18" width="18.0" class="key tap glyph mdi:apple-keyboard-control"/>
</g>
</g>
</g>
<g transform="translate(40, 412)" class="layer-Flash">
<text x="0" y="28" class="label">Flash:</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key"/>
<text x="0" y="-4" class="key tap"><tspan style="font-size: 60%">&amp;flash_ma…</tspan></text>
</g>
<g transform="translate(84, 56)" class="key trans keypos-1">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</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 side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(308, 35)" class="key trans keypos-5">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(462, 35)" class="key trans keypos-6">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(616, 35)" class="key trans keypos-7">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(672, 35)" class="key trans keypos-8">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(728, 28)" class="key trans keypos-9">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(784, 35)" class="key trans keypos-10">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(840, 56)" class="key trans keypos-11">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(896, 56)" class="key trans keypos-12">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(28, 112)" class="key trans keypos-13">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(84, 112)" class="key trans keypos-14">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(140, 91)" class="key trans keypos-15">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(196, 84)" class="key trans keypos-16">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(252, 91)" class="key trans keypos-17">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(308, 91)" class="key trans keypos-18">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(462, 147)" class="key trans keypos-19">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(616, 91)" class="key trans keypos-20">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(672, 91)" class="key trans keypos-21">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(728, 84)" class="key trans keypos-22">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(784, 91)" class="key trans keypos-23">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(840, 112)" class="key trans keypos-24">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(896, 112)" class="key trans keypos-25">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(28, 168)" class="key trans keypos-26">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(84, 168)" class="key trans keypos-27">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(140, 147)" class="key trans keypos-28">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(196, 140)" class="key trans keypos-29">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(252, 147)" class="key trans keypos-30">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(308, 147)" class="key trans keypos-31">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(406, 91)" class="key trans keypos-32">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(616, 147)" class="key trans keypos-33">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(672, 147)" class="key trans keypos-34">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(728, 140)" class="key trans keypos-35">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(784, 147)" class="key trans keypos-36">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(840, 168)" class="key trans keypos-37">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(896, 168)" class="key trans keypos-38">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(28, 224)" class="key trans keypos-39">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(84, 224)" class="key trans keypos-40">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(140, 203)" class="key trans keypos-41">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(196, 196)" class="key trans keypos-42">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(252, 203)" class="key trans keypos-43">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(308, 203)" class="key trans keypos-44">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(518, 91)" class="key trans keypos-45">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(616, 203)" class="key trans keypos-46">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(672, 203)" class="key trans keypos-47">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(728, 196)" class="key trans keypos-48">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(784, 203)" class="key trans keypos-49">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(840, 224)" class="key trans keypos-50">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(896, 224)" class="key trans keypos-51">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(392, 217)" class="key trans keypos-52">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(140, 259)" class="key trans keypos-53">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(196, 252)" class="key trans keypos-54">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(252, 259)" class="key trans keypos-55">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(314, 283) rotate(30.0)" class="key trans keypos-56">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(382, 306) rotate(30.0)" class="key trans keypos-57">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-38" width="40" height="68" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(462, 91)" class="key trans keypos-58">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(542, 306) rotate(-30.0)" class="key trans keypos-59">
<rect rx="6" ry="6" x="-26" y="-40" width="52" height="80" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-38" width="40" height="68" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(610, 283) rotate(-30.0)" class="key trans keypos-60">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(672, 259)" class="key trans keypos-61">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(728, 252)" class="key trans keypos-62">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
<g transform="translate(784, 259)" class="key trans keypos-63">
<rect rx="6" ry="6" x="-26" y="-26" width="52" height="52" class="key trans side"/>
<rect rx="4" ry="4" x="-20" y="-24" width="40" height="40" class="key trans"/>
<use href="#mdi:transfer" xlink:href="#mdi:transfer" x="-9" y="-13" height="18" width="18.0" class="key trans tap glyph mdi:transfer"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 50 KiB

132
keymap-drawer/sofle.yaml Normal file
View File

@ -0,0 +1,132 @@
layout: {qmk_keyboard: corne/rev1}
layers:
Qwery:
- $$mdi:keyboard-esc$$
- {t: '1', s: '!'}
- {t: '2', s: '@'}
- {t: '3', s: '#'}
- {t: '4', s: $}
- {t: '5', s: '%'}
- $$mdi:arrow-up-bold$$
- {t: '6', s: ^}
- {t: '7', s: '&'}
- {t: '8', s: '*'}
- {t: '9', s: (}
- {t: '0', s: )}
- {t: '-', s: _}
- $$mdi:keyboard-tab$$
- Q
- W
- E
- R
- T
- $$mdi:arrow-down-bold$$
- Y
- U
- I
- O
- P
- {t: ']', s: '}'}
- $$mdi:apple-keyboard-caps$$
- A
- S
- D
- F
- G
- $$mdi:arrow-left-bold$$
- H
- J
- K
- L
- {t: ;, s: ':'}
- .
- $$mdi:apple-keyboard-shift$$
- Z
- X
- C
- V
- B
- $$mdi:arrow-right-bold$$
- N
- M
- {t: ',', s: <}
- {t: ., s: '>'}
- {t: /, s: '?'}
- {t: '$$mdi:keyboard-return$$', type: enter}
- {t: '$$mdi:backspace$$', type: backspace}
- $$mdi:apple-keyboard-control$$
- $$mdi:apple-keyboard-option$$
- LGUI
- $$mdi:keyboard-space$$
- {t: '$$mdi:keyboard-return$$', type: enter}
- {t: '$$mdi:keyboard-return$$', type: enter}
- {t: '$$mdi:keyboard-return$$', type: enter}
- $$mdi:keyboard-space$$
- RGUI
- $$mdi:apple-keyboard-option$$
- $$mdi:apple-keyboard-control$$
Flash:
- '&flash_macro'
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}
- {t: '$$mdi:transfer$$', type: trans}

558
keymap_drawer.config.yaml Normal file
View File

@ -0,0 +1,558 @@
draw_config:
n_columns: 1
draw_key_sides: true
key_w: 60.0
key_h: 56.0
split_gap: 30.0
combo_w: 28.0
combo_h: 26.0
key_rx: 6.0
key_ry: 6.0
inner_pad_w: 2.0
inner_pad_h: 2.0
outer_pad_w: 40.0
outer_pad_h: 56.0
line_spacing: 1.2
arc_radius: 6.0
append_colon_to_layer_header: true
small_pad: 2.0
svg_extra_style: |
/* 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: 12px;
font-weight: bold;
text-rendering: optimizeLegibility;
}
/* Color accent for held keys */
rect.held, rect.combo.held {
fill: #ffc;
}
/* 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;
}
shrink_wide_legends: 6
glyph_tap_size: 18
glyph_hold_size: 15
glyph_shifted_size: 15
glyphs: {}
glyph_urls:
tabler: https://unpkg.com/@tabler/icons/icons/outline/{}.svg
tablerf: https://unpkg.com/@tabler/icons/icons/filled/{}.svg
mdi: https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/master/svg/{}.svg
mdil: https://raw.githubusercontent.com/Pictogrammers/MaterialDesignLight/master/svg/{}.svg
material: https://fonts.gstatic.com/s/i/short-term/release/materialsymbolsoutlined/{}/default/48px.svg
use_local_cache: true
parse_config:
mark_alternate_layer_activators: true
sticky_label: $$mdi:gesture-tap-hold$$
trans_legend:
tap: $$mdi:transfer$$
type: trans
raw_binding_map:
# Layers
"&ltq 1 BACKSPACE":
tap: $$mdi:backspace$$
hold: '$$mdi:navigation-variant$$'
"&ltq 3 TAB":
tap: $$mdi:keyboard-tab$$
hold: $$mdi:numeric$$
"&ltq 2 SPACE":
tap: $$mdi:keyboard-space$$
hold: $$mdi:symbol$$
"&ltq 3 ENTER":
tap: $$mdi:keyboard-return$$
hold: $$mdi:numeric$$
"&ltq 1 DELETE":
tap: $$mdi:backspace-reverse-outline$$
hold: $$mdi:navigation-variant$$
# Home rows
"&hm LEFT_GUI A":
tap: 'A'
shifted: $$mdi:apple-keyboard-command$$
"&hm LEFT_ALT S":
tap: 'S'
shifted: $$mdi:apple-keyboard-option$$
"&hm LEFT_CONTROL D":
tap: 'D'
shifted: $$mdi:apple-keyboard-control$$
"&hm LEFT_SHIFT F":
tap: 'F'
shifted: $$mdi:apple-keyboard-shift$$
"&hm RIGHT_SHIFT J":
tap: 'J'
shifted: $$mdi:apple-keyboard-shift$$
"&hm RIGHT_CONTROL K":
tap: 'K'
shifted: $$mdi:apple-keyboard-control$$
"&hm RIGHT_ALT L":
tap: 'L'
shifted: $$mdi:apple-keyboard-option$$
# self behaviors
"&hm LG(LS(V)) P":
tap: 'P'
shifted: $$mdi:content-copy$$
# Mouse
"&msc SCRL_UP":
tap: $$mdi:pan-up$$
hold: ''
shifted: ''
"&msc SCRL_DOWN":
tap: $$mdi:pan-down$$
hold: ''
shifted: ''
"&msc SCRL_LEFT":
tap: $$mdi:pan-left$$
hold: ''
shifted: ''
"&msc SCRL_RIGHT":
tap: $$mdi:pan-right$$
hold: ''
shifted: ''
"&mmv MOVE_LEFT":
tap: $$mdi:menu-left$$
hold: ''
shifted: $$mdi:mouse$$
"&mmv MOVE_RIGHT":
tap: $$mdi:menu-right$$
hold: ''
shifted: $$mdi:mouse$$
"&mmv MOVE_UP":
tap: $$mdi:menu-up$$
hold: ''
shifted: $$mdi:mouse$$
"&mmv MOVE_DOWN":
tap: $$mdi:menu-down$$
hold: ''
shifted: $$mdi:mouse$$
"&mkp LCLK":
tap: $$mdi:mouse-left-click-outline$$
"&mkp RCLK":
tap: $$mdi:mouse-right-click-outline$$
"&mkp MCLK":
tap: $$mdi:mouse-scroll-wheel$$
# Modifiers
"&caps_word": $$mdi:alpha-w-box$$
"&kt RSHIFT":
tap: $$mdi:apple-keyboard-shift$$
hold: $$mdi:toggle-switch$$
# Empty
"&none":
tap: $$mdi:minus-circle-outline$$
type: none
# Whitespace
"&bkspc_del":
type: backspace
tap: $$mdi:backspace$$
shifted: $$mdi:backspace-reverse-outline$$
# Bluetooth
"&bt BT_SEL 0":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: 1
"&bt BT_SEL 1":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: 2
"&bt BT_SEL 2":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: 3
"&bt BT_SEL 3":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: 4
"&bt BT_SEL 4":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: 5
"&out OUT_TOG":
shifted: $$mdi:usb$$
tap: $$mdi:toggle-switch$$
hold: $$mdi:bluetooth$$
"&bt BT_PRV":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: $$mdi:arrow-up-bold$$
"&bt BT_NXT":
shifted: $$mdi:bluetooth-connect$$
tap: ""
hold: $$mdi:arrow-down-bold$$
# Reset
"&sys_reset":
type: bootloader
tap: $$mdi:backup-restore$$
"&bootloader":
tap: $$mdi:progress-download$$
# ZMK
zmk_keycode_map:
# Symbols
EXCLAMATION: "!"
EXCL: "!"
AT_SIGN: "@"
AT: "@"
HASH: "#"
POUND: "#"
DOLLAR: $
DLLR: $
PERCENT: "%"
PRCNT: "%"
CARET: ^
AMPERSAND: "&"
AMPS: "&"
ASTERISK: "*"
ASTRK: "*"
STAR: "*"
LEFT_PARENTHESIS: (
LPAR: (
RIGHT_PARENTHESIS: )
RPAR: )
EQUAL:
tap: "="
shifted: "+"
PLUS: +
MINUS:
tap: "-"
shifted: "_"
UNDERSCORE: _
UNDER: _
SLASH:
tap: "/"
shifted: "?"
FSLH:
tap: "/"
shifted: "?"
QUESTION: "?"
QMARK: "?"
BACKSLASH:
tap: '\'
shifted: "|"
BSLH:
tap: '\'
shifted: "|"
PIPE: "|"
NON_US_BACKSLASH: \
PIPE2: "|"
NON_US_BSLH: "|"
SEMICOLON:
tap: ";"
shifted: ":"
SEMI:
tap: ";"
shifted: ":"
COLON: ":"
SINGLE_QUOTE:
tap: "'"
shifted: '"'
SQT:
tap: "'"
shifted: '"'
APOSTROPHE: <
APOS: .
DOUBLE_QUOTES: '"'
DQT: '"'
LESS_THAN: <
LT: <
PERIOD: '.'
DOT:
tap: "."
shifted: ">"
COMMA:
tap: ","
shifted: "<"
GREATER_THAN: ">"
GT: ">"
LEFT_BRACKET:
tap: "["
shifted: "{"
LBKT:
tap: "["
shifted: "{"
LEFT_BRACE: "{"
LBRC: "{"
RIGHT_BRACKET:
tap: "]"
shifted: "}"
RBKT:
tap: "]"
shifted: "}"
RIGHT_BRACE: "}"
RBRC: "}"
GRAVE:
tap: "`"
shifted: "~"
TILDE: "~"
NON_US_HASH: "#"
NUHS: "#"
TILDE2: "~"
# Numbers
N1:
tap: 1
shifted: "!"
N2:
tap: 2
shifted: "@"
N3:
tap: 3
shifted: "#"
N4:
tap: 4
shifted: "$"
N5:
tap: 5
shifted: "%"
N6:
tap: 6
shifted: "^"
N7:
tap: 7
shifted: "&"
N8:
tap: 8
shifted: "*"
N9:
tap: 9
shifted: "("
N0:
tap: 0
shifted: ")"
# Modifiers
LCTRL: $$mdi:apple-keyboard-control$$
LEFT_CONTROL: $$mdi:apple-keyboard-control$$
LALT: $$mdi:apple-keyboard-option$$
LEFT_ALT: $$mdi:apple-keyboard-option$$
LSHIFT: $$mdi:apple-keyboard-shift$$
LEFT_SHIFT: $$mdi:apple-keyboard-shift$$
LSHFT: $$mdi:apple-keyboard-shift$$
LCMD: $$mdi:apple-keyboard-command$$
LG: $$mdi:apple-keyboard-command$$
LEFT_GUI: $$mdi:apple-keyboard-command$$
LEFT_COMMAND: $$mdi:apple-keyboard-command$$
RCTRL: $$mdi:apple-keyboard-control$$
RIGHT_CONTROL: $$mdi:apple-keyboard-control$$
RALT: $$mdi:apple-keyboard-option$$
RIGHT_ALT: $$mdi:apple-keyboard-option$$
RSHIFT: $$mdi:apple-keyboard-shift$$
RIGHT_SHIFT: $$mdi:apple-keyboard-shift$$
RSHFT: $$mdi:apple-keyboard-shift$$
RCMD: $$mdi:apple-keyboard-command$$
RG: $$mdi:apple-keyboard-command$$
PSCRN: $$mdi:printer-outline$$
RIGHT_COMMAND: $$mdi:apple-keyboard-command$$
PAGE_UP:
tap: 'PgUp'
shifted: ''
PAGE_DOWN:
tap: 'PgDn'
shifted: ''
INSERT:
tap: 'Ins'
shifted: ''
# "Meh" key
LS(LC(LALT)): $$mdi:star-three-points$$
# Arrows
UP: $$mdi:arrow-up-bold$$
UP_ARROW: $$mdi:arrow-up-bold$$
DOWN: $$mdi:arrow-down-bold$$
DOWN_ARROW: $$mdi:arrow-down-bold$$
LEFT_ARROW: $$mdi:arrow-left-bold$$
LEFT: $$mdi:arrow-left-bold$$
RIGHT: $$mdi:arrow-right-bold$$
RIGHT_ARROW: $$mdi:arrow-right-bold$$
# Whitespace
ENTER:
type: enter
tap: $$mdi:keyboard-return$$
RET:
type: enter
tap: $$mdi:keyboard-return$$
ESC: $$mdi:keyboard-esc$$
ESCAPE: $$mdi:keyboard-esc$$
TAB: $$mdi:keyboard-tab$$
LS(TAB): $$mdi:keyboard-tab-reverse$$
SPACE: $$mdi:keyboard-space$$
BACKSPACE:
type: backspace
tap: $$mdi:backspace$$
BSPC:
type: backspace
tap: $$mdi:backspace$$
DELETE: $$mdi:backspace-reverse-outline$$
DEL: $$mdi:backspace-reverse-outline$$
# Locks
CAPSLOCK: $$mdi:apple-keyboard-caps$$
CAPS: $$mdi:apple-keyboard-caps$$
# Sound
C_MUTE: $$mdi:volume-off$$
C_VOL_UP: $$mdi:volume-high$$
C_VOL_DN: $$mdi:volume-low$$
C_VOLUME_UP: $$mdi:volume-high$$
C_VOLUME_DOWN: $$mdi:volume-low$$
# Media
C_NEXT: $$mdi:skip-next$$
C_PREV: $$mdi:skip-previous$$
C_PP: $$mdi:play-pause$$
# Bluetooth
BT_CLR: $$mdi:bluetooth-off$$
BT_SEL: $$mdi:bluetooth-connect$$
# Settings
C_BRI_UP: $$mdi:brightness-5$$
C_BRIGHTNESS_INC: $$mdi:brightness-5$$
C_BRI_DN: $$mdi:brightness-7$$
C_BRI_DEC: $$mdi:brightness-7$$
C_BRIGHTNESS_DEC: $$mdi:brightness-7$$
# System
C_POWER: $$mdi:power-standby$$
C_AL_LOCK: $$mdi:lock$$
K_CANCEL: $$mdi:close-box$$
K_FIND: $$mdi:apple-finder$$
# Command +
LG(A):
tap: 'A'
hold: $$mdi:apple-keyboard-command$$
LG(S):
tap: 'S'
hold: $$mdi:apple-keyboard-command$$
LG(D):
tap: 'D'
hold: $$mdi:apple-keyboard-command$$
LG(F):
tap: 'F'
hold: $$mdi:apple-keyboard-command$$
LG(Z):
tap: 'Z'
hold: $$mdi:apple-keyboard-command$$
LG(X):
tap: 'X'
hold: $$mdi:apple-keyboard-command$$
LG(C):
tap: 'C'
hold: $$mdi:apple-keyboard-command$$
LG(V):
tap: 'V'
hold: $$mdi:apple-keyboard-command$$
# Zoom
RG(RS(A)):
tap: $$mdi:microphone$$
hold: zoom
RG(RS(V)):
tap: $$mdi:video$$
hold: zoom
zmk_combos:
combo_to_2:
align: top
combo_to_3:
align: top
combo_bt_clear:
align: top
offset: 0.03
combo_mute:
align: top
offset: 0.15
combo_minus:
key:
shifted: "_"
hold: "-"
combo_equal:
key:
shifted: "+"
hold: "="
combo_backslash:
key:
shifted: "|"
hold: \
combo_lbkt:
key:
shifted: "{"
hold: "["
combo_rbkt:
key:
shifted: "}"
hold: "]"
combo_semicolon:
key:
shifted: ":"
hold: ";"