【教程】使用 Keyd 将 Copilot 键映射为可用的组合键并修复触摸板防误触失效问题
2026/6/2
前段时间,我将开发工作迁移到了新买的机械革命无界 15X 上,并切换到了 Arch Linux 系统。使用体验非常的棒,但是键盘右下角的 Copilot 键就显得有点碍眼了——毕竟 Linux 自然不会有 Copilot 功能,但是这个键的逻辑又是写死在硬件上的,并不太好自定义。
查阅资料得知,Copilot 键的逻辑是按下后立刻连续发送两个按下-松开左 Shift + 左 Meta/Win + F23 组合键的键盘事件。那么很直白的一个思路就是,在 KDE 的快捷键设置里面把这个组合绑定到某个快捷键上面即可。
但很遗憾,这样不行。查找资料得知,KDE 对 F23 按键处理目前存在 Bug,没有办法正常创建包含 F23 的组合键。那么,我们就只能另辟蹊径,将这个组合键映射成一个 KDE 可以正常处理的组合键,然后再添加对应的快捷键。
这里,我使用了 Keyd 来实现这个映射。
安装 Keyd
Arch Linux 安装 Keyd 很简单,直接使用 pacman 安装即可。
pacman -S keyd安装完后,记得启动 Keyd 服务。
systemctl enable --now keyd配置 Keyd
接下来,我们写一个配置文件。这里我们可以参考这个教程中的方法,写出如下的配置文件:
[ids]
*
[main]
leftmeta+leftshift+f23 = macro(M-S-f24)其中, [ids] 部分表示对所有键盘启用映射,[main] 是 Keyd 的默认布局部分。这里,我们将 leftmeta+leftshift+f23 映射为一个 M-S-f24 的宏,即按下Meta/Win + Shift + F24 组合键。
设置完成之后,使用 sudo keyd reload 重新加载配置。
这时候,我们可以在 KDE 的快捷键设置里面添加一个快捷键,将 Meta-Shift-f24 组合键绑定到某个快捷键上面即可。这里我绑定给了 Ghostty 的 Quick Terminal 功能。
我触摸板防误触呢?
这时候,使用笔记本的同学就会发现一个问题:我触摸板防误触呢?
这里我们就要引入一个小知识了。在目前的主流发行版/DE 里,输入输出相关都由 libinput 来处理,其中就包括了触摸板防误触。但是,这个功能默认只对内置键盘生效,也即只有 AttrKeyboardIntegration=internal 的键盘输入时,才会触发防误触功能,暂时禁用触摸板。
这里我们安装一个工具 libinput-tools 来查看触摸板的属性。
pacman -S libinput-tools
sudo libinput list-devices那么我们就会发现,有一个名为 keyd virtual keyboard 的虚拟键盘设备。不难想到,Keyd应该就是把物理键盘的输入事件映射到这个虚拟键盘设备上,同时实现修改按键映射的功能。
这样,问题就很明确了。libinput 将 keyd virtual keyboard 设备识别为了外置键盘,因此 keyd virtual keyboard 设备产生的键盘输入事件,就不会触发防误触功能。
解决方法就是修改配置文件,将这个设备的属性设置为 AttrKeyboardIntegration=internal。这里我们需要修改 /etc/libinput/local-overrides.quirks 文件。这是 libinput 唯一会加载的用户配置文件,用于实现对发行版自带 Quirks 的覆写。
这里我们添加如下条目:
[Keyd Virtual Keyboard]
MatchName=keyd virtual keyboard*
MatchUdevType=keyboard
AttrKeyboardIntegration=internal保存后,使用 libinput quirks list /dev/eventX 查看配置是否生效。
这里的 eventX 是 keyd virtual keyboard 设备的路径,需要根据 libinput list-devices 输出的路径替换。
如果一切正常,应该会输出如下内容:
AttrKeyboardIntegration=internal
这时,再去 KDE 的触摸板设置里面打开防误触功能,就可以正常工作了。
【教程】使用 Keyd 将 Copilot 键映射为可用的组合键并修复触摸板防误触失效问题
https://www.allenyou.wang/post/36本文作者
秋实-Allenyou
授权协议
CC BY-NC-SA 4.0
加载评论中……