Как изменить настройки клавиатуры активного пользователя с помощью 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 .

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

  • Аппаратное ускорение на интегрированной графике Intel 5500 и Debian приводит к нестабильной системе
  • Может ли X11 масштабироваться до виртуальных разрешений на экранах HiDPI / Retina, как это делает OS X?
  • Каким виртуальным терминалом является данный X-процесс?
  • Как заставить сервер X создавать определенные ключи и состояние?
  • xbacklight не работает на Debian Jessie, lenovo S10
  • Windows не отображается во втором мониторе. Debian ATI проприетарные драйверы
  • Как сообщить systemd-logind, что сеанс не простаивает, без использования среды рабочего стола или диспетчера сеансов?
  • Не удается запустить xserver - «Не удалось назначить любые подключенные устройства отображения на X-экран 0»
  • минимальный оконный менеджер для обеспечения визуального chroot и выхода из приложения
  • Переназначить ключи Ctl и Alt - ошибка xmodmap
  • Рабочий стол внезапно перестает реагировать на мышь (перемещение / фокусировка / щелканье элементов пользовательского интерфейса)
  • Linux и Unix - лучшая ОС в мире.