From 6112d5043cb8eeae1eee27ac6b4816a6850da023 Mon Sep 17 00:00:00 2001 From: Leon Etienne Date: Fri, 31 Jul 2026 16:09:43 +0200 Subject: [PATCH] colemak layout: move ., to bottom row, add ctrl/cmd thumbs, fix angle brackets for macOS German --- config/totem.keymap | 67 +++++++++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/config/totem.keymap b/config/totem.keymap index 0d02365..4e8fc0f 100644 --- a/config/totem.keymap +++ b/config/totem.keymap @@ -1,6 +1,7 @@ // -// TOTEM — simple-ass learn-to-type keymap -// Base: all letters + minus | UML hold: numbers 1-0 + umlauts (needs German OS layout) +// TOTEM — Colemak adapted from Moonlander Oryx config +// Base: Colemak alphas | UML hold: numbers + umlauts + symbols +// Designed for macOS German (QWERTZ) layout // #include @@ -11,29 +12,35 @@ / { macros { - uml_a: uml_a { - label = "UMLA"; + slash: slash { + label = "SLASH"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; - bindings = <¯o_press &kp RALT>, <¯o_tap &kp A>, <¯o_release &kp RALT>; + bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N7>, <¯o_release &kp LSHFT>; }; - uml_o: uml_o { - label = "UMLO"; + qmark: qmark { + label = "QMARK"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; - bindings = <¯o_press &kp RALT>, <¯o_tap &kp O>, <¯o_release &kp RALT>; + bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp MINUS>, <¯o_release &kp LSHFT>; }; - uml_u: uml_u { - label = "UMLU"; + at: at { + label = "AT"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; - bindings = <¯o_press &kp RALT>, <¯o_tap &kp U>, <¯o_release &kp RALT>; + bindings = <¯o_press &kp RALT>, <¯o_tap &kp L>, <¯o_release &kp RALT>; }; - uml_s: uml_s { - label = "UMLS"; + tilde: tilde { + label = "TILDE"; compatible = "zmk,behavior-macro"; #binding-cells = <0>; - bindings = <¯o_press &kp RALT>, <¯o_tap &kp S>, <¯o_release &kp RALT>; + bindings = <¯o_press &kp RALT>, <¯o_tap &kp N>, <¯o_release &kp RALT>; + }; + 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>; }; }; @@ -41,35 +48,35 @@ compatible = "zmk,keymap"; base_layer { -// ╔═════════════════════════════════════════╗ +// ╔══════════════════════════════════════╗ label = "BASE"; -// ╚═════════════════════════════════════════╝ +// ╚══════════════════════════════════════╝ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ -// ┃ Q ┃ W ┃ E ┃ R ┃ T ┃ ┃ Y ┃ U ┃ I ┃ O ┃ P ┃ +// ┃ Q ┃ W ┃ F ┃ P ┃ B ┃ ┃ J ┃ L ┃ U ┃ Z ┃ ? ┃ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ -// ┃ A ┃ S ┃ D ┃ F ┃ G ┃ ┃ H ┃ J ┃ K ┃ L ┃ - ┃ +// ┃ A ┃ R ┃ S ┃ T ┃ G ┃ ┃ M ┃ N ┃ E ┃ I ┃ O ┃ // ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓ -// ┃ SHIFT ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ N ┃ M ┃ ┃ ┃ ┃ ┃ +// ┃ SHIFT ┃ Y ┃ X ┃ C ┃ D ┃ V ┃ ┃ K ┃ H ┃ / ┃ , ┃ . ┃ ESC ┃ // ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛ -// ┃ SPACE ┃ UML ┃ ENTER ┃ ┃ BACK ┃ . ┃ , ┃ +// ┃ SPACE ┃ UML ┃ ENTER ┃ ┃ CTRL ┃ ┃ BACK ┃ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ bindings = < // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ - &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P - &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp MINUS -&kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &none &none &none &none - &kp SPACE &mo UML &kp RET &kp DOT &kp COMMA &kp BSPC + &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 UML &kp RET &kp LCTRL &kp LGUI &kp BSPC >; }; uml_layer { -// ╔═════════════════════════════════════════╗ +// ╔══════════════════════════════════════╗ label = "UML"; -// ╚═════════════════════════════════════════╝ +// ╚══════════════════════════════════════╝ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ -// ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ ┃ Ü ┃ ┃ Ö ┃ ┃ +// ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ + ┃ @ ┃ Ü ┃ ┃ ~ ┃ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ -// ┃ Ä ┃ ß ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ Ä ┃ ┃ ß ┃ ┃ ┃ ┃ - ┃ < ┃ > ┃ ┃ Ö ┃ // ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ 6 ┃ 7 ┃ 8 ┃ 9 ┃ 0 ┃ ┃ // ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛ @@ -77,8 +84,8 @@ label = "UML"; // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ bindings = < // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ - &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &none ¨_u &none ¨_o &none - ¨_a ¨_s &none &none &none &none &none &none &none &none + &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp KP_PLUS &at &kp LBKT &none &tilde + &kp SQT &none &kp MINUS &none &none &kp FSLH &kp GRAVE >_sign &none &kp SEMI &trans &none &none &none &none &none &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &none &trans &trans &trans &trans &trans &trans >;