Сделать беспроводную клавиатуру всегда использовать указанную раскладку

Это действительно должен быть комментарий к ответу на вопрос. Как навсегда назначить клавиатуре 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://superuser.com/questions/249064/udev-rule-to-auto-load-keyboard-layout-when-usb-keyboard-plugged-in

https://stackoverflow.com/questions/10410462/set-keyboard-layout-using-pyudev#10727557 .

Как автоматически изменить раскладку системной клавиатуры при подключении внешней клавиатуры?

1
задан 10 October 2017 в 23:46

1 ответ

Насколько я знаю (который не является очень), все решения, включающие , 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 идентификатора устройства аппаратным средствам, я нашел, что более безопасно присвоить тот же код раскладки клавиатуры обоим из тех идентификаторов устройства.

1
ответ дан 10 October 2017 в 23:46

Другие вопросы по тегам:

Похожие вопросы: