Xorg:多个键盘,一种配置

Xorg:多个键盘,一种配置

xmodmap在我的笔记本电脑上,我使用和调整一些键绑定和键盘首选项 xset。当我插入外部 USB 键盘时,该新键盘的配置是默认的,即没有我的调整。如果我再次xmodmap这样做xset,那么这些首选项也会应用于新插入的键盘,但在插入/拔出时,它们会再次重置为默认值。请注意,插入/拔出不会影响笔记本电脑键盘的配置,键盘在整个过程中保持调整。

问题:我怎样才能拥有xmodmap 和 xset 首选项集,适用于任何键盘(现在和将来插入)。

配置:基于 3.1.1 内核的 Arch Linux,Xorg 1.11.2,没有自制配置,窗口管理器:awesome 3.4.11,没有 kde 或 gnome 东西

谢谢!

答案1

@Patkos Csaba:它改变了:现在默认是你根本不需要配置任何东西,它会自动工作。在某种程度上,将 setxkbmap 添加到 .xinitrc 比更改服务器配置更容易。

现在你可以插入 USB 键盘或鼠标,让 X11 添加它并识别它,无需依赖 /dev/mice 或类似的东西。

现在我已经遇到了这个问题,恕我直言,完美的解决方案是通过某种方式告诉 Xorg 从当前连接的键盘继承新的键盘设置,或者告诉 setxkbmap 将选项设置为当前的服务器默认值未来的键盘。

到目前为止,我还没有找到任何方法可以做到这一点。避免再次运行 setxkbmap/xmodmap 的唯一方法是在配置新设备时编辑 hald 使用的默认设置,请参阅freebsd 文档,§6.4.2(节标题下方的某些段落有两个设置键盘默认值的示例)。另请参阅“选项 2”:Klaas Teschauer 的 hal 迁移教程。还有Stackoverflow 上的一个问题,其中包含有关在硬件添加上触发脚本的链接,如果您愿意这样做的话。

答案2

我设法通过使用 .xorg 生成的 Xorg 配置文件解决了这个问题localectl。我使用 dvorak/qwerty 布局,并使用大写锁定键作为额外的控制键。我以前在 .xinitrc 中有这个:

setxkbmap -layout us,us -variant dvorak, \
-option 'grp:alt_space_toggle' \
-option 'grp_led:caps' \
-option 'ctrl:nocaps'

为了在 Xorg 配置文件中获得等效的设置,我使用了

sudo localectl set-x11-keymap us,us "" dvorak, 'grp:alt_space_toggle,grp_led:caps,ctrl:nocaps'

其存储在文件中/etc/X11/xorg.conf.d/00-keyboard.conf

来自archwiki 键盘配置页面:

为了方便起见,可以使用 localectl 工具来代替手动编辑 X 配置文件。它将把配置保存在 /etc/X11/xorg.conf.d/00-keyboard.conf 中,不应手动编辑该文件,因为 localectl 会在下次启动时覆盖更改。

用法如下:

  $ localectl set-x11-keymap layout [model] [variant] [options]

答案3

我从未使用过它,但“usbd”似乎就是您正在寻找的。根据它的文档,它监视 USB 端口并针对特定更改执行用户命令。

这里是手册页

相关内容