Как изменить настройки клавиатуры активного пользователя с помощью udev и setxkbmap?

У меня есть клавиатура USB, которую я подключаю к своему рабочему столу. При его использовании, как правило, устанавливается вручную следующий параметр setxkbmap :

setxkbmap -option compose:ralt setxkbmap -option ctrl:swap_rwin_rctl setxkbmap -option ctrl:swap_lwin_lctl 

Поскольку я часто делаю это, я хотел бы автоматизировать процесс, используя правило udev . Следующее правило соответствует событию, когда я подключаю клавиатуру:

 ACTION=="add", SUBSYSTEM=="usb", DRIVER=="usb", ATTRS{idVendor}=="046a", ATTRS{idProduct}=="0023", RUN+="/home/cutuchiqueno/.local/bin/kbd_udev", OWNER="cutuchiqueno" 

скрипт, который является RUN, содержит три строки с начала этого вопроса:

 #!/bin/bash setxkbmap -option compose:ralt setxkbmap -option ctrl:swap_rwin_rctl setxkbmap -option ctrl:swap_lwin_lctl echo `date +%T` >> /home/cutuchiqueno/udevtest 

(Я добавил последнюю строку только для цели отладки). К сожалению, варианты не чередуются. Я могу себе представить, что это имеет какое-то отношение к параметрам среды, хотя я действительно не знаю, как подойти к проблеме.

One Solution collect form web for “Как изменить настройки клавиатуры активного пользователя с помощью udev и setxkbmap?”

Две модификации сделали этот конкретный случай:

для скрипта kbd необходим DISPLAY:0.0 дополнение

правило udev отреагировало на событие, которое было слишком рано. Я изменил подсистему на input .

и все сработало хорошо.

  • Версия X11 модуля ABI не соответствует версии сервера
  • HDI: Выключить экран за пределы типичного максимума?
  • Как заставить дисплей заснуть, когда экран заблокирован?
  • Порт HDMI определяется как DP
  • Информация Edid
  • Как получить список всех доступных раскладок клавиатуры в X.org?
  • Изменение поведения ключей-модификаторов по всей системе
  • Просмотр настроек fontconfig
  • Команда gnu screen для X
  • Застрявший пиксель на X
  • Есть ли способ остановить скринсейвер только на клавиатуре?
  • Linux и Unix - лучшая ОС в мире.