# sezanzeb/input-remapper

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/sezanzeb-input-remapper).**

5,389 stars · 211 forks · Python · gpl-3.0

## Links

- GitHub: https://github.com/sezanzeb/input-remapper
- awesome-repositories: https://awesome-repositories.com/repository/sezanzeb-input-remapper.md

## Topics

`gamepad` `gaming` `keyboard` `keyboard-shortcuts` `linux` `mouse`

## Description

Input Remapper is a Linux tool that reassigns physical keys, buttons, and axes on keyboards, mice, and gamepads to custom actions or keypresses. It intercepts raw input events at the kernel level and injects remapped events through synthetic devices, enabling real-time customization without modifying system-wide settings.

The tool supports modifier-aware key combination mapping, allowing complex shortcuts that preserve modifier timing. It also provides gamepad-to-keyboard mapping, mouse button reconfiguration, keyboard layout enhancement, and accessibility input customizations. A daemon-client architecture separates the persistent event-handling background process from a graphical interface for configuration.

Configuration is rule-based, stored in JSON or YAML files that define how each input is transformed through a user-space pipeline. This design allows for persistent, shareable remapping presets across sessions.

## Tags

### Operating Systems & Systems Programming

- [Linux](https://awesome-repositories.com/f/operating-systems-systems-programming/input-remappers/linux.md) — A Linux tool that reassigns physical keys, buttons, and axes on input devices using evdev and uinput.
- [Input Event Interception](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/input-event-interception.md) — Captures raw input events from Linux evdev devices at the kernel level before system processing.
- [Synthetic Input Device Injectors](https://awesome-repositories.com/f/operating-systems-systems-programming/synthetic-input-device-injectors.md) — Creates synthetic input devices via the uinput kernel module to inject remapped events into the system.

### Software Engineering & Architecture

- [Daemon-Client Structures](https://awesome-repositories.com/f/software-engineering-architecture/client-server-architecture/daemon-client-structures.md) — Splits the input remapping system into a persistent background daemon and a graphical configuration client.
- [Configuration-Driven Rule Engines](https://awesome-repositories.com/f/software-engineering-architecture/configuration-driven-rule-engines.md) — Provides a rule engine that parses JSON/YAML configuration files to define input remapping rules at runtime.
- [User-Space Processing Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/user-space-processing-pipelines.md) — Transforms input events through a series of user-space stages that apply mapping rules before injection.

### Development Tools & Productivity

- [Keyboard Mappers](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-customization/keyboard-mappers.md) — Reassigns individual keyboard keys to different keypresses or macros for personalized typing and shortcuts.

### Hardware & IoT

- [Gamepad Button Reassigners](https://awesome-repositories.com/f/hardware-iot/gamepad-button-reassigners.md) — Maps gamepad buttons and axes to keyboard keys, mouse actions, or other gamepad outputs for custom controls.
- [Gamepad-to-Keyboard Mappings](https://awesome-repositories.com/f/hardware-iot/gamepad-to-keyboard-mappings.md) — Maps gamepad buttons and joysticks to emulate keyboard keys and mouse movements for game compatibility.
- [Input Remapping](https://awesome-repositories.com/f/hardware-iot/input-behavior-configurators/input-configurators/input-remapping.md) — Reassigns physical keys or buttons on input devices to trigger different keyboard or mouse actions.
- [Accessibility Customizations](https://awesome-repositories.com/f/hardware-iot/input-behavior-configurators/input-configurators/input-remapping/accessibility-customizations.md) — Enables accessibility adaptations by remapping keys to easier positions for users with disabilities.
- [Modifier-Aware Key Mappings](https://awesome-repositories.com/f/hardware-iot/modifier-aware-key-mappings.md) — Preserves modifier key order and timing when remapping key combinations for complex shortcuts.
- [Mouse Button Reconfigurations](https://awesome-repositories.com/f/hardware-iot/mouse-button-reconfigurations.md) — Customizes mouse button assignments for left-handed use, gaming, or productivity workflows.

### User Interface & Experience

- [Keyboard Layout Configurations](https://awesome-repositories.com/f/user-interface-experience/component-utilities/keyboard-shortcuts/keyboard-layout-configurations.md) — Modifies keyboard layout to create custom key bindings for frequently used applications or games.
- [Native Input Mappers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/native-input-mappers.md) — Relies on Linux evdev and uinput to intercept and modify input events in real time.
