Commit 0e00affc14f6

Vincent Demeester <vincent@sbr.pm>
2025-07-08 23:49:52
keyboards/eyelash_corne: huge refactoring in progress
- Use zmk_helpers - Use nice_view_gem (with animation) - Refine layers by starting with just a few (and experiment with ErgoL) This probably mean I either go with a bépo hardware layer as well (do-able ?) or… I learn a new layout. Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 0835f47
keyboards/eyelash_corne/config/combos.dtsi
@@ -0,0 +1,17 @@
+#undef COMBO_TERM
+#define COMBO_TERM 40
+
+// All Layers
+ZMK_COMBO(esc, &kp ESC, RM3 RM4)
+
+// Ergo-L -> QWERTY - Inner thumbs, active on Ergo-L
+ZMK_COMBO(ergol_qwerty, &to QWE, LH0 RH0, ERG)
+
+// QWERTY -> Ergo-L - Outer thumbs, active on QWERTY
+ZMK_COMBO(qwerty_ergol, &to ERG, LH1 RH1, QWE)
+  
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/eyelash_corne/config/constants.h
@@ -0,0 +1,36 @@
+#pragma once
+
+// Keys
+#define ___ &trans
+#define XXX &none
+
+// Layers
+#define QWE 0
+// #define QAC 1
+#define ERG 1
+#define EAC 2
+#define SYM 3
+#define NAV 4
+#define NUM 5
+#define MOU 6
+
+// Modifier keys
+#define GL LGUI
+#define CL LCTRL
+#define AL LALT
+#define SL LSHFT
+#define GR RGUI
+#define CR RCTRL
+#define AR RALT
+#define SR RSHFT
+
+// OS
+#define WINDOWS 0
+#define LINUX 1
+#define MAC_OS 2
+
+// Hyper Key and Functions
+#define LEFT_HYPER LS(LA(LC(LGUI)))
+#define RIGHT_HYPER RS(RA(RC(RGUI)))
+#define LH(keycode)            LS(LA(LC(LG(keycode))))
+#define RH(keycode)            RS(RA(RC(RG(keycode))))
keyboards/eyelash_corne/config/eyelash_corne.conf
@@ -5,7 +5,7 @@
 
 CONFIG_WS2812_STRIP=y
 CONFIG_ZMK_RGB_UNDERGLOW=y
-CONFIG_ZMK_RGB_UNDERGLOW_ON_START=y
+CONFIG_ZMK_RGB_UNDERGLOW_ON_START=n
 
 CONFIG_ZMK_RGB_UNDERGLOW_AUTO_OFF_IDLE=y
 CONFIG_ZMK_RGB_UNDERGLOW_HUE_START=160
@@ -18,15 +18,31 @@ CONFIG_ZMK_RGB_UNDERGLOW_EFF_START=3
 # Uncomment the following line if keycodes labeled "consumer" like C_AC_SEARCH don't work
 #CONFIG_ZMK_HID_CONSUMER_REPORT_USAGES_BASIC=y
 
+# CONFIG_ZMK_DISPLAY_STATUS_SCREEN_BUILT_IN=y
+# CONFIG_ZMK_LV_FONT_DEFAULT_SMALL_MONTSERRAT_18=y
+# CONFIG_LV_FONT_DEFAULT_MONTSERRAT_18=y
+
+# Sleep timeout
+CONFIG_ZMK_SLEEP=y
+# 720000 ms = 12 min
+CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=720000
+
 #EC11 enable
 CONFIG_EC11=y
 CONFIG_EC11_TRIGGER_GLOBAL_THREAD=y
 
 # Mouse enable
+CONFIG_ZMK_POINTING=y
 CONFIG_ZMK_MOUSE=y
 
 CONFIG_ZMK_BACKLIGHT=y
 CONFIG_ZMK_BACKLIGHT_BRT_START=100
 
 # Uncomment the following line to increase the keyboard's wireless range
-#CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
+CONFIG_BT_CTLR_TX_PWR_PLUS_8=y
+
+CONFIG_ZMK_DISPLAY=y
+CONFIG_ZMK_DISPLAY_STATUS_SCREEN_CUSTOM=y
+CONFIG_NICE_VIEW_GEM_ANIMATION_MS=2400
+
+CONFIG_ZMK_PM_SOFT_OFF=y
\ No newline at end of file
keyboards/eyelash_corne/config/eyelash_corne.keymap
@@ -5,53 +5,15 @@
 #include <dt-bindings/zmk/keys.h>
 #include <dt-bindings/zmk/outputs.h>
 #include <dt-bindings/zmk/pointing.h>
-#include <dt-bindings/zmk/pointing.h>
-#include <dt-bindings/zmk/pointing.h>
 #include <dt-bindings/zmk/rgb.h>
 
-/*
+#include "constants.h"
+#define HOST_OS LINUX // Needed for unicode international_chars
 
-   &mmv_input_listener {
-       input-processors = <&zip_xy_scaler 2 1>;
-   };
-
-   &msc_input_listener {
-       input-processors = <&zip_xy_scaler 2 1>;
-   };
-
- */
-
-/*
-    0   1   2   3   4   5        6       7   8   9  10  11 12
-    13  14  15 16  17  18    19  20  21  22  23  24 25  26 27
-    28  29  30 31  32  33  34    35      36  37  38  39 40 41
-               42  43  44                45 46 47
-*/
-
-#define RM0 22
-#define RM1 23
-#define RM2 24
-#define RM3 25
-#define LT5 0
-#define LM4 14
-#define RT5 12
-#define RM4 26
-
-
-#define KEYS_L                                                                 \
-  0 1 2 3 4 5 13 14 15 16 17 18 28 29 30 31 32 33  // left hand
-#define KEYS_R                                                                 \
-  7 8 9 10 11 12 22 23 24 25 26 27 36 37 38 39 40 41 // right hand
-
-#define LH0 42
-#define LH1 43
-#define LH2 44
-#define RH0 47
-#define RH1 46
-#define RH2 45
-#define COMBO_CAPS_1 LH2
-#define COMBO_CAPS_2 RH2
-#define THUMBS 42 43 44 45 46 47 // thumbs on 36+ keys
+#include "zmk-helpers/helper.h"
+#include "zmk-helpers/key-labels/eyelash42.h"
+#include "combos.dtsi"
+#include "hold-tap.dtsi"
 
 #define ZMK_MOUSE_DEFAULT_MOVE_VAL 1200  // 600
 #define ZMK_MOUSE_DEFAULT_SCRL_VAL 20    // 10
@@ -59,19 +21,33 @@
 #define TAPPING_TERM_MS 200
 #define IDLE_MS 125
 
-// Layers "alias"
-#define L_QWT 0
-#define L_NUM 1
-#define L_SYM 2
-#define L_NAV 3
-#define L_MED 4
-// L_FUN (F1, …)
+ZMK_LAYER(QWERTY,
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮                                ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     &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
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &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 DEL     &kp SPACE    &kp BSPC                                      &kp SL      &kp RET       &kp AR
+//                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
+	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
+)
 
-// Hyper functions
-#define LEFT_HYPER LS(LA(LC(LGUI)))
-#define RIGHT_HYPER RS(RA(RC(RGUI)))
-#define LH(keycode)            LS(LA(LC(LG(keycode))))
-#define RH(keycode)            RS(RA(RC(RG(keycode))))
+ZMK_LAYER(ErgoL,
+// ╭───────────┬───────────┬───────────┬───────────┬────────────┬────────────╮                                ╭───────────┬─────────────┬─────────────┬────────────┬────────────┬────────────╮
+     &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
+// ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
+     &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
+// ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
+                                         ___         ___          ___                                           ___         ___           ___
+//                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
+	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
+)
+
+/*
 
 // Bépo key
 #define BP1 LS(N1)
@@ -156,7 +132,7 @@
             bindings = <
 &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
 &kp EQUAL &hml LEFT_GUI A  &hml LEFT_ALT S  &hml LEFT_SHIFT D  &hml LCTRL F  &kp G                     &kp LEFT  &kp ENTER  &kp RIGHT  &kp H        &hmr RCTRL J  &hmr RIGHT_SHIFT K  &hmr RIGHT_ALT L  &hmr RIGHT_GUI SEMICOLON  &kp SQT
-	      &kp GRAVE   &kp Z           &kp X           &kp C             &kp V        &kp B        &kp SPACE              &kp DOWN              &kp N        &kp M        &kp COMMA          &kp DOT          &kp FSLH                 &kp RBKT
+&kp GRAVE   &kp Z           &kp X           &kp C             &kp V        &kp B        &kp SPACE              &kp DOWN              &kp N        &kp M        &kp COMMA          &kp DOT          &kp FSLH                 &kp RBKT
                                             &lt 2 DEL          &lt 2 SPACE        &lt 3 BSPC                                               &kp LEFT_SHIFT  &lt 1 ENTER        &kp RIGHT_ALT
             >;
 
@@ -202,3 +178,10 @@
 };
 
 // 	      &trans  &kb BP6   &bt BT_SEL 0    &bt BT_SEL 1  &bt BT_SEL 2  &bt BT_SEL 3                   &mmv MOVE_LEFT  &mkp LCLK       &mmv MOVE_RIGHT  &kp LEFT         &kp DOWN         &kp UP           &kp RIGHT        &kp HOME  &kp PG_UP
+
+*/
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/eyelash_corne/config/hold-tap.dtsi
@@ -0,0 +1,61 @@
+// Home Row Mods
+#define KEYS_L LT0 LT1 LT2 LT3 LT4 LT5 LM0 LM1 LM2 LM3 LM4 LM5 LB0 LB1 LB2 LB3 LB4 LB5  // left-hand keys
+#define KEYS_R RT0 RT1 RT2 RT3 RT4 RT5 RM0 RM1 RM2 RM3 RM4 RM5 RB0 RB1 RB2 RB3 RB4 RB5  // right-hand keys
+#define THUMBS LH2 LH1 LH0 RH0 RH1 RH2 // thumb keys
+
+/* Timerless Home Row Mods */
+/* https://github.com/urob/zmk-config#timeless-homerow-mods */
+
+/* left-hand HRMs */
+ZMK_HOLD_TAP(hml,
+    flavor = "balanced";
+    tapping-term-ms = <280>;
+    quick-tap-ms = <175>;
+    global-quick-tap;
+    bindings = <&kp>, <&kp>;
+    hold-trigger-key-positions = <KEYS_R THUMBS>;
+    hold-trigger-on-release;
+)
+
+/* right-hand HRMs */
+ZMK_HOLD_TAP(hmr,
+    flavor = "balanced";
+    tapping-term-ms = <280>;
+    quick-tap-ms = <175>;
+    global-quick-tap;
+    bindings = <&kp>, <&kp>;
+    hold-trigger-key-positions = <KEYS_L THUMBS>;
+    hold-trigger-on-release;
+)
+
+// homerow mods for î (QWERTY)
+/* ZMK_HOLD_TAP(hrmiq,
+ *     flavor = "balanced";
+ *     tapping-term-ms = <hrm_tap_term>;
+ *     quick-tap-ms = <hrm_quick_tap>;
+ *     global-quick-tap;
+ *     bindings = <&kp>, <&I_CI_Q>;
+ * ) */
+
+// homerow mods for è (QWERTY)
+/* ZMK_HOLD_TAP(hrme,
+ *     flavor = "balanced";
+ *     tapping-term-ms = <hrm_tap_term>;
+ *     quick-tap-ms = <hrm_quick_tap>;
+ *     global-quick-tap;
+ *     bindings = <&kp>, <&E_GR_Q>;
+ * ) */
+
+// homerow mods for ê (Ergo-L)
+/* ZMK_HOLD_TAP(hrmec,
+ *     flavor = "balanced";
+ *     tapping-term-ms = <hrm_tap_term>;
+ *     quick-tap-ms = <hrm_quick_tap>;
+ *     global-quick-tap;
+ *     bindings = <&kp>, <&E_CI_E>;
+ * ) */
+/*
+Local Variables:
+mode: c
+End:
+*/
keyboards/eyelash_corne/config/west.yml
@@ -8,6 +8,10 @@ manifest:
       # See:
       # - https://zmk.dev/docs/features/modules
       # - https://docs.zephyrproject.org/3.5.0/develop/west/manifest.html#projects
+    - name: urob
+      url-base: https://github.com/urob
+    - name: m165437 #new entry
+      url-base: https://github.com/M165437 #new entry
   projects:
     - name: eyelash_corne
       url: https://github.com/a741725193/zmk-new_corne
@@ -17,5 +21,11 @@ manifest:
       revision: main
       # revision: rgb-layer-25.04
       import: app/west.yml
+    - name: zmk-helpers
+      remote: urob
+      revision: main
+    - name: nice-view-gem #new entry
+      remote: m165437 #new entry
+      revision: main #new entry
   self:
     path: config
keyboards/eyelash_corne/build.yaml
@@ -1,16 +1,20 @@
 ---
 include:
   - board: eyelash_corne_left
-    shield: nice_view
+    shield: nice_view_gem
+    # shield: nice_view
+    # shield: eyelash_corne nice_view_adapter nice_view_custom #custom shield
     #snippet: zmk-usb-logging    # Uncomment to log over USB.
   - board: eyelash_corne_right
-    shield: nice_view
+    shield: nice_view_gem
+    # shield: nice_view
+    # shield: eyelash_corne nice_view_adapter nice_view_custom #custom shield
     #snippet: zmk-usb-logging
-  - board: eyelash_corne_left
-    shield: nice_view
-    snippet: studio-rpc-usb-uart
-    cmake-args: -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_STUDIO_LOCKING=n
-    artifact-name: eyelash_corne_studio_left
+  # - board: eyelash_corne_left
+  #   shield: nice_view
+  #   snippet: studio-rpc-usb-uart
+  #   cmake-args: -DCONFIG_ZMK_STUDIO=y -DCONFIG_ZMK_STUDIO_LOCKING=n
+  #   artifact-name: eyelash_corne_studio_left
   - board: eyelash_corne_left
     shield: settings_reset
     #snippet: zmk-usb-logging
keyboards/eyelash_corne/Dockerfile
@@ -21,7 +21,7 @@ FROM builder AS builder_left
 RUN west build -s zmk/app \
     -b eyelash_corne_left -d /tmp/left -- \
     -DZMK_CONFIG=/workspace/zmk-config/config \
-    -DSHIELD=nice_view \
+    -DSHIELD=nice_view_gem \
     -DZMK_EXTRA_MODULES=/workspace/zmk-new_corne
 
 FROM builder AS builder_right
@@ -30,7 +30,7 @@ FROM builder AS builder_right
 RUN west build -s zmk/app \
     -b eyelash_corne_right -d /tmp/right -- \
     -DZMK_CONFIG=/workspace/zmk-config/config \
-    -DSHIELD=nice_view \
+    -DSHIELD=nice_view_gem \
     -DZMK_EXTRA_MODULES=/workspace/zmk-new_corne
 
 FROM scratch AS output_collector