From 2f908fb3bbb45267b8aa03b943b8c354feb72320 Mon Sep 17 00:00:00 2001 From: alko Date: Wed, 20 May 2026 12:03:43 +0500 Subject: [PATCH] initial config --- .gitignore | 3 + README.md | 1 - boards/shields/cornedeon54/Kconfig.defconfig | 21 +++ boards/shields/cornedeon54/Kconfig.shield | 9 ++ boards/shields/cornedeon54/cornedeon54.conf | 0 boards/shields/cornedeon54/cornedeon54.dtsi | 125 ++++++++++++++++++ .../shields/cornedeon54/cornedeon54.zmk.yml | 13 ++ .../cornedeon54/cornedeon54_dongle.conf | 21 +++ .../cornedeon54/cornedeon54_dongle.overlay | 109 +++++++++++++++ .../shields/cornedeon54/cornedeon54_left.conf | 0 .../cornedeon54/cornedeon54_left.overlay | 1 + .../cornedeon54_left_peripheral.conf | 0 .../cornedeon54_left_peripheral.overlay | 1 + .../cornedeon54/cornedeon54_right.conf | 0 .../cornedeon54/cornedeon54_right.overlay | 24 ++++ build.yaml | 32 +++++ config/cornedeon54.conf | 99 ++++++++++++++ config/cornedeon54.keymap | 119 +++++++++++++++++ config/info.json | 75 +++++++++++ config/west.yml | 14 ++ zephyr/module.yml | 3 + 21 files changed, 669 insertions(+), 1 deletion(-) create mode 100644 boards/shields/cornedeon54/Kconfig.defconfig create mode 100644 boards/shields/cornedeon54/Kconfig.shield create mode 100644 boards/shields/cornedeon54/cornedeon54.conf create mode 100644 boards/shields/cornedeon54/cornedeon54.dtsi create mode 100644 boards/shields/cornedeon54/cornedeon54.zmk.yml create mode 100644 boards/shields/cornedeon54/cornedeon54_dongle.conf create mode 100644 boards/shields/cornedeon54/cornedeon54_dongle.overlay create mode 100644 boards/shields/cornedeon54/cornedeon54_left.conf create mode 100644 boards/shields/cornedeon54/cornedeon54_left.overlay create mode 100644 boards/shields/cornedeon54/cornedeon54_left_peripheral.conf create mode 100644 boards/shields/cornedeon54/cornedeon54_left_peripheral.overlay create mode 100644 boards/shields/cornedeon54/cornedeon54_right.conf create mode 100644 boards/shields/cornedeon54/cornedeon54_right.overlay create mode 100644 build.yaml create mode 100644 config/cornedeon54.conf create mode 100644 config/cornedeon54.keymap create mode 100644 config/info.json create mode 100644 config/west.yml create mode 100644 zephyr/module.yml diff --git a/.gitignore b/.gitignore index 839cb5d..cf4199c 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,6 @@ ext/mkinstalldirs ext/run-tests.php ext/.deps ext/libtool + +.pre-commit-config.yaml + diff --git a/README.md b/README.md index 5bbe7ef..02c0784 100644 --- a/README.md +++ b/README.md @@ -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) - diff --git a/boards/shields/cornedeon54/Kconfig.defconfig b/boards/shields/cornedeon54/Kconfig.defconfig new file mode 100644 index 0000000..981f8db --- /dev/null +++ b/boards/shields/cornedeon54/Kconfig.defconfig @@ -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 \ No newline at end of file diff --git a/boards/shields/cornedeon54/Kconfig.shield b/boards/shields/cornedeon54/Kconfig.shield new file mode 100644 index 0000000..07555da --- /dev/null +++ b/boards/shields/cornedeon54/Kconfig.shield @@ -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) + diff --git a/boards/shields/cornedeon54/cornedeon54.conf b/boards/shields/cornedeon54/cornedeon54.conf new file mode 100644 index 0000000..e69de29 diff --git a/boards/shields/cornedeon54/cornedeon54.dtsi b/boards/shields/cornedeon54/cornedeon54.dtsi new file mode 100644 index 0000000..a080ca6 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54.dtsi @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +/ { + 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) + >; + }; + + +}; diff --git a/boards/shields/cornedeon54/cornedeon54.zmk.yml b/boards/shields/cornedeon54/cornedeon54.zmk.yml new file mode 100644 index 0000000..d72a751 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54.zmk.yml @@ -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 diff --git a/boards/shields/cornedeon54/cornedeon54_dongle.conf b/boards/shields/cornedeon54/cornedeon54_dongle.conf new file mode 100644 index 0000000..1572de6 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54_dongle.conf @@ -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 diff --git a/boards/shields/cornedeon54/cornedeon54_dongle.overlay b/boards/shields/cornedeon54/cornedeon54_dongle.overlay new file mode 100644 index 0000000..d2ac704 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54_dongle.overlay @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +/ { + 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) + >; + }; + + +}; diff --git a/boards/shields/cornedeon54/cornedeon54_left.conf b/boards/shields/cornedeon54/cornedeon54_left.conf new file mode 100644 index 0000000..e69de29 diff --git a/boards/shields/cornedeon54/cornedeon54_left.overlay b/boards/shields/cornedeon54/cornedeon54_left.overlay new file mode 100644 index 0000000..dbab545 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54_left.overlay @@ -0,0 +1 @@ +#include "cornedeon54.dtsi" diff --git a/boards/shields/cornedeon54/cornedeon54_left_peripheral.conf b/boards/shields/cornedeon54/cornedeon54_left_peripheral.conf new file mode 100644 index 0000000..e69de29 diff --git a/boards/shields/cornedeon54/cornedeon54_left_peripheral.overlay b/boards/shields/cornedeon54/cornedeon54_left_peripheral.overlay new file mode 100644 index 0000000..dbab545 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54_left_peripheral.overlay @@ -0,0 +1 @@ +#include "cornedeon54.dtsi" diff --git a/boards/shields/cornedeon54/cornedeon54_right.conf b/boards/shields/cornedeon54/cornedeon54_right.conf new file mode 100644 index 0000000..e69de29 diff --git a/boards/shields/cornedeon54/cornedeon54_right.overlay b/boards/shields/cornedeon54/cornedeon54_right.overlay new file mode 100644 index 0000000..4690eb0 --- /dev/null +++ b/boards/shields/cornedeon54/cornedeon54_right.overlay @@ -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> + ; +}; diff --git a/build.yaml b/build.yaml new file mode 100644 index 0000000..7f78d76 --- /dev/null +++ b/build.yaml @@ -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 diff --git a/config/cornedeon54.conf b/config/cornedeon54.conf new file mode 100644 index 0000000..a39140b --- /dev/null +++ b/config/cornedeon54.conf @@ -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 diff --git a/config/cornedeon54.keymap b/config/cornedeon54.keymap new file mode 100644 index 0000000..c6339cb --- /dev/null +++ b/config/cornedeon54.keymap @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +/ { + 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>; + }; + }; +}; diff --git a/config/info.json b/config/info.json new file mode 100644 index 0000000..b970f59 --- /dev/null +++ b/config/info.json @@ -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": [] +} diff --git a/config/west.yml b/config/west.yml new file mode 100644 index 0000000..d99f6e6 --- /dev/null +++ b/config/west.yml @@ -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 diff --git a/zephyr/module.yml b/zephyr/module.yml new file mode 100644 index 0000000..1cc2b35 --- /dev/null +++ b/zephyr/module.yml @@ -0,0 +1,3 @@ +build: + settings: + board_root: .