diff --git a/config/corne.keymap b/config/corne.keymap index a665935..ec5f5c0 100644 --- a/config/corne.keymap +++ b/config/corne.keymap @@ -27,15 +27,58 @@ tap-ms = <0>; bindings = <&kp SQT &kp SPACE>; ) - // e aigu - ZMK_MACRO(eaigu, - wait-ms = <30>; - tap-ms = <1>; - bindings = <¯o_press &kp LALT>, - <¯o_tap &kp KP_N1 &kp KP_N3 &kp KP_N3 >, - <¯o_pause_for_release>, - <¯o_release &kp LALT>; + // [`] or [~] followed by a space for QWERTY intl + ZMK_MACRO(tilde, + wait-ms = <0>; + tap-ms = <0>; + bindings = <&kp GRAVE &kp SPACE>; ) + // [é] + ZMK_MACRO(macroeaigumin, + wait-ms = <0>; + tap-ms = <0>; + bindings = <&kp SQT &kp E>; + ) + // [É] + ZMK_MACRO(macroeaigumaj, + wait-ms = <30>; + tap-ms = <30>; + bindings = <¯o_tap &kp SQT>, + <¯o_press &kp LSHFT>, + <¯o_tap &kp E>, + <¯o_release &kp LSHFT>; + ) + // [è] + ZMK_MACRO(macroegravemin, + wait-ms = <0>; + tap-ms = <0>; + bindings = <&kp GRAVE &kp E>; + ) + // [É] + ZMK_MACRO(macroegravemaj, + wait-ms = <30>; + tap-ms = <30>; + bindings = <¯o_tap &kp GRAVE>, + <¯o_press &kp LSHFT>, + <¯o_tap &kp E>, + <¯o_release &kp LSHFT>; + ) + // [ê] + ZMK_MACRO(macroecirconmin, + wait-ms = <0>; + tap-ms = <0>; + bindings = <&kp CARET &kp E>; + ) + // [Ê] + ZMK_MACRO(macroecirconmaj, + wait-ms = <30>; + tap-ms = <30>; + bindings = <¯o_tap &kp CARET>, + <¯o_press &kp LSHFT>, + <¯o_tap &kp E>, + <¯o_release &kp LSHFT>; + ) + // example ZMK_MACRO(examplemacro, wait-ms = <30>; @@ -63,7 +106,7 @@ global-quick-tap; bindings = <&kp>, <&kp>; }; - // call macro apostrophe or if hold call a layout + // call macro apostrophe ['] and ["] or if hold call a layout apo: apo { compatible = "zmk,behavior-hold-tap"; label = "APO"; @@ -79,6 +122,28 @@ * MODMORPH * ======== */ + // [é] [É] + e_aigu: e_aigu { + compatible = "zmk,behavior-mod-morph"; + label = "EAIGU"; + #binding-cells = <0>; + bindings = <¯oeaigumin>, <¯oeaigumaj>; + mods = <(MOD_LSFT)>; + }; + e_grave: e_grave { + compatible = "zmk,behavior-mod-morph"; + label = "EGRAVE"; + #binding-cells = <0>; + bindings = <¯oegravemin>, <¯oegravemaj>; + mods = <(MOD_LSFT)>; + }; + e_circ: e_circ { + compatible = "zmk,behavior-mod-morph"; + label = "ECIRC"; + #binding-cells = <0>; + bindings = <¯oecirconmin>, <¯oecirconmaj>; + mods = <(MOD_LSFT)>; + }; // example examplemorph: examplemorph { compatible = "zmk,behavior-mod-morph"; @@ -89,6 +154,28 @@ keep-mods = <(MOD_LSFT)>; }; }; +/* ====== + * COMBOS + * ====== + */ + combos { + compatible = "zmk,combos"; + combo_eaigu { + timeout-ms = <30>; + key-positions = <19 20>; + bindings = <&e_aigu>; + }; + combo_egrv { + timeout-ms = <30>; + key-positions = <20 21>; + bindings = <&e_grave>; + }; + combo_ecircon { + timeout-ms = <30>; + key-positions = <19 20 21>; + bindings = <&e_circ>; + }; + }; }; @@ -122,9 +209,9 @@ // |ESC/SHT| Z | X | C | D | V | | K | H | ,< | .> | /? | ~ ` | // |ENT/CTL| SPC | BCK | | SYM | SFT |'"/FN| bindings = < - &kp MINUS &kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Y &kp SEMI &kp EQUAL + &kp MINUS &kp Q &kp W &kp F &kp P &bootloader &bootloader &kp L &kp U &kp Y &kp SEMI &kp EQUAL &kp TAB &kp A &kp R &gqt LALT S &kp T &kp G &kp M &kp N &kp E &kp I &kp O &kp LGUI - &mt LSHFT ESC &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH &kp GRAVE + &mt LSHFT ESC &kp Z &kp X &kp C &kp D &kp V &kp K &kp H &kp COMMA &kp DOT &kp FSLH &tilde &mt LCTRL RET < 2 SPACE &kp BSPC &mo 1 &kp LSHFT &apo 3 0 >; };