Man page - evremap(1)

Packages contains this manual

Manual

EVREMAP

NAME
DESCRIPTION
USAGE:
FLAGS:
SUBCOMMANDS:
FILE
Sample Configuration
SEE ALSO
AUTHOR

NAME

evremap - keyboard input remapper for Linux/Wayland systems

DESCRIPTION

evremap works by grabbing exclusive access to an input device and maintaining a model of the keys that are pressed. It then applies your remapping configuration to produce the effective set of pressed keys and emits appropriate changes to a virtual output device.

Because evremap targets the evdev layer of libinput, its remapping is effective system-wide: in Wayland, X11 and the linux console.

evtest(1) can be used to identify keycodes of an input device.

USAGE:

evremap remap

config-file --delay <delay>

evremap list-devices
evremap list-keys
evremap debug-events

FLAGS:

-d , --delay <delay>

Startup delay in second

-h , --help

Prints help information

-V , --version

Prints version information

SUBCOMMANDS:

help

Prints this message or the help of the given subcommand(s)

list-devices

Rather than running the remapper, list currently available devices. This is helpful to check their names when setting up the initial configuration

list-keys

Show a list of possible KEY_XXX values

debug-events

Listen to events and print them out to facilitate learning which keys/buttons have which labels for your device(s)

remap

Load a remapper config and run the remapper. This usually requires running as root to obtain exclusive access to the input devices

FILE

/etc/evremap.conf

Mapping configuration file

Sample Configuration

# The name of the device to remap.
# Run ‘sudo evremap list-devices‘ to see the devices available
# on your system.
device_name = "AT Translated Set 2 keyboard"

# If you have multiple devices with the same name, you can optionally
# specify the ‘phys‘ value that is printed by the ‘list-devices‘ subcommand
# phys = "usb-0000:07:00.3-2.1.1/input0"

# Configure CAPSLOCK as a Dual Role key.
# Holding it produces LEFTCTRL, but tapping it
# will produce ESC.
# Both ‘tap‘ and ‘hold‘ can expand to multiple output keys.
[[dual_role]]
input = "KEY_CAPSLOCK"
hold = ["KEY_LEFTCTRL"]
tap = ["KEY_ESC"]
# This config snippet is useful if your keyboard has an arrow
# cluster, but doesn’t have page up, page down, home or end
# keys. Here we’re configuring ALT+arrow to map to those functions.
[[remap]]
input = ["KEY_LEFTALT", "KEY_UP"]
output = ["KEY_PAGEUP"]

[[remap]]
input = ["KEY_LEFTALT", "KEY_DOWN"]
output = ["KEY_PAGEDOWN"]

[[remap]]
input = ["KEY_LEFTALT", "KEY_LEFT"]
output = ["KEY_HOME"]

[[remap]]
input = ["KEY_LEFTALT", "KEY_RIGHT"]
output = ["KEY_END"]

# When applying remapping configuration, ordering is important:
# Dual Role entries are always processed first Remap entries are applied in
# the order that they appear in your configuration file

# Here’s an example where ordering is important: on the PixelBook Go keyboard, the
# function key row has alternate functions on the keycaps. It is natural to want
# the mute button to mute by default, but to emit the F8 key when holding alt. We
# can express that with the following configuration:

[[remap]]
input = ["KEY_LEFTALT", "KEY_F8"]
# When our ‘input‘ is matched, our list of ‘output‘ is prevented from
# matching as the ‘input‘ of subsequent rules.
output = ["KEY_F8"]

[[remap]]
input = ["KEY_F8"]
output = ["KEY_MUTE"]

SEE ALSO

evtest (1)

AUTHOR

This man page was written by Yifei Zhan <yifei@zhan.science> using README.md from https://github.com/wez/evremap
This program was written by Wez Furlong