在 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/。