feat(mouse): Initial mouse keys support.

* Add HID report/descriptor for a new report with mouse buttons,
  and x/y/wheel deltas.
* New mouse key press behavior for press/release of mouse keys.
* Add constants for HID main item values (e.g. data/array/absolute)
* Define and use constants for our HID report IDs.
This commit is contained in:
Alexander Krikun
2021-04-27 18:24:11 +03:00
committed by Pete Johanson
parent 8776911da5
commit d7d9eed317
27 changed files with 618 additions and 1 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,28 @@
#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";
label = "Default 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,28 @@
#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";
label = "Default 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)
>;
};