From f5c8ec082a0e5d792913e061637b35974782ca65 Mon Sep 17 00:00:00 2001 From: Lukas Kucera <85391931+kucera-lukas@users.noreply.github.com> Date: Sun, 29 Dec 2024 17:18:57 +0100 Subject: [PATCH] Switch to native mouse API ZMK now natively supports mouse movement as well as scroll (https://github.com/zmkfirmware/zmk/pull/2477) This involves: - changing the KConfig values - switching to new behaviours - including new headers - renaming `SCROLL_*` to `SCRL_*` --- config/adv360pro.conf | 6 ++-- miryoku/miryoku.dtsi | 2 ++ miryoku/miryoku_kludge_mousekeyspr.dtsi | 2 +- miryoku/miryoku_kludge_mousekeyspr.h | 42 ++++++++----------------- 4 files changed, 19 insertions(+), 33 deletions(-) diff --git a/config/adv360pro.conf b/config/adv360pro.conf index e3e9bd0e8..e1b85bf6d 100644 --- a/config/adv360pro.conf +++ b/config/adv360pro.conf @@ -9,6 +9,6 @@ CONFIG_ZMK_BACKLIGHT=n CONFIG_ZMK_SLEEP=y CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=1800000 -# Mouse config, requires PR #778 -CONFIG_ZMK_MOUSE=y -CONFIG_ZMK_MOUSE_TICK_DURATION=8 +# Mouse config +CONFIG_ZMK_POINTING=y +CONFIG_ZMK_POINTING_SMOOTH_SCROLLING=y diff --git a/miryoku/miryoku.dtsi b/miryoku/miryoku.dtsi index 682612f6f..eacb02050 100644 --- a/miryoku/miryoku.dtsi +++ b/miryoku/miryoku.dtsi @@ -10,6 +10,8 @@ #include "miryoku.h" +#include + / { keymap { compatible = "zmk,keymap"; diff --git a/miryoku/miryoku_kludge_mousekeyspr.dtsi b/miryoku/miryoku_kludge_mousekeyspr.dtsi index 4bb1c1ec3..c0264352b 100644 --- a/miryoku/miryoku_kludge_mousekeyspr.dtsi +++ b/miryoku/miryoku_kludge_mousekeyspr.dtsi @@ -7,7 +7,7 @@ delay-ms = ; }; -&mwh { +&msc { acceleration-exponent = ; time-to-max-speed-ms = ; delay-ms = ; diff --git a/miryoku/miryoku_kludge_mousekeyspr.h b/miryoku/miryoku_kludge_mousekeyspr.h index 8fb0b8962..5848ece11 100644 --- a/miryoku/miryoku_kludge_mousekeyspr.h +++ b/miryoku/miryoku_kludge_mousekeyspr.h @@ -3,42 +3,26 @@ #pragma once -#include - -#define U_MOUSE_MOVE_MAX 1000 +// Mouse move +#define ZMK_POINTING_DEFAULT_MOVE_VAL 700 #define U_MOUSE_MOVE_EXPONENT 1 -#define U_MOUSE_MOVE_TIME 1000 +#define U_MOUSE_MOVE_TIME 300 #define U_MOUSE_MOVE_DELAY 0 -#define U_MOUSE_SCROLL_MAX 10 + +// Mouse scroll +#define ZMK_POINTING_DEFAULT_SCRL_VAL 100 #define U_MOUSE_SCROLL_EXPONENT 1 #define U_MOUSE_SCROLL_TIME 0 #define U_MOUSE_SCROLL_DELAY 0 -#undef MOVE_UP -#undef MOVE_DOWN -#undef MOVE_LEFT -#undef MOVE_RIGHT -#undef SCROLL_UP -#undef SCROLL_DOWN -#undef SCROLL_LEFT -#undef SCROLL_RIGHT -#define MOVE_UP MOVE_VERT(-U_MOUSE_MOVE_MAX) -#define MOVE_DOWN MOVE_VERT(U_MOUSE_MOVE_MAX) -#define MOVE_LEFT MOVE_HOR(-U_MOUSE_MOVE_MAX) -#define MOVE_RIGHT MOVE_HOR(U_MOUSE_MOVE_MAX) -#define SCROLL_UP SCROLL_VERT(U_MOUSE_SCROLL_MAX) -#define SCROLL_DOWN SCROLL_VERT(-U_MOUSE_SCROLL_MAX) -#define SCROLL_LEFT SCROLL_HOR(-U_MOUSE_SCROLL_MAX) -#define SCROLL_RIGHT SCROLL_HOR(U_MOUSE_SCROLL_MAX) - -#define U_BTN1 &mkp MB1 -#define U_BTN2 &mkp MB2 -#define U_BTN3 &mkp MB3 +#define U_BTN1 &mkp LCLK +#define U_BTN2 &mkp RCLK +#define U_BTN3 &mkp MCLK #define U_MS_D &mmv MOVE_DOWN #define U_MS_L &mmv MOVE_LEFT #define U_MS_R &mmv MOVE_RIGHT #define U_MS_U &mmv MOVE_UP -#define U_WH_D &mwh SCROLL_DOWN -#define U_WH_L &mwh SCROLL_LEFT -#define U_WH_R &mwh SCROLL_RIGHT -#define U_WH_U &mwh SCROLL_UP +#define U_WH_D &msc SCRL_DOWN +#define U_WH_L &msc SCRL_LEFT +#define U_WH_R &msc SCRL_RIGHT +#define U_WH_U &msc SCRL_UP