2022-11-09 15:39:56 +01:00
|
|
|
//
|
2026-07-31 16:09:43 +02:00
|
|
|
// TOTEM — Colemak adapted from Moonlander Oryx config
|
|
|
|
|
// Base: Colemak alphas | UML hold: numbers + umlauts + symbols
|
|
|
|
|
// Designed for macOS German (QWERTZ) layout
|
2022-11-09 15:39:56 +01:00
|
|
|
//
|
2022-09-13 01:24:15 +02:00
|
|
|
|
|
|
|
|
#include <behaviors.dtsi>
|
|
|
|
|
#include <dt-bindings/zmk/keys.h>
|
2026-08-02 19:16:35 +02:00
|
|
|
#include <dt-bindings/zmk/bt.h>
|
2022-09-13 01:24:15 +02:00
|
|
|
|
|
|
|
|
#define BASE 0
|
2026-07-31 14:27:59 +02:00
|
|
|
#define UML 1
|
2026-08-02 19:16:35 +02:00
|
|
|
#define BT 2
|
2022-09-13 01:24:15 +02:00
|
|
|
|
|
|
|
|
/ {
|
2022-11-09 15:39:56 +01:00
|
|
|
macros {
|
2026-07-31 16:09:43 +02:00
|
|
|
slash: slash {
|
|
|
|
|
label = "SLASH";
|
2026-07-31 14:27:59 +02:00
|
|
|
compatible = "zmk,behavior-macro";
|
|
|
|
|
#binding-cells = <0>;
|
2026-07-31 16:09:43 +02:00
|
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N7>, <¯o_release &kp LSHFT>;
|
2026-07-31 14:27:59 +02:00
|
|
|
};
|
2026-07-31 16:09:43 +02:00
|
|
|
qmark: qmark {
|
|
|
|
|
label = "QMARK";
|
2026-07-31 14:27:59 +02:00
|
|
|
compatible = "zmk,behavior-macro";
|
|
|
|
|
#binding-cells = <0>;
|
2026-07-31 16:09:43 +02:00
|
|
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp MINUS>, <¯o_release &kp LSHFT>;
|
2026-07-31 14:27:59 +02:00
|
|
|
};
|
2026-07-31 16:09:43 +02:00
|
|
|
at: at {
|
|
|
|
|
label = "AT";
|
2022-11-09 15:39:56 +01:00
|
|
|
compatible = "zmk,behavior-macro";
|
|
|
|
|
#binding-cells = <0>;
|
2026-07-31 16:09:43 +02:00
|
|
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp L>, <¯o_release &kp RALT>;
|
2026-07-31 14:27:59 +02:00
|
|
|
};
|
2026-07-31 16:09:43 +02:00
|
|
|
tilde: tilde {
|
|
|
|
|
label = "TILDE";
|
2026-07-31 14:27:59 +02:00
|
|
|
compatible = "zmk,behavior-macro";
|
|
|
|
|
#binding-cells = <0>;
|
2026-07-31 16:09:43 +02:00
|
|
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N>, <¯o_release &kp RALT>;
|
|
|
|
|
};
|
2026-08-02 19:16:35 +02:00
|
|
|
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>;
|
|
|
|
|
};
|
2026-07-31 16:09:43 +02:00
|
|
|
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>;
|
2022-11-09 15:39:56 +01:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2026-07-31 14:27:59 +02:00
|
|
|
keymap {
|
|
|
|
|
compatible = "zmk,keymap";
|
|
|
|
|
|
|
|
|
|
base_layer {
|
2026-07-31 16:09:43 +02:00
|
|
|
// ╔══════════════════════════════════════╗
|
2026-07-31 14:27:59 +02:00
|
|
|
label = "BASE";
|
2026-07-31 16:09:43 +02:00
|
|
|
// ╚══════════════════════════════════════╝
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
2026-07-31 16:09:43 +02:00
|
|
|
// ┃ Q ┃ W ┃ F ┃ P ┃ B ┃ ┃ J ┃ L ┃ U ┃ Z ┃ ? ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
2026-07-31 16:09:43 +02:00
|
|
|
// ┃ A ┃ R ┃ S ┃ T ┃ G ┃ ┃ M ┃ N ┃ E ┃ I ┃ O ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
2026-07-31 16:09:43 +02:00
|
|
|
// ┃ SHIFT ┃ Y ┃ X ┃ C ┃ D ┃ V ┃ ┃ K ┃ H ┃ / ┃ , ┃ . ┃ ESC ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
2026-07-31 16:09:43 +02:00
|
|
|
// ┃ SPACE ┃ UML ┃ ENTER ┃ ┃ CTRL ┃ ┃ BACK ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
|
|
|
bindings = <
|
|
|
|
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
2026-07-31 16:09:43 +02:00
|
|
|
&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
|
2026-08-02 19:16:35 +02:00
|
|
|
&kp SPACE &mo UML &kp RET < BT LCTRL &kp LGUI &kp BSPC
|
2026-07-31 14:27:59 +02:00
|
|
|
>;
|
|
|
|
|
};
|
2023-05-16 00:12:17 +02:00
|
|
|
|
2026-07-31 14:27:59 +02:00
|
|
|
uml_layer {
|
2026-07-31 16:09:43 +02:00
|
|
|
// ╔══════════════════════════════════════╗
|
2026-07-31 14:27:59 +02:00
|
|
|
label = "UML";
|
2026-07-31 16:09:43 +02:00
|
|
|
// ╚══════════════════════════════════════╝
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
2026-07-31 16:09:43 +02:00
|
|
|
// ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ + ┃ @ ┃ Ü ┃ ┃ ~ ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
2026-08-02 19:16:35 +02:00
|
|
|
// ┃ Ä ┃ ┃ ß ┃ ┃ UP ┃ ┃ - ┃ < ┃ > ┃ ┃ Ö ┃
|
|
|
|
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
|
|
|
|
// ┃ ┃ ┃ LEFT ┃ ┃ DOWN ┃ RIGHT ┃ ┃ 6 ┃ 7 ┃ 8 ┃ 9 ┃ 0 ┃ ┃
|
|
|
|
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
|
|
|
|
// ┃ TAB ┃ trans ┃ ALT ┃ ┃ CTRL ┃ ( ┃ ) ┃
|
|
|
|
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
|
|
|
bindings = <
|
|
|
|
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
|
|
|
|
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp KP_PLUS &at &kp LBKT &lbrace &tilde
|
|
|
|
|
&kp SQT &none &kp MINUS &none &kp UP &kp FSLH &kp GRAVE >_sign &rbrace &kp SEMI
|
|
|
|
|
&trans &none &kp LEFT &none &kp DOWN &kp RIGHT &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp KP_MULTIPLY
|
|
|
|
|
&kp TAB &trans &kp LALT &kp LCTRL &lparen &rparen
|
|
|
|
|
>;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
bt_layer {
|
|
|
|
|
// ╔══════════════════════════════════════╗
|
|
|
|
|
label = "BT";
|
|
|
|
|
// ╚══════════════════════════════════════╝
|
|
|
|
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
|
|
|
|
// ┃ BT1 ┃ BT2 ┃ BT3 ┃ BT4 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
|
|
|
|
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
|
|
|
|
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
2026-08-02 19:16:35 +02:00
|
|
|
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
|
2026-07-31 14:27:59 +02:00
|
|
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
|
|
|
|
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
|
|
|
|
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
|
|
|
bindings = <
|
|
|
|
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
2026-08-02 19:16:35 +02:00
|
|
|
&bt BT_SEL 0 &bt BT_SEL 1 &bt BT_SEL 2 &bt BT_SEL 3 &none &none &none &none &none &none
|
|
|
|
|
&none &none &none &none &none &none &none &none &none &none
|
|
|
|
|
&none &none &none &none &none &none &none &none &none &none &none &none
|
|
|
|
|
&none &none &none &trans &none &none
|
2026-07-31 14:27:59 +02:00
|
|
|
>;
|
2022-09-13 01:24:15 +02:00
|
|
|
};
|
2026-07-31 14:27:59 +02:00
|
|
|
};
|
2023-05-16 00:26:40 +02:00
|
|
|
};
|