当前位置:首页>Linux>Linux实现键盘映射

Linux实现键盘映射

  • 2026-09-30 07:28:44
Linux实现键盘映射

Linux通过keyd实现键盘映射步骤如下

0x01 编译与安装keyd

详细教程请参阅:keyd GitHub[1],可以自己编译或者使用包管理器安装。

git clone https://github.com/rvaiya/keydcd keydmake && sudo make install

0x02 创建系统服务

#上面编译安装会默认创建系统服务,只需检查文件是否存在且一致,如果不存在则创建一个。cat  /usr/local/lib/systemd/system/keyd.service <<[Unit]Description=键盘映射守护进程[Service]Type=simpleExecStart=/usr/local/bin/keyd[Install]WantedBy=multi-user.targetEOF

0x03 配置keyd

cat > /etc/keyd/default.conf << EOF[ids]*# 启用内置 Dvorak 布局include layouts/dvorak[global]default_layout = dvorak[main]# 设置Caps Lock为导航层触发键capslock = layer(nav_layer)[nav_layer]# 映射物理键 A/W/S/D 到方向键a = leftw = ups = downd = rightspace = capslockq = homee = endc = copyv = pastex = cut# 如果对于wps等应用不生效可以使用以下配置:#c = C-c    #表示按下Ctrl+c#v = C-v#x = C-xEOF

在 nav_layer 中,物理键映射被转化为方向键,同时加入常用的剪切、复制、粘贴操作,提升输入效率。

0x04 开启服务以及配置开机自启

注意:由于 keyd 会修改主输入设备,因此如果配置文件错误,可能会导致机器无法使用。如果您遇到这种情况,按下panic键<backspace>+<esc>+<enter>将强制keyd终止。

systemctl start keyd systemctl enable keyd

0x05 操作命令与帮助

keyd 常用命令、用途与注意事项,便于快速查看与脚本集成。

常用命令示例:

命令
说明
keyd -h
显示帮助信息及命令摘要。
keyd monitor [-t]
实时打印键事件;加 -t 显示事件间隔,便于调试时序。
keyd listen
打印守护进程的层(layer)状态变化,适合脚本或监控。
keyd check [...]
校验指定或 /etc/keyd/*.conf 的配置语法是否正确。
keyd reload
在不重启服务的情况下重新加载配置。
keyd list-keys
列出支持的按键名,供编写配置时参考。
keyd bind  [...]
动态添加绑定到已加载的配置,配合脚本可实现即时修改。
重要提示与建议:1.在修改配置前备份 /etc/keyd/ 下的文件:sudo cp -r /etc/keyd /etc/keyd.bak2.出现无法正常使用键盘的情况,可按下panic键<backspace>+<esc>+<enter>将强制keyd终止。3.使用 listen 与 monitor 调试复杂层或复合层(例如 control+alt)时,可在终端记录输出,便于定位按键冲突。

配置示例(快速参考):

1.  切换布局的示例

[main]esc = layer(esc)[dvorak]a = as = o...[esc]q = toggle(dvorak)

[main] 部分,esc = layer(esc) 表示按下 Esc 键 会触发一个名为 esc 的 层(layer)。[esc] 部分,q = toggle(dvorak) 意味着按下 Esc 层中的 Q 键 会 切换到 Dvorak 布局。也就是说,当你按下 Esc+Q 时,布局会在标准布局和 Dvorak 布局之间切换。

这个功能允许在同一套键盘布局下,通过简单的键组合切换到其他布局,比如 Dvorak。

2. 复合层(Composite Layer)示例

[control+alt]h = left

复合层是通过组合多个按键来激活某个功能,这里是 Control + Alt。

在 [control+alt] 部分,h = left 意味着当你同时按下 Control + Alt + H 时,H 键 会表现为 左箭头键(即 h 的功能会变成左方向键)。

引用链接

[1] keyd GitHub: https://github.com/rvaiya/keyd

最新文章

随机文章