自动加载硬件特定的键盘配置

自动加载硬件特定的键盘配置

我有一个特殊的键盘,我想用它书写时使用的配置与用其他键盘(例如笔记本电脑的键盘)书写时使用的配置不同。我想同时保持两种配置处于活动状态。

我已经有一个xkbcomp带有关联conf文件的命令,我可以运行它并得到我想要的结果。

但是,我需要手动运行该命令(它在脚本中,但我需要手动运行该脚本)。

登录时

我可以在登录时自动运行脚本,但那时键盘可能已断开连接。xkbcomp需要一个device_id( -i) 来保存特定于该设备的配置(我使用 来获取该配置xinput)。这需要连接键盘。此外,在该会话的稍后阶段连接键盘(例如通过连接到扩展坞)将不起作用。

udev

所以我实施了一条 udev 规则。每次键盘连接时,无论是启动时、对接时还是物理连接 USB 时,udev 规则都会触发一次性 systemd 服务并加载配置。

问题是 udev 和 systemd 服务都以 root 身份运行。xkbcomp我使用的命令需要DISPLAY,而 root 没有。服务应该DISPLAY为该机器上正在使用的所有命令运行该命令(对吗?除了 root 之外的所有命令,也许?)。

我发现某种方式把所有东西都放到DISPLAYS机器上,但整个事情开始变得无法控制。一定有更简单的方法。

您如何看待该键盘上的输入始终使用该配置?无论它在登录时是否连接?

相关内容