colemak layout: move ., to bottom row, add ctrl/cmd thumbs, fix angle brackets for macOS German

This commit is contained in:
2026-07-31 16:09:43 +02:00
parent 6bd6cf0fd5
commit 6112d5043c
+37 -30
View File
@@ -1,6 +1,7 @@
// //
// TOTEM — simple-ass learn-to-type keymap // TOTEM — Colemak adapted from Moonlander Oryx config
// Base: all letters + minus | UML hold: numbers 1-0 + umlauts (needs German OS layout) // Base: Colemak alphas | UML hold: numbers + umlauts + symbols
// Designed for macOS German (QWERTZ) layout
// //
#include <behaviors.dtsi> #include <behaviors.dtsi>
@@ -11,29 +12,35 @@
/ { / {
macros { macros {
uml_a: uml_a { slash: slash {
label = "UMLA"; label = "SLASH";
compatible = "zmk,behavior-macro"; compatible = "zmk,behavior-macro";
#binding-cells = <0>; #binding-cells = <0>;
bindings = <&macro_press &kp RALT>, <&macro_tap &kp A>, <&macro_release &kp RALT>; bindings = <&macro_press &kp LSHFT>, <&macro_tap &kp N7>, <&macro_release &kp LSHFT>;
}; };
uml_o: uml_o { qmark: qmark {
label = "UMLO"; label = "QMARK";
compatible = "zmk,behavior-macro"; compatible = "zmk,behavior-macro";
#binding-cells = <0>; #binding-cells = <0>;
bindings = <&macro_press &kp RALT>, <&macro_tap &kp O>, <&macro_release &kp RALT>; bindings = <&macro_press &kp LSHFT>, <&macro_tap &kp MINUS>, <&macro_release &kp LSHFT>;
}; };
uml_u: uml_u { at: at {
label = "UMLU"; label = "AT";
compatible = "zmk,behavior-macro"; compatible = "zmk,behavior-macro";
#binding-cells = <0>; #binding-cells = <0>;
bindings = <&macro_press &kp RALT>, <&macro_tap &kp U>, <&macro_release &kp RALT>; bindings = <&macro_press &kp RALT>, <&macro_tap &kp L>, <&macro_release &kp RALT>;
}; };
uml_s: uml_s { tilde: tilde {
label = "UMLS"; label = "TILDE";
compatible = "zmk,behavior-macro"; compatible = "zmk,behavior-macro";
#binding-cells = <0>; #binding-cells = <0>;
bindings = <&macro_press &kp RALT>, <&macro_tap &kp S>, <&macro_release &kp RALT>; bindings = <&macro_press &kp RALT>, <&macro_tap &kp N>, <&macro_release &kp RALT>;
};
gt_sign: gt_sign {
label = "GREATER";
compatible = "zmk,behavior-macro";
#binding-cells = <0>;
bindings = <&macro_press &kp LSHFT>, <&macro_tap &kp GRAVE>, <&macro_release &kp LSHFT>;
}; };
}; };
@@ -41,35 +48,35 @@
compatible = "zmk,keymap"; compatible = "zmk,keymap";
base_layer { base_layer {
// ╔═════════════════════════════════════════ // ╔══════════════════════════════════════╗
label = "BASE"; label = "BASE";
// ╚═════════════════════════════════════════ // ╚══════════════════════════════════════╝
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
// ┃ Q ┃ W ┃ ERT ┃ ┃ YUIOP // ┃ Q ┃ W ┃ FPB ┃ ┃ JLUZ?
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
// ┃ A ┃ SDF ┃ G ┃ ┃ HJKL- // ┃ A ┃ RST ┃ G ┃ ┃ MNEIO
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓ // ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
// ┃ SHIFT ┃ Z ┃ X ┃ C ┃ VB ┃ ┃ NM // ┃ SHIFT ┃ Y ┃ X ┃ C ┃ DV ┃ ┃ KH/,.ESC
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛ // ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
// ┃ SPACE ┃ UML ┃ ENTER ┃ ┃ BACK. , // ┃ SPACE ┃ UML ┃ ENTER ┃ ┃ CTRL BACK
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
bindings = < bindings = <
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
&kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Z &qmark
&kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp MINUS &kp A &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &kp O
&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &none &none &none &none &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 UML &kp RET &kp DOT &kp COMMA &kp BSPC &kp SPACE &mo UML &kp RET &kp LCTRL &kp LGUI &kp BSPC
>; >;
}; };
uml_layer { uml_layer {
// ╔═════════════════════════════════════════ // ╔══════════════════════════════════════╗
label = "UML"; label = "UML";
// ╚═════════════════════════════════════════ // ╚══════════════════════════════════════╝
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
// ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ ┃ Ü ┃ ┃ Ö ┃ // ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ + ┃ @ ┃ Ü ┃ ┃ ~
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
// ┃ Ä ┃ ß ┃ ┃ ┃ ┃ ┃ ┃ // ┃ Ä ┃ ß ┃ ┃ ┃ ┃ -< ┃ > ┃ ┃ Ö
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓ // ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ 6 ┃ 7 ┃ 8 ┃ 9 ┃ 0 ┃ ┃ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ 6 ┃ 7 ┃ 8 ┃ 9 ┃ 0 ┃ ┃
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛ // ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
@@ -77,8 +84,8 @@ label = "UML";
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
bindings = < bindings = <
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &none &uml_u &none &uml_o &none &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp KP_PLUS &at &kp LBKT &none &tilde
&uml_a &uml_s &none &none &none &none &none &none &none &none &kp SQT &none &kp MINUS &none &none &kp FSLH &kp GRAVE &gt_sign &none &kp SEMI
&trans &none &none &none &none &none &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &none &trans &none &none &none &none &none &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &none
&trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans
>; >;