← 全部工具

rennerdo30/remapper

热度 75 更新于 开发与构建

Cross-platform input remapping tool in Rust: map keyboard, mouse and gamepad events to virtual devices with simple remaps, macros, combos and tap/hold, driven by a CLI, an iced GUI or a background service.

githubauto-collected

安装

暂未验证可直接使用的安装命令,请查看项目官方文档或 Release。

Remapper

Cross-platform input remapping tool written in Rust.

Remapper lets you map input events from physical devices (keyboard, mouse, gamepad) to virtual output devices, with support for simple remaps, macros, combos, and tap/hold behavior.

Features

  • Simple 1:1 remapping
  • Macro sequences
  • Tap/hold conditional mappings
  • Combo/chord mappings
  • CLI workflow for creating and running profiles
  • GUI built with iced
  • Background daemon, plus systemd user service management on Linux
  • Hot-plug device monitoring
  • JSON configuration with migration support

Platform support

| Platform | Input | Virtual output | |----------|-------|----------------| | Linux | evdev (/dev/input/) | uinput (/dev/uinput) - keyboard, mouse, gamepad | | Windows | Raw Input API | SendInput for keyboard/mouse, gamepads via the ViGEmBus driver | | macOS | IOKit HID Manager | Core Graphics events for keyboard/mouse - virtual gamepad output is not supported |

Gamepads are additionally read through gilrs on all platforms.

Installation

Build from source

git clone https://github.com/rennerdo30/remapper.git
cd remapper
cargo build --release

The binary will be at target/release/remapper.

Linux runtime requirements

  • libudev
  • access to /dev/input/
  • access to /dev/uinput

Optional udev rules are provided in udev/99-remapper.rules. A PKGBUILD for Arch-based distributions and unit files under systemd/ are included as well.

Windows

Virtual gamepad output requires the ViGEmBus driver. Without it, keyboard and mouse output still work and gamepad mappings are reported as unsupported.