forked from kofal.net/zmk
feature(modifiers): add explicit modifiers
this makes LS(LEFT_CONTROL) work as if shift and control were both pressed explicitly. Previously, the left shift would have been released as soon as another key was pressed. The implicit behavior is useful in case of LS(NUMBER_1) when rolling over to other keys. Also see #361.
This commit is contained in:
committed by
Pete Johanson
parent
0c30b49063
commit
7b7701ae90
@@ -0,0 +1,4 @@
|
||||
s/.*hid_listener_keycode_//p
|
||||
s/.*hid_register_mod/reg/p
|
||||
s/.*hid_unregister_mod/unreg/p
|
||||
s/.*zmk_hid_.*Modifiers set to /mods: Modifiers set to /p
|
||||
@@ -0,0 +1,28 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x0e
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
reg: Modifier 1 count 1
|
||||
reg: Modifiers set to 0x03
|
||||
reg: Modifier 2 count 1
|
||||
reg: Modifiers set to 0x07
|
||||
reg: Modifier 3 count 1
|
||||
reg: Modifiers set to 0x0f
|
||||
mods: Modifiers set to 0x0f
|
||||
pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x0f
|
||||
released: usage_page 0x07 keycode 0x04 implicit_mods 0x00 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x0f
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x0e
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x0e
|
||||
unreg: Modifier 1 count: 0
|
||||
unreg: Modifier 1 released
|
||||
unreg: Modifiers set to 0x0c
|
||||
unreg: Modifier 2 count: 0
|
||||
unreg: Modifier 2 released
|
||||
unreg: Modifiers set to 0x08
|
||||
unreg: Modifier 3 count: 0
|
||||
unreg: Modifier 3 released
|
||||
unreg: Modifiers set to 0x00
|
||||
mods: Modifiers set to 0x00
|
||||
@@ -0,0 +1,28 @@
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <behaviors.dtsi>
|
||||
#include <dt-bindings/zmk/kscan-mock.h>
|
||||
|
||||
|
||||
&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)
|
||||
|
||||
>;
|
||||
};
|
||||
|
||||
/ {
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
label ="Default keymap";
|
||||
|
||||
default_layer {
|
||||
bindings = <
|
||||
&kp LS(LA(LG(LEFT_CONTROL))) &kp LEFT_CONTROL
|
||||
&kp A &none
|
||||
>;
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1,16 +1,16 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 2
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 1
|
||||
unreg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x00
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x00
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
pressed: usage_page 0x07 keycode 0xe1 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 1 count 1
|
||||
reg: Modifiers set to 0x03
|
||||
mods: Modifiers set to 0x03
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x02
|
||||
mods: Modifiers set to 0x02
|
||||
released: usage_page 0x07 keycode 0xe1 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 1 count: 0
|
||||
unreg: Modifier 1 released
|
||||
unreg: Modifiers set to 0x00
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
pressed: usage_page 0x07 keycode 0xe1 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 1 count 1
|
||||
reg: Modifiers set to 0x03
|
||||
mods: Modifiers set to 0x03
|
||||
released: usage_page 0x07 keycode 0xe1 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe1 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 1 count: 0
|
||||
unreg: Modifier 1 released
|
||||
unreg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x00
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
pressed: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x02
|
||||
pressed: usage_page 0x07 keycode 0x04 mods 0x01
|
||||
pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x01 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
released: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0x04 mods 0x01
|
||||
released: usage_page 0x07 keycode 0x04 implicit_mods 0x01 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x00
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
pressed: usage_page 0x07 keycode 0x04 mods 0x01
|
||||
pressed: usage_page 0x07 keycode 0x04 implicit_mods 0x01 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x01
|
||||
pressed: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x02
|
||||
released: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
released: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x00
|
||||
released: usage_page 0x07 keycode 0x04 mods 0x01
|
||||
released: usage_page 0x07 keycode 0x04 implicit_mods 0x01 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x00
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
pressed: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x03
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x00
|
||||
mods: Modifiers set to 0x00
|
||||
released: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
released: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x00
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
pressed: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
pressed: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
reg: Modifier 0 count 1
|
||||
reg: Modifiers set to 0x01
|
||||
mods: Modifiers set to 0x01
|
||||
pressed: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
pressed: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x03
|
||||
released: usage_page 0x07 keycode 0x05 mods 0x02
|
||||
released: usage_page 0x07 keycode 0x05 implicit_mods 0x02 explicit_mods 0x00
|
||||
mods: Modifiers set to 0x01
|
||||
released: usage_page 0x07 keycode 0xe0 mods 0x00
|
||||
released: usage_page 0x07 keycode 0xe0 implicit_mods 0x00 explicit_mods 0x00
|
||||
unreg: Modifier 0 count: 0
|
||||
unreg: Modifier 0 released
|
||||
unreg: Modifiers set to 0x00
|
||||
|
||||
Reference in New Issue
Block a user