xorg:2 个不同布局的键盘

xorg:2 个不同布局的键盘

我一直在尝试配置我的笔记本电脑,以便内置键盘为葡萄牙语,而我的 USB 键盘为英语(国际)。我一直在做一些研究,并得到了一个解决方案,当 xorg 服务器启动后插入 USB 键盘时,该解决方案可以完美地工作。在这种情况下,两个键盘都有各自的布局。但是如果我在插入 USB 键盘的情况下启动 xorg 服务器,两个键盘最终都会显示英语布局。

现在我的/etc/X11/xorg.conf.d/30-keyboard.conf情况如下:

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    MatchProduct "AT Translated Set 2 keyboard"
    Driver "evdev"
    Option "XkbModel" "abnt2"
    Option "XkbLayout" "br"
EndSection

Section "InputClass"
    Identifier "usb-keyboard"
    MatchIsKeyboard "on"
    MatchProduct "Evision RGB Keyboard"
    Driver "evdev"
    Option "XkbModel" "pc104"
    Option "XkbLayout" "us"
    Option "XkbVariant" "altgr-intl"
EndSection

我真的不明白为什么当我启动xorg服务器然后插入usb键盘时它运行良好,但是当我在已经插入usb键盘的情况下启动xorg服务器时它不起作用。

我尝试将配置分解为两个单独的文件30-system-keyboard.conf40-usb-keyboard.conf以便一个配置在另一个配置之后加载,但结果是相同的。

有人可以帮我解决这个问题,以便它在所有情况下都有效吗?

通过设置布局setxkbmap -device ID不起作用,因为 ID 发生了变化。

答案1

我有类似的需求,我可以用以下udev规则来解决/etc/udev/rules.d/70-keyboard.rules

ACTION!="add|change", GOTO="keyboard_end"
SUBSYSTEM!="input", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"

ENV{ID_INPUT_KEY}=="?*", DRIVERS=="usb", ATTRS{idVendor}=="413c", ATTRS{idProduct}=="2003", ENV{XKBMODEL}="pc105", ENV{XKBLAYOUT}="fr", ENV{XKBVARIANT}="oss", ENV{XKBOPTIONS}="nbsp:level3n,lv3:ralt_switch,compose:menu,terminate:ctrl_alt_bksp"

LABEL="keyboard_end"

当 X 启动之前插入键盘时,它可以正常工作。

您必须复制主线,将idVendoridProduct值替换为键盘的值,XKBMODEL并将XKBLAYOUTXKBVARIANTXKBOPTIONS参数替换为与您要使用的映射匹配的值。

相关内容