跳转至内容

输入重映射工具

来自 ArchWiki


在 X 或 Wayland 环境中,大多数重映射任务可以通过本地 XKB 配置完成,请参阅 X keyboard extension#Local XKB folder。关于在 Linux 控制台中重映射按键,请参阅 Linux console/Keyboard configuration。对于报告错误键码的键盘或设备,请参阅 Map scancodes to keycodes

某些特定的配置或行为使用软件守护进程来转换输入事件。本页面列出了可用于重新配置来自键盘、鼠标和其他硬件输入事件的软件。

工具

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 输入设备按键事件的守护进程。该工具可以重映射键盘和鼠标事件。它可以映射到重复动作(例如,执行双击),并且可以在按钮按下时生成事件(例如,在按住后退按钮时生成滚轮向上事件)。

此外,还可以将组合键重映射为组合键,但这尚未合并,可在 pronobis 的分支中获得。请参阅 此处

evsieve

evsieve (evsieveAUR) — 一个底层实用程序,可以从 Linux 事件设备 (evdev) 读取事件并将其写入虚拟事件设备 (uinput),并在过程中对事件进行简单的操作。支持 Wayland。evsieve 特别旨在与 Qemu 的 evdev-passthrough 功能配合使用。

kbct

kbct (kbct-gitAUR) — Linux 键盘自定义工具。尽管名称如此,它也支持鼠标事件。该工具允许你将一个事件(键盘或鼠标按钮)映射到另一个事件。你可以定义多个“层” (layers) —— 根据你与输入键一起按下的修饰键来决定映射列表。遗憾的是,目前 kbct 不允许生成多按钮事件。请参阅 [1]

安装后,根据需要编辑 /etc/kbct/config.yml,然后 启动 kbct.service

keyd

keyd (keyd) — 一个为 Linux 提供的按键重映射守护进程,使用灵活的系统级守护进程,通过内核级输入原语 (evdev, uinput) 重映射按键。keyd 既适用于图形环境(如 X11 和 Wayland),也适用于 Linux 虚拟控制台。阅读项目的 README 以了解 keyd 与类似软件的对比详细信息。

Input Remapper

Input Remapper (input-remapper-gitAUR) — 一个提供 GUI 和 CLI 以配置输入设备重映射的实用程序。同时支持 X 和 Wayland。

makima

makima (makima-binAUR) — 一个用于为键盘、鼠标和控制器重映射并创建宏的 Linux 守护进程。使用 evdev 接口。通过在 ~/.config/makima 中放置 device_name.toml 文件为每个设备进行配置,并且还支持针对每个应用程序的配置 device_name::window_class.toml(仅限 X11, Sway, Hyprland 和 Niri)。

wtype

wtype (wtype) — 适用于 Wayland 的 xdotool type(需要合成器支持 虚拟键盘协议)。

其他

  • Hawck — 一个低级按键重绑定守护进程。
https://github.com/snyball/Hawck || hawck-gitAUR
  • IMWheel — 一个 X11 工具,可以根据按下的修饰键并针对每个应用程序单独重映射鼠标滚轮事件。
https://imwheel.sourceforge.net/ || imwheel
https://gitlab.com/interception/linux/tools || interception-tools
  • wayland-mouse-mapper — 一个在 Wayland 上将鼠标按钮映射到按键的小脚本。
https://github.com/mathportillo/wayland-mouse-mapper || 未打包? 在 AUR 中搜索
  • evmapy — 一个用 Python 编写的 evdev 事件映射器。
https://github.com/kempniu/evmapy || 未打包? 在 AUR 中搜索
  • python-evdev — 一个允许你在 Linux 上读写输入事件的实用程序。事件可以是按键或按钮按下、鼠标移动或触摸屏轻触。
https://python-evdev.readthedocs.io/en/latest/ || python-evdev
  • kanata — 一个用 Rust 编写的跨平台、与显示服务器无关的键盘重映射工具。
https://github.com/jtroo/kanata kanata || kanataAUR
  • kmonad — 一个先进的键盘重映射工具守护进程。
https://github.com/kmonad/kmonad || kmonad
  • noinputs — 一个用于列出并禁用 (inhibit) 输入设备的实用程序。
https://gitlab.com/S410/noinputs || noinputs-gitAUR
  • xremap — 使用 evdev 和 uinput 为 X11 和 Wayland 提供的按键重映射工具。
https://github.com/xremap/xremap || 多个软件包
  • keymapper — 一个跨平台的上下文感知按键重映射工具(同时适用于 X11 和 Wayland)。
https://github.com/houmain/keymapper || keymapperAUR
  • Keyshift — 针对 Linux 的高性能键盘分层和重映射软件。
https://github.com/hirak99/keyshift/ || keyshiftAUR

测试

  • evtest (evtest) — 一个可以在你按下按钮时显示按钮名称的实用程序,这在配置重映射工具时很有帮助。
  • wev (wev) — 一个用于在 Wayland 中查看输入事件的实用程序,类似于 xev

通过使用 evsieve --input /dev/input/event* --print,你可以看到计算机上产生的所有事件。

另一种测试键盘按钮的方法是使用在线网站。大多数此类测试器无法区分左右修饰键。一个可以区分的例子是:https://stendec.io/

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.