Input remap utilities

In an X or Wayland environment, most remapping tasks can be completed with local XKB configuration, see
X keyboard extension#Local XKB folder
. For remapping keys in the linux console, see
Linux console/Keyboard configuration
. For keyboards or devices that report incorrect keycodes, see
Map scancodes to keycodes
.
Some specialized configurations or behaviors use software daemons to translate input events. This page lists software that you can use to reconfigure input events from keyboards, mice and other hardware.
Utilities
evremap
evremap
(
evremap-git
AUR
) — 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
/etc/evremap.toml
(
example
from repo), or
edit
evremap.service
to point to your config. Then
start
the service.
evdevremapkeys
evdevremapkeys
(
evdevremapkeys-git
AUR
) — 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
evsieve
(
evsieve
AUR
) — 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
(
kbct-git
AUR
) — 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
.
keyd
keyd
(
keyd
) — A key remapping daemon for Linux using a flexible system-wide daemon which remaps keys using kernel level input primitives (evdev, uinput). Keyd works in both graphical environments, like X11 and Wayland, and the Linux virtual console. Read the project's README for more information about how keyd compared to similar software.
Input Remapper
Input Remapper
(
input-remapper-git
AUR
) — A utility that provides a GUI and a CLI to configure input devices remappings. Works with both X and Wayland.
makima
makima
(
makima-bin
AUR
) — Linux daemon to remap and create macros for keyboards, mice and controllers. Uses the evdev interface. Configured per device by placing
device_name
.toml
files in
~/.config/makima
, and also supports per application configuration with
device_name
::
window_class
.toml
(X11, Sway, Hyprland and Niri only).
wtype
wtype
(
wtype
) — xdotool type for
Wayland
(requires compositor support for the
virtual keyboard protocol
).
Other
Hawck
- A low-level key rebinding daemon
IMWheel
— A tool for X11 that can remap mouse wheel events depending on pressed modifier and individually per application.
Interception-tools
— Yet another versatile tool, using various plug-ins.
Mouse buttons#User tools
— A list of hardware-dependent utilities to configure mouse buttons.
wayland-mouse-mapper
— A small script for mapping mouse buttons to keystrokes on Wayland.
evmapy
— An evdev event mapper written in Python. Not in AUR yet.
python-evdev
— A 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.
kmonad
- advanced keyboard remapping tool daemon
noinputs
(
noinputs-git
AUR
) — A utility to list and disable (
inhibit
) input devices.
xremap
(
multiple packages
) — Key remapper for X11 and Wayland using evdev and uinput.
keymapper
(
keymapper
AUR
) - a cross-platform context-aware key remapper (working in both X11 and Wayland)
Testing
evtest
(
evtest
) — utility that can show you the button names when you press them, which can help when configuring remap utilities.
wev
(
wev
) — 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:
https://stendec.io/