当您连接 USB 键盘时,什么会重置 Linux 中的键盘设置?

当您连接 USB 键盘时,什么会重置 Linux 中的键盘设置?

重现步骤

  1. 创建一个文件keyb,其中包含要禁用大写锁定的内容(通过将其转换为 mod3):
    add    mod3 = Mode_switch
    keycode  66 = Mode_switch
    
  2. 使用 xmodmap 加载它(忽略任何错误,它无论如何都应该可以工作)
    xmodmap keyb
    
  3. 按下大写锁定键,确认它不再像常规大写锁定键一样工作
  4. 插入外部 USB 键盘。如果这是台式机,只需拔下并重新插入同一个键盘即可。
  5. 按大写锁定键。现在它恢复正常状态。请注意,这是不是每个键盘的设置。Caps Lock 会在全部键盘,而不仅仅是新插入的键盘。

我期望发生什么

我的设置保持原样。有什么理由只用一些默认设置覆盖用户设置的内容?

我实际看到的

当连接任何新键盘时,所有键盘都会重置为默认映射。

更多的…

xmodmap无论我用还是用 来设置,自定义都会被丢弃xkbcomp

仅在其他地方禁用大写锁定(例如 Xorg 配置)的解决方案不会有帮助,因为我有大量的自定义设置。这只是一个简单的演示,显示设置实际上已被重置。

理想情况下,修复不应该需要我有 root 访问权限(为什么用户的键盘设置只能用于 root?),但即使是需要 root 的解决方案,我也会非常高兴。

我尝试使用一个 cronjob 每分钟重新设置一次我的设置,但是更改设置会导致输入暂时冻结(持续xmodmap几秒钟),所以这不起作用。

我怀疑是udevsystemdsystemd它插手了一切),但我一直无法找到是什么在做什么,在哪里做。这已经是一个多年的错误了,不幸的是我不记得我尝试过的所有方法。

重新设置插入 USB 时触发的设置是可以的,但不是很好,因为除了上面 100% 可重复的步骤之外,它也会“随机”发生(可能是某些东西重新启动,或者其他什么)。

答案1

根据 Ubuntu 错误报告 #1899206:Xorg 会话中的热插拔/重新连接/恢复时未应用输入设备设置 从 2020 年 12 月开始,问题出在软件包上 mutter,应该在版本中修复3.38.2-1ubuntu1~20.10.1

在您的存储库中搜索此版本。如果尚未找到,请等待它到达,或按照错误报告中的说明从源代码构建它。如果您的发行版不是 Ubuntu,则必须调整说明。


如果上述方法对你不起作用,可以查看旧错误报告 #295990:连接 USB 键盘后键盘布局重置 可能有助于解决一些问题。

相关内容