diff --git a/build.yaml b/build.yaml index 02eaa34cc..838698e93 100644 --- a/build.yaml +++ b/build.yaml @@ -3,4 +3,9 @@ include: shield: totem_left - board: seeeduino_xiao_ble shield: totem_right + - board: seeeduino_xiao_ble + shield: totem_dongle + snippet: zmk-usb-logging # there is no settingsreset (needed) for the XIAO +# - board: seeeduino_xiao_ble +# shield: settings_reset diff --git a/config/boards/shields/totem/Kconfig.defconfig b/config/boards/shields/totem/Kconfig.defconfig index 8699cda46..2159b416b 100644 --- a/config/boards/shields/totem/Kconfig.defconfig +++ b/config/boards/shields/totem/Kconfig.defconfig @@ -1,7 +1,7 @@ # Copyright (c) 2022 The ZMK Contributors # SPDX-License-Identifier: MIT -if SHIELD_TOTEM_LEFT +if SHIELD_TOTEM_DONGLE config ZMK_KEYBOARD_NAME default "TOTEM" @@ -9,11 +9,17 @@ config ZMK_KEYBOARD_NAME config ZMK_SPLIT_ROLE_CENTRAL default y +config ZMK_USB + default y + endif -if SHIELD_TOTEM_LEFT || SHIELD_TOTEM_RIGHT +if SHIELD_TOTEM_LEFT || SHIELD_TOTEM_RIGHT || SHIELD_TOTEM_DONGLE config ZMK_SPLIT default y -endif +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 index 7c1691d37..648c1c5db 100644 --- a/config/boards/shields/totem/Kconfig.shield +++ b/config/boards/shields/totem/Kconfig.shield @@ -6,3 +6,6 @@ config SHIELD_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.keymap b/config/boards/shields/totem/totem.keymap index 3686c7093..da708e93c 100644 --- a/config/boards/shields/totem/totem.keymap +++ b/config/boards/shields/totem/totem.keymap @@ -9,17 +9,15 @@ // ▀ ▀ ▀ // // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ - #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>; @@ -29,13 +27,18 @@ }; / { - combos { + combos { compatible = "zmk,combos"; combo_esc { timeout-ms = <50>; key-positions = <0 1>; bindings = <&kp ESC>; }; + combo_tvp { + timeout-ms = <100>; + key-positions = <11 12 13>; + bindings = <&tog TVP1>; + }; }; macros { @@ -61,21 +64,21 @@ label= "BASE" ; // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ -// ┃ Q ┃ W ┃ F ┃ P ┃ G ┃ ┃ J ┃ L ┃ U ┃ Y ┃ ; ┃ +// ┃ Q ┃ W ┃ E ┃ R ┃ T ┃ ┃ Y ┃ U ┃ I ┃ O ┃ P ┃ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ -// ┃ A ┃ R ┃ S ┃ T ┃ D ┃ ┃ H ┃ N ┃ E ┃ I ┃ O ┃ +// ┃ A ┃ S ┃ D ┃ F ┃ G ┃ ┃ H ┃ J ┃ K ┃ L ┃ ; ┃ // ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ -// ┃ ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ K ┃ M ┃ , ┃ . ┃ / ┃ ┃ +// ┃ Q ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ N ┃ M ┃ , ┃ . ┃ / ┃ \ ┃ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ -// ┃ ┃ TAB ┃ SPC ┃ ┃ ENTER ┃ BSPC ┃ ┃ +// ┃ DEL ┃ TAB ┃ SPC ┃ ┃ ENTER ┃ ESC ┃ BSPC ┃ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ bindings = < // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ - &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp SEMI - &mt LGUI A &mt LALT R &mt LCTRL S &mt LSHFT T &kp D &kp H &mt RSHFT N &mt RCTRL E &mt RALT I &mt RGUI O - &kp Z &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &kp COMMA &kp DOT &kp FSLH &kp FSLH - &kp TAB &kp TAB < NAV SPACE < SYM RET &kp BSPC &kp BSPC + &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + &mt LGUI A &mt LALT S &mt LCTRL D &mt LSHFT F &kp G &kp H &mt RSHFT J &mt RCTRL K &mt RALT L &mt RGUI SEMI + &kp Q &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH + &kp DEL < NAV TAB &kp SPACE &kp RET < SYM ESC &kp BSPC >; }; @@ -156,5 +159,57 @@ label= "ADJ" ; &trans &trans &trans &trans &trans &trans >; }; + +// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + + tvp1_layer { +// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +label= "TVP 1" ; +// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ +// ┃ NEXT FILE ┃ MARK IN ┃ ROTATE ┃ MARK OUT ┃ SHOW SNAP ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ +// ┃ TVP II ┃ LEFT ┃ PAN ┃ RIGHT ┃ PLAY/FLIP ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ +// ┃ FULLSCR ┃ SHIFT ┃ COPY ┃ DELETE ┃ PASTE ┃ IMG MARK ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ +// ┃ ┃ UNDO/SAVE ┃ SEL/MOV ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + bindings = < +// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ + + &kp TAB &kp I &kp LC(LALT) &kp O &kp LC(F20) &none &none &none &none &none + < TVP2 L &kp LEFT &kp LALT &kp RIGHT &kp SPACE &none &none &none &none &none + &kp J &kp LSHFT &kp LC(C) &kp BSPC &kp LC(V) &kp LC(F19) &none &none &none &none &none &none + &trans &kp LC(F14) &kp LC(F13) &none &none &none + >; + }; + +// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + + tvp2_layer { +// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ +label= "TVP 2" ; +// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ +// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ +// ┃ SOLO ┃ TOGGLE IN ┃ RESET ROT ┃ TOGGLE OUT┃ TAKE SNAP ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ +// ┃ --- ┃ LAST KEY ┃ NEW KEY ┃ NEXT KEY ┃ ENTER ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ +// ┃ ┃ FULLSCR ┃ CPY2BRUSH ┃ DEL HEAD ┃ PSTinPLACE┃ BOOK MARK ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ +// ┃ ┃ REDO/SAV1 ┃TRANS/WARP ┃ ┃ ┃ ┃ ┃ +// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ + bindings = < +// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ + + &kp LC(F18) &kp LS(I) &kp LS(HOME) &kp LS(O) &kp LS(F) &trans &kp F7 &kp F8 &kp F9 &kp F12 + &trans &kp LS(LEFT) &kp LC(F17) &kp LS(RIGHT) &kp RET &trans &kp F4 &kp F5 &kp F6 &kp F11 + &trans &kp J &kp LS(C) &kp LC(F16) &kp LS(V) &kp LC(F15) &trans &kp F1 &kp F2 &kp F3 &kp F10 &trans + &trans &kp LC(F12) &kp LC(F11) &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 index 537a041da..b05b0e3da 100644 --- a/config/boards/shields/totem/totem.zmk.yml +++ b/config/boards/shields/totem/totem.zmk.yml @@ -9,3 +9,4 @@ features: 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 000000000..fb71acd22 --- /dev/null +++ b/config/boards/shields/totem/totem_dongle.conf @@ -0,0 +1,13 @@ +CONFIG_ZMK_SPLIT_BLE_CENTRAL_PERIPHERALS=2 + +CONFIG_ZMK_SLEEP=n +# CONFIG_PM_DEVICE=n +CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=900000 +CONFIG_ZMK_EXT_POWER=y + +CONFIG_ZMK_USB_LOGGING=y +CONFIG_LOG_MODE_IMMEDIATE=n +CONFIG_LOG_TIMESTAMP_64BIT=y +CONFIG_LOG_PROCESS_THREAD_STARTUP_DELAY_MS=2000 +CONFIG_ZMK_LOG_LEVEL_DBG=y +CONFIG_KSCAN_LOG_LEVEL_INF=y diff --git a/config/boards/shields/totem/totem_dongle.overlay b/config/boards/shields/totem/totem_dongle.overlay new file mode 100644 index 000000000..36b6325eb --- /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/info.json b/config/info.json new file mode 100644 index 000000000..26aebd9e2 --- /dev/null +++ b/config/info.json @@ -0,0 +1,53 @@ +{ + "id": "totem", + "name": "totem", + "url": "https://github.com/GEIGEIGEIST/TOTEM", + "layouts": { + "LAYOUT": { + "layout": [ + { "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 index 5682145e9..3ef185b08 100644 --- a/config/totem.conf +++ b/config/totem.conf @@ -1 +1,3 @@ -CONFIG_ZMK_USB_LOGGING=n \ No newline at end of file +CONFIG_ZMK_USB_LOGGING=n + +CONFIG_BT_CTLR_TX_PWR_PLUS_8=y \ No newline at end of file diff --git a/config/totem.keymap b/config/totem.keymap index a97971195..da708e93c 100644 --- a/config/totem.keymap +++ b/config/totem.keymap @@ -9,13 +9,9 @@ // ▀ ▀ ▀ // // ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ - #include #include -#include -#include - #define BASE 0 #define NAV 1 #define SYM 2 @@ -68,20 +64,20 @@ label= "BASE" ; // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ -// ┃ Q ┃ W ┃ F ┃ P ┃ G ┃ ┃ J ┃ L ┃ U ┃ Y ┃ ; ┃ +// ┃ Q ┃ W ┃ E ┃ R ┃ T ┃ ┃ Y ┃ U ┃ I ┃ O ┃ P ┃ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ -// ┃ A ┃ R ┃ S ┃ T ┃ D ┃ ┃ H ┃ N ┃ E ┃ I ┃ O ┃ +// ┃ A ┃ S ┃ D ┃ F ┃ G ┃ ┃ H ┃ J ┃ K ┃ L ┃ ; ┃ // ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓ -// ┃ Q ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ K ┃ M ┃ , ┃ . ┃ / ┃ \ ┃ +// ┃ Q ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ N ┃ M ┃ , ┃ . ┃ / ┃ \ ┃ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ -// ┃ DEL ┃ TAB ┃ SPC ┃ ┃ ENTER ┃ ┃ BSPC ┃ +// ┃ DEL ┃ TAB ┃ SPC ┃ ┃ ENTER ┃ ESC ┃ BSPC ┃ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ bindings = < // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ - &kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp SEMI - &mt LGUI A &mt LALT R &mt LCTRL S &mt LSHFT T &kp D &kp H &mt RSHFT N &mt RCTRL E &mt RALT I &mt RGUI O - &kp Q &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH + &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + &mt LGUI A &mt LALT S &mt LCTRL D &mt LSHFT F &kp G &kp H &mt RSHFT J &mt RCTRL K &mt RALT L &mt RGUI SEMI + &kp Q &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH &kp DEL < NAV TAB &kp SPACE &kp RET < SYM ESC &kp BSPC >; }; diff --git a/readme.md b/readme.md index 02b28e0c2..2c73fb240 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# zmk-config-totem-dongle + +ZMK Config for the TOTEM keyboard with 3rd dongle setup + @@ -11,11 +15,8 @@ TOTEM is a 38 key column-staggered split keyboard running [ZMK](https://zmk.dev/) or [QMK](https://docs.qmk.fm/). It's meant to be used with a SEEED XIAO BLE or RP2040. - ![TOTEM layout](/docs/images/TOTEM_layout.svg) - - ## HOW TO USE - fork this repo @@ -27,4 +28,4 @@ TOTEM is a 38 key column-staggered split keyboard running [ZMK](https://zmk.dev/ - connect the left half of the TOTEM to your PC, press reset twice - the keyboard should now appear as a mass storage device - drag'n'drop the `totem_left-seeeduino_xiao_ble-zmk.uf2` file from the archive onto the storage device -- repeat this process with the right half and the `totem_right-seeeduino_xiao_ble-zmk.uf2` file. \ No newline at end of file +- repeat this process with the right half and the `totem_right-seeeduino_xiao_ble-zmk.uf2` file.