129 lines
9.9 KiB
Plaintext
129 lines
9.9 KiB
Plaintext
//
|
|
// TOTEM — Colemak adapted from Moonlander Oryx config
|
|
// Base: Colemak alphas | EXTRA hold: numbers + umlauts + symbols
|
|
// Designed for macOS German (QWERTZ) layout
|
|
//
|
|
|
|
#include <behaviors.dtsi>
|
|
#include <dt-bindings/zmk/keys.h>
|
|
#include <dt-bindings/zmk/bt.h>
|
|
|
|
#define BASE 0
|
|
#define EXTRA 1
|
|
|
|
/ {
|
|
combos {
|
|
compatible = "zmk,combos";
|
|
combo_bt1 { timeout-ms = <50>; key-positions = <0 35>; bindings = <&bt BT_SEL 0>; };
|
|
combo_bt2 { timeout-ms = <50>; key-positions = <1 35>; bindings = <&bt BT_SEL 1>; };
|
|
combo_bt3 { timeout-ms = <50>; key-positions = <2 35>; bindings = <&bt BT_SEL 2>; };
|
|
combo_bt4 { timeout-ms = <50>; key-positions = <3 35>; bindings = <&bt BT_SEL 3>; };
|
|
};
|
|
|
|
macros {
|
|
slash: slash {
|
|
label = "SLASH";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N7>, <¯o_release &kp LSHFT>;
|
|
};
|
|
qmark: qmark {
|
|
label = "QMARK";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp MINUS>, <¯o_release &kp LSHFT>;
|
|
};
|
|
at: at {
|
|
label = "AT";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp L>, <¯o_release &kp RALT>;
|
|
};
|
|
tilde: tilde {
|
|
label = "TILDE";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N>, <¯o_release &kp RALT>;
|
|
};
|
|
lbrace: lbrace {
|
|
label = "LBRACE";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N8>, <¯o_release &kp RALT>;
|
|
};
|
|
rbrace: rbrace {
|
|
label = "RBRACE";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N9>, <¯o_release &kp RALT>;
|
|
};
|
|
lparen: lparen {
|
|
label = "LPAREN";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N8>, <¯o_release &kp LSHFT>;
|
|
};
|
|
rparen: rparen {
|
|
label = "RPAREN";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N9>, <¯o_release &kp LSHFT>;
|
|
};
|
|
gt_sign: gt_sign {
|
|
label = "GREATER";
|
|
compatible = "zmk,behavior-macro";
|
|
#binding-cells = <0>;
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp GRAVE>, <¯o_release &kp LSHFT>;
|
|
};
|
|
};
|
|
|
|
keymap {
|
|
compatible = "zmk,keymap";
|
|
|
|
base_layer {
|
|
// ╔══════════════════════════════════════╗
|
|
label = "BASE";
|
|
// ╚══════════════════════════════════════╝
|
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
|
// ┃ Q ┃ W ┃ F ┃ P ┃ B ┃ ┃ J ┃ L ┃ U ┃ Z ┃ ? ┃
|
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
|
// ┃ A ┃ R ┃ S ┃ T ┃ G ┃ ┃ M ┃ N ┃ E ┃ I ┃ O ┃
|
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
|
// ┃ SHIFT ┃ Y ┃ X ┃ C ┃ D ┃ V ┃ ┃ K ┃ H ┃ / ┃ , ┃ . ┃ ESC ┃
|
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
|
// ┃ SPACE ┃ EXTRA ┃ ENTER ┃ ┃ CTRL ┃ ┃ BACK ┃
|
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
bindings = <
|
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
|
&kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Z &qmark
|
|
&kp A &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &kp O
|
|
&kp LSHFT &kp Y &kp X &kp C &kp D &kp V &kp K &kp H &slash &kp DOT &kp COMMA &kp ESC
|
|
&kp SPACE &mo EXTRA &kp RET &kp LCTRL &kp LGUI &kp BSPC
|
|
>;
|
|
};
|
|
|
|
extra_layer {
|
|
// ╔══════════════════════════════════════╗
|
|
label = "EXTRA";
|
|
// ╚══════════════════════════════════════╝
|
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
|
// ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ + ┃ @ ┃ Ü ┃ ┃ ~ ┃
|
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
|
// ┃ Ä ┃ ( ┃ ß ┃ UP ┃ ┃ ┃ - ┃ < ┃ > ┃ ┃ Ö ┃
|
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
|
// ┃ ┃ ┃ ) ┃ LEFT ┃ DOWN ┃ RIGHT ┃ ┃ 6 ┃ 7 ┃ 8 ┃ 9 ┃ 0 ┃ ┃
|
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
|
// ┃ TAB ┃ trans ┃ ALT ┃ ┃ CTRL ┃ trans ┃ trans ┃
|
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
bindings = <
|
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
|
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp KP_PLUS &at &kp LBKT &lbrace &tilde
|
|
&kp SQT &lparen &kp MINUS &kp UP &none &kp FSLH &kp GRAVE >_sign &rbrace &kp SEMI
|
|
&trans &none &rparen &kp LEFT &kp DOWN &kp RIGHT &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp KP_MULTIPLY
|
|
&kp TAB &trans &kp LALT &kp LCTRL &trans &trans
|
|
>;
|
|
};
|
|
|
|
};
|
|
};
|