Commit 2735d13619d5

Vincent Demeester <vincent@sbr.pm>
2026-03-25 10:19:26
feat(keyboards): improved mouse emulation and layer access
Tuned mouse speed settings on both Corne (ZMK) and Moonlander (QMK) for snappier response and natural acceleration. Moved mouse layer to hold-DEL thumb key and removed NUM from hold-SPACE since it is already on left pinky. Relocated mouse buttons to right thumbs since left hand holds DEL.
1 parent 3b5a99d
Changed files (4)
keyboards
eyelash_corne
moonlander
keyboards/eyelash_corne/config/eyelash_corne.keymap
@@ -41,7 +41,7 @@ ZMK_LAYER(Bepo,
 // ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
      &kp GRAVE   &AGRA A     &kp Y       &kp X       &dot_col     &kp K        &key_repeat &kp DOWN          &sqt_qma    &kp Q         &kp G         &kp H        &kp F        &kp W
 // ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
-                                        &lt ACC DEL  &num_spc_und &lt NAV BSPC                                   &kp SL      &lt SYM RET   &kp AR
+                                        &lt MOU DEL  &kp SPACE    &lt NAV BSPC                                   &kp SL      &lt SYM RET   &kp AR
 //                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
 	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
 )
@@ -141,7 +141,7 @@ ZMK_LAYER(Mouse,
 // ├───────────┼───────────┼───────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┼────────────┼────────────┤
      XXX         XXX         XXX         XXX         XXX          XXX           XXX       &kp DOWN              XXX         XXX           XXX           XXX          XXX          XXX
 // ╰───────────┴───────────────────────┼───────────┼────────────┼────────────┤                                ├───────────┼─────────────┼─────────────┼────────────┴────────────┴────────────╯
-                                         XXX         &mkp_lf      &mkp_md                                       &mkp_md     &mkp_rg       XXX
+                                         XXX         XXX          XXX                                           &mkp_lf     &mkp_rg       &mkp_md
 //                                     ╰───────────┴────────────┴────────────╯                                ╰───────────┴─────────────┴─────────────╯
 	  , &inc_dec_kp C_VOLUME_UP C_VOLUME_DOWN
 )
keyboards/eyelash_corne/config/mouse.dtsi
@@ -1,13 +1,13 @@
 &mmv {
-    acceleration-exponent=<0>;
-    delay-ms=<60>;
-    time-to-max-speed-ms = <200>;
+    acceleration-exponent=<1>;      // 0=linear (no accel), 1=natural acceleration curve
+    delay-ms=<0>;                   // no startup delay for snappier response
+    time-to-max-speed-ms = <400>;   // smoother ramp to top speed (was 200)
 };
 
 &msc {
     acceleration-exponent=<1>;
-    delay-ms=<70>;
-    time-to-max-speed-ms = <200>;
+    delay-ms=<40>;                  // snappier scroll start (was 70)
+    time-to-max-speed-ms = <300>;   // smoother scroll ramp (was 200)
 };
 
 // Move cursor
keyboards/moonlander/config/config.h
@@ -85,6 +85,25 @@
 #define FR_3_EURO_M SS_TAP(X_RALT) SS_DELAY(50) SS_RSFT(SS_TAP(X_C)) SS_DELAY(50) SS_TAP(X_EQL)    // €
 
 
+// Mouse key settings (accelerated mode)
+// Must #undef first — board info_config.h sets defaults
+#undef MOUSEKEY_DELAY
+#define MOUSEKEY_DELAY 0              // No startup delay (board default: 10)
+#undef MOUSEKEY_INTERVAL
+#define MOUSEKEY_INTERVAL 16          // ~60fps movement updates (board default: 20)
+#undef MOUSEKEY_MAX_SPEED
+#define MOUSEKEY_MAX_SPEED 7          // Max cursor speed (board default: 10, lower = more control)
+#undef MOUSEKEY_TIME_TO_MAX
+#define MOUSEKEY_TIME_TO_MAX 40       // Frames to reach max speed (board default: 60, lower = faster ramp)
+#undef MOUSEKEY_WHEEL_DELAY
+#define MOUSEKEY_WHEEL_DELAY 0        // No scroll startup delay (board default: 400)
+#undef MOUSEKEY_WHEEL_INTERVAL
+#define MOUSEKEY_WHEEL_INTERVAL 80    // Scroll update interval (board default: 80)
+#undef MOUSEKEY_WHEEL_MAX_SPEED
+#define MOUSEKEY_WHEEL_MAX_SPEED 8    // Max scroll speed (board default: 8)
+#undef MOUSEKEY_WHEEL_TIME_TO_MAX
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 40 // Frames to reach max scroll (board default: 40)
+
 #undef ENABLE_RGB_MATRIX_ALPHAS_MODS
 #undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
 #undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
keyboards/moonlander/config/keymap.c
@@ -59,7 +59,7 @@ const key_override_t comma_semicolon_override = ko_make_with_layers(MOD_MASK_SHI
 const key_override_t b_pipe_override = ko_make_with_layers_and_negmods(MOD_BIT_RALT, KC_B, KC_PIPE, 1 << BEPO, MOD_MASK_SHIFT);
 const key_override_t b_brkp_override = ko_make_with_layers(MOD_BIT_LSHIFT | MOD_BIT_RALT, KC_B, US_BRKP, 1 << BEPO);
 
-const key_override_t space_underscore_override = ko_make_with_layers_and_negmods(MOD_BIT_RALT, LT(NUMB, KC_SPC), KC_UNDS, 1 << BEPO, MOD_MASK_SHIFT);
+const key_override_t space_underscore_override = ko_make_with_layers_and_negmods(MOD_BIT_RALT, KC_SPC, KC_UNDS, 1 << BEPO, MOD_MASK_SHIFT);
 
 const key_override_t *key_overrides[] = {
   &circ_exclamation_override,
@@ -238,7 +238,7 @@ enum combos {
 
 const uint16_t PROGMEM combo_to_bepo[] = {LT(NAVI,KC_BSPC), OS_LSFT, COMBO_END};
 const uint16_t PROGMEM combo_to_ergol[] = {KC_Q, KC_P, COMBO_END};  // Q+P opposite corners
-const uint16_t PROGMEM combo_to_qwerty[] = {LT(NUMB,KC_SPC), LT(SYMB, KC_ENT), COMBO_END};  // Numb+Symb
+const uint16_t PROGMEM combo_to_qwerty[] = {KC_SPC, LT(SYMB, KC_ENT), COMBO_END};  // Space+Symb
 const uint16_t PROGMEM combo_toggle_mouse[] = {KC_Q, KC_R, COMBO_END};
 
 const uint16_t PROGMEM combo_bepo_escape[] = {HM_ALT_R, HM_GUI_N, COMBO_END};
@@ -361,8 +361,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_TAB,   KC_B,        FR_E_AIGU,   KC_P,         KC_O,            FR_E_GRAVE,      XXXXXXX,    XXXXXXX,  KC_CIRC,         KC_V,        KC_D,        KC_L,         KC_J,            KC_Z,
     NUMWORD,  HM_GUI_A,    HM_ALT_U,    HM_SFT_I,     HM_CTL_E,        HM_HYP_COMM,     XXXXXXX,    XXXXXXX,  HM_HYP_C,        HM_CTL_T,    HM_SFT_S,    HM_ALT_R,     HM_GUI_N,        LT(SYMB,KC_M),
     KC_GRV,   FR_A_GRAVE,  KC_Y,        KC_X,         KC_DOT,          KC_K,                                  FR_QUOT,         KC_Q,        KC_G,        KC_H,         KC_F,            KC_W,
-    XXXXXXX,  XXXXXXX,     XXXXXXX,     XXXXXXX,      LT(MODS,KC_DEL),                  QK_REP,     QK_AREP,                   KC_RALT,     XXXXXXX,     XXXXXXX,      XXXXXXX,         XXXXXXX,
-                                                      LT(NUMB,KC_SPC), LT(NAVI,KC_BSPC), XXXXXXX,    XXXXXXX,  OS_LSFT,         LT(SYMB,KC_ENT)
+    XXXXXXX,  XXXXXXX,     XXXXXXX,     XXXXXXX,      LT(MOUS,KC_DEL),                  QK_REP,     QK_AREP,                   KC_RALT,     XXXXXXX,     XXXXXXX,      XXXXXXX,         XXXXXXX,
+                                                      KC_SPC,          LT(NAVI,KC_BSPC), XXXXXXX,    XXXXXXX,  OS_LSFT,         LT(SYMB,KC_ENT)
   ),
 
   // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐             ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
@@ -383,8 +383,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_TAB,   KC_Q,        KC_W,      KC_E,      KC_R,        KC_T,            XXXXXXX,    XXXXXXX,  KC_Y,         KC_U,        KC_I,      KC_O,         KC_P,         KC_LBRC,
     NUMWORD,  HM_GUI_A,    HM_ALT_S,  HM_SFT_D,  HM_CTL_F,    HM_HYP_G,        XXXXXXX,    XXXXXXX,  HM_HYP_H,     HM_CTL_J,    HM_SFT_K,  HM_ALT_L,     HM_GUI_SCLN,  KC_QUOT,
     KC_GRV,   KC_Z,        KC_X,      KC_C,      KC_V,        KC_B,                                  KC_N,         KC_M,        KC_COMM,   KC_DOT,       KC_SLSH,      KC_RBRC,
-    XXXXXXX,  XXXXXXX,     XXXXXXX,   XXXXXXX,   KC_DEL,                       QK_REP,     QK_AREP,                KC_RALT,     XXXXXXX,   XXXXXXX,      XXXXXXX,      XXXXXXX,
-                                                 LT(NUMB,KC_SPC), LT(NAVI,KC_BSPC), XXXXXXX,    XXXXXXX,  OS_LSFT,      LT(SYMB,KC_ENT)
+    XXXXXXX,  XXXXXXX,     XXXXXXX,   XXXXXXX,   LT(MOUS,KC_DEL),              QK_REP,     QK_AREP,                KC_RALT,     XXXXXXX,   XXXXXXX,      XXXXXXX,      XXXXXXX,
+                                                 KC_SPC,          LT(NAVI,KC_BSPC), XXXXXXX,    XXXXXXX,  OS_LSFT,      LT(SYMB,KC_ENT)
   ),
 
   // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐             ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
@@ -405,8 +405,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     KC_TAB,   KC_Q,        KC_W,      KC_E,      KC_R,        KC_T,            XXXXXXX,    XXXXXXX,  KC_Y,         KC_U,        KC_I,      KC_O,         KC_P,         KC_LBRC,
     NUMWORD,  HM_GUI_A,    HM_ALT_S,  HM_SFT_D,  HM_CTL_F,    HM_HYP_G,        XXXXXXX,    XXXXXXX,  HM_HYP_H,     HM_CTL_J,    HM_SFT_K,  HM_ALT_L,     HM_GUI_SCLN,  KC_QUOT,
     KC_GRV,   KC_Z,        KC_X,      KC_C,      KC_V,        KC_B,                                  KC_N,         KC_M,        KC_COMM,   KC_DOT,       KC_SLSH,      KC_RBRC,
-    XXXXXXX,  XXXXXXX,     XXXXXXX,   XXXXXXX,   KC_DEL,                       QK_REP,     QK_AREP,                KC_RALT,     XXXXXXX,   XXXXXXX,      XXXXXXX,      XXXXXXX,
-                                                 LT(NUMB,KC_SPC), LT(NAVI,KC_BSPC), XXXXXXX,    XXXXXXX,  OS_LSFT,      LT(SYMB,KC_ENT)
+    XXXXXXX,  XXXXXXX,     XXXXXXX,   XXXXXXX,   LT(MOUS,KC_DEL),              QK_REP,     QK_AREP,                KC_RALT,     XXXXXXX,   XXXXXXX,      XXXXXXX,      XXXXXXX,
+                                                 KC_SPC,          LT(NAVI,KC_BSPC), XXXXXXX,    XXXXXXX,  OS_LSFT,      LT(SYMB,KC_ENT)
   ),
 
   // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐             ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
@@ -495,7 +495,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     _______,  _______,  MS_WHLL,  MS_WHLD,  MS_WHLR,  _______,  _______,    _______,  _______,  MS_LEFT,  MS_DOWN,  MS_RGHT,  _______,  _______,
     _______,  _______,  _______,  _______,  _______,  _______,                        _______,  _______,  _______,  _______,  _______,  _______,
     EE_CLR,   _______,  _______,  _______,  _______,            KC_VOLD,    KC_VOLU,            _______,  _______,  _______,  _______,  _______,
-                                            MS_BTN1,  MS_BTN3,  _______,    _______,  MS_BTN3,  MS_BTN2
+                                            _______,  _______,  _______,    MS_BTN1,  MS_BTN2,  MS_BTN3
   ),
 
   // ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐             ┌─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
@@ -517,7 +517,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     _______,  OS_LGUI,  OS_LALT,  OS_LSFT,  OS_LCTL,  OS_HYPR,  _______,    _______,  _______,  OS_LCTL,  OS_LSFT,  OS_LALT,  OS_LGUI,  _______,
     _______,  _______,  _______,  _______,  _______,  _______,                        _______,  _______,  _______,  _______,  _______,  _______,
     EE_CLR,   _______,  _______,  _______,  _______,            KC_VOLD,    KC_VOLU,            _______,  _______,  _______,  _______,  _______,
-                                            MS_BTN1,  MS_BTN3,  _______,    _______,  MS_BTN3,  MS_BTN2
+                                            _______,  _______,  _______,    MS_BTN1,  MS_BTN2,  MS_BTN3
   ),
 };
 
@@ -906,11 +906,10 @@ bool rgb_matrix_indicators_user(void) {
       rgb_matrix_set_color(12, 13, 0, 255);
       rgb_matrix_set_color(17, 13, 0, 255);
       rgb_matrix_set_color(22, 13, 0, 255);
-      // clicks
-      rgb_matrix_set_color(32, 170, 0, 255);
-      rgb_matrix_set_color(33, 170, 0, 255);
-      rgb_matrix_set_color(68, 170, 0, 255);
+      // clicks (right thumbs: BTN1=70, BTN2=69, BTN3=68)
+      rgb_matrix_set_color(70, 170, 0, 255);
       rgb_matrix_set_color(69, 170, 0, 255);
+      rgb_matrix_set_color(68, 170, 0, 255);
       break;
     default:
       rgb_matrix_set_color_all(RGB_OFF);