initial config

This commit is contained in:
alko
2026-05-20 12:03:43 +05:00
parent 3b0626bbf6
commit 2f908fb3bb
21 changed files with 669 additions and 1 deletions

3
.gitignore vendored
View File

@@ -24,3 +24,6 @@ ext/mkinstalldirs
ext/run-tests.php
ext/.deps
ext/libtool
.pre-commit-config.yaml

View File

@@ -5,4 +5,3 @@
Keyboard Maintainer: [alko](https://github.com/alko-kbd/zmk-cornedeon54) [alko-kbd@alk0.ru](mailto:alko-kbd@alk0.ru)
Web Site: [cornedeon.ru](https://cornedeon.ru)

View File

@@ -0,0 +1,21 @@
config ZMK_SPLIT
default y
if SHIELD_CORNEDEON54_DONGLE
config ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS
default 2
config ZMK_SPLIT_ROLE_CENTRAL
default y
config BT_MAX_CONN
default 7
config BT_MAX_PAIRED
default 7
config ZMK_USB
default y
endif # SHIELD_CORNEDEON54_DONGLE

View File

@@ -0,0 +1,9 @@
config SHIELD_CORNEDEON54_DONGLE
def_bool $(shields_list_contains,cornedeon54_dongle)
config SHIELD_CORNEDEON54_LEFT
def_bool $(shields_list_contains,cornedeon54_left)
config SHIELD_CORNEDEON54_RIGHT
def_bool $(shields_list_contains,cornedeon54_right)

View File

@@ -0,0 +1,125 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <physical_layouts.dtsi>
/ {
chosen {
zmk,kscan = &kscan0;
zmk,physical-layout = &default_layout;
};
kscan0: kscan {
compatible = "zmk,kscan-gpio-matrix";
wakeup-source;
diode-direction = "col2row";
row-gpios
= <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 19 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 18 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
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>
;
};
default_layout: default_layout {
compatible = "zmk,physical-layout";
display-name = "6x5";
transform = <&default_transform>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 37 0 0 0>
, <&key_physical_attrs 100 100 100 37 0 0 0>
, <&key_physical_attrs 100 100 200 12 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 12 0 0 0>
, <&key_physical_attrs 100 100 500 24 0 0 0>
, <&key_physical_attrs 100 100 800 24 0 0 0>
, <&key_physical_attrs 100 100 900 12 0 0 0>
, <&key_physical_attrs 100 100 1000 0 0 0 0>
, <&key_physical_attrs 100 100 1100 12 0 0 0>
, <&key_physical_attrs 100 100 1200 37 0 0 0>
, <&key_physical_attrs 100 100 1300 37 0 0 0>
, <&key_physical_attrs 100 100 0 137 0 0 0>
, <&key_physical_attrs 100 100 100 137 0 0 0>
, <&key_physical_attrs 100 100 200 112 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 112 0 0 0>
, <&key_physical_attrs 100 100 500 124 0 0 0>
, <&key_physical_attrs 100 100 800 124 0 0 0>
, <&key_physical_attrs 100 100 900 112 0 0 0>
, <&key_physical_attrs 100 100 1000 100 0 0 0>
, <&key_physical_attrs 100 100 1100 112 0 0 0>
, <&key_physical_attrs 100 100 1200 137 0 0 0>
, <&key_physical_attrs 100 100 1300 137 0 0 0>
, <&key_physical_attrs 100 100 0 237 0 0 0>
, <&key_physical_attrs 100 100 100 237 0 0 0>
, <&key_physical_attrs 100 100 200 212 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 100 400 212 0 0 0>
, <&key_physical_attrs 100 100 500 224 0 0 0>
, <&key_physical_attrs 100 100 800 224 0 0 0>
, <&key_physical_attrs 100 100 900 212 0 0 0>
, <&key_physical_attrs 100 100 1000 200 0 0 0>
, <&key_physical_attrs 100 100 1100 212 0 0 0>
, <&key_physical_attrs 100 100 1200 237 0 0 0>
, <&key_physical_attrs 100 100 1300 237 0 0 0>
, <&key_physical_attrs 100 100 0 337 0 0 0>
, <&key_physical_attrs 100 100 100 337 0 0 0>
, <&key_physical_attrs 100 100 200 312 0 0 0>
, <&key_physical_attrs 100 100 300 300 0 0 0>
, <&key_physical_attrs 100 100 400 312 0 0 0>
, <&key_physical_attrs 100 100 500 324 0 0 0>
, <&key_physical_attrs 100 100 800 324 0 0 0>
, <&key_physical_attrs 100 100 900 312 0 0 0>
, <&key_physical_attrs 100 100 1000 300 0 0 0>
, <&key_physical_attrs 100 100 1100 312 0 0 0>
, <&key_physical_attrs 100 100 1200 337 0 0 0>
, <&key_physical_attrs 100 100 1300 337 0 0 0>
, <&key_physical_attrs 100 100 0 437 0 0 0>
, <&key_physical_attrs 100 100 100 437 0 0 0>
, <&key_physical_attrs 100 100 200 412 0 0 0>
, <&key_physical_attrs 100 100 350 412 0 0 0>
, <&key_physical_attrs 100 100 450 412 1200 450 412>
, <&key_physical_attrs 100 150 548 483 2400 548 433>
, <&key_physical_attrs 100 150 752 483 (-2400) 852 433>
, <&key_physical_attrs 100 100 850 412 (-1200) 950 412>
, <&key_physical_attrs 100 100 950 412 0 0 0>
, <&key_physical_attrs 100 100 1100 412 0 0 0>
, <&key_physical_attrs 100 100 1200 437 0 0 0>
, <&key_physical_attrs 100 100 1300 437 0 0 0>
;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <12>;
rows = <5>;
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(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,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
>;
};
};

View File

@@ -0,0 +1,13 @@
file_format: "1"
id: cornedeon54
name: Cornedeon54
type: shield
url: https://github.com/alko-kbd/zmk-cornedeon54/
requires: [pro_micro]
features:
- keys
- studio
siblings:
- cornedeon54_left
- cornedeon54_right
- cornedeon54_dongle

View File

@@ -0,0 +1,21 @@
### 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=n
CONFIG_BT_BAS=n
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=y
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,109 @@
/*
* Copyright (c) 2020 Pete Johanson
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <physical_layouts.dtsi>
/ {
chosen {
zmk,kscan = &mock_kscan;
zmk,physical-layout = &default_layout;
};
mock_kscan: mock_kscan_0 {
compatible = "zmk,kscan-mock";
columns = <0>;
rows = <0>;
events = <0>;
};
default_layout: default_layout {
compatible = "zmk,physical-layout";
display-name = "6x4";
transform = <&default_transform>;
keys // w h x y rot rx ry
= <&key_physical_attrs 100 100 0 37 0 0 0>
, <&key_physical_attrs 100 100 100 37 0 0 0>
, <&key_physical_attrs 100 100 200 12 0 0 0>
, <&key_physical_attrs 100 100 300 0 0 0 0>
, <&key_physical_attrs 100 100 400 12 0 0 0>
, <&key_physical_attrs 100 100 500 24 0 0 0>
, <&key_physical_attrs 100 100 800 24 0 0 0>
, <&key_physical_attrs 100 100 900 12 0 0 0>
, <&key_physical_attrs 100 100 1000 0 0 0 0>
, <&key_physical_attrs 100 100 1100 12 0 0 0>
, <&key_physical_attrs 100 100 1200 37 0 0 0>
, <&key_physical_attrs 100 100 1300 37 0 0 0>
, <&key_physical_attrs 100 100 0 137 0 0 0>
, <&key_physical_attrs 100 100 100 137 0 0 0>
, <&key_physical_attrs 100 100 200 112 0 0 0>
, <&key_physical_attrs 100 100 300 100 0 0 0>
, <&key_physical_attrs 100 100 400 112 0 0 0>
, <&key_physical_attrs 100 100 500 124 0 0 0>
, <&key_physical_attrs 100 100 800 124 0 0 0>
, <&key_physical_attrs 100 100 900 112 0 0 0>
, <&key_physical_attrs 100 100 1000 100 0 0 0>
, <&key_physical_attrs 100 100 1100 112 0 0 0>
, <&key_physical_attrs 100 100 1200 137 0 0 0>
, <&key_physical_attrs 100 100 1300 137 0 0 0>
, <&key_physical_attrs 100 100 0 237 0 0 0>
, <&key_physical_attrs 100 100 100 237 0 0 0>
, <&key_physical_attrs 100 100 200 212 0 0 0>
, <&key_physical_attrs 100 100 300 200 0 0 0>
, <&key_physical_attrs 100 100 400 212 0 0 0>
, <&key_physical_attrs 100 100 500 224 0 0 0>
, <&key_physical_attrs 100 100 800 224 0 0 0>
, <&key_physical_attrs 100 100 900 212 0 0 0>
, <&key_physical_attrs 100 100 1000 200 0 0 0>
, <&key_physical_attrs 100 100 1100 212 0 0 0>
, <&key_physical_attrs 100 100 1200 237 0 0 0>
, <&key_physical_attrs 100 100 1300 237 0 0 0>
, <&key_physical_attrs 100 100 0 337 0 0 0>
, <&key_physical_attrs 100 100 100 337 0 0 0>
, <&key_physical_attrs 100 100 200 312 0 0 0>
, <&key_physical_attrs 100 100 300 300 0 0 0>
, <&key_physical_attrs 100 100 400 312 0 0 0>
, <&key_physical_attrs 100 100 500 324 0 0 0>
, <&key_physical_attrs 100 100 800 324 0 0 0>
, <&key_physical_attrs 100 100 900 312 0 0 0>
, <&key_physical_attrs 100 100 1000 300 0 0 0>
, <&key_physical_attrs 100 100 1100 312 0 0 0>
, <&key_physical_attrs 100 100 1200 337 0 0 0>
, <&key_physical_attrs 100 100 1300 337 0 0 0>
, <&key_physical_attrs 100 100 0 437 0 0 0>
, <&key_physical_attrs 100 100 100 437 0 0 0>
, <&key_physical_attrs 100 100 200 412 0 0 0>
, <&key_physical_attrs 100 100 350 412 0 0 0>
, <&key_physical_attrs 100 100 450 412 1200 450 412>
, <&key_physical_attrs 100 150 548 483 2400 548 433>
, <&key_physical_attrs 100 150 752 483 (-2400) 852 433>
, <&key_physical_attrs 100 100 850 412 (-1200) 950 412>
, <&key_physical_attrs 100 100 950 412 0 0 0>
, <&key_physical_attrs 100 100 1100 412 0 0 0>
, <&key_physical_attrs 100 100 1200 437 0 0 0>
, <&key_physical_attrs 100 100 1300 437 0 0 0>
;
};
default_transform: keymap_transform_0 {
compatible = "zmk,matrix-transform";
columns = <12>;
rows = <5>;
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(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,5) RC(4,6) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11)
>;
};
};

View File

@@ -0,0 +1 @@
#include "cornedeon54.dtsi"

View File

@@ -0,0 +1 @@
#include "cornedeon54.dtsi"

View File

@@ -0,0 +1,24 @@
#include "cornedeon54.dtsi"
&default_transform {
col-offset = <6>;
};
&kscan0 {
row-gpios
= <&pro_micro 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 4 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
, <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>
;
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>
;
};

32
build.yaml Normal file
View File

@@ -0,0 +1,32 @@
# This file generates the GitHub Actions matrix.
# For simple board + shield combinations, add them to the top level board and
# shield arrays, for more control, add individual board + shield combinations
# to the `include` property. You can also use the `cmake-args` property to
# pass flags to the build command, `snippet` to add a Zephyr snippet, and
# `artifact-name` to assign a name to distinguish build outputs from each other:
#
---
include:
- board: nice_nano//zmk
shield: cornedeon54_dongle
snippet: studio-rpc-usb-uart
artifact-name: zmk_cornedeon54_dongle
# snippet: zmk-usb-logging
- board: nice_nano//zmk
shield: cornedeon54_left
# snippet: studio-rpc-usb-uart
artifact-name: zmk_cornedeon54_left
# - board: nice_nano//zmk
# shield: cornedeon54_left_peripheral
# snippet: studio-rpc-usb-uart
# artifact-name: zmk_cornedeon54_left_peripheral
- board: nice_nano//zmk
shield: cornedeon54_right
# snippet: studio-rpc-usb-uart
artifact-name: zmk_cornedeon54_right
- board: nice_nano//zmk
shield: settings_reset

99
config/cornedeon54.conf Normal file
View File

@@ -0,0 +1,99 @@
### Keyboard name
CONFIG_ZMK_KEYBOARD_NAME="Cornedeon54 ZMK"
### 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
CONFIG_ZMK_BLE_EXPERIMENTAL_SEC=y
CONFIG_ZMK_BLE_PASSKEY_ENTRY=n
# Peripheral battery monitoring
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y
CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=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 Numero 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
CONFIG_ZMK_STUDIO=y
CONFIG_ZMK_STUDIO_LOCKING=n
### 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=n
CONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=n
# 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
### DEBUG OPTIONS
# CONFIG_ZMK_USB_LOGGING=y
# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000

119
config/cornedeon54.keymap Normal file
View File

@@ -0,0 +1,119 @@
/*
* Copyright (c) 2020 The ZMK Contributors
*
* SPDX-License-Identifier: MIT
*/
#include <dt-bindings/zmk/matrix_transform.h>
#include <behaviors.dtsi>
#include <dt-bindings/zmk/bt.h>
#include <dt-bindings/zmk/keys.h>
/ {
keymap {
compatible = "zmk,keymap";
layer_0 {
display-name = "Layer 0";
// ----------------------------------------------------------------------------------------
// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BSPC |
// | TAB | Q | W | E | R | T | | Y | U | I | O | P | \ |
// | SHIFT | A | S | D | F | G | | H | J | K | L | ; | ' |
// | CTRL | Z | X | C | V | B | | N | M | , | . | / | SHIFT |
// | | | | LALT | MO(1) | SPC | | SPC | MO(2) | 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 BSPC
&kp TAB &kp Q &kp W &kp E &kp R &mt GRAVE T &kp Y &kp U &kp I &kp O &mt LBKT P &kp BSLH
&kp LSHFT &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT
&kp LCTRL &kp Z &kp X &kp C &kp V &kp B &kp N &mt RBKT M &kp COMMA &kp DOT &kp FSLH &kp RSHFT
&none &none &none &kp LALT &mo 1 &kp SPACE &kp SPACE &mo 2 &kp RGUI &none &none &none
>;
};
layer_1 {
display-name = "Layer 1";
// -------------------------------------------------------------------------------------
// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
// | TAB | ~ | ( | ) | * | / | | 7 | 8 | 9 | 0 | INS | DEL |
// | SHIFT | | [ | ] | + | - | | 4 | 5 | 6 | . | / | \ |
// | CTRL | | { | } | < | > | | 1 | 2 | 3 | = | _ | SHIFT |
// | | | END | ALT | | RET | | RET | | GUI | | | |
bindings = <
&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 TAB &kp TILDA &kp LPAR &kp RPAR &kp STAR &kp FSLH &kp N7 &kp N8 &kp N9 &kp N0 &kp INS &kp DEL
&kp TAB &none &kp LBKT &kp RBKT &kp PLUS &kp MINUS &kp N4 &kp N5 &kp N6 &kp DOT &kp FSLH &kp BSLH
&kp LSHFT &none &kp LBRC &kp RBRC &kp LT &kp GT &kp N1 &kp N2 &kp N3 &kp EQUAL &kp UNDER &kp RSHFT
&none &none &none &kp LALT &trans &kp RET &kp RET &trans &kp RGUI &none &none &none
>;
};
layer_2 {
display-name = "Layer 2";
// ------------------------------------------------------------------------------------------
// | | | | | | | | | | | | | |
// | | | | | UP | | | | | | | PSCRN | PAUSE |
// | | | | LEFT| |RIGHT| | | | | | NUMLK | SCRLK |
// | SHIFT | | | | DOWN| | | | | | | MENU | SHIFT |
// | | | | ALT | | RET | | RET | | CAPS | | | |
bindings = <
&none &none &none &none &none &none &none &none &none &none &none &none
&none &none &none &none &kp UP &none &none &none &none &none &kp PSCRN &kp PAUSE_BREAK
&none &none &none &kp LEFT &none &kp RIGHT &none &none &none &none &kp KP_NUM &kp SLCK
&kp LSHFT &none &none &kp DOWN &none &none &none &none &none &kp K_APP &kp RSHFT
&none &none &none &kp LALT &trans &kp KP_RET &kp RET &trans &kp CAPS &none &none &none
>;
};
layer_3 {
display-name = "Layer 3";
// -----------------------------------------------------------------------------------
// | BTCLR | BT0 | BT1 | BT2 | BT3 | BT4 | | | | | | | |
// | | | | | | | | | | | | | |
// | | | | | | | | | | | | | |
// | | | | | | | | | | | | | |
// | | | | CALC | | | | | | | | | |
bindings = <
&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &none &none &none &none &none &none
&none &none &none &none &none &none &none &none &none &none &none &none
&none &none &none &none &none &none &none &none &none &none &none &none
&none &none &none &none &none &none &none &none &none &none &none &none
&none &none &none &kp K_CALC &none &none &none &none &none &none &none &none
>;
};
};
conditional_layers {
compatible = "zmk,conditional-layers";
layer_3 {
if-layers = <1 2>;
then-layer = <3>;
};
};
combos {
compatible = "zmk,combos";
combo_bt_clr_left {
timeout-ms = <50>;
layers = <1>;
key-positions = <0 1 2 3>;
bindings = <&bt BT_CLR>;
};
combo_bt_clr_right {
timeout-ms = <50>;
layers = <2>;
key-positions = <12 13 14 15>;
bindings = <&bt BT_CLR>;
};
};
};

75
config/info.json Normal file
View File

@@ -0,0 +1,75 @@
{
"id": "cornedeon54",
"name": "cornedeon54",
"keyboard_name": "Cornedeon54 ZMK",
"manufacturer": "alko",
"url": "https://cornedeon.ru",
"maintainer": "alko",
"layouts": {
"LAYOUT": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0.3 },
{ "matrix": [0, 1], "x": 1, "y": 0.3 },
{ "matrix": [0, 2], "x": 2, "y": 0.1 },
{ "matrix": [0, 3], "x": 3, "y": 0 },
{ "matrix": [0, 4], "x": 4, "y": 0.1 },
{ "matrix": [0, 5], "x": 5, "y": 0.2 },
{ "matrix": [5, 5], "x": 9, "y": 0.2 },
{ "matrix": [5, 4], "x": 10, "y": 0.1 },
{ "matrix": [5, 3], "x": 11, "y": 0 },
{ "matrix": [5, 2], "x": 12, "y": 0.1 },
{ "matrix": [5, 1], "x": 13, "y": 0.3 },
{ "matrix": [5, 0], "x": 14, "y": 0.3 },
{ "matrix": [1, 0], "x": 0, "y": 1.3 },
{ "matrix": [1, 1], "x": 1, "y": 1.3 },
{ "matrix": [1, 2], "x": 2, "y": 1.1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [1, 4], "x": 4, "y": 1.1 },
{ "matrix": [1, 5], "x": 5, "y": 1.2 },
{ "matrix": [6, 5], "x": 9, "y": 1.2 },
{ "matrix": [6, 4], "x": 10, "y": 1.1 },
{ "matrix": [6, 3], "x": 11, "y": 1 },
{ "matrix": [6, 2], "x": 12, "y": 1.1 },
{ "matrix": [6, 1], "x": 13, "y": 1.3 },
{ "matrix": [6, 0], "x": 14, "y": 1.3 },
{ "matrix": [2, 0], "x": 0, "y": 2.3 },
{ "matrix": [2, 1], "x": 1, "y": 2.3 },
{ "matrix": [2, 2], "x": 2, "y": 2.1 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [2, 4], "x": 4, "y": 2.1 },
{ "matrix": [2, 5], "x": 5, "y": 2.2 },
{ "matrix": [7, 5], "x": 9, "y": 2.2 },
{ "matrix": [7, 4], "x": 10, "y": 2.1 },
{ "matrix": [7, 3], "x": 11, "y": 2 },
{ "matrix": [7, 2], "x": 12, "y": 2.1 },
{ "matrix": [7, 1], "x": 13, "y": 2.3 },
{ "matrix": [7, 0], "x": 14, "y": 2.3 },
{ "matrix": [3, 0], "x": 0, "y": 3.3 },
{ "matrix": [3, 1], "x": 1, "y": 3.3 },
{ "matrix": [3, 2], "x": 2, "y": 3.1 },
{ "matrix": [3, 3], "x": 3, "y": 3 },
{ "matrix": [3, 4], "x": 4, "y": 3.1 },
{ "matrix": [3, 5], "x": 5, "y": 3.2 },
{ "matrix": [8, 5], "x": 9, "y": 3.2 },
{ "matrix": [8, 4], "x": 10, "y": 3.1 },
{ "matrix": [8, 3], "x": 11, "y": 3 },
{ "matrix": [8, 2], "x": 12, "y": 3.1 },
{ "matrix": [8, 1], "x": 13, "y": 3.3 },
{ "matrix": [8, 0], "x": 14, "y": 3.3 },
{ "matrix": [4, 0], "x": 0, "y": 4.7 },
{ "matrix": [4, 1], "x": 1, "y": 4.7 },
{ "matrix": [4, 2], "x": 2, "y": 4.7 },
{ "matrix": [4, 3], "x": 4, "y": 4.7 },
{ "matrix": [4, 4], "x": 5, "y": 4.7 },
{ "matrix": [4, 5], "x": 6, "y": 4.2, "h": 1.5 },
{ "matrix": [9, 5], "x": 8, "y": 4.2, "h": 1.5 },
{ "matrix": [9, 4], "x": 9, "y": 4.7 },
{ "matrix": [9, 3], "x": 10, "y": 4.7 },
{ "matrix": [9, 2], "x": 12, "y": 4.7 },
{ "matrix": [9, 1], "x": 13, "y": 4.7 },
{ "matrix": [9, 0], "x": 14, "y": 4.7 }
]
}
},
"sensors": []
}

14
config/west.yml Normal file
View File

@@ -0,0 +1,14 @@
manifest:
defaults:
revision: v0.3
remotes:
- name: zmkfirmware
url-base: https://github.com/zmkfirmware
# Additional modules containing boards/shields/custom code can be listed here as well
# See https://docs.zephyrproject.org/3.2.0/develop/west/manifest.html#projects
projects:
- name: zmk
remote: zmkfirmware
import: app/west.yml
self:
path: config

3
zephyr/module.yml Normal file
View File

@@ -0,0 +1,3 @@
build:
settings:
board_root: .