From ac3b12f78bf8ae5516064fd2feffbd22758d5970 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Fri, 24 Jul 2026 20:06:44 +0200 Subject: [PATCH] feat: add Aurora Corne keymap --- config/splitkb_aurora_corne.keymap | 373 +++++++++++++++++++++++++++++ 1 file changed, 373 insertions(+) create mode 100644 config/splitkb_aurora_corne.keymap diff --git a/config/splitkb_aurora_corne.keymap b/config/splitkb_aurora_corne.keymap new file mode 100644 index 0000000000000000000000000000000000000000..399e5ba0a576856a26570282c8ffe28fb9af0f70 --- /dev/null +++ b/config/splitkb_aurora_corne.keymap @@ -0,0 +1,373 @@ +// Copyright (c) 2022 The ZMK Contributors +// SPDX-License-Identifier: MIT + +#include +#include +#include + +#define RIGHT_KEYS 6 7 8 9 10 11 18 19 20 21 22 23 30 31 32 33 34 35 39 40 41 +#define LEFT_KEYS 0 1 2 3 4 5 12 13 14 15 16 17 24 25 26 27 28 29 36 37 38 + +#define BASE 0 +#define NOHOMODS 1 +#define GAMES 2 +#define SYM 3 +#define NAV 4 +#define FKEYS 5 +#define NUM 6 +#define WM 7 +#define CTRL 8 +#define TTY 9 +#define CZ_ACUTE 10 +#define CZ_CARET 11 + +#define DEAD_KEY_MACRO(name, dead_key, symbol) \ +/ { \ + macros { \ + name: name { \ + compatible = "zmk,behavior-macro"; \ + wait-ms = <0>; \ + tap-ms = <0>; \ + #binding-cells = <0>; \ + bindings = <¯o_tap dead_key>, <¯o_tap &kp symbol>; \ + }; \ + }; \ +}; + +#define SHIFTED_DEAD_KEY_MACRO(name, dead_key, symbol) \ +/ { \ + macros { \ + name: name { \ + compatible = "zmk,behavior-macro"; \ + wait-ms = <0>; \ + tap-ms = <0>; \ + #binding-cells = <0>; \ + bindings = <¯o_tap dead_key>, <¯o_tap &kp LS(symbol)>; \ + }; \ + }; \ +}; + +#define DEAD_KEY_BEHAVIOR(name, nonshifted_name, shifted_name) \ +/ { \ + behaviors { \ + name: name { \ + compatible = "zmk,behavior-mod-morph"; \ + #binding-cells = <0>; \ + bindings = <&nonshifted_name>, <&shifted_name>; \ + mods = <(MOD_LSFT | MOD_RSFT)>; \ + }; \ + }; \ +}; + +#define CZECH_CHAR_MACRO(name, dead_key, symbol) \ + DEAD_KEY_MACRO(nonshifted_czech_ ## name, dead_key, symbol) \ + SHIFTED_DEAD_KEY_MACRO(shifted_czech_ ## name, dead_key, symbol) \ + DEAD_KEY_BEHAVIOR(czech_ ## name, nonshifted_czech_ ## name, shifted_czech_ ## name) + +#define CZECH_CARET_MACRO(symbol) \ + CZECH_CHAR_MACRO(caret_ ## symbol, &kp LS(RA(EQUAL)), symbol) + +#define CZECH_ACUTE_MACRO(symbol) \ + CZECH_CHAR_MACRO(acute_ ## symbol, &kp RA(EQUAL), symbol) + +#define CZ_AC_A &czech_acute_A +#define CZ_AC_E &czech_acute_E +#define CZ_AC_I &czech_acute_I +#define CZ_AC_O &czech_acute_O +#define CZ_AC_U &czech_acute_U +#define CZ_AC_Y &czech_acute_Y + +#define CZ_CA_C &czech_caret_C +#define CZ_CA_D &czech_caret_D +#define CZ_CA_E &czech_caret_E +#define CZ_CA_N &czech_caret_N +#define CZ_CA_R &czech_caret_R +#define CZ_CA_S &czech_caret_S +#define CZ_CA_T &czech_caret_T +#define CZ_CA_U &kp RA(SEMI) +#define CZ_CA_Z &czech_caret_Z + +CZECH_ACUTE_MACRO(A) +CZECH_ACUTE_MACRO(E) +CZECH_ACUTE_MACRO(I) +CZECH_ACUTE_MACRO(O) +CZECH_ACUTE_MACRO(U) +CZECH_ACUTE_MACRO(Y) + +CZECH_CARET_MACRO(C) +CZECH_CARET_MACRO(D) +CZECH_CARET_MACRO(E) +CZECH_CARET_MACRO(N) +CZECH_CARET_MACRO(R) +CZECH_CARET_MACRO(S) +CZECH_CARET_MACRO(T) +CZECH_CARET_MACRO(Z) + +< { + tapping-term-ms = <170>; + quick-tap-ms = <110>; + flavor = "balanced"; + hold-trigger-on-release; +}; + +/ { + behaviors { + prog_caps: prog_caps { + compatible = "zmk,behavior-caps-word"; + #binding-cells = <0>; + continue-list = ; + }; + + hltl: home_row_layer_toggle_l { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "balanced"; + require-prior-idle-ms = <50>; + tapping-term-ms = <170>; + quick-tap-ms = <100>; + bindings = <&mo>, <&kp>; + hold-trigger-key-positions = ; + hold-trigger-on-release; + }; + + hltr: home_row_layer_toggle_r { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "balanced"; + require-prior-idle-ms = <50>; + tapping-term-ms = <170>; + quick-tap-ms = <100>; + bindings = <&mo>, <&kp>; + hold-trigger-key-positions = ; + hold-trigger-on-release; + }; + + hml: home_row_mod_left { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "balanced"; + require-prior-idle-ms = <50>; + tapping-term-ms = <170>; + quick-tap-ms = <100>; + bindings = <&kp>, <&kp>; + hold-trigger-key-positions = ; + hold-trigger-on-release; + }; + + hmr: home_row_mod_right { + compatible = "zmk,behavior-hold-tap"; + #binding-cells = <2>; + flavor = "balanced"; + require-prior-idle-ms = <50>; + tapping-term-ms = <170>; + quick-tap-ms = <100>; + bindings = <&kp>, <&kp>; + hold-trigger-key-positions = ; + hold-trigger-on-release; + }; + + comma_excl: mod_morph_comma { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp COMMA>, <&kp EXCL>; + mods = <(MOD_LSFT | MOD_RSFT)>; + }; + + dot_ques: mod_morph_dot { + compatible = "zmk,behavior-mod-morph"; + #binding-cells = <0>; + bindings = <&kp DOT>, <&kp QMARK>; + mods = <(MOD_LSFT | MOD_RSFT)>; + }; + }; + + combos { + compatible = "zmk,combos"; + + combo_tab { + timeout-ms = <20>; + key-positions = <2 3>; + bindings = <&kp TAB>; + layers = ; + }; + + combo_caps_word { + timeout-ms = <50>; + key-positions = <15 20>; + bindings = <&prog_caps>; + layers = ; + }; + }; + + keymap { + compatible = "zmk,keymap"; + + base { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &hml LGUI Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &hmr RGUI P &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &hltl SYM A &hml LALT S &hml LSHIFT D &hml LCTRL F &kp G &kp H &hmr RCTRL J &hmr RSHIFT K &hmr LALT L &hltr SYM SEMI &mo CTRL + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &key_repeat &kp Z &kp X &kp C &kp V &kp B &kp N &hltr WM M &comma_excl &dot_ques &kp FSLH &mo FKEYS + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &mo CZ_ACUTE < NAV ESC < NUM SPACE &kp ENTER &kp BSPC &mo CZ_CARET + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + no_home_mods { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &hml LGUI TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &hmr LGUI BSLH + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &hml LCTRL ESC &hltl SYM A &kp S &kp D &kp F &hltl NUM G &kp H &kp J &kp K &kp L &hltr SYM SEMI &mo CTRL + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &sk LSHIFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &comma_excl &dot_ques &kp FSLH &sk RSHIFT + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &mo CZ_ACUTE &kp ESC &hml LALT SPACE &hmr LALT ENTER &kp BSPC &mo CZ_CARET + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + games { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp BSLH + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &kp LCTRL &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &mo CTRL + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &kp LSHIFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &comma_excl &dot_ques &kp FSLH &kp RSHIFT + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &mo FKEYS &key_repeat &kp SPACE &hmr LALT ENTER &kp BSPC &mo CZ_CARET + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + symbols { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &kp SQT &kp LT &kp GT &kp BSLH &kp GRAVE &kp AMPS &kp UNDER &kp LBKT &kp RBKT &kp PRCNT &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &kp EXCL &kp MINUS &kp PLUS &kp EQUAL &kp HASH &kp PIPE &kp TILDE &kp LPAR &kp RPAR &kp DQT &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &kp COLON &kp FSLH &kp ASTRK &kp CARET &trans &trans &kp DLLR &kp LBRC &kp RBRC &kp AT &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &kp TAB &trans &trans &kp DEL &none + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + navigation { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &kp LGUI &trans &trans &trans &trans &kp HOME &kp PG_DN &kp PG_UP &kp END &kp INS &kp DEL + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &kp LCTRL &kp LALT &sk LSHIFT &kp LCTRL &trans &kp LEFT &kp DOWN &kp UP &kp RIGHT &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans &trans &trans &trans &trans &kp PAUSE_BREAK &kp C_PREV &kp C_PP &kp C_NEXT &kp C_MUTE &kp PSCRN + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &trans &trans &kp TAB &none + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + function_keys { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &trans &kp F4 &kp F9 &kp F8 &kp F10 &trans &trans &trans &trans &kp RGUI &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans &kp F3 &kp F2 &kp F1 &kp F11 &trans &kp LCTRL &sk RSHIFT &kp LALT &kp RGUI &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &mo CTRL &trans &kp F5 &kp F6 &kp F7 &kp F12 &trans &trans &trans &trans &trans &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &trans &trans &trans &none + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + numbers { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &trans &trans &trans &trans &trans &kp PLUS &kp N8 &kp N9 &kp N4 &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &kp LGUI &kp LALT &kp LCTRL &sk LSHIFT &trans &kp EQUAL &kp N1 &kp N2 &kp N3 &kp FSLH &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans &trans &trans &trans &trans &kp MINUS &kp N7 &kp N6 &kp N5 &kp DOT &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &trans &kp N0 &none &none + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + window_manager { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &kp LG(E) &kp LG(N4) &kp LG(N9) &kp LG(N8) &trans &trans &trans &kp LG(SEMI) &kp LG(LS(ENTER)) &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &kp LG(W) &kp LG(N3) &kp LG(N2) &kp LG(N1) &trans &trans &kp RCTRL &kp RSHIFT &kp LALT &kp RGUI &kp LG(LS(C)) + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &kp LG(R) &kp LG(N5) &kp LG(N6) &kp LG(N7) &trans &trans &trans &trans &trans &trans &kp LG(LS(SEMI)) + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &none &trans &trans &trans + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + control { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &sys_reset &trans &trans &bt BT_SEL 3 &bt BT_SEL 0 &trans &trans &trans &trans &trans &sys_reset + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &bootloader &trans &trans &bt BT_SEL 4 &bt BT_SEL 1 &trans &trans &trans &trans &trans &bootloader + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &bt BT_CLR &trans &trans &trans &bt BT_SEL 2 &trans &trans &trans &trans &trans &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &trans &to BASE &to NOHOMODS &to GAMES + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + tty { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &trans &kp LA(LC(F4)) &kp LA(LC(F9)) &kp LA(LC(F8)) &kp LA(LC(F10)) &trans &trans &trans &trans &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans &kp LA(LC(F3)) &kp LA(LC(F2)) &kp LA(LC(F1)) &kp LA(LC(F11)) &trans &trans &trans &trans &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans &kp LA(LC(F5)) &kp LA(LC(F6)) &kp LA(LC(F7)) &kp LA(LC(F12)) &trans &trans &trans &trans &trans &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &none &trans &trans &trans + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + czech_acute { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &trans &trans CZ_AC_E &trans &trans CZ_AC_Y CZ_AC_U CZ_AC_I CZ_AC_O &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans CZ_AC_A &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &trans &trans &trans &trans + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + + czech_caret { + bindings = < + //╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ ╭─────────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────╮ + &trans &trans &trans CZ_CA_E CZ_CA_R CZ_CA_T &trans CZ_CA_U &trans &trans &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans &trans CZ_CA_S CZ_CA_D &trans &trans &trans &trans &trans &trans &trans &trans + //├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┼─────────────┼─────────────┼─────────────┤ + &trans CZ_CA_Z &trans CZ_CA_C &trans &trans CZ_CA_N &trans &trans &trans &trans &trans + //╰─────────────┴─────────────┴─────────────┴─────────────┼─────────────┼─────────────┤ ├─────────────┼─────────────┼─────────────┴─────────────┴─────────────┴─────────────╯ + &trans &trans &trans &trans &trans &trans + // ╰─────────────┴─────────────┴─────────────╯ ╰─────────────┴─────────────┴─────────────╯ + >; + }; + }; +};