
이것은 실제로 질문에 대한 답변에 대한 의견이어야합니다USB 키보드에 다른 키보드 레이아웃을 영구적으로 할당하는 방법은 무엇입니까?댓글을 달 수 없기 때문에 여기에 새로운 질문이 있습니다. @Sadi가 이 질문을 읽었으면 좋겠습니다.
그 후 무선 키보드와 마우스가 작동을 멈췄습니다. 내 장치 이름에 "USB 키보드"라는 문자열이 포함되어 있지 않기 때문일 수 있습니다.
lsusb
Bus 003 Device 088: ID 046a:010b Cherry GmbH
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ MLK Wireless Desktop id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ MLK Wireless Desktop id=14 [slave keyboard (3)]
따라서 내 GREP 라인은 다음과 같습니다.
xinput -list | grep 'Wireless Desktop.*keyboard' "$@"
레이아웃을 변경하려면 ID와 유형을 기록해 두십시오.
setxkbmap -device 14 {language code}
컴퓨터가 이 장치를 인식하고 연결한 후 올바른 언어를 사용할 수 있도록 영구적으로 수정하는 방법에 대한 아이디어가 있습니까??
여기에 가능한 단서가 있습니다:
답변1
내가 아는 한 (많지는 않지만) 관련된 모든 솔루션은udev.규칙최근에 작동이 중지되었으며 현재 작동하는 것으로 보이는 유일한 솔루션은 사용자가 로그인하기 전에 두 번째 키보드가 연결되어 있다고 가정하는 간단한 시작 스크립트입니다. 그렇지 않으면 사용자가 나중에 해당 스크립트를 수동으로 실행해야 합니다.
USB 키보드에서 작동하도록 테스트된 스크립트(여기:https://askubuntu.com/a/337431/47343) 물론 수정되어야합니다무선 키보드, 이는 아래와 같은 것일 수 있습니다.
참고 1: 원하는 키보드 레이아웃 코드를 입력하는 것 외에도 작성자가 "아마추어"(그리고 거의 초급 수준)이므로 시행착오(예: 먼저 터미널 창에 각 줄을 입력하는 등)가 필요할 수도 있습니다. 스크립트 작성자" ;-)
#!/bin/bash
extkbd=`xinput -list | grep -c "Wireless.*keyboard"`
if [[ "$extkbd" -gt 0 ]]
then
extkbd_id1=`xinput -list | grep "Virtual core keyboard" | awk -F'=' '{print $2}' | cut -c 1-2`
extkbd_id2=`xinput -list | grep "Wireless.*keyboard" | awk -F'=' '{print $2}' | cut -c 1-2`
extkbd_layout="<kbdlayoutcode>"
setxkbmap -device "${extkbd_id1}" -layout "${extkbd_layout}"
setxkbmap -device "${extkbd_id2}" -layout "${extkbd_layout}"
notify-send -i input-keyboard "Wireless Keyboard" "is ready and set for use..."
fi
exit 0
참고 2: 시스템이 하나의 하드웨어에 2개의 장치 ID를 할당하는 것처럼 보이므로 두 장치 ID 모두에 동일한 키보드 레이아웃 코드를 할당하는 것이 더 안전하다는 것을 알았습니다.