From 51779bb90f586633a4e073b4218dfca64e82e3ee Mon Sep 17 00:00:00 2001 From: mctechnology17 Date: Mon, 6 Jan 2025 19:35:51 +0100 Subject: [PATCH] feat: add lily58 and splitkb_aurora_sofle support --- CHANGELOG.txt | 10 + README.md | 212 ++-- boards/shields/lily58/Kconfig.defconfig | 52 + boards/shields/lily58/Kconfig.shield | 17 + .../shields/lily58/boards/nice_nano.overlay | 46 + .../lily58/boards/nice_nano_v2.overlay | 46 + boards/shields/lily58/lily58.conf | 6 + boards/shields/lily58/lily58.dtsi | 87 ++ boards/shields/lily58/lily58.keymap | 70 ++ boards/shields/lily58/lily58.zmk.yml | 17 + .../lily58/lily58_dongle_pro_micro.conf | 30 + .../lily58/lily58_dongle_pro_micro.overlay | 150 +++ boards/shields/lily58/lily58_dongle_xiao.conf | 24 + .../shields/lily58/lily58_dongle_xiao.overlay | 187 ++++ boards/shields/lily58/lily58_left.conf | 3 + boards/shields/lily58/lily58_left.overlay | 22 + .../lily58/lily58_left_peripheral.conf | 0 .../lily58/lily58_left_peripheral.overlay | 22 + boards/shields/lily58/lily58_right.conf | 1 + boards/shields/lily58/lily58_right.overlay | 22 + .../splitkb_aurora_sofle/Kconfig.defconfig | 58 + .../splitkb_aurora_sofle/Kconfig.shield | 17 + .../boards/nice_nano.overlay | 45 + .../boards/nice_nano_v2.overlay | 45 + .../splitkb_aurora_sofle.conf | 9 + .../splitkb_aurora_sofle.dtsi | 83 ++ .../splitkb_aurora_sofle.keymap | 78 ++ .../splitkb_aurora_sofle.zmk.yml | 19 + ...splitkb_aurora_sofle_dongle_pro_micro.conf | 30 + ...itkb_aurora_sofle_dongle_pro_micro.overlay | 149 +++ .../splitkb_aurora_sofle_dongle_xiao.conf | 24 + .../splitkb_aurora_sofle_dongle_xiao.overlay | 186 ++++ .../splitkb_aurora_sofle_left.overlay | 43 + .../splitkb_aurora_sofle_left_peripheral.conf | 0 ...litkb_aurora_sofle_left_peripheral.overlay | 41 + .../splitkb_aurora_sofle_right.overlay | 45 + build.yaml | 77 +- config/config_keymap-drawer.yaml | 95 +- config/corne.keymap | 3 + config/lily58.conf | 136 +++ config/lily58.keymap | 85 ++ config/sofle.keymap | 24 +- config/splitkb_aurora_sofle.conf | 140 +++ config/splitkb_aurora_sofle.keymap | 93 ++ keymap-drawer/corne.svg | 79 +- keymap-drawer/corne.yaml | 25 +- keymap-drawer/lily58.svg | 964 +++++++++++++++++ keymap-drawer/lily58.yaml | 123 +++ keymap-drawer/sofle.svg | 595 ++--------- keymap-drawer/sofle.yaml | 141 +-- keymap-drawer/splitkb_aurora_sofle.svg | 990 ++++++++++++++++++ keymap-drawer/splitkb_aurora_sofle.yaml | 127 +++ 52 files changed, 4778 insertions(+), 815 deletions(-) create mode 100644 boards/shields/lily58/Kconfig.defconfig create mode 100644 boards/shields/lily58/Kconfig.shield create mode 100644 boards/shields/lily58/boards/nice_nano.overlay create mode 100644 boards/shields/lily58/boards/nice_nano_v2.overlay create mode 100644 boards/shields/lily58/lily58.conf create mode 100644 boards/shields/lily58/lily58.dtsi create mode 100644 boards/shields/lily58/lily58.keymap create mode 100644 boards/shields/lily58/lily58.zmk.yml create mode 100644 boards/shields/lily58/lily58_dongle_pro_micro.conf create mode 100644 boards/shields/lily58/lily58_dongle_pro_micro.overlay create mode 100644 boards/shields/lily58/lily58_dongle_xiao.conf create mode 100644 boards/shields/lily58/lily58_dongle_xiao.overlay create mode 100644 boards/shields/lily58/lily58_left.conf create mode 100644 boards/shields/lily58/lily58_left.overlay create mode 100644 boards/shields/lily58/lily58_left_peripheral.conf create mode 100644 boards/shields/lily58/lily58_left_peripheral.overlay create mode 100644 boards/shields/lily58/lily58_right.conf create mode 100644 boards/shields/lily58/lily58_right.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/Kconfig.defconfig create mode 100644 boards/shields/splitkb_aurora_sofle/Kconfig.shield create mode 100644 boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/boards/nice_nano_v2.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.conf create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.dtsi create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.keymap create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.zmk.yml create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.conf create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.conf create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.conf create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.overlay create mode 100644 boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_right.overlay create mode 100644 config/lily58.conf create mode 100644 config/lily58.keymap create mode 100644 config/splitkb_aurora_sofle.conf create mode 100644 config/splitkb_aurora_sofle.keymap create mode 100644 keymap-drawer/lily58.svg create mode 100644 keymap-drawer/lily58.yaml create mode 100644 keymap-drawer/splitkb_aurora_sofle.svg create mode 100644 keymap-drawer/splitkb_aurora_sofle.yaml diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fb74758..ed25a18 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,16 @@ Changelog file for Structures extra. https://github.com/mctechnology17/zmk-config/blob/main/CHANGELOG.txt +# FEATURES 0.0.2-beta3 (Jan 06, 2025) +======================================= ++ NEW FEATURES +- [x] lily58 support (see boards/shields/lily58/) +- [x] splitkb_aurora_sofle support (boards/shields/splitkb_aurora_sofle/) +- [x] readme updated +- [x] build.yaml updated +- [x] config_keymap-drawer.yaml updated +- [x] corne.keymap updated (The option to see the layer on the screen was added) + # FEATURES 0.0.2-beta2 (Jan 03, 2025) ======================================= + NEW FEATURES diff --git a/README.md b/README.md index 1281cc8..d76e92a 100644 --- a/README.md +++ b/README.md @@ -14,18 +14,26 @@ - [INTRO](#INTRO) - [QUICK START](#QUICK-START) + - [keymap corne](#keymap-corne) + - [keymap sofle](#keymap-sofle) + - [keymap splitkb_aurora_sofle](#keymap-splitkb_aurora_sofle) + - [keymap lily58](#keymap-lily58) - [LOCAL INSTALLATION](#LOCAL-INSTALLATION) - [DISPLAY](#DISPLAY) - [RGB](#RGB) + - [rgb with niceview](#rgb-with-niceview) + - [rgb with niceview in two step](#rgb-with-niceview-in-two-step) - [DONGLE](#DONGLE) - [USEFUL TIPS](#USEFUL-TIPS) -- [RELATED PROJECTS](#RELATED-PROJECTS) -- [DONGLE DESIGNS](#DONGLE-DESIGNS) - [ZMK STUDIO](#ZMK-STUDIO) - [MODULE INTEGRATION](#MODULE-INTEGRATION) + - [modules used in this repository](#modules-used-in-this-repository) + - [list of useful modules](#list-of-useful-modules) - [THIS REPOSITORY AS A MODULE](#THIS-REPOSITORY-AS-A-MODULE) - [INSPIRATIONS](#INSPIRATIONS) - [MY OTHER PROJECTS](#MY-OTHER-PROJECTS) +- [RELATED PROJECTS](#RELATED-PROJECTS) +- [DONGLE DESIGNS](#DONGLE-DESIGNS) ---- @@ -156,7 +164,14 @@ Here you can see the visual changes to the configuration: > [config](./config/config_keymap-drawer.yaml). > The file for the workflows is in [workflows](./.github/workflows/keymap-drawer.yaml) in case you want to modify it. -[![keymap-drawer-demo](keymap-drawer/corne.svg)](https://www.youtube.com/c/mctechnology17) +## keymap corne +[![keymap-drawer-demo-corne](keymap-drawer/corne.svg)](https://www.youtube.com/c/mctechnology17) +## keymap sofle +[![keymap-drawer-demo-sofle](keymap-drawer/sofle.svg)](https://www.youtube.com/c/mctechnology17) +## keymap splitkb_aurora_sofle +[![keymap-drawer-demo-splitkb_aurora_sofle](keymap-drawer/splitkb_aurora_sofle.svg)](https://www.youtube.com/c/mctechnology17) +## keymap lily58 +[![keymap-drawer-demo-lily58](keymap-drawer/lily58.svg)](https://www.youtube.com/c/mctechnology17) If you want to customize this image with shapes/colors/etc. You can see these references: [^1] [^2] [^3] @@ -245,12 +260,25 @@ make corne_urob # compile all the *.uf2 of the corne and copy them to the firmwa ``` # DISPLAY -1. ePAPER [nice-view] +1. ePAPER + - The nice!view is a SSD1306 OLED replacement boasting >1,000x power savings + while keeping a 30Hz refresh rate. It has a similar pinout to SSD1306 + OLEDs with one extra pin making it easy to add on to existing boards. - the [nice-view] screen is compiled by default in this repository. 2. OLED + - SSD1306 / sh1107 / sh1106 OLED displays are one of the most common in + mechanical keyboard kits. They're often used to display information about + your keyboard, such as which layer is active, or if any modifiers like + Caps Lock, Num Lock or Scroll Lock are on. Of course, you can display + anything you want, including images and animations. + - These displays work over I2C and should be powered with 5V. They are + compatible with Pro Micro-based kits. - the oled screen for the dongle is enabled by default in this repository. - - If you want to enable the OLED screen for the halves, you can do so by modifying the `.conf` files for their respective halves. + - If you want to enable the OLED screen for the halves, you can do so by + modifying the `.conf` files for their respective halves. - Remember to disable the [nice-view] screens to avoid conflict in the compilation. +3. FULL COLOR LCD SCREEN + - [Prospector](https://github.com/carrefinho/prospector) is a desktop ZMK dongle with full color LCD screen. > [!IMPORTANT] > @@ -301,7 +329,6 @@ You just have to modify the following line: ``` - # RGB > [!WARNING] > @@ -316,6 +343,26 @@ from this same repository. Here is an example of what it looks like: [![rgb-demo](src/demo.GIF)](https://www.youtube.com/c/mctechnology17) +## rgb with niceview +Points to take into account if you want to use niceview with RGB: +- In a nutshell, the problem is that the backlight and the nice!view display + use the same pin on the pcb, causing conflicts. +- The common solution is to solder the backlight to pin 008 and set it to the keymap. +- However, this means that both the screen and backlight share the same power + source, which can drain the battery quickly. +- There is no ideal solution, but some options include redesigning the boards + to separate the power or powering the display directly from a gpio pin. + +## rgb with niceview in two step +1. solder the nice!view display to pin 008 +2. set the display to use pin 008 in the keymap +3. recompile the firmware and enjoy the nice!view display with RGB +```c +&nice_view_spi { + cs-gpios = <&pro_micro 0 GPIO_ACTIVE_HIGH>; // use D0 (008) for CS (no 006) +}; +``` + # DONGLE > [!TIP] > @@ -337,36 +384,42 @@ Information about this image: - The right side acts as a peripheral in this case, the board is a [nice_nano_v2]. - The photo shows a clone [nice_nano_v2] dongle with an OLED display connected to a traditional i2c port in a pcb style. This dongle is only for sample photo and is not connected to any device shown in the photo. -Macro example to enter bootloader mode. On your -[corne.keymap](./config/corne.keymap) file you can add the following macro (Thanks @chadtrans for the tip!): +Combo example to enter bootloader mode. On your +[corne.keymap](./config/corne.keymap) file you can add the following combo (Thanks @VictorSCamargo for the tip!): > [!TIP] > -> 1. You can program this macro with the online editor [keymap-editor] +> 1. You can program this `combo` with the online editor [keymap-editor] +> 2. These examples were tested using a `corne` keyboard, so the numbers `0 1 2` correspond to the keys on the left of the first row of the keyboard and the numbers `9 10 11` correspond to the 3 right keys at the top of columns 3, 4 and 5. see the reference below `COMBO` for more details. +> 3. You can combine both forms of combos and in both cases the keyboard that is the master (dongle or central) is the one that executes the action, in this case the dongle or the left master enters bootloader mode. + +1. This is the manual way to do it using `c` code: ```c // this is the manual way to do it -#define MACRO(name, keys) \ -name: name##_macro { \ - compatible = "zmk,behavior-macro";\ - #binding-cells = <0>; \ - tap-ms = <1>; \ - wait-ms = <1>; \ - bindings = ; \ -}; -MACRO(dongle_boot, &bootloader) -/ { - keymap { - compatible = "zmk,keymap"; - ... // other layers - config_layer { - display-name = "CON"; - bindings = < - ... // other bindings - &dongle_boot - ... // other bindings - }; - ... // other layers -}; +#define COMBO(NAME, BINDINGS, KEYPOS, LAYERS) \ + combo_##NAME { \ + bindings = ; \ + key-positions = ; \ + layers = ; \ + }; +// for the right side +// COMBO NAME = combo_bootloader_right, +// BINDINGS = &bootloader, +// KEYPOSITION = 9 10 11, +// LAYERS = 0 +COMBO(combo_bootloader_right, &bootloader, 9 10 11, 0); +``` + +2. This is the manual way to do it using `dts` code: + +```dts +// for the left side +combo_bootloader_left { + timeout-ms = <50>; + key-positions = <0 1 2>; // Pressing the 3 first keys on the keyboard will trigger &bootloader + bindings = <&bootloader>; + }; + }; ``` # USEFUL TIPS @@ -383,42 +436,6 @@ MACRO(dongle_boot, &bootloader) - Remember that if your corne - sofle - lily58 only has some functional RGB lights you can activate only the ones that you have functional, it is not necessary to activate all the lights. see reference in [led strip](./config/corne.keymap) - You can combine the boards, for example: on the left you can have a [nice_nano_v2], on the right a [puchi_ble_v1] and on the dongle a [seeeduino_xiao_ble] or some clone [nice_nano_v2], or any combination you can think of. -# RELATED PROJECTS - -I used this project as a reference to configure the dongles with OLED screen: -- [cygnus](https://github.com/rain2813/zmk-cygnus-oled.git) by @rain2813 -- [zmk keyboard Macintosh dongle display](https://makerworld.com/en/models/403660) by @rain2813 -- [corne with dongle](https://github.com/tomgroenwoldt/zmk-config.git) by @tomgroenwoldt -- [zmk-dongle-display](https://github.com/englmaxi/zmk-dongle-display.git) by @englmaxi -- [zmk-config for module](https://github.com/englmaxi/zmk-config/tree/master/boards/shields) by @englmaxi -- [zmk-config for dongle pro micro](https://github.com/joaopedropio/zmk-swoop/tree/dongle-sdd1306) by @joaopedropio - -In the following animations created by @englmaxi you can see what the dongle -looks like with the 128x64 OLED screen: - -![output](https://github.com/englmaxi/zmk-config/assets/43675074/8d268f23-1a4f-44c3-817e-c36dc96a1f8b) - -In that animation you can see the connection or output with the computer, that -is, if it is through a USB or Bluetooth port. Also information about the status -of both batteries. - -![mods](https://github.com/englmaxi/zmk-config/assets/43675074/af9ec3f5-8f61-4629-abed-14ba0047f0bd) - -In this animation you can see the actions of the modifier keys, such as -control, shift, alt, windows/mac, etc. - -# DONGLE DESIGNS -- [case1](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case1.zip) by @englmaxi -- [case2](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case2.zip) by @englmaxi -- [Cyberdeck](https://github.com/rafaelromao/keyboards/tree/main/stls/Dongle) by @rafaelromao -- [Dongle PCB](https://github.com/spe2/zmk_dongle_hardware) by @spe2 -- [Macintosh](https://makerworld.com/en/models/403660) by @rain2813 -- [Redox](https://makerworld.com/en/models/242951) by @rurounikexin -- [ZMK Display Dongle](https://makerworld.com/en/models/496738) by @yingeling - -An example of Dongle Designs (by @rain2813): -[![dongle-designs-demo](src/macintosh.png)](https://www.youtube.com/c/mctechnology17) - # ZMK STUDIO This repository includes the necessary configuration to use zmk-studio without @@ -464,12 +481,27 @@ host OS, app/browser details, keyboard used, link to your config repo, etc. > 1. Remember that animations consume energy, so if you want to conserve your battery, turn off the animations! > 2. Please consult the documentation of each module that you are going to use, here I leave you the links for each one. +## modules used in this repository See module details here for more information and more configurations: -- [nice_view_gem](https://github.com/M165437/nice-view-gem) -- [nice_oled](https://github.com/mctechnology17/zmk-nice-oled) -- [dongle_display](https://github.com/englmaxi/zmk-dongle-display) -- [dongle_display!view](https://github.com/mctechnology17/zmk-dongle-display-view) -- [oled Adapter](https://github.com/mctechnology17/zmk-oled-adapter) +- [**nice_view_gem**](https://github.com/M165437/nice-view-gem) a sleek customization for the nice!view shield +- [**nice_oled**](https://github.com/mctechnology17/zmk-nice-oled) vertical widgets for oled screens with zmk for split and non-split keyboards using the standard [oled screen](https://keycapsss.com/keyboard-parts/parts/80/0.91-oled-lcd-display-128x32-ssd1306-i2c) 128x32. +- [**zmk-dongle-display**](https://github.com/englmaxi/zmk-dongle-display) to show the peripheral battery percentage (and more!) on the display of the dongle. +- [**dongle_display!view**](https://github.com/mctechnology17/zmk-dongle-display-view) to show the peripheral battery percentage (and more!) on the display of the dongle using the nice!view display. +- [**oled Adapter**](https://github.com/mctechnology17/zmk-oled-adapter) to use the 128x32, 128x64 and 128x128 OLED screens on keyboards with ZMK without having to modify the shields of the keyboards. + +## list of useful modules +Additional features are provided by the following [modules](https://zmk.dev/docs/features/modules): + +- [**zmk-antecedent-morph**](https://github.com/ssbb/zmk-antecedent-morph) to change the behavior of a key based on the previously pressed key. This is used to type `<=`, `>=`, `!=`, `=>`, `->`, `|>`, `./` and `#include ` more comfortably. +- [**zmk-locales**](https://github.com/joelspadin/zmk-locales) to provide key codes for non-US keyboard locales. +- [**zmk-rgbled-widgets**](https://github.com/caksoylar/zmk-rgbled-widget) to show the connection and battery status with the built-in LEDs of the Xiao BLE controller. +- [**zmk-led_indicator**](https://github.com/englmaxi/zmk-config/tree/main/boards/shields/led_indicator) to show the connection and battery status with the built-in LEDs to be used with the single LED of the nice!nano. Based on the [**zmk-rgbled-widgets**](https://github.com/caksoylar/zmk-rgbled-widget) +- [**zmk-tri-state**](https://github.com/urob/zmk-tri-state) to define a custom swapper and a select-word behavior. +- [**zmk-layer-listeners**](https://github.com/ssbb/zmk-layer-listeners) - call something on layer enter/leave. I use it for haptic feedback and to reset nav layer toggled keys on leave. +- [**zmk-deadkey-slayer**](https://github.com/ssbb/zmk-deadkey-slayer) - drop invalid keycodes. I use them quite a lot as a markers, way to reset sticky keys, etc. so they aren't sent to the host (in which case eg MacOS disconnects device after some limit) +- [**zmk-raw-hid**](https://github.com/zzeneg/zmk-raw-hid) - raw HID - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK). +- [**zmk-nice-view-hid**](https://github.com/zzeneg/zmk-nice-view-hid) - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK). +- [**zmk-hid-host**](https://github.com/zzeneg/qmk-hid-host) - HID host - Custom nice!view widget that adds time, layout and volume information. This data is received from host computer with companion app over HID interface (aka Raw HID from QMK). # THIS REPOSITORY AS A MODULE 1. In the `config/west.yml` file, add a new remote and its related project. @@ -538,6 +570,42 @@ If you enjoy my contributions, feel free to donate. I appreciate if you follow m - [paypal] - [sponsor] +# RELATED PROJECTS + +I used this project as a reference to configure the dongles with OLED screen: +- [cygnus](https://github.com/rain2813/zmk-cygnus-oled.git) by @rain2813 +- [zmk keyboard Macintosh dongle display](https://makerworld.com/en/models/403660) by @rain2813 +- [corne with dongle](https://github.com/tomgroenwoldt/zmk-config.git) by @tomgroenwoldt +- [zmk-dongle-display](https://github.com/englmaxi/zmk-dongle-display.git) by @englmaxi +- [zmk-config for module](https://github.com/englmaxi/zmk-config/tree/master/boards/shields) by @englmaxi +- [zmk-config for dongle pro micro](https://github.com/joaopedropio/zmk-swoop/tree/dongle-sdd1306) by @joaopedropio + +In the following animations created by @englmaxi you can see what the dongle +looks like with the 128x64 OLED screen: + +![output](https://github.com/englmaxi/zmk-config/assets/43675074/8d268f23-1a4f-44c3-817e-c36dc96a1f8b) + +In that animation you can see the connection or output with the computer, that +is, if it is through a USB or Bluetooth port. Also information about the status +of both batteries. + +![mods](https://github.com/englmaxi/zmk-config/assets/43675074/af9ec3f5-8f61-4629-abed-14ba0047f0bd) + +In this animation you can see the actions of the modifier keys, such as +control, shift, alt, windows/mac, etc. + +# DONGLE DESIGNS +- [case1](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case1.zip) by @englmaxi +- [case2](https://github.com/englmaxi/zmk-dongle-display/raw/main/cases/case2.zip) by @englmaxi +- [Cyberdeck](https://github.com/rafaelromao/keyboards/tree/main/stls/Dongle) by @rafaelromao +- [Dongle PCB](https://github.com/spe2/zmk_dongle_hardware) by @spe2 +- [Macintosh](https://makerworld.com/en/models/403660) by @rain2813 +- [Redox](https://makerworld.com/en/models/242951) by @rurounikexin +- [ZMK Display Dongle](https://makerworld.com/en/models/496738) by @yingeling + +An example of Dongle Designs (by @rain2813): +[![dongle-designs-demo](src/macintosh.png)](https://www.youtube.com/c/mctechnology17) + # TODO - [ ] Add more features to the repository - [ ] Update the documentation diff --git a/boards/shields/lily58/Kconfig.defconfig b/boards/shields/lily58/Kconfig.defconfig new file mode 100644 index 0000000..9c5b32a --- /dev/null +++ b/boards/shields/lily58/Kconfig.defconfig @@ -0,0 +1,52 @@ + +if SHIELD_LILY58_LEFT || SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO + +config ZMK_KEYBOARD_NAME + default "Lily58" + +config ZMK_SPLIT_ROLE_CENTRAL + default y + +endif + +if SHIELD_LILY58_LEFT || SHIELD_LILY58_RIGHT || SHIELD_LILY58_LEFT_PERIPHERAL || SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO + +config ZMK_SPLIT + default y + +if ZMK_DISPLAY + +config I2C + default y + +config SSD1306 + default y + +if SHIELD_LILY58_DONGLE_XIAO || SHIELD_LILY58_DONGLE_PRO_MICRO + +choice ZMK_DISPLAY_WORK_QUEUE + default ZMK_DISPLAY_WORK_QUEUE_DEDICATED +endchoice + +endif + +endif # ZMK_DISPLAY + +if LVGL + +config LV_Z_VDB_SIZE + default 64 + +config LV_DPI_DEF + default 148 + +config LV_Z_BITS_PER_PIXEL + default 1 + +choice LV_COLOR_DEPTH + default LV_COLOR_DEPTH_1 +endchoice + +endif # LVGL + +endif diff --git a/boards/shields/lily58/Kconfig.shield b/boards/shields/lily58/Kconfig.shield new file mode 100644 index 0000000..a224f1f --- /dev/null +++ b/boards/shields/lily58/Kconfig.shield @@ -0,0 +1,17 @@ +# Copyright (c) 2020 Pete Johanson +# SPDX-License-Identifier: MIT + +config SHIELD_LILY58_LEFT + def_bool $(shields_list_contains,lily58_left) + +config SHIELD_LILY58_RIGHT + def_bool $(shields_list_contains,lily58_right) + +config SHIELD_LILY58_LEFT_PERIPHERAL + def_bool $(shields_list_contains,lily58_left_peripheral) + +config SHIELD_LILY58_DONGLE_XIAO + def_bool $(shields_list_contains,lily58_dongle_xiao) + +config SHIELD_LILY58_DONGLE_PRO_MICRO + def_bool $(shields_list_contains,lily58_dongle_pro_micro) diff --git a/boards/shields/lily58/boards/nice_nano.overlay b/boards/shields/lily58/boards/nice_nano.overlay new file mode 100644 index 0000000..424a617 --- /dev/null +++ b/boards/shields/lily58/boards/nice_nano.overlay @@ -0,0 +1,46 @@ +#include + +&pinctrl { + spi3_default: spi3_default { + group1 { + psels = ; + }; + }; + + spi3_sleep: spi3_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; + +&spi3 { + compatible = "nordic,nrf-spim"; + status = "okay"; + + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; + + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; + + /* WS2812 */ + chain-length = <10>; /* arbitrary; change at will */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; + + color-mapping = ; + }; +}; + +/ { + chosen { + zmk,underglow = &led_strip; + }; +}; diff --git a/boards/shields/lily58/boards/nice_nano_v2.overlay b/boards/shields/lily58/boards/nice_nano_v2.overlay new file mode 100644 index 0000000..424a617 --- /dev/null +++ b/boards/shields/lily58/boards/nice_nano_v2.overlay @@ -0,0 +1,46 @@ +#include + +&pinctrl { + spi3_default: spi3_default { + group1 { + psels = ; + }; + }; + + spi3_sleep: spi3_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; + +&spi3 { + compatible = "nordic,nrf-spim"; + status = "okay"; + + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; + + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; + + /* WS2812 */ + chain-length = <10>; /* arbitrary; change at will */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; + + color-mapping = ; + }; +}; + +/ { + chosen { + zmk,underglow = &led_strip; + }; +}; diff --git a/boards/shields/lily58/lily58.conf b/boards/shields/lily58/lily58.conf new file mode 100644 index 0000000..31eb7c6 --- /dev/null +++ b/boards/shields/lily58/lily58.conf @@ -0,0 +1,6 @@ +# Uncomment to enable encoder +# CONFIG_EC11=y +# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y + +# Uncomment the following line to enable the Lily58 OLED Display +# CONFIG_ZMK_DISPLAY=y diff --git a/boards/shields/lily58/lily58.dtsi b/boards/shields/lily58/lily58.dtsi new file mode 100644 index 0000000..195ab2b --- /dev/null +++ b/boards/shields/lily58/lily58.dtsi @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include + +#include + +/ { + chosen { + zephyr,display = &oled; + zmk,kscan = &kscan0; + zmk,physical-layout = &kata0510_lily58_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <16>; + rows = <5>; +// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | +// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | +// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | +// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | +// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) + >; + }; + + kscan0: kscan { + compatible = "zmk,kscan-gpio-matrix"; + wakeup-source; + + diode-direction = "col2row"; + row-gpios + = <&pro_micro 5 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 6 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 7 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 8 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&pro_micro 9 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + + }; + + left_encoder: encoder_left { + compatible = "alps,ec11"; + a-gpios = <&pro_micro 21 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; + b-gpios = <&pro_micro 20 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; + steps = <80>; + }; + + sensors: sensors { + compatible = "zmk,keymap-sensors"; + sensors = <&left_encoder>; + triggers-per-rotation = <20>; + }; +}; + +&kata0510_lily58_layout { + transform = <&default_transform>; +}; + +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <32>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <31>; + segment-remap; + com-invdir; + com-sequential; + inversion-on; + prechargep = <0x22>; + }; +}; diff --git a/boards/shields/lily58/lily58.keymap b/boards/shields/lily58/lily58.keymap new file mode 100644 index 0000000..75a2e8a --- /dev/null +++ b/boards/shields/lily58/lily58.keymap @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { +// ------------------------------------------------------------------------------------------------------------ +// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | +// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | +// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | +// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | +// | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | + bindings = < +&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE +&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS +&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT +&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + lower_layer { +// ------------------------------------------------------------------------------------------------------------ +// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | +// | | | | | | | | | | | _ | + | { | } | "|" | +// | | | | | | | | | | + bindings = < +&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 +&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp ASTRK &kp LPAR &kp RPAR &kp TILDE +&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE + &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + raise_layer { +// ------------------------------------------------------------------------------------------------------------ +// | | | | | | | | | | | | | | +// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | | +// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | +// | | | | | | | | | | + bindings = < +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans +&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH + &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + }; +}; diff --git a/boards/shields/lily58/lily58.zmk.yml b/boards/shields/lily58/lily58.zmk.yml new file mode 100644 index 0000000..2815dc5 --- /dev/null +++ b/boards/shields/lily58/lily58.zmk.yml @@ -0,0 +1,17 @@ +file_format: "1" +id: lily58 +name: Lily58 +type: shield +url: https://github.com/kata0510/Lily58 +requires: [pro_micro] +exposes: [i2c_oled] +features: + - keys + - display + - studio +siblings: + - lily58_left + - lily58_right + - lily58_left_peripheral + - lily58_dongle_xiao + - lily58_dongle_pro_micro diff --git a/boards/shields/lily58/lily58_dongle_pro_micro.conf b/boards/shields/lily58/lily58_dongle_pro_micro.conf new file mode 100644 index 0000000..2560437 --- /dev/null +++ b/boards/shields/lily58/lily58_dongle_pro_micro.conf @@ -0,0 +1,30 @@ +# MC: +# compatible con todas las versiones de nrf52840 (pro_micro): +# - nice_nano (no probado) +# - nice_nano_v2 (probado) +# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado) +# - nrfmicro_11 (no probado) +# - nrfmicro_11_flipped (no probado) +# - nrfmicro_13 (no probado) +# - puchi_ble_v1 (probado) + +### DONGLE MODE +CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2 + +### DONGLE OPTIONS +# 3 profiles (n+2) +CONFIG_BT_MAX_CONN=5 +CONFIG_BT_MAX_PAIRED=5 + +### DISPLAY DONGLE OPTIONS +CONFIG_ZMK_DISPLAY=y +CONFIG_BT_BAS=n +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y + +### POWER OPTIONS +# La unidad del intervalo del informe de energía de la batería es segundos +CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60 + +### DEBUG OPTIONS +# CONFIG_ZMK_USB_LOGGING=y +# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 diff --git a/boards/shields/lily58/lily58_dongle_pro_micro.overlay b/boards/shields/lily58/lily58_dongle_pro_micro.overlay new file mode 100644 index 0000000..2564d87 --- /dev/null +++ b/boards/shields/lily58/lily58_dongle_pro_micro.overlay @@ -0,0 +1,150 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include + +#include + +/ { + chosen { + zephyr,display = &oled; + zmk,kscan = &mock_kscan; + zmk,physical-layout = &kata0510_lily58_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <16>; + rows = <5>; +// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | +// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | +// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | +// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | +// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) + >; + }; + + mock_kscan: kscan_0 { + compatible = "zmk,kscan-mock"; + // wakeup-source; + columns = <0>; + rows = <0>; + events = <0>; + }; + // TODO: per-key RGB node(s)? +}; + +&kata0510_lily58_layout { + transform = <&default_transform>; +}; + +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +/* +// 128x64 OLED +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; +// 128x32 OLED +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <32>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <31>; + segment-remap; + com-invdir; + com-sequential; + inversion-on; + prechargep = <0x22>; + }; +}; + +// 128x64 OLED model sh1106 + +&pro_micro_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <129>; + height = <64>; + segment-offset = <1>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +// 128x128 OLED model sh1107 +&pro_micro_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <120>; + height = <128>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <119>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +*/ +// vim: filetype=dts fdm=marker: diff --git a/boards/shields/lily58/lily58_dongle_xiao.conf b/boards/shields/lily58/lily58_dongle_xiao.conf new file mode 100644 index 0000000..1d9fa26 --- /dev/null +++ b/boards/shields/lily58/lily58_dongle_xiao.conf @@ -0,0 +1,24 @@ +# MC: +# compatible con todas las versiones de nrf52840 (xiao): +# - seeeduino_xiao_ble (probado) + +### DONGLE MODE +CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2 + +### DONGLE OPTIONS +# 3 profiles (n+2) +CONFIG_BT_MAX_CONN=5 +CONFIG_BT_MAX_PAIRED=5 + +### DISPLAY DONGLE OPTIONS +CONFIG_ZMK_DISPLAY=y +CONFIG_BT_BAS=n +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y + +### POWER OPTIONS +# La unidad del intervalo del informe de energía de la batería es segundos +CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60 + +### DEBUG OPTIONS +# CONFIG_ZMK_USB_LOGGING=y +# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 diff --git a/boards/shields/lily58/lily58_dongle_xiao.overlay b/boards/shields/lily58/lily58_dongle_xiao.overlay new file mode 100644 index 0000000..f0fda75 --- /dev/null +++ b/boards/shields/lily58/lily58_dongle_xiao.overlay @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include + +#include + +/ { + chosen { + zephyr,display = &oled; + zmk,kscan = &mock_kscan; + zmk,physical-layout = &kata0510_lily58_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <16>; + rows = <5>; +// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | +// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | +// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | +// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | +// | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) + >; + }; + + mock_kscan: kscan_0 { + compatible = "zmk,kscan-mock"; + // wakeup-source; + columns = <0>; + rows = <0>; + events = <0>; + }; + // TODO: per-key RGB node(s)? +}; + +&kata0510_lily58_layout { + transform = <&default_transform>; +}; + +&xiao_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +/* +// 128x64 OLED +&xiao_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; +// 128x32 OLED +&xiao_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <32>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <31>; + segment-remap; + com-invdir; + com-sequential; + inversion-on; + prechargep = <0x22>; + }; +}; + + +// 128x64 OLED model sh1106 + +&xiao_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <129>; + height = <64>; + segment-offset = <1>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +// 128x128 OLED model sh1107 +&xiao_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <120>; + height = <128>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <119>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +// ################# niceview working fine START ################# +// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/ +// @bravekarma nice Discord server +// The &gpioX Y and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF +// pin numbers), &xiao_d x uses the unified pinout Dx + +&pinctrl { + spi0_default: spi0_default { + group1 { + psels = , + , + ; + }; + }; + spi0_sleep: spi0_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; +}; + +nice_view_spi: &spi0 { + compatible = "nordic,nrf-spim"; + pinctrl-0 = <&spi0_default>; + pinctrl-1 = <&spi0_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>; // Pin D6 as CS +}; + +&xiao_i2c { + status = "disabled"; +}; +// ################# niceview working fine END ################# +*/ +// vim: filetype=dts fdm=marker: diff --git a/boards/shields/lily58/lily58_left.conf b/boards/shields/lily58/lily58_left.conf new file mode 100644 index 0000000..24f8d77 --- /dev/null +++ b/boards/shields/lily58/lily58_left.conf @@ -0,0 +1,3 @@ +# Uncomment to enable encoder +# CONFIG_EC11=y +# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y diff --git a/boards/shields/lily58/lily58_left.overlay b/boards/shields/lily58/lily58_left.overlay new file mode 100644 index 0000000..b95332d --- /dev/null +++ b/boards/shields/lily58/lily58_left.overlay @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include "lily58.dtsi" + +&kscan0 { + col-gpios + = <&pro_micro 19 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 10 GPIO_ACTIVE_HIGH> + ; +}; + +&left_encoder { + status = "okay"; +}; diff --git a/boards/shields/lily58/lily58_left_peripheral.conf b/boards/shields/lily58/lily58_left_peripheral.conf new file mode 100644 index 0000000..e69de29 diff --git a/boards/shields/lily58/lily58_left_peripheral.overlay b/boards/shields/lily58/lily58_left_peripheral.overlay new file mode 100644 index 0000000..b95332d --- /dev/null +++ b/boards/shields/lily58/lily58_left_peripheral.overlay @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include "lily58.dtsi" + +&kscan0 { + col-gpios + = <&pro_micro 19 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 10 GPIO_ACTIVE_HIGH> + ; +}; + +&left_encoder { + status = "okay"; +}; diff --git a/boards/shields/lily58/lily58_right.conf b/boards/shields/lily58/lily58_right.conf new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/boards/shields/lily58/lily58_right.conf @@ -0,0 +1 @@ + diff --git a/boards/shields/lily58/lily58_right.overlay b/boards/shields/lily58/lily58_right.overlay new file mode 100644 index 0000000..15820ad --- /dev/null +++ b/boards/shields/lily58/lily58_right.overlay @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include "lily58.dtsi" + +&default_transform { + col-offset = <6>; +}; + +&kscan0 { + col-gpios + = <&pro_micro 10 GPIO_ACTIVE_HIGH> + , <&pro_micro 16 GPIO_ACTIVE_HIGH> + , <&pro_micro 14 GPIO_ACTIVE_HIGH> + , <&pro_micro 15 GPIO_ACTIVE_HIGH> + , <&pro_micro 18 GPIO_ACTIVE_HIGH> + , <&pro_micro 19 GPIO_ACTIVE_HIGH> + ; +}; diff --git a/boards/shields/splitkb_aurora_sofle/Kconfig.defconfig b/boards/shields/splitkb_aurora_sofle/Kconfig.defconfig new file mode 100644 index 0000000..f96f9a3 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/Kconfig.defconfig @@ -0,0 +1,58 @@ +# Copyright (c) 2023 The ZMK Contributors +# SPDX-License-Identifier: MIT + +if SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO + +config ZMK_KEYBOARD_NAME + default "Aurora Sofle" + +config ZMK_SPLIT_ROLE_CENTRAL + default y + +endif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT + +if SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT || SHIELD_SPLITKB_AURORA_SOFLE_LEFT_PERIPHERAL || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO + +config ZMK_SPLIT + default y + +config ZMK_RGB_UNDERGLOW + select WS2812_STRIP + select SPI + +if ZMK_DISPLAY + +config SSD1306 + default y + +config I2C + default y + +if SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO || SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO + +choice ZMK_DISPLAY_WORK_QUEUE + default ZMK_DISPLAY_WORK_QUEUE_DEDICATED +endchoice + +endif + +endif # ZMK_DISPLAY + +if LVGL + +config LV_Z_VDB_SIZE + default 64 + +config LV_DPI_DEF + default 148 + +config LV_Z_BITS_PER_PIXEL + default 1 + +choice LV_COLOR_DEPTH + default LV_COLOR_DEPTH_1 +endchoice + +endif # LVGL + +endif # SHIELD_SPLITKB_AURORA_SOFLE_LEFT || SHIELD_SPLITKB_AURORA_SOFLE_RIGHT diff --git a/boards/shields/splitkb_aurora_sofle/Kconfig.shield b/boards/shields/splitkb_aurora_sofle/Kconfig.shield new file mode 100644 index 0000000..df5dd6b --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/Kconfig.shield @@ -0,0 +1,17 @@ +# Copyright (c) 2023 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config SHIELD_SPLITKB_AURORA_SOFLE_LEFT + def_bool $(shields_list_contains,splitkb_aurora_sofle_left) + +config SHIELD_SPLITKB_AURORA_SOFLE_RIGHT + def_bool $(shields_list_contains,splitkb_aurora_sofle_right) + +config SHIELD_SPLITKB_AURORA_SOFLE_LEFT_PERIPHERAL + def_bool $(shields_list_contains,splitkb_aurora_sofle_left_peripheral) + +config SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_XIAO + def_bool $(shields_list_contains,splitkb_aurora_sofle_dongle_xiao) + +config SHIELD_SPLITKB_AURORA_SOFLE_DONGLE_PRO_MICRO + def_bool $(shields_list_contains,splitkb_aurora_sofle_dongle_pro_micro) diff --git a/boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay b/boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay new file mode 100644 index 0000000..8228d53 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/boards/nice_nano.overlay @@ -0,0 +1,45 @@ +#include + +&pinctrl { + spi3_default: spi3_default { + group1 { + psels = ; + }; + }; + + spi3_sleep: spi3_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; + +&spi3 { + compatible = "nordic,nrf-spim"; + status = "okay"; + + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; + + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; + + /* WS2812 */ + chain-length = <6>; /* arbitrary; change at will */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; + color-mapping = ; + }; +}; + +/ { + chosen { + zmk,underglow = &led_strip; + }; +}; diff --git a/boards/shields/splitkb_aurora_sofle/boards/nice_nano_v2.overlay b/boards/shields/splitkb_aurora_sofle/boards/nice_nano_v2.overlay new file mode 100644 index 0000000..8228d53 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/boards/nice_nano_v2.overlay @@ -0,0 +1,45 @@ +#include + +&pinctrl { + spi3_default: spi3_default { + group1 { + psels = ; + }; + }; + + spi3_sleep: spi3_sleep { + group1 { + psels = ; + low-power-enable; + }; + }; +}; + +&spi3 { + compatible = "nordic,nrf-spim"; + status = "okay"; + + pinctrl-0 = <&spi3_default>; + pinctrl-1 = <&spi3_sleep>; + pinctrl-names = "default", "sleep"; + + led_strip: ws2812@0 { + compatible = "worldsemi,ws2812-spi"; + + /* SPI */ + reg = <0>; /* ignored, but necessary for SPI bindings */ + spi-max-frequency = <4000000>; + + /* WS2812 */ + chain-length = <6>; /* arbitrary; change at will */ + spi-one-frame = <0x70>; + spi-zero-frame = <0x40>; + color-mapping = ; + }; +}; + +/ { + chosen { + zmk,underglow = &led_strip; + }; +}; diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.conf b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.conf new file mode 100644 index 0000000..d456100 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.conf @@ -0,0 +1,9 @@ +# Uncomment these two line to add support for encoders to your firmware +# CONFIG_EC11=y +# CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y + +# Uncomment the following line to enable the OLED Display +# CONFIG_ZMK_DISPLAY=y + +# Uncomment the following lines to enable RGB underglow +# CONFIG_ZMK_RGB_UNDERGLOW=y diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.dtsi b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.dtsi new file mode 100644 index 0000000..a40d29a --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.dtsi @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include + +#include + +&josefadamcik_sofle_layout { + transform = <&default_transform>; +}; + +/ { + + chosen { + zephyr,display = &oled; + zmk,physical-layout = &josefadamcik_sofle_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <14>; + rows = <5>; +// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | +// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | +// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | +// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | +// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) + >; + }; + + left_encoder: left_encoder { + compatible = "alps,ec11"; + steps = <144>; + status = "disabled"; + + a-gpios = <&pro_micro 16 GPIO_PULL_UP>; + b-gpios = <&pro_micro 10 GPIO_PULL_UP>; + }; + + right_encoder: right_encoder { + compatible = "alps,ec11"; + steps = <144>; + status = "disabled"; + + a-gpios = <&pro_micro 16 GPIO_PULL_UP>; + b-gpios = <&pro_micro 10 GPIO_PULL_UP>; + }; + + sensors: sensors { + compatible = "zmk,keymap-sensors"; + sensors = <&left_encoder &right_encoder>; + triggers-per-rotation = <36>; + }; +}; + +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <32>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <31>; + segment-remap; + com-invdir; + com-sequential; + inversion-on; + prechargep = <0x22>; + }; +}; diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.keymap b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.keymap new file mode 100644 index 0000000..2312741 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.keymap @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +/* Uncomment this block if using RGB +&led_strip { + chain-length = <6>; + // chain-length = <35>; // Uncomment if using both per-key and underglow LEDs + // chain-length = <29>; // Uncomment if using only per-key LEDs. +}; + */ + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { +// ------------------------------------------------------------------------------------------------------------ +// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | +// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | +// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | +// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | +// |CTRL | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | RALT | + bindings = < +&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE +&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS +&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT +&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LCTRL &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI &kp RALT + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + lower_layer { +// ------------------------------------------------------------------------------------------------------------ +// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | +// | | | | | | | | | | | _ | + | { | } | "|" | +// | | | | | | | | | | | | + bindings = < +&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 +&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &kp TILDE +&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + raise_layer { +// ------------------------------------------------------------------------------------------------------------ +// | | | | | | | | | | | | | | +// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | | +// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | +// | | | | | | | | | | | | + bindings = < +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans +&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + }; +}; diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.zmk.yml b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.zmk.yml new file mode 100644 index 0000000..c70f581 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle.zmk.yml @@ -0,0 +1,19 @@ +file_format: "1" +id: splitkb_aurora_sofle +name: splitkb.com Aurora Sofle +type: shield +url: https://splitkb.com/products/aurora-sofle-pcb-kit +requires: [pro_micro] +exposes: [i2c_oled] +features: + - keys + - display + - encoder + - underglow + - studio +siblings: + - splitkb_aurora_sofle_left + - splitkb_aurora_sofle_right + - splitkb_aurora_sofle_left_peripheral + - splitkb_aurora_sofle_dongle_xiao + - splitkb_aurora_sofle_dongle_pro_micro diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.conf b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.conf new file mode 100644 index 0000000..2560437 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.conf @@ -0,0 +1,30 @@ +# MC: +# compatible con todas las versiones de nrf52840 (pro_micro): +# - nice_nano (no probado) +# - nice_nano_v2 (probado) +# - nice_nano_v2 (super mini -> nice_nano_v2 clon) (probado) +# - nrfmicro_11 (no probado) +# - nrfmicro_11_flipped (no probado) +# - nrfmicro_13 (no probado) +# - puchi_ble_v1 (probado) + +### DONGLE MODE +CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2 + +### DONGLE OPTIONS +# 3 profiles (n+2) +CONFIG_BT_MAX_CONN=5 +CONFIG_BT_MAX_PAIRED=5 + +### DISPLAY DONGLE OPTIONS +CONFIG_ZMK_DISPLAY=y +CONFIG_BT_BAS=n +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y + +### POWER OPTIONS +# La unidad del intervalo del informe de energía de la batería es segundos +CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60 + +### DEBUG OPTIONS +# CONFIG_ZMK_USB_LOGGING=y +# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.overlay b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.overlay new file mode 100644 index 0000000..3445c38 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_pro_micro.overlay @@ -0,0 +1,149 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +&josefadamcik_sofle_layout { + transform = <&default_transform>; +}; + +/ { + chosen { + zephyr,display = &oled; + zmk,kscan = &mock_kscan; + zmk,physical-layout = &josefadamcik_sofle_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <14>; + rows = <5>; +// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | +// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | +// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | +// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | +// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) + >; + }; + + mock_kscan: kscan_0 { + compatible = "zmk,kscan-mock"; + // wakeup-source; + columns = <0>; + rows = <0>; + events = <0>; + }; + // TODO: per-key RGB node(s)? +}; + +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +/* +// 128x64 OLED +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; +// 128x32 OLED +&pro_micro_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <32>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <31>; + segment-remap; + com-invdir; + com-sequential; + inversion-on; + prechargep = <0x22>; + }; +}; + +// 128x64 OLED model sh1106 + +&pro_micro_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <129>; + height = <64>; + segment-offset = <1>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +// 128x128 OLED model sh1107 +&pro_micro_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <120>; + height = <128>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <119>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +*/ +// vim: filetype=dts fdm=marker: diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.conf b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.conf new file mode 100644 index 0000000..1d9fa26 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.conf @@ -0,0 +1,24 @@ +# MC: +# compatible con todas las versiones de nrf52840 (xiao): +# - seeeduino_xiao_ble (probado) + +### DONGLE MODE +CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2 + +### DONGLE OPTIONS +# 3 profiles (n+2) +CONFIG_BT_MAX_CONN=5 +CONFIG_BT_MAX_PAIRED=5 + +### DISPLAY DONGLE OPTIONS +CONFIG_ZMK_DISPLAY=y +CONFIG_BT_BAS=n +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y + +### POWER OPTIONS +# La unidad del intervalo del informe de energía de la batería es segundos +CONFIG_ZMK_BATTERY_REPORT_INTERVAL=60 + +### DEBUG OPTIONS +# CONFIG_ZMK_USB_LOGGING=y +# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.overlay b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.overlay new file mode 100644 index 0000000..57458db --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_dongle_xiao.overlay @@ -0,0 +1,186 @@ +/* + * Copyright (c) 2020 Pete Johanson + * + * SPDX-License-Identifier: MIT + */ + +#include +#include + +&josefadamcik_sofle_layout { + transform = <&default_transform>; +}; + +/ { + chosen { + zephyr,display = &oled; + zmk,kscan = &mock_kscan; + zmk,physical-layout = &josefadamcik_sofle_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <14>; + rows = <5>; +// | SW6 | SW5 | SW4 | SW3 | SW2 | SW1 | | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | +// | SW12 | SW11 | SW10 | SW9 | SW8 | SW7 | | SW7 | SW8 | SW9 | SW10 | SW11 | SW12 | +// | SW18 | SW17 | SW16 | SW15 | SW14 | SW13 | | SW13 | SW14 | SW15 | SW16 | SW17 | SW18 | +// | SW24 | SW23 | SW22 | SW21 | SW20 | SW19 | SW25 | | SW25 | SW19 | SW20 | SW21 | SW22 | SW23 | SW24 | +// | SW30 | SW29 | SW28 | SW27 | SW26 | | SW26 | SW27 | SW28 | SW29 | SW30 | + map = < +RC(0,0) RC(0,1) RC(0,2) RC(0,3) RC(0,4) RC(0,5) RC(0,6) RC(0,7) RC(0,8) RC(0,9) RC(0,10) RC(0,11) +RC(1,0) RC(1,1) RC(1,2) RC(1,3) RC(1,4) RC(1,5) RC(1,6) RC(1,7) RC(1,8) RC(1,9) RC(1,10) RC(1,11) +RC(2,0) RC(2,1) RC(2,2) RC(2,3) RC(2,4) RC(2,5) RC(2,6) RC(2,7) RC(2,8) RC(2,9) RC(2,10) RC(2,11) +RC(3,0) RC(3,1) RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(4,5) RC(4,6) RC(3,6) RC(3,7) RC(3,8) RC(3,9) RC(3,10) RC(3,11) + RC(4,0) RC(4,1) RC(4,2) RC(4,3) RC(4,4) RC(4,7) RC(4,8) RC(4,9) RC(4,10) RC(4,11) + >; + }; + + mock_kscan: kscan_0 { + compatible = "zmk,kscan-mock"; + // wakeup-source; + columns = <0>; + rows = <0>; + events = <0>; + }; + // TODO: per-key RGB node(s)? +}; + +&xiao_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +/* +// 128x64 OLED +&xiao_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <64>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; +// 128x32 OLED +&xiao_i2c { + status = "okay"; + + oled: ssd1306@3c { + compatible = "solomon,ssd1306fb"; + reg = <0x3c>; + width = <128>; + height = <32>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <31>; + segment-remap; + com-invdir; + com-sequential; + inversion-on; + prechargep = <0x22>; + }; +}; + + +// 128x64 OLED model sh1106 + +&xiao_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <129>; + height = <64>; + segment-offset = <1>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <63>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +// 128x128 OLED model sh1107 +&xiao_i2c { + status = "okay"; + oled: sh1106@3c { + compatible = "sinowealth,sh1106"; + reg = <0x3c>; + width = <120>; + height = <128>; + segment-offset = <0>; + page-offset = <0>; + display-offset = <0>; + multiplex-ratio = <119>; + segment-remap; + com-invdir; + inversion-on; + prechargep = <0x22>; + }; +}; + +// ################# niceview working fine START ################# +// doc: https://wiki.seeedstudio.com/XIAO-SAMD21-Zephyr-RTOS/ +// @bravekarma nice Discord server +// The &gpioX Y and NRF_PSEL(..., X, Y) uses the PX.Y notation (underlying nRF +// pin numbers), &xiao_d x uses the unified pinout Dx + +&pinctrl { + spi0_default: spi0_default { + group1 { + psels = , + , + ; + }; + }; + spi0_sleep: spi0_sleep { + group1 { + psels = , + , + ; + low-power-enable; + }; + }; +}; + +nice_view_spi: &spi0 { + compatible = "nordic,nrf-spim"; + pinctrl-0 = <&spi0_default>; + pinctrl-1 = <&spi0_sleep>; + pinctrl-names = "default", "sleep"; + cs-gpios = <&xiao_d 6 GPIO_ACTIVE_HIGH>; // Pin D6 as CS +}; + +&xiao_i2c { + status = "disabled"; +}; +// ################# niceview working fine END ################# +*/ +// vim: filetype=dts fdm=marker: diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left.overlay b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left.overlay new file mode 100644 index 0000000..2a3f485 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left.overlay @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "splitkb_aurora_sofle.dtsi" + +/ { + chosen { + zmk,kscan = &kscan; + }; + + kscan: kscan { + compatible = "zmk,kscan-gpio-matrix"; + wakeup-source; + + diode-direction = "col2row"; + + row-gpios + = <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + ; + + col-gpios + = <&pro_micro 9 GPIO_ACTIVE_HIGH> + , <&pro_micro 8 GPIO_ACTIVE_HIGH> + , <&pro_micro 7 GPIO_ACTIVE_HIGH> + , <&pro_micro 6 GPIO_ACTIVE_HIGH> + , <&pro_micro 5 GPIO_ACTIVE_HIGH> + , <&pro_micro 4 GPIO_ACTIVE_HIGH> + ; + }; +}; + +&left_encoder { + status = "okay"; +}; + + diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.conf b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.conf new file mode 100644 index 0000000..e69de29 diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.overlay b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.overlay new file mode 100644 index 0000000..d5ee760 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_left_peripheral.overlay @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "splitkb_aurora_sofle.dtsi" + +/ { + chosen { + zmk,kscan = &kscan; + }; + + kscan: kscan { + compatible = "zmk,kscan-gpio-matrix"; + wakeup-source; + + diode-direction = "col2row"; + + row-gpios + = <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + ; + + col-gpios + = <&pro_micro 9 GPIO_ACTIVE_HIGH> + , <&pro_micro 8 GPIO_ACTIVE_HIGH> + , <&pro_micro 7 GPIO_ACTIVE_HIGH> + , <&pro_micro 6 GPIO_ACTIVE_HIGH> + , <&pro_micro 5 GPIO_ACTIVE_HIGH> + , <&pro_micro 4 GPIO_ACTIVE_HIGH> + ; + }; +}; + +&left_encoder { + status = "okay"; +}; diff --git a/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_right.overlay b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_right.overlay new file mode 100644 index 0000000..6eb0d11 --- /dev/null +++ b/boards/shields/splitkb_aurora_sofle/splitkb_aurora_sofle_right.overlay @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "splitkb_aurora_sofle.dtsi" + +/ { + chosen { + zmk,kscan = &kscan; + }; + + kscan: kscan { + compatible = "zmk,kscan-gpio-matrix"; + wakeup-source; + + diode-direction = "col2row"; + + row-gpios + = <&pro_micro 14 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 15 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 18 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 19 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + , <&pro_micro 20 (GPIO_PULL_DOWN | GPIO_ACTIVE_HIGH)> + ; + + col-gpios + = <&pro_micro 6 GPIO_ACTIVE_HIGH> + , <&pro_micro 7 GPIO_ACTIVE_HIGH> + , <&pro_micro 8 GPIO_ACTIVE_HIGH> + , <&pro_micro 9 GPIO_ACTIVE_HIGH> + , <&pro_micro 4 GPIO_ACTIVE_HIGH> + , <&pro_micro 5 GPIO_ACTIVE_HIGH> + ; + }; +}; + +&right_encoder { + status = "okay"; +}; + +&default_transform { + col-offset = <6>; +}; diff --git a/build.yaml b/build.yaml index 959abc0..b0c0419 100644 --- a/build.yaml +++ b/build.yaml @@ -185,28 +185,87 @@ include: cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 artifact-name: nice_sofle_left_peripheral_oled - # Xiao_Dongle + oled adapter + # Xiao_Dongle - board: seeeduino_xiao_ble shield: sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 artifact-name: xiao_sofle_dongle_xiao_oled snippet: studio-rpc-usb-uart - # ProMicro_Dongle + dongle_display + # ProMicro_Dongle - board: nice_nano_v2 shield: sofle_dongle_pro_micro dongle_display cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000 artifact-name: nice_sofle_dongle_oled snippet: studio-rpc-usb-uart - - # ProMicro_Dongle + dongle_display!view - - board: puchi_ble_v1 - shield: sofle_dongle_pro_micro nice_view_adapter dongle_display_view_pro_micro - cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"SofleDongle_PV\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000 - artifact-name: puchi_sofle_dongle_view - snippet: studio-rpc-usb-uart ### SOFLEV2 SOFLEV1 SOFLEPLUS END ### + ### LILY58 START ### + # nice!oled lily58 + - board: nice_nano_v2 + shield: lily58_left nice_oled + cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"lily58_Oled\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_lily58_left_oled + snippet: studio-rpc-usb-uart + - board: nice_nano_v2 + shield: lily58_right nice_oled + cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_lily58_right_oled + + # peripheral_left + - board: nice_nano_v2 + shield: lily58_left_peripheral nice_oled + cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_lily58_left_peripheral_oled + + # Xiao_Dongle + - board: seeeduino_xiao_ble + shield: lily58_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display + cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"lily58Dongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: xiao_lily58_dongle_xiao_oled + snippet: studio-rpc-usb-uart + + # ProMicro_Dongle + - board: nice_nano_v2 + shield: lily58_dongle_pro_micro dongle_display + cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"lily58Dongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_lily58_dongle_oled + snippet: studio-rpc-usb-uart + ### LILY58 END ### + + ### SPLITKB AURORA SOFLE START ### + # nice!oled splitkb_aurora_sofle + - board: nice_nano_v2 + shield: splitkb_aurora_sofle_left nice_oled + cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"A_Sofle_Oled\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_splitkb_aurora_sofle_left_oled + snippet: studio-rpc-usb-uart + - board: nice_nano_v2 + shield: splitkb_aurora_sofle_right nice_oled + cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_splitkb_aurora_sofle_right_oled + + # peripheral_left + - board: nice_nano_v2 + shield: splitkb_aurora_sofle_left_peripheral nice_oled + cmake-args: -DCONFIG_ZMK_SLEEP=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_splitkb_aurora_sofle_left_peripheral_oled + + # Xiao_Dongle + - board: seeeduino_xiao_ble + shield: splitkb_aurora_sofle_dongle_xiao oled_adapter_seeeduino_xiao_ble_128x64 dongle_display + cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"A_SofleDongle_X\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: xiao_splitkb_aurora_sofle_dongle_xiao_oled + snippet: studio-rpc-usb-uart + + # ProMicro_Dongle + - board: nice_nano_v2 + shield: splitkb_aurora_sofle_dongle_pro_micro dongle_display + cmake-args: -DCONFIG_ZMK_KEYBOARD_NAME=\"A_SofleDongle_P\" -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_SLEEP=n -DCONFIG_ZMK_IDLE_TIMEOUT=60000 + artifact-name: nice_splitkb_aurora_sofle_dongle_oled + snippet: studio-rpc-usb-uart + ### SPLITKB AURORA SOFLE END ### + ### SETTINGS_RESET START ### - board: nice_nano_v2 shield: settings_reset diff --git a/config/config_keymap-drawer.yaml b/config/config_keymap-drawer.yaml index 48fedba..a3b562f 100644 --- a/config/config_keymap-drawer.yaml +++ b/config/config_keymap-drawer.yaml @@ -150,19 +150,91 @@ parse_config: '&bt BT_SEL 3': BT 4 '&bt BT_SEL 4': BT 5 - '&mmv MOVE_UP': Mouse ↑ - '&mmv MOVE_DOWN': Mouse ↓ - '&mmv MOVE_LEFT': Mouse ← - '&mmv MOVE_RIGHT': Mouse → + # Display + 'DISPLAY_UP': {t: $$mdi:television-classic$$, h: $$mdi:arrow-up$$, type: tap_dance} + 'DISPLAY_DOWN': {t: $$mdi:television-classic$$, h: $$mdi:arrow-down$$, type: tap_dance} + 'DISPLAY_LEFT': {t: $$mdi:television-classic$$, h: $$mdi:arrow-left$$, type: tap_dance} + 'DISPLAY_RIGHT': {t: $$mdi:television-classic$$, h: $$mdi:arrow-right$$, type: tap_dance} + 'DISPLAY_SPACE': {t: $$mdi:television-classic$$, h: $$mdi:keyboard-space$$, type: tap_dance} - '&msc SCRL_UP': Scroll ↑ - '&msc SCRL_DOWN': Scroll ↓ - '&msc SCRL_LEFT': Scroll ← - '&msc SCRL_RIGHT': Scroll → - '&mkp MCLK': Middle Click - '&mkp MB4': Back Click - '&mkp MB5': Forward Click + # Rgb + '&rgb_ug RGB_TOG': {t: $$mdi:led-on$$, h: $$mdi:toggle-switch$$, s: $$mdi:led-outline$$, type: toggle} + '&rgb_ug RGB_VAI': {t: $$mdi:led-on$$, s: $$tabler:brightness-up$$, type: sym_by_sym} + '&rgb_ug RGB_VAD': {t: $$mdi:led-outline$$, s: $$tabler:brightness-down$$, type: sym_by_sym} + '&rgb_ug RGB_BRD': {t: $$mdi:led-on$$, s: $$tabler:brightness-up$$, type: sym_by_sym} + '&rgb_ug RGB_BRI': {t: $$mdi:led-outline$$, s: $$tabler:brightness-down$$, type: sym_by_sym} + '&rgb_ug RGB_SAI': {t: $$mdi:led-outline$$, s: $$mdi:eyedropper$$, type: sym_by_sym} + '&rgb_ug RGB_SAD': {t: $$mdi:led-on$$, s: $$mdi:eyedropper$$, type: sym_by_sym} + '&rgb_ug RGB_HUI': {t: $$mdi:led-on$$, s: $$mdi:palette$$, type: sym_by_sym} + '&rgb_ug RGB_HUD': {t: $$mdi:led-outline$$, s: $$mdi:palette$$, type: sym_by_sym} + '&rgb_ug RGB_RMOD': {t: $$mdi:led-on$$, h: $$mdi:page-previous-outline$$, type: tap_dance} + '&rgb_ug RGB_MOD': {t: $$mdi:led-on$$, h: $$mdi:page-next-outline$$, type: tap_dance} + '&rgb_ug RGB_EFF': {t: $$mdi:led-on$$, h: $$mdi:page-previous-outline$$, type: tap_dance} + '&rgb_ug RGB_EFR': {t: $$mdi:led-on$$, h: $$mdi:page-next-outline$$, type: tap_dance} + '&rgb_ug RGB_SPI': {t: $$mdi:led-on$$, h: $$mdi:speedometer$$, type: sym_by_sym} + '&rgb_ug RGB_SPD': {t: $$mdi:led-on$$, h: $$mdi:speedometer-slow$$, type: sym_by_sym} + '&rgb_ug RGB_UP': {t: $$mdi:led-on$$, h: $$mdi:arrow-up$$, type: tap_dance} + '&rgb_ug RGB_DOWN': {t: $$mdi:led-on$$, h: $$mdi:arrow-down$$, type: tap_dance} + '&rgb_ug RGB_LEFT': {t: $$mdi:led-on$$, h: $$mdi:arrow-left$$, type: tap_dance} + '&rgb_ug RGB_RIGHT': {t: $$mdi:led-on$$, h: $$mdi:arrow-right$$, type: tap_dance} + '&rgb_ug RGB_SPACE': {t: $$mdi:led-on$$, h: $$mdi:keyboard-space$$, type: tap_dance} + '&rgb_ug RGB_COLOR_HSB(0,0,100)': {t: $$mdi:led-on$$, h: $$mdi:palette$$, type: tap_dance} + '&rgb_ug RGB_COLOR_HSB(224,100,100)': {t: $$mdi:led-on$$, h: $$mdi:palette$$, type: tap_dance} + + # Mouse + 'U_WH_L': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-left$$, type: tap_dance} + 'U_WH_R': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-right$$, type: tap_dance} + 'U_WH_U': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-up$$, type: tap_dance} + 'U_WH_D': {t: $$mdi:mouse-outline$$, h: $$mdi:arrow-down$$, type: tap_dance} + 'U_MS_L': {t: $$mdi:mouse$$, h: $$mdi:arrow-left$$, type: tap_dance} + 'U_MS_D': {t: $$mdi:mouse$$, h: $$mdi:arrow-down$$, type: tap_dance} + 'U_MS_R': {t: $$mdi:mouse$$, h: $$mdi:arrow-right$$, type: tap_dance} + 'U_MS_U': {t: $$mdi:mouse$$, h: $$mdi:arrow-up$$, type: tap_dance} + 'CLICK_LEFT': $$mdi:cursor-default-click$$ + 'CLICK_RIGHT': $$mdi:cursor-default-click-outline$$ + 'CLICK_MIDDLE': $$mdi:cursor-default-click-outline$$ + # '&mmv MOVE_UP': Mouse ↑ + # '&mmv MOVE_DOWN': Mouse ↓ + # '&mmv MOVE_LEFT': Mouse ← + # '&mmv MOVE_RIGHT': Mouse → + + # '&msc SCRL_UP': Scroll ↑ + # '&msc SCRL_DOWN': Scroll ↓ + # '&msc SCRL_LEFT': Scroll ← + # '&msc SCRL_RIGHT': Scroll → + + # '&mkp MCLK': Middle Click + # '&mkp MB4': Back Click + # '&mkp MB5': Forward Click + + + # layers + 'MEDIA_ESC': {t: $$mdi:keyboard-esc$$, h: $$mdi:music-note$$} + 'MOUSE_TAB': {t: $$mdi:keyboard-tab$$, h: $$mdi:mouse$$} + 'NUMBER_SPACE': {t: $$mdi:keyboard-space$$, h: $$mdi:numeric$$} + '&mo _FUNCTION': $$mdi:function-variant$$ + '&mo _CONFIG': $$mdi:cog$$ + '&mo _LOCK': $$mdi:lock$$ + '&mo _SYMBOL': $$mdi:symbol$$ + '&mo _DISPLAY': $$mdi:television-classic$$ + '&mo _OLED': $$mdi:television-classic$$ + '&mo _LINUX': $$mdi:linux$$ + '&mo _RGB': $$mdi:led-on$$ + 'DE_CAPS': $$mdi:keyboard-caps$$ + 'TAB': $$mdi:keyboard-tab$$ + '&mt LSHFT COMMA': {t: $$mdi:google-downasaur$$, h: $$mdi:apple-keyboard-shift$$, type: tap_dance} + + # CONTROL CMD/WINDOWS SHIFT ALT/META/OPTION + '&kp LSHFT': $$mdi:apple-keyboard-shift$$ + '&kp LCTRL': $$mdi:apple-keyboard-control$$ + '&kp RCTRL': $$mdi:apple-keyboard-control$$ + '&kp LGUI': $$mdi:apple-keyboard-command$$ + '&kp RGUI': $$mdi:apple-keyboard-command$$ + '&kp LALT': $$mdi:apple-keyboard-option$$ + '&kp RALT': $$mdi:apple-keyboard-option$$ + '&kp RSHFT': $$mdi:apple-keyboard-shift$$ + '&kp BSPC': $$mdi:backspace-outline$$ qmk_keycode_map: XXXXXXX: '' @@ -254,6 +326,7 @@ parse_config: combo_slsh: {draw_separate: true} zmk_keycode_map: + # custom mappings C_VOL_UP: Vol Up C_VOL_DN: Vol Down diff --git a/config/corne.keymap b/config/corne.keymap index 226563b..62ea39b 100644 --- a/config/corne.keymap +++ b/config/corne.keymap @@ -14,6 +14,7 @@ compatible = "zmk,keymap"; default_layer { + display-name = "BAS"; // ----------------------------------------------------------------------------------------- // | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP | // | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | @@ -29,6 +30,7 @@ }; lower_layer { + display-name = "LOW"; // ----------------------------------------------------------------------------------------- // | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP | // | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | | @@ -44,6 +46,7 @@ }; raise_layer { + display-name = "RAI"; // ----------------------------------------------------------------------------------------- // | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP | // | CTRL | | | | | | | - | = | [ | ] | \ | ` | diff --git a/config/lily58.conf b/config/lily58.conf new file mode 100644 index 0000000..2887d63 --- /dev/null +++ b/config/lily58.conf @@ -0,0 +1,136 @@ +# ======================================== +# FileName: corne.conf +# Date: 07.06.2023 +# Author: Marcos Chow Castro +# Email: mctechnology170318@gmail.com +# GitHub: https://github.com/mctechnology17 +# Brief: configuration file for ZMK firmware +# Board: nice_nano_v2 and puchi_ble_v1 +# ╔═╦═╦═╗ +# ╔════╗ ║║║║║╔╝ +# ║╔╗╔╗║ ║║║║║╚╗ +# ╚╝║║╚╝ ║╠═╩╩═╝ +# ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗ +# ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║ +# ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║ +# ╚═╩═╝ +# Copyright (c) 2020 The ZMK Contributors +# SPDX-License-Identifier: MIT +# ========================================= +# on config_zmk.h file enable/disable the following options, if you want to +# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y +# mouse config, 1 = enable, 0 = disable, default = 1 +# 2 = enable, but with rgb matrix +# #define MC_TECHNOLOGY_MOUSE_ENABLE 1 +# rgb matrix config, 1 = enable, 0 = disable, default = 0 +# #define MC_TECHNOLOGY_RGB_ENABLE 0 +# define macros on for .dtsi file 1 = enable, 0 = disable default = 1 +# #define MC_TECHNOLOGY_MACROS_ENABLE 1 + +### Keyboard name +# CONFIG_ZMK_KEYBOARD_NAME="Nice Lily58 View" +# CONFIG_ZMK_KEYBOARD_NAME="Puchi Lily58 View" +# CONFIG_ZMK_KEYBOARD_NAME="Nice Lily58 Oled" +# CONFIG_ZMK_KEYBOARD_NAME="Puchi Lily58 Oled" + +### Boost Bluetooth TX power, also make Bluetooth stronger +CONFIG_BT_CTLR_TX_PWR_PLUS_8=y +CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y +# Tune bluetooth profiles for quick select +# CONFIG_BT_MAX_CONN=3 +# Uncomment the following line if you facing issue on win 11 connection +# Enables a combination of settings that are planned to be default in future +# versions of ZMK to improve connection stability. This includes changes to +# timing on BLE pairing initiation, restores use of the updated/new LLCP +# implementation, and disables 2M PHY support. +CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y + +### POWER OPTIONS +CONFIG_ZMK_SLEEP=y +CONFIG_ZMK_EXT_POWER=y +# 15 min (15*60*1000ms) +# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000 +# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo +# CONFIG_ZMK_IDLE_TIMEOUT=60000 +# 30 min (30*60*1000ms) +# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000 +# CONFIG_ZMK_IDLE_TIMEOUT=120000 +# Disable external power when not connected to USB +# CONFIG_ZMK_EXT_POWER_USB_ONLY=y + +### MOUSE +# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md +CONFIG_ZMK_MOUSE=y + +### ZMK STUDIO +# MC: 2. zmk-studio test START +# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md +CONFIG_ZMK_STUDIO=y +CONFIG_ZMK_STUDIO_LOCKING=n +# MC: zmk-studio test END + +### RGB UNDERGLOW +# uncomment to enable RGB Underglow or backlight +# CONFIG_ZMK_RGB_UNDERGLOW=y +# CONFIG_WS2812_STRIP=y +# apaga si no se usa el teclado +# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y +# 0 Solid color 1 Breathe 2 Spectrum 3 Swirl +# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3 +# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento +# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1 +# Turn off RGB underglow when keyboard goes into idle state +# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y + +# # Hue step in degrees (0-359) used by RGB actions default 10 +# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30 + +# # Brightness step in percent used by RGB actions default 10 +# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2 +# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240 +# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10 +# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15 + +# Uncomment the line below to disable external power toggling by the underglow. +# By default toggling the underglow on and off also toggles external power +# on and off. This also causes the display to turn off. +# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n + +### OLED DISPLAY +CONFIG_ZMK_DISPLAY=y +CONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y +# esto creo que ya no es necesario +# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y +# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y + +### WIDGET SETTINGS +# No Widget configurations added since nice!view has its own custom widgets +# activar solo estos dos widgets +# CONFIG_ZMK_WIDGET_WPM_STATUS=n +# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y +# CONFIG_ZMK_WIDGET_LAYER_STATUS=y +# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y +# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y + +### HID para nice!view ePaperDisplay +# Enable eager debouncing +# "Eager Debouncing" +# Trying to lower the input lag. +CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1 +CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5 + +### Improves compatibility with iPad +# ref: https://zmk.dev/docs/config/system#hid +CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y + +# RDP compatibility. +# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y + +# NKRO +# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y +# enable F13-F24 +# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y + +### DEBUG OPTIONS +# CONFIG_ZMK_USB_LOGGING=y +# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 diff --git a/config/lily58.keymap b/config/lily58.keymap new file mode 100644 index 0000000..8a19b9a --- /dev/null +++ b/config/lily58.keymap @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2020 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { +// ------------------------------------------------------------------------------------------------------------ +// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | +// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | +// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | +// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | +// | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | + display-name = "Bas"; + bindings = < +&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE +&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS +&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT +&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + lower_layer { +// ------------------------------------------------------------------------------------------------------------ +// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | +// | | | | | | | | | | | _ | + | { | } | "|" | +// | | | | | | | | | | + display-name = "Low"; + bindings = < +&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 +&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp TILDE +&trans &trans &trans &trans &trans &trans &trans &trans &trans &kp MINUS &kp KP_PLUS &kp LBRC &kp RBRC &kp PIPE + &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + raise_layer { +// ------------------------------------------------------------------------------------------------------------ +// | | | | | | | | | | | | | | +// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | | +// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | +// | | | | | | | | | | + display-name = "Rai"; + bindings = < +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans +&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH + &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + extra_1 { + status = "reserved"; + }; + + extra_2 { + status = "reserved"; + }; + + extra_3 { + status = "reserved"; + }; + }; +}; diff --git a/config/sofle.keymap b/config/sofle.keymap index 5a6b2e2..908777d 100644 --- a/config/sofle.keymap +++ b/config/sofle.keymap @@ -14,6 +14,7 @@ compatible = "zmk,keymap"; default_layer { + display-name = "BAS"; // ------------------------------------------------------------------------------------------------------------ // | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | // | ESC | Q | W | E | R | T | | Y | U | I | O | P | BKSPC | @@ -33,7 +34,7 @@ }; lower_layer { - // TODO: Some binds are waiting for shifted keycode support. + display-name = "LOW"; // ------------------------------------------------------------------------------------------------------------ // | ` | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | // | RAISE | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | @@ -53,6 +54,7 @@ }; raise_layer { + display-name = "RAI"; // ------------------------------------------------------------------------------------------------------------ // |BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | // | | INS | PSCR | GUI | | | | PGUP | | | | | | @@ -70,25 +72,5 @@ sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN &inc_dec_kp PG_UP PG_DN>; }; - - layer_3 { - bindings = < -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - >; - }; - - layer_4 { - bindings = < -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans -&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans - >; - }; }; }; diff --git a/config/splitkb_aurora_sofle.conf b/config/splitkb_aurora_sofle.conf new file mode 100644 index 0000000..daa501e --- /dev/null +++ b/config/splitkb_aurora_sofle.conf @@ -0,0 +1,140 @@ +# ======================================== +# FileName: splitkb_aurora_sofle.conf +# Date: 03.01.2025 +# Author: Marcos Chow Castro +# Email: mctechnology170318@gmail.com +# GitHub: https://github.com/mctechnology17 +# Brief: configuration file for ZMK firmware +# Board: nice_nano_v2 and puchi_ble_v1 +# ╔═╦═╦═╗ +# ╔════╗ ║║║║║╔╝ +# ║╔╗╔╗║ ║║║║║╚╗ +# ╚╝║║╚╝ ║╠═╩╩═╝ +# ║╠═╦═╣╚╦═╦╦═╦╗╔═╦═╦╦╗ +# ║║╩╣═╣║║║║║╬║╚╣╬║╬║║║ +# ╚╩═╩═╩╩╩╩═╩═╩═╩═╬╗╠╗║ +# ╚═╩═╝ +# Copyright (c) 2020 The ZMK Contributors +# SPDX-License-Identifier: MIT +# ========================================= +# on config_zmk.h file enable/disable the following options, if you want to +# use CONFIG_ZMK_MOUSE=y, CONFIG_ZMK_RGB_UNDERGLOW=y, CONFIG_ZMK_RGB_UNDERGLOW=y +# mouse config, 1 = enable, 0 = disable, default = 1 +# 2 = enable, but with rgb matrix +# #define MC_TECHNOLOGY_MOUSE_ENABLE 1 +# rgb matrix config, 1 = enable, 0 = disable, default = 0 +# #define MC_TECHNOLOGY_RGB_ENABLE 0 +# define macros on for .dtsi file 1 = enable, 0 = disable default = 1 +# #define MC_TECHNOLOGY_MACROS_ENABLE 1 + +### Keyboard name +# CONFIG_ZMK_KEYBOARD_NAME="Nice splitkb_aurora_sofle View" +# CONFIG_ZMK_KEYBOARD_NAME="Puchi splitkb_aurora_sofle View" +# CONFIG_ZMK_KEYBOARD_NAME="Nice splitkb_aurora_sofle Oled" +# CONFIG_ZMK_KEYBOARD_NAME="Puchi splitkb_aurora_sofle Oled" + +### Boost Bluetooth TX power, also make Bluetooth stronger +CONFIG_BT_CTLR_TX_PWR_PLUS_8=y +CONFIG_ZMK_BLE_EXPERIMENTAL_FEATURES=y +# Tune bluetooth profiles for quick select +# CONFIG_BT_MAX_CONN=3 +# Uncomment the following line if you facing issue on win 11 connection +# Enables a combination of settings that are planned to be default in future +# versions of ZMK to improve connection stability. This includes changes to +# timing on BLE pairing initiation, restores use of the updated/new LLCP +# implementation, and disables 2M PHY support. +CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y + +### POWER OPTIONS +CONFIG_ZMK_SLEEP=y +CONFIG_ZMK_EXT_POWER=y +# 15 min (15*60*1000ms) +# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000 +# 1 min Número de milisegundos de inactividad antes de entrar en estado inactivo +# CONFIG_ZMK_IDLE_TIMEOUT=60000 +# 30 min (30*60*1000ms) +# CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000 +# CONFIG_ZMK_IDLE_TIMEOUT=120000 +# Disable external power when not connected to USB +# CONFIG_ZMK_EXT_POWER_USB_ONLY=y + +### MOUSE +# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/keymaps/behaviors/mouse-emulation.md +CONFIG_ZMK_MOUSE=y + +### ZMK STUDIO +# MC: 2. zmk-studio test START +# https://github.com/zmkfirmware/zmk/blob/main/docs/docs/config/studio.md +CONFIG_ZMK_STUDIO=y +CONFIG_ZMK_STUDIO_LOCKING=n +# MC: zmk-studio test END + +### RGB UNDERGLOW +# uncomment to enable RGB Underglow or backlight +# CONFIG_ZMK_RGB_UNDERGLOW=y +# CONFIG_WS2812_STRIP=y +# apaga si no se usa el teclado +# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y +# 0 Solid color 1 Breathe 2 Spectrum 3 Swirl +# CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3 +# nivel de brillo en porcentaje, el valor por defecto es 10 por ciento +# CONFIG_ZMK_RGB_UNDERGLOW_BRT_STEP=1 +# Turn off RGB underglow when keyboard goes into idle state +# CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y + +# # Hue step in degrees (0-359) used by RGB actions default 10 +# CONFIG_ZMK_RGB_UNDERGLOW_HUE_STEP=30 + +# # Brightness step in percent used by RGB actions default 10 +# CONFIG_ZMK_RGB_UNDERGLOW_SAT_STEP=2 +# CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=240 +# CONFIG_ZMK_RGB_UNDERGLOW_SAT_START=10 +# CONFIG_ZMK_RGB_UNDERGLOW_BRT_START=15 + +# Uncomment the line below to disable external power toggling by the underglow. +# By default toggling the underglow on and off also toggles external power +# on and off. This also causes the display to turn off. +# CONFIG_ZMK_RGB_UNDERGLOW_EXT_POWER=n + +### OLED DISPLAY +CONFIG_ZMK_DISPLAY=y +CONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y +# esto creo que ya no es necesario +# CONFIG_ZMK_DISPLAY_WORK_QUEUE_DEDICATED=y +# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y + +### WIDGET SETTINGS +# No Widget configurations added since nice!view has its own custom widgets +# activar solo estos dos widgets +# CONFIG_ZMK_WIDGET_WPM_STATUS=n +# CONFIG_ZMK_WIDGET_BATTERY_STATUS_SHOW_PERCENTAGE=y +# CONFIG_ZMK_WIDGET_LAYER_STATUS=y +# CONFIG_ZMK_WIDGET_BATTERY_STATUS=y +# CONFIG_ZMK_WIDGET_OUTPUT_STATUS=y + +### HID para nice!view ePaperDisplay +# Enable eager debouncing +# "Eager Debouncing" +# Trying to lower the input lag. +CONFIG_ZMK_KSCAN_DEBOUNCE_PRESS_MS=1 +CONFIG_ZMK_KSCAN_DEBOUNCE_RELEASE_MS=5 + +### Improves compatibility with iPad +# ref: https://zmk.dev/docs/config/system#hid +CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y + +# RDP compatibility. +# CONFIG_ZMK_HID_SEPARATE_MOD_RELEASE_REPORT=y + +# NKRO +# CONFIG_ZMK_HID_REPORT_TYPE_NKRO=y +# enable F13-F24 +# CONFIG_ZMK_HID_KEYBOARD_NKRO_EXTENDED_REPORT=y + +### DEBUG OPTIONS +# CONFIG_ZMK_USB_LOGGING=y +# CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=8000 + +### ENABLE ENCODER +CONFIG_EC11=y +CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y diff --git a/config/splitkb_aurora_sofle.keymap b/config/splitkb_aurora_sofle.keymap new file mode 100644 index 0000000..9799bd6 --- /dev/null +++ b/config/splitkb_aurora_sofle.keymap @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2023 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include +#include +#include +#include + +/* Uncomment this block if using RGB +&led_strip { + chain-length = <6>; + // chain-length = <35>; // Uncomment if using both per-key and underglow LEDs + // chain-length = <29>; // Uncomment if using only per-key LEDs. +}; + */ + +/ { + keymap { + compatible = "zmk,keymap"; + + default_layer { + display-name = "BAS"; +// ------------------------------------------------------------------------------------------------------------ +// | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` | +// | TAB | Q | W | E | R | T | | Y | U | I | O | P | - | +// | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | +// | SHIFT | Z | X | C | V | B | "[" | | "]" | N | M | , | . | / | SHIFT | +// |CTRL | ALT | GUI | LOWER| SPACE | | ENTER | RAISE| BSPC | GUI | RALT | + bindings = < +&kp ESC &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp GRAVE +&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp MINUS +&kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT +&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp LBKT &kp RBKT &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LCTRL &kp LALT &kp LGUI &mo 1 &kp SPACE &kp RET &mo 2 &kp BSPC &kp RGUI &kp RALT + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + lower_layer { + display-name = "LOW"; +// ------------------------------------------------------------------------------------------------------------ +// | BTCLR | BT1 | BT2 | BT3 | BT4 | BT5 | | | | | | | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | +// | ` | ! | @ | # | $ | % | | ^ | & | * | ( | ) | ~ | +// | | | | | | | | | | | _ | + | { | } | "|" | +// | | | | | | | | | | | | + bindings = < +&bt BT_CLR &bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &bt BT_SEL 4 &trans &trans &trans &trans &trans &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 +&kp GRAVE &kp EXCL &kp AT &kp HASH &kp DOLLAR &kp PRCNT &kp CARET &kp AMPS &kp STAR &kp LPAR &kp RPAR &kp TILDE +&trans &ext_power EP_ON &ext_power EP_OFF &ext_power EP_TOG &trans &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + raise_layer { + display-name = "RAI"; +// ------------------------------------------------------------------------------------------------------------ +// | | | | | | | | | | | | | | +// | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | +// | F1 | F2 | F3 | F4 | F5 | F6 | | | <- | v | ^ | -> | | +// | F7 | F8 | F9 | F10 | F11 | F12 | | | | + | - | = | [ | ] | \ | +// | | | | | | | | | | | | + bindings = < +&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans +&kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &trans +&kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans +&kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &trans &trans &kp KP_PLUS &kp MINUS &kp EQUAL &kp LBKT &kp RBKT &kp BSLH + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + >; + + sensor-bindings = <&inc_dec_kp C_VOL_UP C_VOL_DN>; + }; + + extra_1 { + status = "reserved"; + }; + + extra_2 { + status = "reserved"; + }; + + extra_3 { + status = "reserved"; + }; + }; +}; diff --git a/keymap-drawer/corne.svg b/keymap-drawer/corne.svg index 5045b2a..d751ccd 100644 --- a/keymap-drawer/corne.svg +++ b/keymap-drawer/corne.svg @@ -1,4 +1,21 @@ +/* start glyphs */ + + + + + + + + + + + + + + + +/* end glyphs */ - -default: + +BAS: @@ -256,11 +281,11 @@ rect.held, rect.combo.held { - + -Ctrl + @@ -308,7 +333,7 @@ rect.held, rect.combo.held { -Shift + @@ -356,12 +381,12 @@ rect.held, rect.combo.held { -Gui + - -lower + +LOW @@ -373,17 +398,17 @@ rect.held, rect.combo.held { - -raise + +RAI -Alt + - -lower: + +LOW: @@ -431,7 +456,7 @@ rect.held, rect.combo.held { - + @@ -495,7 +520,7 @@ rect.held, rect.combo.held { -Shift + @@ -543,7 +568,7 @@ rect.held, rect.combo.held { -Gui + @@ -562,12 +587,12 @@ rect.held, rect.combo.held { -Alt + - -raise: + +RAI: @@ -617,11 +642,11 @@ rect.held, rect.combo.held { - + -Ctrl + @@ -673,7 +698,7 @@ rect.held, rect.combo.held { -Shift + @@ -721,7 +746,7 @@ rect.held, rect.combo.held { -Gui + @@ -741,7 +766,7 @@ rect.held, rect.combo.held { -Alt + diff --git a/keymap-drawer/corne.yaml b/keymap-drawer/corne.yaml index 08646cf..474395b 100644 --- a/keymap-drawer/corne.yaml +++ b/keymap-drawer/corne.yaml @@ -1,7 +1,8 @@ layout: {qmk_keyboard: corne_rotated, layout_name: LAYOUT_split_3x6_3} layers: - default: [↹, Q, W, E, R, T, Y, U, I, O, P, ⌫, Ctrl, A, S, D, F, G, H, J, K, L, ;, '''', Shift, Z, X, C, V, B, N, M, ',', ., /, Esc, Gui, lower, ␣, ⏎, raise, Alt] - lower: + BAS: [↹, Q, W, E, R, T, Y, U, I, O, P, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K, L, ;, '''', '$$mdi:apple-keyboard-shift$$', + Z, X, C, V, B, N, M, ',', ., /, Esc, '$$mdi:apple-keyboard-command$$', LOW, ␣, ⏎, RAI, '$$mdi:apple-keyboard-option$$'] + LOW: - ↹ - '1' - '2' @@ -13,7 +14,7 @@ layers: - '8' - '9' - '0' - - ⌫ + - $$mdi:backspace-outline$$ - BT CLR - BT 1 - BT 2 @@ -26,7 +27,7 @@ layers: - → - {t: ▽, type: trans} - {t: ▽, type: trans} - - Shift + - $$mdi:apple-keyboard-shift$$ - {t: ▽, type: trans} - {t: ▽, type: trans} - {t: ▽, type: trans} @@ -38,13 +39,13 @@ layers: - {t: ▽, type: trans} - {t: ▽, type: trans} - {t: ▽, type: trans} - - Gui + - $$mdi:apple-keyboard-command$$ - {type: held} - ␣ - ⏎ - {t: ▽, type: trans} - - Alt - raise: + - $$mdi:apple-keyboard-option$$ + RAI: - ↹ - '!' - '@' @@ -56,8 +57,8 @@ layers: - KP MULTIPLY - ( - ) - - ⌫ - - Ctrl + - $$mdi:backspace-outline$$ + - $$mdi:apple-keyboard-control$$ - {t: ▽, type: trans} - {t: ▽, type: trans} - '&mkp LCLK' @@ -69,7 +70,7 @@ layers: - ']' - \ - '`' - - Shift + - $$mdi:apple-keyboard-shift$$ - {t: ▽, type: trans} - {t: ▽, type: trans} - {t: ▽, type: trans} @@ -81,9 +82,9 @@ layers: - '}' - '|' - '~' - - Gui + - $$mdi:apple-keyboard-command$$ - '&studio_unlock' - ␣ - ⏎ - {t: '&studio_unlock', type: held} - - Alt + - $$mdi:apple-keyboard-option$$ diff --git a/keymap-drawer/lily58.svg b/keymap-drawer/lily58.svg new file mode 100644 index 0000000..0aaf180 --- /dev/null +++ b/keymap-drawer/lily58.svg @@ -0,0 +1,964 @@ + +/* start glyphs */ + + + + + + + + + + + + + + + +/* end glyphs */ + + +Bas: + + + +Esc + + + +1 + + + +2 + + + +3 + + + +4 + + + +5 + + + +6 + + + +7 + + + +8 + + + +9 + + + +0 + + + +` + + + + + + + +Q + + + +W + + + +E + + + +R + + + +T + + + +Y + + + +U + + + +I + + + +O + + + +P + + + +- + + + + + + + +A + + + +S + + + +D + + + +F + + + +G + + + +H + + + +J + + + +K + + + +L + + + +; + + + +' + + + + + + + +Z + + + +X + + + +C + + + +V + + + +B + + + +[ + + + +] + + + +N + + + +M + + + +, + + + +. + + + +/ + + + + + + + + + + + + + + + + +Low + + + + + + + + + + + + +Rai + + + + + + + + + + + + +Low: + + + + +BTCLR + + + + + +BT1 + + + + + +BT2 + + + + + +BT3 + + + + + +BT4 + + + + + +BT5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +F1 + + + +F2 + + + +F3 + + + +F4 + + + +F5 + + + +F6 + + + +F7 + + + +F8 + + + +F9 + + + +F10 + + + +F11 + + + +F12 + + + +` + + + +! + + + +@ + + + +# + + + +$ + + + +% + + + +^ + + + +AMPS + + + + +KPMULTIPLY + + + + +( + + + +) + + + +~ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +- + + + + +KPPLUS + + + + +{ + + + +} + + + +| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rai: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + + + +1 + + + +2 + + + +3 + + + +4 + + + +5 + + + +6 + + + +7 + + + +8 + + + +9 + + + +0 + + + + + + + +F1 + + + +F2 + + + +F3 + + + +F4 + + + +F5 + + + +F6 + + + + + + + + + + + + + + + + + + + + + + + + + + + +F7 + + + +F8 + + + +F9 + + + +F10 + + + +F11 + + + +F12 + + + + + + + + + + + + +KPPLUS + + + + +- + + + += + + + +[ + + + +] + + + +\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Keymap View: keymap-drawer diff --git a/keymap-drawer/lily58.yaml b/keymap-drawer/lily58.yaml new file mode 100644 index 0000000..2852a93 --- /dev/null +++ b/keymap-drawer/lily58.yaml @@ -0,0 +1,123 @@ +layout: {qmk_keyboard: lily58_rotated} +layers: + Bas: [Esc, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '`', ↹, Q, W, E, R, T, Y, U, I, O, P, '-', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K, + L, ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, '[', ']', N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-option$$', '$$mdi:apple-keyboard-command$$', + Low, ␣, ⏎, Rai, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-command$$'] + Low: + - BT CLR + - BT 1 + - BT 2 + - BT 3 + - BT 4 + - BT 5 + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - F1 + - F2 + - F3 + - F4 + - F5 + - F6 + - F7 + - F8 + - F9 + - F10 + - F11 + - F12 + - '`' + - '!' + - '@' + - '#' + - $ + - '%' + - ^ + - AMPS + - KP MULTIPLY + - ( + - ) + - '~' + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - '-' + - KP PLUS + - '{' + - '}' + - '|' + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + Rai: + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - '`' + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + - '8' + - '9' + - '0' + - {t: ▽, type: trans} + - F1 + - F2 + - F3 + - F4 + - F5 + - F6 + - {t: ▽, type: trans} + - ← + - ↓ + - ↑ + - → + - {t: ▽, type: trans} + - F7 + - F8 + - F9 + - F10 + - F11 + - F12 + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - KP PLUS + - '-' + - '=' + - '[' + - ']' + - \ + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + - {t: ▽, type: trans} + - {t: ▽, type: trans} diff --git a/keymap-drawer/sofle.svg b/keymap-drawer/sofle.svg index 84ce038..892d492 100644 --- a/keymap-drawer/sofle.svg +++ b/keymap-drawer/sofle.svg @@ -1,4 +1,21 @@ - + +/* start glyphs */ + + + + + + + + + + + + + + + +/* end glyphs */ - -default: + +BAS: @@ -224,14 +249,12 @@ rect.held, rect.combo.held { - -3 - +3 + - -4 - +4 + 5 @@ -306,7 +329,7 @@ rect.held, rect.combo.held { - + @@ -358,7 +381,7 @@ rect.held, rect.combo.held { -Shift + @@ -410,24 +433,24 @@ rect.held, rect.combo.held { -Shift + -Gui + -Alt + -Ctrl + - -lower + +LOW @@ -439,25 +462,25 @@ rect.held, rect.combo.held { - -raise + +RAI -Ctrl + -Alt + -Gui + - -lower: + +LOW: @@ -509,8 +532,8 @@ rect.held, rect.combo.held { - -raise + +RAI @@ -522,14 +545,12 @@ rect.held, rect.combo.held { - -3 - +3 + - -4 - +4 + 5 @@ -707,8 +728,8 @@ rect.held, rect.combo.held { - -raise: + +RAI: @@ -828,15 +849,15 @@ rect.held, rect.combo.held { -Alt + -Ctrl + -Shift + @@ -868,7 +889,7 @@ rect.held, rect.combo.held { - + @@ -967,494 +988,4 @@ rect.held, rect.combo.held { - -3: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Keymap View: keymap-drawer +Keymap View: keymap-drawer diff --git a/keymap-drawer/sofle.yaml b/keymap-drawer/sofle.yaml index c08451a..e872edf 100644 --- a/keymap-drawer/sofle.yaml +++ b/keymap-drawer/sofle.yaml @@ -1,8 +1,9 @@ layout: {qmk_keyboard: sofle/rev1} layers: - default: ['`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', Esc, Q, W, E, R, T, Y, U, I, O, P, ⌫, ↹, A, S, D, F, G, H, J, K, L, ;, '''', Shift, Z, X, - C, V, B, MUTE, MUTE, N, M, ',', ., /, Shift, Gui, Alt, Ctrl, lower, ⏎, ␣, raise, Ctrl, Alt, Gui] - lower: + BAS: ['`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', Esc, Q, W, E, R, T, Y, U, I, O, P, '$$mdi:backspace-outline$$', ↹, A, S, D, F, G, H, J, K, L, + ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, MUTE, MUTE, N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-command$$', '$$mdi:apple-keyboard-option$$', + '$$mdi:apple-keyboard-control$$', LOW, ⏎, ␣, RAI, '$$mdi:apple-keyboard-control$$', '$$mdi:apple-keyboard-option$$', '$$mdi:apple-keyboard-command$$'] + LOW: - '`' - F1 - F2 @@ -15,7 +16,7 @@ layers: - F9 - F10 - F11 - - raise + - RAI - '1' - '2' - '3' @@ -63,7 +64,7 @@ layers: - {t: ▽, type: trans} - {t: ▽, type: trans} - {t: ▽, type: trans} - raise: + RAI: - BT CLR - BT 1 - BT 2 @@ -89,9 +90,9 @@ layers: - '0' - {t: ▽, type: trans} - {t: ▽, type: trans} - - Alt - - Ctrl - - Shift + - $$mdi:apple-keyboard-option$$ + - $$mdi:apple-keyboard-control$$ + - $$mdi:apple-keyboard-shift$$ - {t: ▽, type: trans} - CLCK - ← @@ -99,7 +100,7 @@ layers: - ↑ - → - ⌦ - - ⌫ + - $$mdi:backspace-outline$$ - {t: ▽, type: trans} - UNDO - CUT @@ -124,125 +125,3 @@ layers: - {t: ▽, type: trans} - {t: ▽, type: trans} - {t: ▽, type: trans} - '3': - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - '4': - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} - - {t: ▽, type: trans} diff --git a/keymap-drawer/splitkb_aurora_sofle.svg b/keymap-drawer/splitkb_aurora_sofle.svg new file mode 100644 index 0000000..0069304 --- /dev/null +++ b/keymap-drawer/splitkb_aurora_sofle.svg @@ -0,0 +1,990 @@ + +/* start glyphs */ + + + + + + + + + + + + + + + +/* end glyphs */ + + +BAS: + + + +Esc + + + +1 + + + +2 + + + +3 + + + +4 + + + +5 + + + +6 + + + +7 + + + +8 + + + +9 + + + +0 + + + +` + + + + + + + +Q + + + +W + + + +E + + + +R + + + +T + + + +Y + + + +U + + + +I + + + +O + + + +P + + + +- + + + + + + + +A + + + +S + + + +D + + + +F + + + +G + + + +H + + + +J + + + +K + + + +L + + + +; + + + +' + + + + + + + +Z + + + +X + + + +C + + + +V + + + +B + + + +[ + + + +] + + + +N + + + +M + + + +, + + + +. + + + +/ + + + + + + + + + + + + + + + + + + + + +LOW + + + + + + + + + + + + +RAI + + + + + + + + + + + + + + + + +LOW: + + + + +BTCLR + + + + + +BT1 + + + + + +BT2 + + + + + +BT3 + + + + + +BT4 + + + + + +BT5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +F1 + + + +F2 + + + +F3 + + + +F4 + + + +F5 + + + +F6 + + + +F7 + + + +F8 + + + +F9 + + + +F10 + + + +F11 + + + +F12 + + + +` + + + +! + + + +@ + + + +# + + + +$ + + + +% + + + +^ + + + +AMPS + + + +* + + + +( + + + +) + + + +~ + + + + + + + + +EPON + + + + + +EPOFF + + + + + +EPTOG + + + + + + + + + + + + + + + + + + + + + + + + +- + + + ++ + + + +{ + + + +} + + + +| + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +RAI: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + + + +1 + + + +2 + + + +3 + + + +4 + + + +5 + + + +6 + + + +7 + + + +8 + + + +9 + + + +0 + + + + + + + +F1 + + + +F2 + + + +F3 + + + +F4 + + + +F5 + + + +F6 + + + + + + + + + + + + + + + + + + + + + + + + + + + +F7 + + + +F8 + + + +F9 + + + +F10 + + + +F11 + + + +F12 + + + + + + + + + + + + +KPPLUS + + + + +- + + + += + + + +[ + + + +] + + + +\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Keymap View: keymap-drawer diff --git a/keymap-drawer/splitkb_aurora_sofle.yaml b/keymap-drawer/splitkb_aurora_sofle.yaml new file mode 100644 index 0000000..4ca7fd7 --- /dev/null +++ b/keymap-drawer/splitkb_aurora_sofle.yaml @@ -0,0 +1,127 @@ +layout: {qmk_keyboard: sofle/rev1} +layers: + BAS: [Esc, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '`', ↹, Q, W, E, R, T, Y, U, I, O, P, '-', '$$mdi:apple-keyboard-control$$', A, S, D, F, G, H, J, K, + L, ;, '''', '$$mdi:apple-keyboard-shift$$', Z, X, C, V, B, '[', ']', N, M, ',', ., /, '$$mdi:apple-keyboard-shift$$', '$$mdi:apple-keyboard-control$$', '$$mdi:apple-keyboard-option$$', + '$$mdi:apple-keyboard-command$$', LOW, ␣, ⏎, RAI, '$$mdi:backspace-outline$$', '$$mdi:apple-keyboard-command$$', '$$mdi:apple-keyboard-option$$'] + LOW: + - BT CLR + - BT 1 + - BT 2 + - BT 3 + - BT 4 + - BT 5 + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - F1 + - F2 + - F3 + - F4 + - F5 + - F6 + - F7 + - F8 + - F9 + - F10 + - F11 + - F12 + - '`' + - '!' + - '@' + - '#' + - $ + - '%' + - ^ + - AMPS + - '*' + - ( + - ) + - '~' + - {t: ▽, type: trans} + - EP ON + - EP OFF + - EP TOG + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - '-' + - + + - '{' + - '}' + - '|' + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + RAI: + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - '`' + - '1' + - '2' + - '3' + - '4' + - '5' + - '6' + - '7' + - '8' + - '9' + - '0' + - {t: ▽, type: trans} + - F1 + - F2 + - F3 + - F4 + - F5 + - F6 + - {t: ▽, type: trans} + - ← + - ↓ + - ↑ + - → + - {t: ▽, type: trans} + - F7 + - F8 + - F9 + - F10 + - F11 + - F12 + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - KP PLUS + - '-' + - '=' + - '[' + - ']' + - \ + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {type: held} + - {t: ▽, type: trans} + - {t: ▽, type: trans} + - {t: ▽, type: trans}