在 X 或 Wayland 环境中,多数重映射任务可通过本地 XKB 配置完成,参见 X keyboard extension#Local XKB folder。对于 Linux 控制台的键位重映射,请参阅 Linux 控制台/键盘配置。若键盘设备报告了错误的键码,参见扫描码映射至键位码。
某些特殊配置需通过软件守护进程转换输入事件。本页列出了可用于重映射键盘、鼠标等硬件输入事件的工具。
工具
evremap
evremap(evremap-gitAUR)⸺Linux 中 Wayland 下的键盘输入重映射工具。支持以下重映射方式:
- 将
CapsLock
键映射为组合功能:按住时输出Ctrl
,轻按时输出Esc
。 - 实现从 n 个键到 m 个键的映射(如
F3
→Ctrl+c
,Alt+Left
→Home
)。
安装后需创建配置文件 /etc/evremap.toml
(仓库示例),或修改 evremap.service
指定配置文件路径。最后启动该服务。
evdevremapkeys
evdevremapkeys(evdevremapkeys-gitAUR)⸺Linux 输入设备按键事件重映射守护进程。支持以下功能:
- 重映射键盘与鼠标事件。
- 实现重复动作映射(如模拟双击操作)。
- 按键持续触发(如按住返回(Back)侧键时持续生成滚轮上滑事件)。
组合键到组合键的映射功能目前尚未合并至主分支,需使用 pronobis 的分叉版本实现,详见此处。
evsieve
evsieve(evsieveAUR)⸺能够读取 Linux 事件设备(evdev)的输入事件,并将其写入虚拟事件设备(uinput),在传递过程中对事件进行简单处理的底层工具。兼容 Wayland 环境。该工具尤其适合与 Qemu 的 evdev-passthrough
功能结合使用。
kbct
kbct(kbct-gitAUR)⸺Keyboard Customization Tool for Linux,Linux 键盘自定义工具。尽管名称如此,亦支持鼠标事件。支持以下功能:
- 实现键盘或鼠标按键事件到其他事件的映射。
- 可定义多组映射层⸺根据输入时按下的修饰键切换不同映射列表。
安装后按需编辑 /etc/kbct/config.yml
配置文件,随后启动 kbct.service
。
keyd
keyd(keyd包)⸺基于内核级输入原语(evdev、uinput)的 Linux 系统级键位重映射守护进程。支持特性包括:
- 跨环境兼容:适用于 X11、Wayland 图形环境及 Linux 虚拟控制台。
- 多层映射:通过修饰键实现动态键位配置切换。
- 低延迟:直接操作内核事件流,无需用户空间转发。
建议阅读项目 README 了解与其他重映射工具的详细对比分析。
Input Remapper
Input Remapper(input-remapper-gitAUR)⸺同时提供图形界面和命令行界面的输入设备重映射配置工具,同时兼容 X 与 Wayland 环境。
wtype
wtype(wtype包)⸺Wayland 环境下的 xdotool 输入模拟工具(需混成器支持虚拟键盘协议)。
其他工具
- Hawck⸺底层按键重绑定守护进程
- IMWheel⸺X11 环境下可根据修饰键状态及应用程序单独重映射鼠标滚轮事件的工具
- Interception-tools⸺多功能输入处理工具套件,支持多种插件扩展
- 鼠标按键#用户工具⸺硬件相关的鼠标按键配置工具列表
- wayland-mouse-mapper⸺Wayland 环境下将鼠标按键映射为按键操作的小型脚本
- evmapy⸺基于 Python 的 evdev 事件映射工具(尚未加入 AUR)
- python-evdev⸺Linux 输入事件读写工具库,支持处理按键、鼠标移动及触屏点击等事件
- noinputs(noinputs-gitAUR)⸺输入设备管理工具,支持列出及禁用设备
- xremap(xremapAUR)⸺基于 evdev 和 uinput 的 X11/Wayland 键位重映射工具
测试
通过 evsieve --input /dev/input/event* --print
命令可实时查看计算机发出的所有输入事件流。
另一种测试方案是使用在线键盘检测网站。需注意多数此类工具无法区分左右修饰键,推荐支持左右键检测的示例站点,例如 https://stendec.io/。