// // TOTEM — Colemak adapted from Moonlander Oryx config // Base: Colemak alphas | UML hold: numbers + umlauts + symbols // Designed for macOS German (QWERTZ) layout // #include #include #include #define BASE 0 #define UML 1 #define BT 2 / { 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 ┃ UML ┃ 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 UML &kp RET < BT LCTRL &kp LGUI &kp BSPC >; }; uml_layer { // ╔══════════════════════════════════════╗ label = "UML"; // ╚══════════════════════════════════════╝ // ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ // ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ + ┃ @ ┃ Ü ┃ ┃ ~ ┃ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ // ┃ Ä ┃ ┃ ß ┃ ┃ 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 ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛ // ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ // ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ bindings = < // ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ &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 >; }; }; };