Bug#1011749: ITP: interception-tools -- minimal composable infrastructure on top of libudev and libevdev
Package: wnpp
Severity: wishlist
Owner: Osamu Aoki <osamu@debian.org>
X-Debbugs-Cc: debian-devel@lists.debian.org, Ethan Djeric <me@ethandjeric.com>, Francisco Lopes <francisco@nosubstance.me>
* Package name : interception-tools
Version : 0.6.8
Upstream Author : Francisco Lopes <francisco@nosubstance.me>
* URL : https://gitlab.com/interception/linux/tools
* License : GPLv3
Programming Lang: C, C++
Description : minimal composable infrastructure on top of libudev and libevdev
The Interception Tools is a small set of utilities for operating on input
events of evdev devices, including udevmon, intercept, uninput and mux.
In short, this is a generic helper tool to mangle keyboard input in very
low level within Linux kernel. This works for Wayland, X, or Linux
virtual console. Home position mod-tap etc. can be implemented using
this.
Longer explanation goes:
The tools here relying on libevdev are intercept and uinput.
intercept's purpose is to capture input from a given device (optionally
grabbing it) and write such raw input to stdout. uinput does the reverse,
it receives raw input from stdin and write it to a virtual uinput device
created by cloning characteristics of real devices, from YAML configuration, or
both.
So, assuming $DEVNODE as the path of the device, something like
/dev/input/by-id/some-kbd-id, the following results in a no-op:
intercept -g $DEVNODE | uinput -d $DEVNODE
In this case using -g is important so that the target device is grabbed for
exclusive access, allowing the new virtual device created by uinput to
substitute it completely: we grab it and others can grab the clone.
Now additional processing can be added in the middle easily.
There were Ubuntu PPA by Ethan Djeric <me@ethandjeric.com>. I used it
as the starting point. I have tidied up packaging so it can pass
piuparts and lintian test. I also created manpages.
At this moment, I have this on github and in good shape. Once accepted,
I will move this to salsa.
https://github.com/osamuaoki/interception-tools
This offer 4 commands and one of it is "intercept". Debian already have
"intercept" in the "bear" package.
As you know generic name and short name are problematic.
I am wondering if I need to rename as:
intercept -> evdev-intercept
udevmon -> evdev-udevmon
uinput -> evdev-uinput
mux -> evdev-mux
(I am asking thought of upstream too.)
Here are associated programs to give idea what we can.
Additional Tools
uswitch: redirect stdin to a muxer if logged user matches
xswitch: redirect stdin to a muxer if window matches
Official Plugins
caps2esc: transforming the most useless key ever in the most useful one
space2meta: turn your space key into the meta key when chorded to
another key (on key release only)
hideaway: move the mouse pointer out of sight after a couple of seconds
dual-function-keys: tap for one key, hold for another
Some Community Plugins
ralt2hyper: Remap Right Alt (commonly AltGr) to Hyper (i.e. Control, Alt and Super)
chorded_keymap
interception-vimproved
interception-k2k
Also, if Ubuntu PPA person wishes to co-maintain, I will be happy to
sponsor.
Regards,
Osamu
Reply to: