После небольшого исследования я нашел решение, хотя я все еще открыт для других (возможно, более лучших) ответов.
Вот сценарий запуска (который можно добавить в приложения для запуска), который установит измененную переменную usbkbd_layout в usbkbd_layout на идентификаторы устройств usbkbd, найденные в xinput -list:
#!/bin/bash
usbkbd=`xinput -list | grep -c "USB Keyboard"`
if [[ "$usbkbd" -gt 0 ]]
then
usbkbd_ids=`xinput -list | grep "USB Keyboard" | awk -F'=' '{print $2}' | cut -c 1-2`
usbkbd_layout="tr(f)"
for ID in $usbkbd_ids
do
setxkbmap -device "${ID}" -layout "${usbkbd_layout}"
done
fi
exit 0
Этот сценарий весьма полезен (и более стабилен) для сценариев, когда пользователь начинает использовать ноутбук на рабочем столе (с внешней клавиатурой, мышью и монитором и т. д.), и его также можно запускать вручную всякий раз, когда внешняя клавиатура USB подключается ...
=========== ================================================== =============
сценарий запуска
Теперь я могу просто подключить свою USB-клавиатуру и автоматически использовать ее ( TR-F), при сохранении раскладки клавиатуры по умолчанию (TR-Q) на моем ноутбуке!
Вот файлы и их содержимое, которые делают это возможным:
/ etc / udev / rules.d / 00-usb-keyboard.rules
[f 2]/etc/udev/rules.d/00-usb-keyboard.rules
#!/bin/bash
/home/sadi/.bin/usb-keyboard-in &
/home/sadi/.bin/usb-keyboard- в
#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/sadi/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
usbkbd_id=`xinput -list | grep "USB Keyboard" | awk -F'=' '{print $2}' | cut -c 1-2 | head -1`
usbkbd_layout="tr(f)"
if [ "${usbkbd_id}" ]; then
gsettings set org.gnome.settings-daemon.plugins.keyboard active false
sleep 2
setxkbmap -device "${usbkbd_id}" -layout "${usbkbd_layout}"
fi
/home/sadi/.bin/usb-keyboard-in
#!/bin/bash
/home/sadi/.bin/usb-keyboard-out &
/home/sadi/.bin/usb -keyboard-out
#!/bin/bash
sleep 1
DISPLAY=":0.0"
HOME=/home/sadi/
XAUTHORITY=$HOME/.Xauthority
export DISPLAY XAUTHORITY HOME
gsettings set org.gnome.settings-daemon.plugins.keyboard active true
/home/sadi/.bin/usb-keyboard-out
Конечно, все четыре файла в вашем . "bin" должна иметь необходимые разрешения (читаемые и исполняемые), которые могут быть реализованы, например, с помощью команды Terminal, например chmod - 755 /home/sadi/.bin/usb-keyboard-*. Иногда после подключения USB-клавиатуры она по-прежнему использует ту же (по умолчанию) раскладку клавиатуры и переключается на заданный макет при второй попытке (возможно, где-то требуется немного больше времени сна). Специфическая компоновка клавиатуры USB не действует на экране входа в систему (когда вы выходите из системы). Если вы используете отдельный раздел для / home, то лучше было бы поместить четыре скрипта в корневой раздел, например. / usr / local / bin и соответственно изменить содержимое всех соответствующих файлов, так как иногда udev может искать эти файлы до того, как ваш / домашний раздел будет установлен и вызовет проблемы.ЗАКАЗАТЬ, ЧТОБЫ УСТАНОВИТЬ ЭТУ НАСТРОЙКУ К РАЗЛИЧНЫМ ТРЕБОВАНИЯМ:
Конечно, все четыре файла в вашей папке «bin» должны иметь необходимые разрешения (читаемые и исполняемые) который может быть реализован, например, с помощью команды Terminal, такой как chmod - 755 /home/sadi/.bin/usb-keyboard-* OWNER, и все имена пользовательских каталогов должны быть изменены с «sadi» на другое имя . Иногда после подключения USB-клавиатуры он все еще использует то же самое ( default) раскладка клавиатуры и переключается на указанный макет во второй попытке (возможно, где-то требуется немного больше времени сна). Значение для usbkbd_layout может быть любым другим допустимым выборомили используйте tasksel
sudo apt-get install tasksel
sudo tasksel
Проверьте xubuntu и снимите флажок ubuntu.
И удалите исходный рабочий стол gnome (после того как jrg's how-to) удалите пакет ubuntu-desktop
sudo apt-get remove ubuntu-desktop
После этого вы также сделаете apt-get autoremove:
sudo apt-get autoremove