chore: Add some basic encoder tests (#2845)

Adds some encoder tests for rotating, and basic layers.
Mock Kscans don't seem to interact nicely, slightly on the hacky side.
However, better to have hacky tests than no tests.
This commit is contained in:
Nicolas Munnich
2025-07-31 23:29:59 +01:00
committed by GitHub
parent af967667b0
commit c86f0d6ff4
10 changed files with 92 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
#include <dt-bindings/zmk/keys.h>
#include <behaviors.dtsi>
#include <dt-bindings/zmk/kscan_mock.h>
/ {
keymap {
compatible = "zmk,keymap";
default_layer {
bindings = <
&tog 2 &kp X
&tog 1 &none
>;
sensor-bindings = <&inc_dec_kp A B>;
};
skip_layer {
bindings = <
&trans &kp Y
&none &none
>;
sensor-bindings = <&inc_dec_kp N M>;
};
alt_layer {
bindings = <
&trans &kp Z
&none &none
>;
sensor-bindings = <&inc_dec_kp C D>;
};
};
mock_encoder: mock_encoder {
compatible = "zmk,sensor-encoder-mock";
status = "okay";
event-startup-delay = <200>;
event-period = <200>;
};
sensors: sensors {
compatible = "zmk,keymap-sensors";
sensors = <&mock_encoder>;
triggers-per-rotation = <20>;
};
};

View File

@@ -0,0 +1,2 @@
s/.*hid_listener_keycode_//p
s/.*layer_changed/layer_changed/p

View File

@@ -0,0 +1,3 @@
layer_changed: layer 2 state 1
pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00

View File

@@ -0,0 +1,11 @@
#include "../behavior_keymap.dtsi"
&kscan {
events = < ZMK_MOCK_PRESS(0,0,10)
ZMK_MOCK_PRESS(1,1,8000)
>;
};
&mock_encoder {
events = <18>;
};

View File

@@ -0,0 +1,2 @@
s/.*hid_listener_keycode_//p
s/.*layer_changed/layer_changed/p

View File

@@ -0,0 +1,4 @@
layer_changed: layer 1 state 1
layer_changed: layer 2 state 1
pressed: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x06 implicit_mods 0x00 explicit_mods 0x00

View File

@@ -0,0 +1,11 @@
#include "../behavior_keymap.dtsi"
&kscan {
events = < ZMK_MOCK_PRESS(1,0,10) ZMK_MOCK_PRESS(0,0,10)
ZMK_MOCK_PRESS(1,1,8000)
>;
};
&mock_encoder {
events = <18>;
};

View File

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

View File

@@ -0,0 +1,4 @@
pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00
released: usage_page 0x07 keycode 0x05 implicit_mods 0x00 explicit_mods 0x00

View File

@@ -0,0 +1,10 @@
#include "../behavior_keymap.dtsi"
&kscan {
events = < ZMK_MOCK_PRESS(1,1,1000)
>;
};
&mock_encoder {
events = <18 (-18)>;
};