explaingit

sezanzeb/input-remapper

5,628PythonAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

A Linux desktop app that lets you remap keys, gamepad buttons, mouse buttons, and joystick axes to anything you want, system-wide on X11 and Wayland.

Mindmap

mindmap
  root((input-remapper))
    What it does
      Remap keys and buttons
      Redirect joystick axes
      Programmable macros
    Tech Stack
      Python
      Linux kernel input
      X11 and Wayland
    Use Cases
      Gamepad remapping
      Keyboard shortcuts
      Macro sequences
    Audience
      Linux power users
      Gamers on Linux
    Setup
      apt or pacman install
      Enable background service
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Remap gamepad buttons to keyboard shortcuts so you can play PC games designed for keyboard and mouse using a controller.

USE CASE 2

Set up system-wide macros on a single key press to automate multi-step keyboard sequences across all applications.

USE CASE 3

Redirect joystick axes to mouse movement so a gamepad acts as a pointing device on the Linux desktop.

USE CASE 4

Rebind keys on a non-standard keyboard layout to match your typing muscle memory without modifying per-app settings.

Tech stack

PythonLinuxX11Wayland

Getting it running

Difficulty · easy Time to first run · 30min

Requires enabling the background system service after install so mappings persist across reboots.

License information was not mentioned in the explanation.

In plain English

Input Remapper is a Linux desktop application that lets you change how your input devices behave. You can remap keys on a keyboard, reassign buttons on a gamepad or mouse, redirect joystick movements, and configure triggers or scroll wheels. Any input can be mapped to any other input: a keyboard key can trigger a mouse movement, a gamepad button can send a key combination, and so on. The tool works on both X11 and Wayland, the two main display systems used on Linux desktops. It runs as a background system service and intercepts device input at a low level, so mappings apply across all applications without needing per-app configuration. A graphical interface lets you set up and manage your mappings without editing configuration files by hand. Beyond simple remapping, the tool supports programmable macros: sequences of keystrokes or actions that are triggered by a single button press or joystick event. Separate documentation pages linked from the README cover macro syntax and example configurations. Installation varies by distribution. On Ubuntu and Debian, a prebuilt .deb package is available on the releases page, and it is also in the official Debian and Ubuntu repositories. Fedora and Arch users can install it through their standard package managers. For other Linux distributions, the README lists the Python dependencies needed to build and install it manually using pip and an included install script. Version 2.0 and later require Ubuntu 22.04 or an equivalent. After installation, the background service needs to be enabled once so that mappings are active automatically after each reboot.

Copy-paste prompts

Prompt 1
Using input-remapper, create a mapping that turns my Xbox controller's left joystick into mouse movement and the A button into a left click.
Prompt 2
Write an input-remapper macro that types my full email address when I press a single extra key on my keyboard.
Prompt 3
Set up input-remapper on Ubuntu 22.04 so my numpad keys trigger volume controls and media playback shortcuts system-wide.
Prompt 4
Show me how to configure input-remapper to remap a gamepad trigger axis to scroll wheel up/down for browsing.
Open on GitHub → Explain another repo

← sezanzeb on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.