add tests
This commit is contained in:
parent
1648eebf3f
commit
695b3296bb
88 changed files with 837 additions and 0 deletions
44
app/run-test-debug.sh
Executable file
44
app/run-test-debug.sh
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2020 Peter Johanson; Cody McGinnis; Okke Formsma
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: ./run-test.sh <path to testcase>"
|
||||||
|
exit 1
|
||||||
|
elif [ "$1" = "all" ]; then
|
||||||
|
echo "" > ./build/tests/pass-fail.log
|
||||||
|
find tests -name native_posix.keymap -exec dirname \{\} \; | xargs -l -P 4 ./run-test.sh
|
||||||
|
err=$?
|
||||||
|
sort -k2 ./build/tests/pass-fail.log
|
||||||
|
exit $err
|
||||||
|
fi
|
||||||
|
|
||||||
|
testcase="$1"
|
||||||
|
echo "Running $testcase:"
|
||||||
|
|
||||||
|
west build -d build/$testcase -b native_posix --pristine -- -DZMK_CONFIG=$testcase
|
||||||
|
if [ $? -gt 0 ]; then
|
||||||
|
echo "FAIL: $testcase did not build"
|
||||||
|
else
|
||||||
|
./build/$testcase/zephyr/zmk.exe | sed -e "s/.*> //" | tee build/$testcase/keycode_events_full.log | sed -n -f $testcase/events.patterns > build/$testcase/keycode_events.log
|
||||||
|
cat build/$testcase/keycode_events_full.log
|
||||||
|
cat build/$testcase/keycode_events.log
|
||||||
|
diff -au $testcase/keycode_events.snapshot build/$testcase/keycode_events.log
|
||||||
|
if [ $? -gt 0 ]; then
|
||||||
|
if [ -f $testcase/pending ]; then
|
||||||
|
echo "PEND: $testcase"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "FAIL: $testcase"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "PASS: $testcase"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
1
app/tests/tap-hold/.~lock.zmk-modtap-proposal.odg#
Normal file
1
app/tests/tap-hold/.~lock.zmk-modtap-proposal.odg#
Normal file
|
@ -0,0 +1 @@
|
||||||
|
,okke,xps,30.08.2020 20:44,file:///home/okke/.config/libreoffice/4;
|
4
app/tests/tap-hold/balanced/1/events.patterns
Normal file
4
app/tests/tap-hold/balanced/1/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
5
app/tests/tap-hold/balanced/1/keycode_events.snapshot
Normal file
5
app/tests/tap-hold/balanced/1/keycode_events.snapshot
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (balanced event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
11
app/tests/tap-hold/balanced/1/native_posix.keymap
Normal file
11
app/tests/tap-hold/balanced/1/native_posix.keymap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/2/events.patterns
Normal file
4
app/tests/tap-hold/balanced/2/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
5
app/tests/tap-hold/balanced/2/keycode_events.snapshot
Normal file
5
app/tests/tap-hold/balanced/2/keycode_events.snapshot
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (balanced event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
11
app/tests/tap-hold/balanced/2/native_posix.keymap
Normal file
11
app/tests/tap-hold/balanced/2/native_posix.keymap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,500)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/3a/events.patterns
Normal file
4
app/tests/tap-hold/balanced/3a/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
7
app/tests/tap-hold/balanced/3a/keycode_events.snapshot
Normal file
7
app/tests/tap-hold/balanced/3a/keycode_events.snapshot
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe4
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (balanced event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe4
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
13
app/tests/tap-hold/balanced/3a/native_posix.keymap
Normal file
13
app/tests/tap-hold/balanced/3a/native_posix.keymap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(1,1,10) /*ctrl*/
|
||||||
|
ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */
|
||||||
|
ZMK_MOCK_RELEASE(1,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/3b/events.patterns
Normal file
4
app/tests/tap-hold/balanced/3b/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
7
app/tests/tap-hold/balanced/3b/keycode_events.snapshot
Normal file
7
app/tests/tap-hold/balanced/3b/keycode_events.snapshot
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe4
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (balanced event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe4
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
13
app/tests/tap-hold/balanced/3b/native_posix.keymap
Normal file
13
app/tests/tap-hold/balanced/3b/native_posix.keymap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(1,1,10) /*ctrl*/
|
||||||
|
ZMK_MOCK_PRESS(0,0,500) /*mt f-shift */
|
||||||
|
ZMK_MOCK_RELEASE(1,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/4a-nested/events.patterns
Normal file
4
app/tests/tap-hold/balanced/4a-nested/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,10 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (balanced event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_pressed: 1 new undecided tap_hold
|
||||||
|
th_decide: 1 decided tap (balanced event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x0d
|
||||||
|
kp_released: usage_page 0x07 keycode 0x0d
|
||||||
|
th_binding_released: 1 cleaning up tap-hold
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/balanced/4a-nested/native_posix.keymap
Normal file
14
app/tests/tap-hold/balanced/4a-nested/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,200)
|
||||||
|
ZMK_MOCK_PRESS(0,1,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(0,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/4a/events.patterns
Normal file
4
app/tests/tap-hold/balanced/4a/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
7
app/tests/tap-hold/balanced/4a/keycode_events.snapshot
Normal file
7
app/tests/tap-hold/balanced/4a/keycode_events.snapshot
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (balanced event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/balanced/4a/native_posix.keymap
Normal file
14
app/tests/tap-hold/balanced/4a/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,200)
|
||||||
|
ZMK_MOCK_PRESS(1,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/4b/events.patterns
Normal file
4
app/tests/tap-hold/balanced/4b/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
7
app/tests/tap-hold/balanced/4b/keycode_events.snapshot
Normal file
7
app/tests/tap-hold/balanced/4b/keycode_events.snapshot
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (balanced event 2)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/balanced/4b/native_posix.keymap
Normal file
14
app/tests/tap-hold/balanced/4b/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,100)
|
||||||
|
ZMK_MOCK_PRESS(1,0,100)
|
||||||
|
ZMK_MOCK_RELEASE(1,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/4c/events.patterns
Normal file
4
app/tests/tap-hold/balanced/4c/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
7
app/tests/tap-hold/balanced/4c/keycode_events.snapshot
Normal file
7
app/tests/tap-hold/balanced/4c/keycode_events.snapshot
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (balanced event 2)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/balanced/4c/native_posix.keymap
Normal file
14
app/tests/tap-hold/balanced/4c/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_PRESS(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
/* timer */
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/balanced/4d/events.patterns
Normal file
4
app/tests/tap-hold/balanced/4d/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
7
app/tests/tap-hold/balanced/4d/keycode_events.snapshot
Normal file
7
app/tests/tap-hold/balanced/4d/keycode_events.snapshot
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (balanced event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
14
app/tests/tap-hold/balanced/4d/native_posix.keymap
Normal file
14
app/tests/tap-hold/balanced/4d/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,100)
|
||||||
|
ZMK_MOCK_PRESS(1,0,100)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
>;
|
||||||
|
};
|
48
app/tests/tap-hold/balanced/behavior_keymap.dtsi
Normal file
48
app/tests/tap-hold/balanced/behavior_keymap.dtsi
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
behaviors {
|
||||||
|
fsf: behavior_f_shift {
|
||||||
|
compatible = "zmk,behavior-tap-hold";
|
||||||
|
label = "f-shift";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
tapping_term_ms = <300>;
|
||||||
|
bindings = <&kp F>, <&kp LSFT>;
|
||||||
|
flavor = "balanced";
|
||||||
|
};
|
||||||
|
|
||||||
|
jct: behavior_j_ctrl {
|
||||||
|
compatible = "zmk,behavior-tap-hold";
|
||||||
|
label = "j-ctrl";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
tapping_term_ms = <300>;
|
||||||
|
bindings = <&kp J>, <&kp LCTL>;
|
||||||
|
flavor = "balanced";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
label ="Default keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
bindings = <
|
||||||
|
&fsf &jct
|
||||||
|
&kp D &kp RCTL>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lower_layer {
|
||||||
|
bindings = <
|
||||||
|
&cp M_NEXT &trans
|
||||||
|
&kp L &kp J>;
|
||||||
|
};
|
||||||
|
|
||||||
|
raise_layer {
|
||||||
|
bindings = <
|
||||||
|
&kp W &kp U
|
||||||
|
&kp X &kp M>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/1/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/1/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,5 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (hold-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
11
app/tests/tap-hold/hold-preferred/1/native_posix.keymap
Normal file
11
app/tests/tap-hold/hold-preferred/1/native_posix.keymap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/2/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/2/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,5 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
11
app/tests/tap-hold/hold-preferred/2/native_posix.keymap
Normal file
11
app/tests/tap-hold/hold-preferred/2/native_posix.keymap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,500)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/3a/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/3a/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe4
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (hold-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe4
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
13
app/tests/tap-hold/hold-preferred/3a/native_posix.keymap
Normal file
13
app/tests/tap-hold/hold-preferred/3a/native_posix.keymap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(1,1,10) /*ctrl*/
|
||||||
|
ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */
|
||||||
|
ZMK_MOCK_RELEASE(1,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/3b/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/3b/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe4
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe4
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
13
app/tests/tap-hold/hold-preferred/3b/native_posix.keymap
Normal file
13
app/tests/tap-hold/hold-preferred/3b/native_posix.keymap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(1,1,10) /*ctrl*/
|
||||||
|
ZMK_MOCK_PRESS(0,0,500) /*mt f-shift */
|
||||||
|
ZMK_MOCK_RELEASE(1,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,10 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 1)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_pressed: 1 new undecided tap_hold
|
||||||
|
th_decide: 1 decided tap (hold-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x0d
|
||||||
|
kp_released: usage_page 0x07 keycode 0x0d
|
||||||
|
th_binding_released: 1 cleaning up tap-hold
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,200)
|
||||||
|
ZMK_MOCK_PRESS(0,1,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(0,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/4a/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/4a/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 1)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/hold-preferred/4a/native_posix.keymap
Normal file
14
app/tests/tap-hold/hold-preferred/4a/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,200)
|
||||||
|
ZMK_MOCK_PRESS(1,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/4b/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/4b/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 1)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/hold-preferred/4b/native_posix.keymap
Normal file
14
app/tests/tap-hold/hold-preferred/4b/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,100)
|
||||||
|
ZMK_MOCK_PRESS(1,0,100)
|
||||||
|
ZMK_MOCK_RELEASE(1,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/4c/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/4c/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 1)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/hold-preferred/4c/native_posix.keymap
Normal file
14
app/tests/tap-hold/hold-preferred/4c/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_PRESS(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
/* timer */
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/hold-preferred/4d/events.patterns
Normal file
4
app/tests/tap-hold/hold-preferred/4d/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (hold-preferred event 1)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
14
app/tests/tap-hold/hold-preferred/4d/native_posix.keymap
Normal file
14
app/tests/tap-hold/hold-preferred/4d/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,100)
|
||||||
|
ZMK_MOCK_PRESS(1,0,100)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
>;
|
||||||
|
};
|
48
app/tests/tap-hold/hold-preferred/behavior_keymap.dtsi
Normal file
48
app/tests/tap-hold/hold-preferred/behavior_keymap.dtsi
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
behaviors {
|
||||||
|
fsf: behavior_f_shift {
|
||||||
|
compatible = "zmk,behavior-tap-hold";
|
||||||
|
label = "f-shift";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
tapping_term_ms = <300>;
|
||||||
|
bindings = <&kp F>, <&kp LSFT>;
|
||||||
|
flavor = "hold-preferred";
|
||||||
|
};
|
||||||
|
|
||||||
|
jct: behavior_j_ctrl {
|
||||||
|
compatible = "zmk,behavior-tap-hold";
|
||||||
|
label = "j-ctrl";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
tapping_term_ms = <300>;
|
||||||
|
bindings = <&kp J>, <&kp LCTL>;
|
||||||
|
flavor = "hold-preferred";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
label ="Default keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
bindings = <
|
||||||
|
&fsf &jct
|
||||||
|
&kp D &kp RCTL>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lower_layer {
|
||||||
|
bindings = <
|
||||||
|
&cp M_NEXT &trans
|
||||||
|
&kp L &kp J>;
|
||||||
|
};
|
||||||
|
|
||||||
|
raise_layer {
|
||||||
|
bindings = <
|
||||||
|
&kp W &kp U
|
||||||
|
&kp X &kp M>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/1/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/1/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,5 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (tap-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
11
app/tests/tap-hold/tap-preferred/1/native_posix.keymap
Normal file
11
app/tests/tap-hold/tap-preferred/1/native_posix.keymap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/2/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/2/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,5 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (tap-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
11
app/tests/tap-hold/tap-preferred/2/native_posix.keymap
Normal file
11
app/tests/tap-hold/tap-preferred/2/native_posix.keymap
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,500)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/3a/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/3a/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe4
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (tap-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe4
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
13
app/tests/tap-hold/tap-preferred/3a/native_posix.keymap
Normal file
13
app/tests/tap-hold/tap-preferred/3a/native_posix.keymap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(1,1,10) /*ctrl*/
|
||||||
|
ZMK_MOCK_PRESS(0,0,100) /*mt f-shift */
|
||||||
|
ZMK_MOCK_RELEASE(1,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/3b/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/3b/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe4
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (tap-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe4
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
13
app/tests/tap-hold/tap-preferred/3b/native_posix.keymap
Normal file
13
app/tests/tap-hold/tap-preferred/3b/native_posix.keymap
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(1,1,10) /*ctrl*/
|
||||||
|
ZMK_MOCK_PRESS(0,0,500) /*mt f-shift */
|
||||||
|
ZMK_MOCK_RELEASE(1,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,10 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (tap-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_pressed: 1 new undecided tap_hold
|
||||||
|
th_decide: 1 decided tap (tap-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x0d
|
||||||
|
kp_released: usage_page 0x07 keycode 0x0d
|
||||||
|
th_binding_released: 1 cleaning up tap-hold
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,200)
|
||||||
|
ZMK_MOCK_PRESS(0,1,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(0,1,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/4a/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/4a/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (tap-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/tap-preferred/4a/native_posix.keymap
Normal file
14
app/tests/tap-hold/tap-preferred/4a/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,200)
|
||||||
|
ZMK_MOCK_PRESS(1,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/4b/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/4b/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided hold (tap-preferred event 3)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0xe1
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0xe1
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/tap-preferred/4b/native_posix.keymap
Normal file
14
app/tests/tap-hold/tap-preferred/4b/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,100)
|
||||||
|
ZMK_MOCK_PRESS(1,0,100)
|
||||||
|
ZMK_MOCK_RELEASE(1,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/4c/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/4c/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (tap-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
14
app/tests/tap-hold/tap-preferred/4c/native_posix.keymap
Normal file
14
app/tests/tap-hold/tap-preferred/4c/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,10)
|
||||||
|
ZMK_MOCK_PRESS(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,10)
|
||||||
|
/* timer */
|
||||||
|
>;
|
||||||
|
};
|
4
app/tests/tap-hold/tap-preferred/4d/events.patterns
Normal file
4
app/tests/tap-hold/tap-preferred/4d/events.patterns
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
s/.*hid_listener_keycode/kp/p
|
||||||
|
s/.*mo_keymap_binding/mo/p
|
||||||
|
s/.*on_tap_hold_binding/th_binding/p
|
||||||
|
s/.*decide_tap_hold/th_decide/p
|
|
@ -0,0 +1,7 @@
|
||||||
|
th_binding_pressed: 0 new undecided tap_hold
|
||||||
|
th_decide: 0 decided tap (tap-preferred event 0)
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x09
|
||||||
|
kp_pressed: usage_page 0x07 keycode 0x07
|
||||||
|
kp_released: usage_page 0x07 keycode 0x09
|
||||||
|
th_binding_released: 0 cleaning up tap-hold
|
||||||
|
kp_released: usage_page 0x07 keycode 0x07
|
14
app/tests/tap-hold/tap-preferred/4d/native_posix.keymap
Normal file
14
app/tests/tap-hold/tap-preferred/4d/native_posix.keymap
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
#include "../behavior_keymap.dtsi"
|
||||||
|
|
||||||
|
&kscan {
|
||||||
|
events = <
|
||||||
|
ZMK_MOCK_PRESS(0,0,100)
|
||||||
|
ZMK_MOCK_PRESS(1,0,100)
|
||||||
|
ZMK_MOCK_RELEASE(0,0,200)
|
||||||
|
/* timer fires */
|
||||||
|
ZMK_MOCK_RELEASE(1,0,10)
|
||||||
|
>;
|
||||||
|
};
|
48
app/tests/tap-hold/tap-preferred/behavior_keymap.dtsi
Normal file
48
app/tests/tap-hold/tap-preferred/behavior_keymap.dtsi
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#include <dt-bindings/zmk/keys.h>
|
||||||
|
#include <behaviors.dtsi>
|
||||||
|
#include <dt-bindings/zmk/kscan-mock.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
behaviors {
|
||||||
|
fsf: behavior_f_shift {
|
||||||
|
compatible = "zmk,behavior-tap-hold";
|
||||||
|
label = "f-shift";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
tapping_term_ms = <300>;
|
||||||
|
bindings = <&kp F>, <&kp LSFT>;
|
||||||
|
flavor = "tap-preferred";
|
||||||
|
};
|
||||||
|
|
||||||
|
jct: behavior_j_ctrl {
|
||||||
|
compatible = "zmk,behavior-tap-hold";
|
||||||
|
label = "j-ctrl";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
tapping_term_ms = <300>;
|
||||||
|
bindings = <&kp J>, <&kp LCTL>;
|
||||||
|
flavor = "tap-preferred";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
keymap {
|
||||||
|
compatible = "zmk,keymap";
|
||||||
|
label ="Default keymap";
|
||||||
|
|
||||||
|
default_layer {
|
||||||
|
bindings = <
|
||||||
|
&fsf &jct
|
||||||
|
&kp D &kp RCTL>;
|
||||||
|
};
|
||||||
|
|
||||||
|
lower_layer {
|
||||||
|
bindings = <
|
||||||
|
&cp M_NEXT &trans
|
||||||
|
&kp L &kp J>;
|
||||||
|
};
|
||||||
|
|
||||||
|
raise_layer {
|
||||||
|
bindings = <
|
||||||
|
&kp W &kp U
|
||||||
|
&kp X &kp M>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
BIN
app/tests/tap-hold/zmk-modtap-proposal.odg
Normal file
BIN
app/tests/tap-hold/zmk-modtap-proposal.odg
Normal file
Binary file not shown.
BIN
app/tests/tap-hold/zmk-modtap-proposal.pdf
Normal file
BIN
app/tests/tap-hold/zmk-modtap-proposal.pdf
Normal file
Binary file not shown.
Loading…
Add table
Reference in a new issue