feat(mouse): Add mouse move and scroll support (#2477)

* feat(mouse): Add mouse move and scroll support

    * Use Zephyr input subsystem for all pointers.
    * Input processors for modifying events, e.g. scaling, swapping
      codes, temporary (mouse) layers, etc.
    * Mouse move/scroll behaviors.
    * Infrastructure in place for physical pointer input devices.

* feat: Add input split support.

* docs: Add initial pointer docs.

---------

Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Co-authored-by: Alexander Krikun <krikun98@gmail.com>
Co-authored-by: Robert U <urob@users.noreply.github.com>
Co-authored-by: Shawn Meier <ftc@users.noreply.github.com>
Co-authored-by: Chris Andreae <chris@andreae.gen.nz>
Co-authored-by: Anant Thazhemadam <47104651+thazhemadam@users.noreply.github.com>
Co-authored-by: Erik Tollerud <erik.tollerud@gmail.com>
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
This commit is contained in:
Pete Johanson
2024-12-09 17:45:41 -07:00
committed by GitHub
parent 7e8c542c94
commit 6b40bfda53
119 changed files with 4223 additions and 229 deletions

View File

@@ -0,0 +1 @@
s/.*zmk_hid_mouse_button_//p

View File

@@ -0,0 +1,10 @@
press: Button 0 count 1
press: Mouse buttons set to 0x01
press: Button 1 count 1
press: Mouse buttons set to 0x03
release: Button 1 count: 0
release: Button 1 released
release: Mouse buttons set to 0x01
release: Button 0 count: 0
release: Button 0 released
release: Mouse buttons set to 0x00

View File

@@ -0,0 +1,27 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/kscan_mock.h>
#include <dt-bindings/zmk/mouse.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
&mkp LCLK &none
&none &mkp RCLK
>;
};
};
};
&kscan {
events = <
ZMK_MOCK_PRESS (0,0,100)
ZMK_MOCK_PRESS (1,1,100)
ZMK_MOCK_RELEASE(1,1, 10)
ZMK_MOCK_RELEASE(0,0, 10)
>;
};

View File

@@ -0,0 +1,6 @@
CONFIG_GPIO=n
CONFIG_ZMK_BLE=n
CONFIG_LOG=y
CONFIG_LOG_BACKEND_SHOW_COLOR=n
CONFIG_ZMK_LOG_LEVEL_DBG=y
CONFIG_ZMK_MOUSE=y

View File

@@ -0,0 +1,27 @@
#include <behaviors.dtsi>
#include <dt-bindings/zmk/keys.h>
#include <dt-bindings/zmk/kscan_mock.h>
#include <dt-bindings/zmk/mouse.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
&mkp LCLK &none
&none &mkp RCLK
>;
};
};
};
&kscan {
events = <
ZMK_MOCK_PRESS (0,0,100)
ZMK_MOCK_PRESS (1,1,100)
ZMK_MOCK_RELEASE(1,1, 10)
ZMK_MOCK_RELEASE(0,0, 10)
>;
};