Commit 4c20c9190d3c

Vincent Demeester <vincent@sbr.pm>
2025-07-09 23:37:58
keyboards/eyelash_corne: more updates
Figured out using home-row mod + mod-morph as well as general hold-tap behavior. Still a lot of work to do for being closer to bépo software layout. Not sure where to stop and AltGr behavior as I want some things (symbols) to be separate anyway… *But muscle memory…* Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent ba3ac27
Changed files (3)
keyboards/eyelash_corne/config/constants.h
@@ -15,6 +15,7 @@
 #define NAV 7
 #define NUM 8
 #define MOU 9
+// #define SYS 10
 
 // Modifier keys
 #define GL LGUI
@@ -33,8 +34,5 @@
 
 // Hyper Key and Functions
 #define LEFT_HYPER LS(LA(LC(LGUI)))
-#define RIGHT_HYPER RS(RA(RC(RGUI)))
 #define HL LEFT_HYPER
-#define HR RIGHT_HYPER
 #define LH(keycode)            LS(LA(LC(LG(keycode))))
-#define RH(keycode)            RS(RA(RC(RG(keycode))))
keyboards/eyelash_corne/config/eyelash_corne.keymap
@@ -27,18 +27,18 @@
 // This is an "adaptation" of the bépo layout (https://bepo.fr/wiki/Accueil)
 // There is some difference
 // - No Ê or Ç keys, we don't have enough room
-// - Not all RIGHT_ALT and RIGHT_ALT+SHIFT are available, as those might be accessed from a different layer instead
+// - Not all RIGHT_ALT and RIGHT_ALT+SHIFT are available, as those might be accessed from a different layer instead, and some are very hard to do, like `…`
 // - It works if the layout on the system (at least for that keyboard) is US_intl 😇. This is common enough (and available everywhere, Linux, Windows, OSX, Android, …)
 // - TODO go to accent layer (and back)
 ZMK_LAYER(Bepo,
 // ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮                                ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
-     &kp TAB     &kp B       &kp EACUT   &kp P       &kp O        &AGRA E                 &kp UP                &car_excl   &kp V         &kp D         &kp L        &kp J        &kp Z
+     &kp TAB     &b_pipe     &kp EACUT   &p_amp      &kp O        &AGRA E                 &kp UP                &car_excl   &kp V         &kp D         &kp L        &kp J        &kp Z
 // ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
-     &kp EQUAL   &hml GL A   &hml AL U   &hml SL I   &hml CL E    &com_smc      &kp LEFT  &kp RET  &kp RIGHT    &kp C       &hmr CR T     &hmr SR S     &hmr AR R    &hmr GL N    &kp M
+     &kp EQUAL   &hml GL A   &hml AL U   &hml SL I   &cl_e_euro   &hyp_com_smc  &kp LEFT  &kp RET  &kp RIGHT    &hmr HL C   &hmr CR T     &hmr SR S     &hmr AR R    &hmr GL N    &kp M
 // ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
      &kp GRAVE   &AGRA A     &kp Y       &kp X       &dot_col     &kp K         XXX       &kp DOWN              &sqt_qma    &kp Q         &kp G         &kp H        &kp F        &kp W
 // ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
-                                         &kp DEL     &kp SPACE    &kp BSPC                                      &kp SL      &kp RET       &kp AR
+                                         &kp DEL    &sym_spc_und &lt NAV BSPC                                  &kp SL      &lt NUM RET   &kp AR
 //                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
 	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
 )
@@ -54,10 +54,10 @@ ZMK_LAYER(BepoAcc,
 // ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
                                          ___         ___          ___                                           ___         ___           ___
 //                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
-	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
-)
+	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DONW)
 
 // 2: ErgoL
+// This is an "adaptation" of the ergol layout (https://ergol.org/claviers/compacts/#kbd_3x6)
 ZMK_LAYER(ErgoL,
 // ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮                                ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
      &kp TAB     &kp Q       &kp C       &kp O       &kp P        &kp  W                  &kp UP                &kp J       &kp M         &kp D         &to EAC      &kp Y        &kp LBKT
@@ -130,11 +130,11 @@ ZMK_LAYER(Symbols,
 // 7: Navigation TODO
 ZMK_LAYER(Nav,
 // ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮                                ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
-     &kp TAB     &kp Q       &kp W       &kp E       &kp R        &kp T                   &kp UP                &kp Y       &kp U         &kp I         &kp O        &kp P        &kp LBKT
+    &out OUT_TOG XXX         XXX         XXX         XXX          &bt BT_CLR              &kp UP                &kp Y       &kp U         &kp I         &kp O        &kp P        &kp LBKT
 // ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
      &kp EQUAL   &hml GL A   &hml AL S   &hml SL D   &hml CL F    &kp G         &kp LEFT  &kp RET  &kp RIGHT    &kp H       &hmr CR J     &hmr SR K     &hmr AR L   &hmr GL SEMI  &kp SQT
 // ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
-     &kp GRAVE   &kp Z       &kp X       &kp C       &kp V        &kp B         XXX       &kp DOWN              &kp N       &kp M         &kp COMMA     &kp DOT      &kp FSLH     &kp RBKT
+     &kp GRAVE  &bt BT_PRV  &bt BT_NXT   &kp C       &kp V        &kp B         XXX       &kp DOWN              &kp N       &kp M         &kp COMMA     &kp DOT      &kp FSLH     &kp RBKT
 // ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
                                          ___         ___          ___                                           ___         ___           ___
 //                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
keyboards/eyelash_corne/config/mod-morph.dtsi
@@ -2,16 +2,45 @@
 #define DAPOS  LS(DOT)          // "
 
 #define EACUT  RA(E)      // é/É
+#define EURO   RA(N5)     // €
 
+#define ACC_AC RC(SEMI)         // ´
+#define ACC_AI RA(SLASH)        // ´
+#define ACC_CI LBKT             // ^
+#define ACC_GR RA(LBKT)         // `
+#define ACC_TI RC(RBKT)         // ~
+#define ACC_TR LS(LBKT)         // ¨
+
+// ` to input
 ZMK_MACRO_ONE_PARAM(AGRA, bindings =
     <&kp GRAVE>,
     <&macro_param_1to1>,
     <&macro_tap &kp MACRO_PLACEHOLDER>;
 )
 
-#define ACC_CI LBKT             // ^
+// ´ to input
+ZMK_MACRO_TWO_PARAM(AIGU, bindings =
+    <&kp ACC_AI>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>,
+    <&macro_param_2to1>,
+    <&to MACRO_PLACEHOLDER>;
+)
 
-ZMK_UNICODE_SINGLE(three_dot, N2, N0, N2, N6) // … U+2026
+// ¨ to input
+ZMK_MACRO_ONE_PARAM(TREM, bindings =
+    <&kp ACC_TR>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+
+// ^ to input
+ZMK_MACRO_ONE_PARAM(CIRC, bindings =
+    <&kp ACC_CI>,
+    <&macro_param_1to1>,
+    <&macro_tap &kp MACRO_PLACEHOLDER>;
+)
+#define ACC_CI LBKT             // ^
 
 // tap: minus | shift + tap: question mark
 ZMK_MOD_MORPH(min_qma,
@@ -35,7 +64,7 @@ ZMK_MOD_MORPH(dot_col,
 
 // tap: quote (') | shift + tab: question mark
 ZMK_MOD_MORPH(sqt_qma,
-    bindings = <&kp SQT>, <&kp QMARK>;
+    bindings = <&kp APOS>, <&kp QMARK>;
     mods = <(MOD_LSFT|MOD_RSFT)>;
 )
 
@@ -50,13 +79,41 @@ ZMK_MOD_MORPH(sqt_qma,
  *     keep-mods = <MOD_RALT>;
  * ) */
 
-// tap: ACC_CI (^) | shift + tap: EXCLAMATION (!)
+// tap: Caret (^) | shift + tap: EXCLAMATION (!)
 ZMK_MOD_MORPH(car_excl,
     bindings = <&kp CARET>, <&kp EXCLAMATION>;
     mods = <(MOD_LSFT|MOD_RSFT)>;
 )
 
+// tap: B | right_alt + tap : pipe (|)
+ZMK_MOD_MORPH(b_pipe,
+    bindings = <&kp B>, <&kp PIPE>;
+    mods = <(MOD_RALT)>;
+)
 
+// tap: P | right_alt + tap : ampersand (&)
+ZMK_MOD_MORPH(p_amp,
+    bindings = <&kp P>, <&kp AMPERSAND>;
+    mods = <(MOD_RALT)>;
+)
+
+// hold: symbols layer | tap: SPACE | right_alt + tap : undercore (_)
+ZMK_MOD_MORPH(sym_spc_und,
+    bindings = <&lt SYM SPACE>, <&kp UNDERSCORE>;
+    mods = <(MOD_RALT)>;
+)
+
+// hold: left control | tap: E | right_alt + tap: EURO (€)
+ZMK_MOD_MORPH(cl_e_euro,
+    bindings = <&hml CL E>, <&kp EURO>;
+    mods = <(MOD_RALT)>;
+)
+
+// hold: right_hype | tap: comma | shift + tab: semicolon
+ZMK_MOD_MORPH(hyp_com_smc,
+    bindings = <&hml HL COMMA>, <&kp SEMICOLON>;
+    mods = <(MOD_LSFT|MOD_RSFT)>;
+)
 
 /*
 Local Variables: