diff --git a/build.yaml b/build.yaml index 228498f2..e2f07e5d 100644 --- a/build.yaml +++ b/build.yaml @@ -1,19 +1,11 @@ -# This file generates the GitHub Actions matrix -# For simple board + shield combinations, add them -# to the top level board and shield arrays, for more -# control, add individual board + shield combinations to -# the `include` property, e.g: -# -# board: [ "nice_nano_v2" ] -# shield: [ "corne_left", "corne_right" ] -# include: -# - board: bdn9_rev2 -# - board: nice_nano_v2 -# shield: reviung41 -# ---- include: - - board: nice_nano_v2 - shield: corne_left nice_view_adapter nice_view - - board: nice_nano_v2 - shield: corne_right nice_view_adapter nice_view + - board: seeeduino_xiao_ble + shield: totem_left + - board: seeeduino_xiao_ble + shield: totem_right + - board: seeeduino_xiao_ble + shield: totem_dongle + snippet: studio-rpc-usb-uart + cmake-args: -DCONFIG_ZMK_STUDIO=y + - board: seeeduino_xiao_ble + shield: settings_reset \ No newline at end of file diff --git a/config/boards/shields/totem/Kconfig.defconfig b/config/boards/shields/totem/Kconfig.defconfig new file mode 100644 index 00000000..2159b416 --- /dev/null +++ b/config/boards/shields/totem/Kconfig.defconfig @@ -0,0 +1,25 @@ +# Copyright (c) 2022 The ZMK Contributors +# SPDX-License-Identifier: MIT + +if SHIELD_TOTEM_DONGLE + +config ZMK_KEYBOARD_NAME + default "TOTEM" + +config ZMK_SPLIT_ROLE_CENTRAL + default y + +config ZMK_USB + default y + +endif + +if SHIELD_TOTEM_LEFT || SHIELD_TOTEM_RIGHT || SHIELD_TOTEM_DONGLE + +config ZMK_SPLIT + default y + +config ZMK_BLE + default y + +endif \ No newline at end of file diff --git a/config/boards/shields/totem/Kconfig.shield b/config/boards/shields/totem/Kconfig.shield new file mode 100644 index 00000000..648c1c5d --- /dev/null +++ b/config/boards/shields/totem/Kconfig.shield @@ -0,0 +1,11 @@ +# Copyright (c) 2022 The ZMK Contributors +# SPDX-License-Identifier: MIT + +config SHIELD_TOTEM_LEFT + def_bool $(shields_list_contains,totem_left) + +config SHIELD_TOTEM_RIGHT + def_bool $(shields_list_contains,totem_right) + +config SHIELD_TOTEM_DONGLE + def_bool $(shields_list_contains,totem_dongle) \ No newline at end of file diff --git a/config/boards/shields/totem/totem.conf b/config/boards/shields/totem/totem.conf new file mode 100644 index 00000000..e69de29b diff --git a/config/boards/shields/totem/totem.dtsi b/config/boards/shields/totem/totem.dtsi new file mode 100644 index 00000000..4b2c10ea --- /dev/null +++ b/config/boards/shields/totem/totem.dtsi @@ -0,0 +1,92 @@ +/* +* Copyright (c) 2022 The ZMK Contributors +* +* SPDX-License-Identifier: MIT +*/ + +#include +#include + +/ { + chosen { + zmk,kscan = &kscan0; + zmk,physical-layout = &default_layout; + }; + + default_transform: keymap_transform_0 { + compatible = "zmk,matrix-transform"; + columns = <10>; + rows = <4>; +// | SW01 | SW02 | SW03 | SW04 | SW05 | | SW05 | SW04 | SW03 | SW02 | SW01 | +// | SW06 | SW07 | SW08 | SW09 | SW10 | | SW10 | SW09 | SW08 | SW07 | SW06 | +// | SW16 | SW11 | SW12 | SW13 | SW14 | SW15 | | SW15 | SW14 | SW13 | SW12 | SW11 | SW16 | +// | SW17 | SW18 | SW19 | | SW19 | SW18 | SW17 | + 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(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(3,0) 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(3,9) + RC(3,2) RC(3,3) RC(3,4) RC(3,5) RC(3,6) RC(3,7) + >; + }; + + default_layout: default_layout { + compatible = "zmk,physical-layout"; + display-name = "TOTEM"; + transform = <&default_transform>; + kscan = <&kscan0>; + + keys // w h x y rot rx ry + = <&key_physical_attrs 105 100 77 151 (-1000) 130 201> + , <&key_physical_attrs 105 100 196 60 (-400) 249 110> + , <&key_physical_attrs 105 100 317 0 0 0 0> + , <&key_physical_attrs 105 100 423 49 0 0 0> + , <&key_physical_attrs 105 100 529 65 0 0 0> + , <&key_physical_attrs 105 100 868 65 0 0 0> + , <&key_physical_attrs 105 100 974 49 0 0 0> + , <&key_physical_attrs 105 100 1080 0 0 0 0> + , <&key_physical_attrs 105 100 1200 60 400 1253 110> + , <&key_physical_attrs 105 100 1319 152 1000 1372 202> + , <&key_physical_attrs 105 100 95 250 (-1000) 147 300> + , <&key_physical_attrs 105 100 203 160 (-400) 256 210> + , <&key_physical_attrs 105 100 317 100 0 0 0> + , <&key_physical_attrs 105 100 423 149 0 0 0> + , <&key_physical_attrs 105 100 529 165 0 0 0> + , <&key_physical_attrs 105 100 868 166 0 0 0> + , <&key_physical_attrs 105 100 974 149 0 0 0> + , <&key_physical_attrs 105 100 1080 100 0 0 0> + , <&key_physical_attrs 105 100 1193 160 400 1246 210> + , <&key_physical_attrs 105 100 1302 250 1000 1355 300> + , <&key_physical_attrs 105 100 0 323 (-1000) 52 373> + , <&key_physical_attrs 105 100 112 348 (-1000) 165 398> + , <&key_physical_attrs 105 100 210 260 (-400) 263 310> + , <&key_physical_attrs 105 100 317 200 0 0 0> + , <&key_physical_attrs 105 100 423 249 0 0 0> + , <&key_physical_attrs 105 100 529 265 0 0 0> + , <&key_physical_attrs 105 100 868 266 0 0 0> + , <&key_physical_attrs 105 100 974 249 0 0 0> + , <&key_physical_attrs 105 100 1080 200 0 0 0> + , <&key_physical_attrs 105 100 1186 260 400 1239 310> + , <&key_physical_attrs 105 100 1285 349 1000 1338 399> + , <&key_physical_attrs 105 100 1397 323 1000 1450 373> + , <&key_physical_attrs 105 100 393 371 0 0 0> + , <&key_physical_attrs 105 100 511 387 1500 563 437> + , <&key_physical_attrs 105 100 619 432 3000 672 482> + , <&key_physical_attrs 105 100 778 432 (-3000) 831 482> + , <&key_physical_attrs 105 100 886 387 (-1500) 939 437> + , <&key_physical_attrs 105 100 1003 371 0 0 0> + ; + }; + + kscan0: kscan_0 { + compatible = "zmk,kscan-gpio-matrix"; + label = "KSCAN"; + + diode-direction = "col2row"; + row-gpios + = <&xiao_d 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&xiao_d 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&xiao_d 2 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + , <&xiao_d 3 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)> + ; + }; + }; \ No newline at end of file diff --git a/config/boards/shields/totem/totem.keymap b/config/boards/shields/totem/totem.keymap new file mode 100644 index 00000000..2e46912e --- /dev/null +++ b/config/boards/shields/totem/totem.keymap @@ -0,0 +1,163 @@ +// +// ▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀ +// ▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄ +// █ █ █ █ █ █ █ █ █ █ █ +// ▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀ +// █ ▄▄▄█▄▄▄ █ █ +// ▀ █ █ █ █▄█ +// ▀▀▀▀▀ █ █ █ ▀ +// ▀ ▀ ▀ +// +// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + +#include +#include +#include +#include +#include + +#define Base 0 +#define Media 1 +#define Nav 2 +#define Mouse 3 +#define Sym 4 +#define Num 5 +#define Fun 6 +#define Button 7 +#define Game 8 +#define Gameplus 9 + +&mt { + quick-tap-ms = <100>; + global-quick-tap; + flavor = "tap-preferred"; + tapping-term-ms = <170>; +}; + +< { + tapping-term-ms = <240>; + flavor = "balanced"; + quick-tap-ms = <150>; +}; + +/ { + + behaviors { + hm: homerow_mods { + compatible = "zmk,behavior-hold-tap"; + label = "HOMEROW_MODS"; + #binding-cells = <2>; + flavor = "tap-preferred"; + tapping-term-ms = <240>; + quick-tap-ms = <150>; + global-quick-tap; + bindings = + <&kp>, + <&kp>; + }; + }; + + keymap { + compatible = "zmk,keymap"; + + Base { + label = "Base"; + bindings = < + &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + &hm LGUI A &hm LALT S &hm LCTRL D &hm LSHIFT F &kp G &kp H &hm RSHFT J &hm RCTRL K &hm RALT L &hm RGUI SEMICOLON + &trans &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT < 7 SLASH &trans + < 1 ESCAPE < 2 TAB < 3 SPACE < 4 BACKSPACE < 5 ENTER < 6 DELETE + >; + }; + + Media { + label = "Media"; + bindings = < + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &kp LGUI &kp LALT &kp LCTRL &kp LSHIFT &trans &trans &kp C_PREVIOUS &kp C_VOLUME_DOWN &kp C_VOLUME_UP &kp C_NEXT + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + &trans &trans &tog 8 &kp C_STOP &kp C_PLAY_PAUSE &trans + >; + }; + + Nav { + label = "Nav"; + bindings = < + &kp DELETE &trans &trans &trans &trans &trans &trans &trans &trans &trans + &kp LEFT_GUI &kp LALT &kp LCTRL &kp LSHIFT &kp SQT &kp CAPS &kp LEFT &kp DOWN &kp UP &kp RIGHT + &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &kp C_PLAY_PAUSE &kp INSERT &kp HOME &kp PAGE_DOWN &kp PAGE_UP &kp END &trans + &trans &trans &trans &kp DELETE &kp ENTER &trans + >; + }; + + Mouse { + label = "Mouse"; + 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 + >; + }; + + Sym { + label = "Sym"; + bindings = < + &kp LEFT_BRACE &kp AMPERSAND &kp ASTERISK &kp LEFT_PARENTHESIS &kp RIGHT_BRACE &trans &trans &trans &trans &trans + &kp COLON &kp DOLLAR &kp PERCENT &kp CARET &kp PLUS &trans &kp RSHIFT &kp RCTRL &kp RALT &kp RGUI + &trans &kp TILDE &kp EXCL &kp AT &kp HASH &kp PIPE &trans &trans &trans &trans &trans &trans + &kp LEFT_PARENTHESIS &kp RIGHT_PARENTHESIS &kp UNDERSCORE &trans &trans &trans + >; + }; + + Num { + label = "Num"; + bindings = < + &kp LEFT_BRACKET &kp NUMBER_7 &kp NUMBER_8 &kp NUMBER_9 &kp RIGHT_BRACKET &trans &trans &trans &trans &trans + &kp SEMICOLON &kp NUMBER_4 &kp NUMBER_5 &kp NUMBER_6 &kp EQUAL &trans &kp RSHIFT &kp RCTRL &kp RALT &kp RGUI + &trans &kp GRAVE &kp NUMBER_1 &kp NUMBER_2 &kp NUMBER_3 &kp BACKSLASH &trans &trans &trans &trans &trans &trans + &kp SQT &kp NUMBER_0 &kp MINUS &trans &trans &trans + >; + }; + + Fun { + label = "Fun"; + bindings = < + &kp F12 &kp F7 &kp F8 &kp F9 &kp PRINTSCREEN &trans &trans &trans &trans &trans + &kp F11 &kp F4 &kp F5 &kp F6 &kp SCROLLLOCK &trans &kp RSHIFT &kp RCTRL &kp RALT &kp RGUI + &trans &kp F10 &kp F1 &kp F2 &kp F3 &kp PAUSE_BREAK &trans &trans &trans &trans &trans &trans + &kp C_MENU &kp TAB &kp SPACE &trans &trans &trans + >; + }; + + Button { + label = "Button"; + bindings = < + &bt BT_CLR &bootloader &trans &trans &bt BT_SEL 0 &trans &trans &trans &bootloader &trans + &kp LGUI &kp LALT &kp LCTRL &kp LSHIFT &bt BT_SEL 1 &trans &kp RSHIFT &kp RCTRL &kp RALT &kp RGUI + &trans &ext_power EP_TOG &trans &trans &trans &bt BT_SEL 2 &trans &trans &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans + >; + }; + + Game { + label = "Game"; + bindings = < + &kp TAB &kp Z &kp X &kp C &kp V &trans &trans &trans &trans &trans + &kp LEFT_SHIFT &kp Q &kp W &kp E &kp R &trans &trans &trans &trans &trans + &trans &kp LCTRL &kp A &kp S &kp D &kp F &trans &trans &trans &trans &trans &trans + &kp LALT < 9 ESCAPE &kp SPACE &trans &trans &trans + >; + }; + + Gameplus { + label = "Gameplus"; + bindings = < + &kp NUMBER_1 &kp NUMBER_2 &kp NUMBER_3 &kp NUMBER_4 &kp NUMBER_5 &trans &trans &trans &trans &trans + &kp G &trans &trans &trans &kp T &trans &trans &trans &trans &trans + &trans &kp TAB &trans &trans &trans &kp B &trans &trans &trans &trans &trans &trans + &kp ESCAPE &trans &tog 8 &trans &trans &trans + >; + }; + }; +}; \ No newline at end of file diff --git a/config/boards/shields/totem/totem.zmk.yml b/config/boards/shields/totem/totem.zmk.yml new file mode 100644 index 00000000..b05b0e3d --- /dev/null +++ b/config/boards/shields/totem/totem.zmk.yml @@ -0,0 +1,12 @@ +file_format: "1" +id: totem +name: TOTEM +type: shield +url: https://github.com/GEIGEIGEIST/TOTEM +requires: [seeeduino_xiao_ble] +features: + - keys +siblings: + - totem_left + - totem_right + - totem_dongle \ No newline at end of file diff --git a/config/boards/shields/totem/totem_dongle.conf b/config/boards/shields/totem/totem_dongle.conf new file mode 100644 index 00000000..db92264d --- /dev/null +++ b/config/boards/shields/totem/totem_dongle.conf @@ -0,0 +1,10 @@ +CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2 + +CONFIG_ZMK_SLEEP=n + +#CONFIG_ZMK_USB_LOGGING=y +#CONFIG_LOG_MODE_IMMEDIATE=n +#CONFIG_LOG_TIMESTAMP_64BIT=y +#CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=5000 +#CONFIG_ZMK_LOG_LEVEL_DBG=y +#CONFIG_KSCAN_LOG_LEVEL_INF=y \ No newline at end of file diff --git a/config/boards/shields/totem/totem_dongle.overlay b/config/boards/shields/totem/totem_dongle.overlay new file mode 100644 index 00000000..36b6325e --- /dev/null +++ b/config/boards/shields/totem/totem_dongle.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + + #include "totem.dtsi" + + &kscan0 { + col-gpios + = <&xiao_d 8 GPIO_ACTIVE_HIGH> + , <&xiao_d 9 GPIO_ACTIVE_HIGH> + , <&xiao_d 10 GPIO_ACTIVE_HIGH> + , <&xiao_d 5 GPIO_ACTIVE_HIGH> + , <&xiao_d 4 GPIO_ACTIVE_HIGH> + ; + }; \ No newline at end of file diff --git a/config/boards/shields/totem/totem_left.conf b/config/boards/shields/totem/totem_left.conf new file mode 100644 index 00000000..e69de29b diff --git a/config/boards/shields/totem/totem_left.overlay b/config/boards/shields/totem/totem_left.overlay new file mode 100644 index 00000000..d1a969db --- /dev/null +++ b/config/boards/shields/totem/totem_left.overlay @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + + #include "totem.dtsi" + + &kscan0 { + col-gpios + = <&xiao_d 4 GPIO_ACTIVE_HIGH> + , <&xiao_d 5 GPIO_ACTIVE_HIGH> + , <&xiao_d 10 GPIO_ACTIVE_HIGH> + , <&xiao_d 9 GPIO_ACTIVE_HIGH> + , <&xiao_d 8 GPIO_ACTIVE_HIGH> + ; + }; \ No newline at end of file diff --git a/config/boards/shields/totem/totem_right.conf b/config/boards/shields/totem/totem_right.conf new file mode 100644 index 00000000..e69de29b diff --git a/config/boards/shields/totem/totem_right.overlay b/config/boards/shields/totem/totem_right.overlay new file mode 100644 index 00000000..123f2e35 --- /dev/null +++ b/config/boards/shields/totem/totem_right.overlay @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2022 The ZMK Contributors + * + * SPDX-License-Identifier: MIT + */ + +#include "totem.dtsi" + +&default_transform { + col-offset = <5>; +}; + +&kscan0 { + col-gpios + = <&xiao_d 8 GPIO_ACTIVE_HIGH> + , <&xiao_d 9 GPIO_ACTIVE_HIGH> + , <&xiao_d 10 GPIO_ACTIVE_HIGH> + , <&xiao_d 5 GPIO_ACTIVE_HIGH> + , <&xiao_d 4 GPIO_ACTIVE_HIGH> + ; +}; \ No newline at end of file diff --git a/config/corne.conf b/config/corne.conf deleted file mode 100644 index 0a39f969..00000000 --- a/config/corne.conf +++ /dev/null @@ -1,7 +0,0 @@ -# Uncomment the following lines to enable the Corne RGB Underglow -# CONFIG_ZMK_RGB_UNDERGLOW=y -# CONFIG_WS2812_STRIP=y - -# Uncomment the following line to enable the Corne OLED Display -CONFIG_ZMK_DISPLAY=y -CONFIG_ZMK_EXT_POWER=y diff --git a/config/corne.keymap b/config/corne.keymap deleted file mode 100644 index 9442f251..00000000 --- a/config/corne.keymap +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2020 The ZMK Contributors - * - * SPDX-License-Identifier: MIT - */ - -#include -#include -#include -#include - -/ { - keymap { - compatible = "zmk,keymap"; - - Base { - // ----------------------------------------------------------------------------------------- - // | TAB | Q | W | E | R | T | | Y | U | I | O | P | BKSP | - // | CTRL | A | S | D | F | G | | H | J | K | L | ; | ' | - // | SHFT | Z | X | C | V | B | | N | M | , | . | / | ESC | - // | GUI | LWR | SPC | | ENT | RSE | ALT | - - label = "Base"; - bindings = < - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSPC - &kp ESC &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp APOS - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHIFT - &kp LCTRL &mo 1 &kp SPACE &kp RET &mo 2 &kp RALT - >; - }; - - Lower { - // ----------------------------------------------------------------------------------------- - // | TAB | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BKSP | - // | BTCLR| BT1 | BT2 | BT3 | BT4 | BT5 | | LFT | DWN | UP | RGT | | | - // | SHFT | | | | | | | | | | | | | - // | GUI | | SPC | | ENT | | ALT | - - label = "Lower"; - bindings = < - &kp TAB &kp K_PP &kp UP &kp N1 &kp N2 &kp N3 &kp N7 &kp N8 &kp N9 &kp N0 &kp HOME &trans - &kp LALT &kp LEFT &kp DOWN &kp RIGHT &kp N4 &kp N5 &kp N4 &kp N5 &kp N6 &kp RIGHT &trans &kp F10 - &kp LSHFT &trans &trans &trans &kp MINUS &kp PLUS &kp N1 &kp N2 &kp N3 &kp DOT &trans &kp RSHIFT - &kp LGUI &trans &kp SPACE &kp RET &trans &kp RALT - >; - }; - - Raise { - // ----------------------------------------------------------------------------------------- - // | TAB | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BKSP | - // | CTRL | | | | | | | - | = | [ | ] | \ | ` | - // | SHFT | | | | | | | _ | + | { | } | "|" | ~ | - // | GUI | | SPC | | ENT | | ALT | - - label = "Raise"; - bindings = < - &trans &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp KP_MULTIPLY &kp LPAR &kp RPAR &kp DEL - &trans &bt BT_CLR &bt BT_PRV &bt BT_NXT &bt BT_SEL 0 &to 3 &kp UNDER &kp EQUAL &kp LBKT &kp RBKT &kp BSLH &kp GRAVE - &trans &out OUT_TOG &trans &trans &trans &trans &kp MINUS &kp PLUS &kp LBRC &kp RBRC &kp PIPE &kp TILDE - &kp LGUI &kp LEFT_ALT &kp SPACE &kp RET &trans &kp RALT - >; - }; - }; -}; - -&nice_view_spi { - cs-gpios = <&pro_micro 0 GPIO_ACTIVE_HIGH>; -}; diff --git a/config/info.json b/config/info.json index 551c6bbe..26aebd9e 100644 --- a/config/info.json +++ b/config/info.json @@ -1,53 +1,53 @@ { + "id": "totem", + "name": "totem", + "url": "https://github.com/GEIGEIGEIST/TOTEM", "layouts": { "LAYOUT": { "layout": [ - { "label": "Tab", "row": 0, "col": 0, "x": 0, "y": 0.5 }, - { "label": "Q", "row": 0, "col": 1, "x": 1, "y": 0.5 }, - { "label": "W", "row": 0, "col": 2, "x": 2, "y": 0.2 }, - { "label": "E", "row": 0, "col": 3, "x": 3, "y": 0 }, - { "label": "R", "row": 0, "col": 4, "x": 4, "y": 0.25 }, - { "label": "T", "row": 0, "col": 5, "x": 5, "y": 0.25 }, - { "label": "Y", "row": 0, "col": 7, "x": 9, "y": 0.25 }, - { "label": "U", "row": 0, "col": 8, "x": 10, "y": 0.25 }, - { "label": "I", "row": 0, "col": 9, "x": 11, "y": 0 }, - { "label": "O", "row": 0, "col": 10, "x": 12, "y": 0.2 }, - { "label": "P", "row": 0, "col": 11, "x": 13, "y": 0.5 }, - { "label": "BSPC", "row": 0, "col": 12, "x": 14, "y": 0.5 }, - - { "label": "Ctrl", "row": 1, "col": 0, "x": 0, "y": 1.5 }, - { "label": "A", "row": 1, "col": 1, "x": 1, "y": 1.5 }, - { "label": "S", "row": 1, "col": 2, "x": 2, "y": 1.2 }, - { "label": "D", "row": 1, "col": 3, "x": 3, "y": 1 }, - { "label": "F", "row": 1, "col": 4, "x": 4, "y": 1.25 }, - { "label": "G", "row": 1, "col": 5, "x": 5, "y": 1.25 }, - { "label": "H", "row": 1, "col": 7, "x": 9, "y": 1.25 }, - { "label": "J", "row": 1, "col": 8, "x": 10, "y": 1.25 }, - { "label": "K", "row": 1, "col": 9, "x": 11, "y": 1 }, - { "label": "L", "row": 1, "col": 10, "x": 12, "y": 1.2 }, - { "label": ";", "row": 1, "col": 11, "x": 13, "y": 1.5 }, - { "label": "'", "row": 1, "col": 12, "x": 14, "y": 1.5 }, - - { "label": "LShift", "row": 2, "col": 0, "x": 0, "y": 2.5 }, - { "label": "Z", "row": 2, "col": 1, "x": 1, "y": 2.5 }, - { "label": "X", "row": 2, "col": 2, "x": 2, "y": 2.2 }, - { "label": "C", "row": 2, "col": 3, "x": 3, "y": 2 }, - { "label": "V", "row": 2, "col": 4, "x": 4, "y": 2.25 }, - { "label": "B", "row": 2, "col": 5, "x": 5, "y": 2.25 }, - { "label": "N", "row": 2, "col": 7, "x": 9, "y": 2.25 }, - { "label": "M", "row": 2, "col": 8, "x": 10, "y": 2.25 }, - { "label": ",", "row": 2, "col": 9, "x": 11, "y": 2 }, - { "label": ".", "row": 2, "col": 10, "x": 12, "y": 2.2 }, - { "label": "/", "row": 2, "col": 11, "x": 13, "y": 2.5 }, - { "label": "Esc", "row": 2, "col": 12, "x": 14, "y": 2.5 }, - - { "label": "GUI", "row": 3, "col": 3, "x": 3.5, "y": 3.25 }, - { "label": "LWR", "row": 3, "col": 4, "x": 4.5, "y": 3.25, "r": 13, "ry": 4.25 }, - { "label": "SPC", "row": 3, "col": 5, "x": 5.5, "y": 3.05, "h": 1.5, "r": 26, "ry": 4.6 }, - { "label": "ENT", "row": 3, "col": 7, "x": 8.5, "y": 3.05, "h": 1.5, "r": -26, "rx": 9.5, "ry": 4.6 }, - { "label": "RSE", "row": 3, "col": 8, "x": 9.5, "y": 3.25, "r": -13, "rx": 10.5, "ry": 4.25 }, - { "label": "ALT", "row": 3, "col": 9, "x": 10.5, "y": 3.25 } + { "row": 0, "col": 1, "x": 0.776, "y": 1.519, "w": 1.059, "r": -10, "rx": 1.305, "ry": 2.019 }, + { "row": 0, "col": 2, "x": 1.964, "y": 0.605, "w": 1.059, "r": -4, "rx": 2.494, "ry": 1.105 }, + { "row": 0, "col": 3, "x": 3.175, "y": 0, "w": 1.059 }, + { "row": 0, "col": 4, "x": 4.234, "y": 0.496, "w": 1.059 }, + { "row": 0, "col": 5, "x": 5.292, "y": 0.656, "w": 1.059 }, + { "row": 0, "col": 7, "x": 8.682, "y": 0.656, "w": 1.059 }, + { "row": 0, "col": 8, "x": 9.741, "y": 0.496, "w": 1.059 }, + { "row": 0, "col": 9, "x": 10.8, "y": 0, "w": 1.059 }, + { "row": 0, "col": 10, "x": 12.007, "y": 0.606, "w": 1.059, "r": 4, "rx": 12.537, "ry": 1.106 }, + { "row": 0, "col": 11, "x": 13.199, "y": 1.52, "w": 1.059, "r": 10, "rx": 13.729, "ry": 2.02 }, + + { "row": 1, "col": 1, "x": 0.95, "y": 2.504, "w": 1.059, "r": -10, "rx": 1.479, "ry": 3.004 }, + { "row": 1, "col": 2, "x": 2.033, "y": 1.602, "w": 1.059, "r": -4, "rx": 2.562, "ry": 2.102 }, + { "row": 1, "col": 3, "x": 3.175, "y": 1, "w": 1.059 }, + { "row": 1, "col": 4, "x": 4.234, "y": 1.496, "w": 1.059 }, + { "row": 1, "col": 5, "x": 5.292, "y": 1.656, "w": 1.059 }, + { "row": 1, "col": 7, "x": 8.682, "y": 1.661, "w": 1.059 }, + { "row": 1, "col": 8, "x": 9.741, "y": 1.496, "w": 1.059 }, + { "row": 1, "col": 9, "x": 10.8, "y": 1, "w": 1.059 }, + { "row": 1, "col": 10, "x": 11.937, "y": 1.603, "w": 1.059, "r": 4, "rx": 12.466, "ry": 2.103 }, + { "row": 1, "col": 11, "x": 13.026, "y": 2.505, "w": 1.059, "r": 10, "rx": 13.556, "ry": 3.005 }, + + { "row": 2, "col": 0, "x": 0, "y": 3.231, "w": 1.059, "r": -10, "rx": 0.529, "ry": 3.731 }, + { "row": 2, "col": 1, "x": 1.124, "y": 3.489, "w": 1.059, "r": -10, "rx": 1.654, "ry": 3.989 }, + { "row": 2, "col": 2, "x": 2.103, "y": 2.6, "w": 1.059, "r": -4, "rx": 2.633, "ry": 3.1 }, + { "row": 2, "col": 3, "x": 3.175, "y": 2, "w": 1.059 }, + { "row": 2, "col": 4, "x": 4.234, "y": 2.496, "w": 1.059 }, + { "row": 2, "col": 5, "x": 5.292, "y": 2.656, "w": 1.059 }, + { "row": 2, "col": 7, "x": 8.682, "y": 2.661, "w": 1.059 }, + { "row": 2, "col": 8, "x": 9.741, "y": 2.496, "w": 1.059 }, + { "row": 2, "col": 9, "x": 10.8, "y": 2, "w": 1.059 }, + { "row": 2, "col": 10, "x": 11.868, "y": 2.601, "w": 1.059, "r": 4, "rx": 12.398, "ry": 3.101 }, + { "row": 2, "col": 11, "x": 12.852, "y": 3.49, "w": 1.059, "r": 10, "rx": 13.382, "ry": 3.99 }, + { "row": 2, "col": 12, "x": 13.973, "y": 3.231, "w": 1.059, "r": 10, "rx": 14.503, "ry": 3.731 }, + + { "row": 3, "col": 3, "x": 3.938, "y": 3.714, "w": 1.059 }, + { "row": 3, "col": 4, "x": 5.11, "y": 3.878, "w": 1.059, "r": 15, "rx": 5.639, "ry": 4.378 }, + { "row": 3, "col": 5, "x": 6.195, "y": 4.329, "w": 1.059, "r": 30, "rx": 6.724, "ry": 4.829 }, + { "row": 3, "col": 7, "x": 7.781, "y": 4.329, "w": 1.059, "r": -30, "rx": 8.31, "ry": 4.829 }, + { "row": 3, "col": 8, "x": 8.866, "y": 3.878, "w": 1.059, "r": -15, "rx": 9.396, "ry": 4.378 }, + { "row": 3, "col": 9, "x": 10.037, "y": 3.714, "w": 1.059 } ] } - } -} + }, + "sensors": [] +} \ No newline at end of file diff --git a/config/totem.conf b/config/totem.conf new file mode 100644 index 00000000..ab57e65d --- /dev/null +++ b/config/totem.conf @@ -0,0 +1,5 @@ +CONFIG_BT_CTLR_TX_PWR_PLUS_8=y +CONFIG_ZMK_BLE_EXPERIMENTAL_CONN=y + +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING=y +CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_PROXY=y \ No newline at end of file diff --git a/config/totem.keymap b/config/totem.keymap new file mode 100644 index 00000000..7f9b91ae --- /dev/null +++ b/config/totem.keymap @@ -0,0 +1,201 @@ +// +// ▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀ +// ▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄ +// █ █ █ █ █ █ █ █ █ █ █ +// ▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀ +// █ ▄▄▄█▄▄▄ █ █ +// ▀ █ █ █ █▄█ +// ▀▀▀▀▀ █ █ █ ▀ +// ▀ ▀ ▀ +// +// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + +#include +#include +#include +#include + +#define BASE 0 +#define NAV 1 +#define SYM 2 +#define ADJ 3 +#define TVP1 4 +#define TVP2 5 + +&mt { + quick-tap-ms = <100>; + global-quick-tap; + flavor = "tap-preferred"; + tapping-term-ms = <170>; +}; + +/ { + combos { + compatible = "zmk,combos"; + + combo_esc { + timeout-ms = <50>; + key-positions = <0 1>; + bindings = <&kp ESC>; + }; + + kill { + bindings = <&kp RC(RA(BACKSPACE))>; + key-positions = <30 31 19>; + }; + + backspace { + bindings = <&kp BACKSPACE>; + key-positions = <9 8>; + }; + + Delete { + bindings = <&kp DEL>; + key-positions = <7 6>; + }; + + Tabulate { + bindings = <&kp TAB>; + key-positions = <0 20>; + }; + + gaming_layer { + bindings = <&tog 4>; + key-positions = <36 33>; + }; + + Enter { + bindings = <&kp ENTER>; + key-positions = <30 29>; + }; + }; + + macros { + ene: ene { + compatible = "zmk,behavior-macro"; + #binding-cells = <0>; + bindings = <&kp LA(N) &kp TILDE>; + label = "ENE"; + }; + }; + + keymap { + compatible = "zmk,keymap"; + + // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + base_layer { + // ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ + + label = "BASE"; + + // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ + // ┃ Q ┃ W ┃ F ┃ P ┃ G ┃ ┃ J ┃ L ┃ U ┃ Y ┃ ; ┃ + // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ + // ┃ A ┃ R ┃ S ┃ T ┃ D ┃ ┃ H ┃ N ┃ E ┃ I ┃ O ┃ + // ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ + // ┃ Q ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ K ┃ M ┃ , ┃ . ┃ / ┃ \ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + // ┃ DEL ┃ TAB ┃ SPC ┃ ┃ ENTER ┃ ┃ BSPC ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + + bindings = < + &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &ene +&kp LEFT_SHIFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp APOS &kp BACKSPACE + &kp LEFT_CONTROL < 1 NUMBER_1 &kp SPACE &kp LEFT_WIN < 2 NUMBER_2 &kp RC(TAB) + >; + }; + + // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + nav_layer { + // ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ + + label = "NAVI"; + + // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ + // ┃ ┃ ┃ UP ┃ ┃ { ┃ ┃ } ┃ 7 ┃ 8 ┃ 9 ┃ + ┃ + // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ + // ┃ SHIFT ┃ LEFT ┃ DOWN ┃ RIGHT ┃ [ ┃ ┃ ] ┃ 4 ┃ 5 ┃ 6 ┃ - ┃ + // ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ + // ┃ ┃ ┃ P UP ┃ C LOCK ┃ P DOWN ┃ ( ┃ ┃ ) ┃ 1 ┃ 2 ┃ 3 ┃ * ┃ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + // ┃ ┃ TAB ┃ SPC ┃ ┃ DEL ┃ 0 ┃ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + + bindings = < + &mkp MCLK &kp END &kp UP &kp HOME &kp LBRC &kp RBRC &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp PLUS + &mkp LCLK &kp LEFT &kp DOWN &kp RIGHT &kp LBKT &kp RBKT &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp MINUS +&mkp RCLK &mo 3 &kp PG_UP &kp CAPS &kp PG_DN &kp LPAR &kp RPAR &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp DOT &kp SLASH + &kp BACKSPACE &trans &trans &kp ASTERISK &trans &kp KP_NUMBER_0 + >; + }; + + // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + sim_layer { + // ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ + + label = "SYM"; + + // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ + // ┃ ! ┃ @ ┃ # ┃ $ ┃ % ┃ ┃ ˆ ┃ & ┃ Ü ┃ ' ┃ " ┃ + // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ + // ┃ Ä ┃ ┃ SZ ┃ ┃ ┃ ┃ MUTE ┃ YEN ┃ EURO ┃ POUND ┃ Ö ┃ + // ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ + // ┃ ┃ EMAIL1 ┃ EMAIL2 ┃ ┃ ┃ ┃ ┃ VOL- ┃ VOL+ ┃ LAST ┃ NEXT ┃ \ ┃ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + // ┃ ┃ GIF ┃ ADJ ┃ ┃ ┃ ┃ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + + bindings = < + &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp K_MUTE &kp C_VOLUME_DOWN &kp C_VOLUME_UP &kp C_BRIGHTNESS_DEC &kp C_BRIGHTNESS_INC + &kp QUESTION &kp UNDER &kp BACKSLASH &kp CARET &kp AMPERSAND &kp C_PREVIOUS &kp C_PLAY_PAUSE &kp C_NEXT &kp LC(V) &kp LS(Z) +&kp SEMICOLON &kp COLON &kp MINUS &kp SLASH &kp DOUBLE_QUOTES &kp SINGLE_QUOTE &kp LESS_THAN &kp GREATER_THAN &kp LC(C) &kp LC(S) &kp LC(O) &kp C_AC_NEXT_KEYBOARD_LAYOUT_SELECT + &kp EQUAL &trans &trans &mo 3 &trans &trans + >; + }; + + // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + fn_layer { + // ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ + + label = "ADJ"; + + // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ + // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ + // ┃ RESET ┃ BT CLEAR ┃ OUT TOG ┃ ┃ ┃ ┃ ┃ F7 ┃ F8 ┃ F9 ┃ F12 ┃ + // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ + // ┃ BOOTLOAD ┃ BT NEXT ┃ ┃ ┃ ┃ ┃ ┃ F4 ┃ F5 ┃ F6 ┃ F11 ┃ + // ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ + // ┃ ┃ ┃ BT PREV ┃ ┃ ┃ ┃ ┃ ┃ F1 ┃ F2 ┃ F3 ┃ F10 ┃ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ + // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + + bindings = < + &sys_reset &bt BT_CLR &trans &trans &trans &trans &kp F7 &kp F8 &kp F9 &kp F12 + &bootloader &bt BT_NXT &trans &trans &trans &trans &kp F4 &kp F5 &kp F6 &kp F11 +&trans &trans &bt BT_PRV &trans &trans &trans &trans &kp F1 &kp F2 &kp F3 &kp F10 &trans + &trans &trans &trans &trans &trans &trans + >; + }; + + // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + gaming_layer { + bindings = < + &kp Q &kp W &kp E &kp R &kp T &kp PLUS &trans &kp UP_ARROW &trans &trans + &kp A &kp S &kp D &kp F &kp G &kp MINUS &kp LEFT_ARROW &kp DOWN &kp RIGHT &trans +&trans &kp Z &kp X &kp C &kp V &kp B &kp LEFT_BRACKET &kp RIGHT_BRACKET &trans &trans &trans &trans + &trans &trans &trans &trans &trans &trans + >; + }; + }; +}; diff --git a/config/west.yml b/config/west.yml index 379d2919..adc97b70 100644 --- a/config/west.yml +++ b/config/west.yml @@ -8,4 +8,4 @@ manifest: revision: main import: app/west.yml self: - path: config + path: config \ No newline at end of file