uinput based key bindings and macros tool for Linux.
The purpose of this project is to allow the user to assign actions to keys, which can come in handy if you want to do repetitive actions easily (e.g. tap a key repeatedly by simply holding it or launch a sequence of keys with a single keypress), launch applications using keys, disabling keys you don't want to be pressed by accident, mapping gaming keypads, etc.
Comparison with Xdotool
The advantages over Xdotool are:
- Interacts with the evdev input layer, which is lower-level than X.
- Works outside X, e.g. VT or Wayland.
The disadvantages are:
- You can't directly map a key to closing a window, or something that has to do with X (however, you can execute xdotool from input-modifier).
Comparison with AutoKey
The advantages over AutoKey are: (although I've never used it)
- Is written in C++, which means less overhead than Python.
- Allows for doing things like remapping keys (besides executing applications and running macros) without resorting to complex hacks.
The disadvantages are:
- No GUI yet.
- Does not allow for DE-specific actions or X11-specific ones (but I am pretty sure it may be possible to use both programs in tandem).
AUR.
download the installer from here (select the first element from "Assets").
extract release:
tar -xvf <RELEASE>.tar.gz
run the installer:
cd input-modifier
sudo ./install
add yourself to the input
group if not done previously:
sudo usermod -a -G input $USER
and then re-login.
run imodd:
imodd
documentation can be found here.
-
X11 integration (per-application profile bind, warping cursor and the like).
-
bug fixes.
-
proper packages.
-
passing environment variables to execute.
-
changing the weird devices setting.
- I will talk about this later
-
ignoring non-input devices such as the Firefly or Polaris.
-
fix pressing non-bit-set keys.
-
implement binds for relative and switch events.
-
add feature here.