evsieve icon indicating copy to clipboard operation
evsieve copied to clipboard

Inconsistent behaviour with `--hook` and `--withhold` with repeated presses

Open masnax opened this issue 1 year ago • 2 comments

Take the following configuration:

evsieve \
--input /dev/input/event9 grab domain=k1 \
--hook key:leftmeta key:m sequential breaks-on=key::1 send-key=key:leftctrl send-key=key:o exec-shell="echo something" \
--withhold \
--output @k1

Which is intended to passthrough all inputs to @k1 except leftmeta+m, which will instead send leftctrl+o, and execute a script.

However, if leftmeta is held down while m is pressed and unpressed repeatedly, the --withhold seems to no longer work properly:

# Press "leftmeta", then "m"
KeyPress    keycode 37   Control_L
KeyPress    keycode 32   o

# Release only "m"
KeyRelease  keycode 32   o
KeyRelease  keycode 37   Control_L

# Press "m" again, with "leftmeta" held down.
KeyPress    keycode 58   m  <-- should not be sent
KeyPress    keycode 37   Control_L
KeyPress    keycode 32   o

# Release only "m"
KeyRelease  keycode 32   o
KeyRelease  keycode 37   Control_L
KeyRelease  keycode 58   m <-- should not be sent

masnax avatar Sep 04 '24 18:09 masnax