From 09e414cfe0e674084e9343e67c5b55b6731f5764 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Wed, 24 Apr 2024 19:05:48 +0200 Subject: [PATCH] WIP --- Makefile | 21 +++++ config.yaml | 180 +++++++++++++++++++++++++++++++++++++++ zmk | 1 + zmk_config/cradio.keymap | 103 ++++++++++++++++++++++ zmk_config/zmk-config | 1 + 5 files changed, 306 insertions(+) create mode 100755 Makefile create mode 100644 config.yaml create mode 160000 zmk create mode 100644 zmk_config/cradio.keymap create mode 160000 zmk_config/zmk-config diff --git a/Makefile b/Makefile new file mode 100755 index 0000000..32264ee --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +.PHONY: clean reload killall clean_locks open + +reload: killall clean_locks all open + +open: + pcbnew output/pcbs/first.kicad_pcb & + +clean: + rm -rf output + +clean_locks: + rm -rf output/pcbs/*.lck + +killall: + -killall pcbnew + +output/pcbs/first.kicad_pcb: config.yaml + ergogen config.yaml + +all: output/pcbs/first.kicad_pcb + diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..c514aff --- /dev/null +++ b/config.yaml @@ -0,0 +1,180 @@ + +$default_autobind: 1000 +meta: + engine: 4.0.2 + version: 0.1 + author: "rhetenor" +units: + stagger_ring: 10 + stagger_middle: 3 + stagger_index: -6 + thumb_splay: -15 + sx: u + sy: u + px: sx + 2 + py: sy + 2 +points: + zones: + matrix: + columns: + pinky: + key: + column_net: Pinky + ring: + key: + stagger: stagger_ring + column_net: Ring + middle: + key: + stagger: stagger_middle + column_net: Middle + index: + key: + stagger: stagger_index + colum_net: Index + inner: + key: + colum_net: Inner + rows: + bottom: + row_net: Bottom + home: + row_net: Home + top: + row_net: Top + thumb: + key: + spread: sx + padding: 1sx + anchor: + ref: matrix_inner_home + shift: [-1sx, -2.5sy] + columns: + super: + key: + splay: -15 + column_net: Pinky + space: + key: + width: 1.15sx + splay: thumb_splay + shift: [6, -2] + column_net: Ring + alt: + key: + splay: thumb_splay + shift: [12, -2] + column_net: Middle + layer: + key: + splay: thumb_splay + 10 + shift: [14, -2] + #stagger: -2 + column_net: Index + rows: + cluster: + row_net: Cluster + mirror: &mirror + ref: matrix_inner_home + distance: 6sx +outlines: + board: + - what: polygon + operation: stack + fillet: 5 + points: + - ref: matrix_pinky_top + shift: [-sx,sy] + - ref: matrix_ring_top + shift: [-sx,sy] + - ref: matrix_middle_top + shift: [-sx,sy] + - ref: matrix_inner_top + shift: [-sx,sy] + - ref: mirror_matrix_inner_top + shift: [-sx,sy] + - ref: mirror_matrix_middle_top + shift: [-sx,sy] + - ref: mirror_matrix_ring_top + shift: [-sx,sy] + - ref: mirror_matrix_pinky_top + shift: [-sx,sy] + - ref: mirror_matrix_pinky_bottom + shift: [-sx,-sy] + - ref: mirror_thumb_super_cluster + shift: [-sx,-sy] + - ref: mirror_thumb_layer_cluster + shift: [sx,-sy] + - ref: thumb_layer_cluster + shift: [sx,-sy] + - ref: thumb_super_cluster + shift: [-sx,-sy] + - ref: matrix_pinky_bottom + shift: [-sy,-sy] + keys: + - what: rectangle + where: true + bound: false + size: [sx-0.5,sy-0.5] + combine: + - name: board + - operation: subtract + name: keys + +pcbs: + first: + outlines: + combine: + outline: combine + references: true + footprints: + mx_hotswap: + what: mx + where: true + params: + keycaps: true + reverse: false + hotswap: true + from: "{{column_net}}" + to: "{{colrow}}" + diode: + what: diode + where: true + params: + from: "{{colrow}}" + to: "{{row_net}}" + adjust: + shift: [0, -5] + promicro: + what: promicro + params: + orientation: "down" + where: + ref.aggregate.parts: [matrix_inner_top, mirror_matrix_inner_top] + shift: [0,0] + rotate: 90 + oled: + what: oled + params: + side: "F" + SDA: P2 + SCL: P3 + where: + ref.aggregate.parts: [matrix_inner_home, mirror_matrix_inner_home] + shift: [0,0] + rotate: -90 + reset: + what: button + params: + from: GND + to: RST + where: + ref.aggregate.parts: [thumb_super_cluster, mirror_thumb_super_cluster] + shift: [0, -1] + rotate: -90 + leds: + what: rgb + params: + din: P19 + dout: P20 + where: true diff --git a/zmk b/zmk new file mode 160000 index 0000000..16e92cf --- /dev/null +++ b/zmk @@ -0,0 +1 @@ +Subproject commit 16e92cf6652e4dbe56ba4f18f6ca6cec510b147c diff --git a/zmk_config/cradio.keymap b/zmk_config/cradio.keymap new file mode 100644 index 0000000..b388d2d --- /dev/null +++ b/zmk_config/cradio.keymap @@ -0,0 +1,103 @@ +// Copyright (c) 2022 The ZMK Contributors +// SPDX-License-Identifier: MIT + +#include +#include +#include + +// Home row mods macro +#define HRML(k1,k2,k3,k4) &ht LSHFT k1 &ht LALT k2 &ht LCTRL k3 &ht LGUI k4 +#define HRMR(k1,k2,k3,k4) &ht RGUI k1 &ht RCTRL k2 &ht RALT k3 &ht RSHFT k4 + +/ { + behaviors { + ht: hold_tap { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "tap-preferred"; + tapping-term-ms = <220>; + quick-tap-ms = <150>; + require-prior-idle-ms = <100>; + bindings = <&kp>, <&kp>; + }; + }; + + conditional_layers { + compatible = "zmk,conditional-layers"; + tri_layer { + if-layers = <1 2>; + then-layer = <3>; + }; + }; + + keymap { + compatible = "zmk,keymap"; + default_layer { + bindings = < + //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ + //│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │ + &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ' " │ + HRML(A, S, D, F) &kp G &kp H HRMR(J, K, L, SQT) + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ Z │ X │ C │ V │ B │ │ N │ M │ , < │ . > │ / ? │ + &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH + //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ + &kp ESC < 2 TAB &kp ENTER &kp SPACE &kp ENTER < 1 BSPC + // ╰──────────┴──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────┴──────────╯ + >; + }; + + right_layer { + bindings = < + //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ + //│ INSERT │ 1 │ 2 │ 3 │ │ │ HOME │ PAGE DN │ PAGE UP │ END │ : │ + &kp INS &kp N1 &kp N2 &kp N3 &trans &kp HOME &kp PG_DN &kp PG_UP &kp END &kp COLON + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ DELETE │ 4 │ 5 │ 6 │ │ │ LEFT │ DOWN │ UP │ RIGHT │ ; │ + &kp DEL &kp N4 &kp N5 &kp N6 &trans &kp LARW &kp DARW &kp UARW &kp RARW &kp SEMI + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ CAPS │ 7 │ 8 │ 9 │ 0 │ │ │ │ │ │ │ + &caps_word &kp N7 &kp N8 &kp N9 &kp N0 &trans &trans &trans &trans &trans + //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ + &trans &kp ESC &trans &trans + // ╰──────────┴──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────┴──────────╯ + >; + }; + + left_layer { + bindings = < + //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ + //│ │ [ │ { │ } │ │ │ ^ │ ( │ ) │ ] │ ~ │ + &trans &kp LBKT &kp LBRC &kp RBRC &trans &kp CARET &kp LPAR &kp RPAR &kp RBKT &kp TILDE + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ ! │ @ │ # │ $ │ % │ │ * │ - │ = │ \ │ ` │ + &kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp ASTRK &kp MINUS &kp EQUAL &kp BSLH &kp GRAVE + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ │ │ │ │ │ │ & │ _ │ + │ │ │ │ + &trans &trans &trans &trans &trans &kp AMPS &kp UNDER &kp PLUS &kp PIPE &trans + //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ + &trans &trans &trans &trans + // ╰──────────┴──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────┴──────────╯ + >; + }; + + tri_layer { + bindings = < + //╭──────────┬──────────┬──────────┬──────────┬──────────╮ ╭──────────┬──────────┬──────────┬──────────┬──────────╮ + //│ RESET │ │ │ │PROFILE 0 │ │ │ │ │ │ RESET │ + &sys_reset &trans &trans &trans &bt BT_SEL 0 &trans &trans &trans &trans &sys_reset + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│BOOTLOADER│ │ │ │PROFILE 1 │ │ │ │ │ │BOOTLOADER│ + &bootloader &trans &trans &trans &bt BT_SEL 1 &trans &trans &trans &trans &bootloader + //├──────────┼──────────┼──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┼──────────┼──────────┤ + //│ │ │ │ CLEAR BT │PROFILE 2 │ │ │ │ │ │ │ + &trans &trans &trans &bt BT_CLR &bt BT_SEL 2 &trans &trans &trans &trans &trans + //╰──────────┴──────────┴──────────┼──────────┼──────────┤ ├──────────┼──────────┼──────────┴──────────┴──────────╯ + &trans &trans &trans &trans + // ╰──────────┴──────────┴──────────┴──────────╯ ╰──────────┴──────────┴──────────┴──────────╯ + >; + }; + }; +}; diff --git a/zmk_config/zmk-config b/zmk_config/zmk-config new file mode 160000 index 0000000..20dea4a --- /dev/null +++ b/zmk_config/zmk-config @@ -0,0 +1 @@ +Subproject commit 20dea4a9d7835f25d845e48d92729a680377f854