내장 키보드는 포르투갈어이고 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.conf
구성을 두 개의 개별 파일로 분할 하여 40-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가 시작되기 전에 키보드를 연결하면 제대로 작동합니다.
메인 라인을 복사하고, idVendor
및 idProduct
값을 키보드의 값으로 바꾸고, 및 XKBMODEL
매개 변수를 사용하려는 매핑과 일치하는 값으로 바꿔야 합니다.XKBLAYOUT
XKBVARIANT
XKBOPTIONS