
這確實應該是對問題答覆的評論如何為 USB 鍵盤永久分配不同的鍵盤佈局?由於無法發表評論,這是新問題,我希望@Sadi 正在閱讀它:
此後我的無線鍵盤和滑鼠停止工作。這可能與我的裝置名稱中不包含字串“USB Keyboard”有關。
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 分配相同的鍵盤佈局代碼會更安全。