Input remap utilities

From ArchWiki

This page lists software that you can use to reconfigure input events from keyboards, mice and other hardware. Also it briefly describes how to configure them.

Wayland's security model prevents programs other than the compositor from grabbing raw keyboard input. Some compositors support remapping keys (for example, mutter through gnome-tweaks), but many do not. Utilities work around this by grabbing the keyboard before the compositor, and passing modified keyboard input through to it.



evremap (evremapAUR) - A keyboard input remapper for Linux/Wayland systems. This tool can do remap in a following way: remap the CapsLock key so that it produces Ctrl when held, but Esc if tapped and remap n keys to m keys. E.g.: F3 to Ctrl+c, and Alt+Left to Home.

After installation, create a config file (example from repo), and edit evremap.service to point to your config. Then start the service.


evdevremapkeys (evdevremapkeys-gitAUR) - A daemon to remap key events on linux input devices. This tool can remap keyboard and mouse events. It can map to repeated actions (for example, do double click) and can generate them while button is pressed (for example, generate wheel up events while holding back button).

It is also possible to remap combo to combo, but this is not yet merged, and is available in pronobis fork. See here.


evsieve (evsieveAUR) - a low-level utility that can read events from Linux event devices (evdev) and write them to virtual event devices (uinput), performing simple manipulations on the events along the way. Works on Wayland. Evsieve is particularly intended to be used in conjunction with the evdev-passthrough functionality of Qemu.


kbct (kbct-gitAUR) - Keyboard Customization Tool for Linux. Despite its name, also supports mouse events. This tool allows you to map an event (keyboard or mouse button) to another event. You can define multiple "layers" - lists of maps depending of which modifier you press with an input key. Unfortunately, currently the kbct does not allow you to generate multi-button event. See [1].

After installation, edit /etc/kbct/config.yml as required, then start kbct.service.

Input Remapper

Input Remapper input-remapper-gitAUR - utility that provides a GUI and a CLI to configure remappings. Works with both X and Wayland.


  • wayland-mouse-mapper is a small script for mapping mouse buttons to keystrokes on Wayland.
  • IMWheel is a tool for X11 that can remap mouse wheel events depending on pressed modifier and individually per application.
  • evmapy - evdev event mapper written in Python. Not in AUR yet.
  • Mouse buttons#User tools - list of hardware-dependent utilities to configure mouse buttons.
  • python-evdev - utility that allows you to read and write input events on Linux. An event can be a key or button press, a mouse movement or a tap on a touchscreen.


evtest (evtest) - utility that can show you the button names when you press them, which can help when configuring remap utilities.

wev (wevAUR) - utility to view input events in wayland, similar to xev.

With evsieve --input /dev/input/event* --print you can see all events that are emitted on your computer.

Another approach of testing keyboard buttons is with online websites. Most of such testers cannot distinguish between left and right modifiers. One example that can is: