Это действительно должен быть комментарий к ответу на вопрос. Как навсегда назначить клавиатуре USB другую раскладку клавиатуры? Поскольку комментирование невозможно, вот новый вопрос, я надеюсь @ Сади читает:
Моя беспроводная клавиатура и мышь перестали работать после этого. Это может быть связано с тем, что строка «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' "$@"
Чтобы изменить макет, просто запишите идентификатор и введите
setxkbmap -device 14 {language code}
Любые идеи, как исправить это навсегда, чтобы компьютер распознал это устройство и имел его с правильным языком, готовым после подключения ??
Возможные подсказки здесь:
https://stackoverflow.com/questions/10410462/set-keyboard-layout-using-pyudev#10727557 .
Как автоматически изменить раскладку системной клавиатуры при подключении внешней клавиатуры?
Насколько я знаю (который не является очень), все решения, включающие , udev.rules прекратил работать недавно, и в данный момент единственным решением, которое, кажется, работает, является простой сценарий запуска, который предполагает, что вторая клавиатура подключена, прежде чем пользователь входит в систему, или иначе пользователь должен вручную запустить тот скрипт позже.
сценарий, протестированный для работы на клавиатуры 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 идентификатора устройства аппаратным средствам, я нашел, что более безопасно присвоить тот же код раскладки клавиатуры обоим из тех идентификаторов устройства.