You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
+`intercept` captures your input from previous layer, and write raw input to `stdout`;
24
-
+`debouncer` get the raw input data from `stdin`, process them and write back to `stdout`;
24
+
+`debouncer-udevmon` get the raw input data from `stdin`, process them and write back to `stdout`;
25
25
+`uinput` convert the raw input from last step, and write it to this virtual device (can be found as `/dev/input/eventX`);
26
26
27
27
The "next layer" can be evtest, X server or Wayland compositor.
@@ -32,9 +32,9 @@ See [input.h](https://github.com/torvalds/linux/blob/master/include/uapi/linux/i
32
32
33
33
A key event has 3 possible values: 1 (pressed), 0 (released) or 2 (autorepeat).
34
34
35
-
The role of `debouncer` is that, it can delay the keyboard "release" event for some time (see #Configurations), which is similar to the ["spuious" mode of libinput](https://wayland.freedesktop.org/libinput/doc/latest/button-debouncing.html).
35
+
The role of `debouncer-udevmon` is that, it can delay the keyboard "release" event for some time (see #Configurations), which is similar to the ["spuious" mode of libinput](https://wayland.freedesktop.org/libinput/doc/latest/button-debouncing.html).
36
36
37
-
Once `debouncer` received a "release" event, it will wait for some time. During this time, if no "press" event of the same key comes, it will write the "release" event to `stdout`; otherwise, it will neglect this event.
37
+
Once `debouncer-udevmon` received a "release" event, it will wait for some time. During this time, if no "press" event of the same key comes, it will write the "release" event to `stdout`; otherwise, it will neglect this event.
38
38
39
39
## How to use
40
40
@@ -60,7 +60,7 @@ The debug version will write more detailed info to `stderr`.
60
60
Before using it, you would better create a yaml file as config. For example, here is my `udevmon.yaml`:
You can also integrate `udevmon.service` and `keyd.service`. But notice that **the order and time of services matter**. `keyd` needs to start after `udevmon` starts, and `udevmon` needs a few microseconds to be ready. So you should [create a drop-in configuration file](https://wiki.archlinux.org/title/Systemd#Drop-in_configuration_files) that wants `udevmon` as optional dependency and sleep for some time before executing the command.
0 commit comments