Правила Udev, связанные с X11, не запускаются при запуске

У меня есть некоторые правила udev, написанные для запуска при подключении определенных USB-устройств. Например, я изменяю скорость указателя для определенных мышей и изменяю xmodmaps для определенных клавиатур.

Сценарии хорошо работают при подключении устройств, когда компьютер включен, а также работают при подключении их во время приостановки работы компьютера. Однако, эти правила udev, похоже, не срабатывают, если устройство подключено до загрузки или входа в систему. Есть ли способ заставить их работать при запуске?

Я использую (K) ubuntu 13.04. Вот несколько примеров моих правил и сценариев udev.

/etc/udev/rules.d/00-teck.rules :

 ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="0e6a", ATTR{idProduct}=="030c", RUN+="/usr/local/bin/TECK_connect" ACTION=="remove", SUBSYSTEM=="usb", RUN+="/usr/local/bin/TECK_disconnect" 

/usr/local/bin/TECK_connect :

 #!/usr/bin/env bash export DISPLAY=:0.0 cp -f /home/sparhawk/HDD/Computer/Xmodmaps/Xmodmap_for_TECK /home/sparhawk/.Xmodmap sudo -u sparhawk setxkbmap -layout us -variant altgr-intl sudo -u sparhawk xmodmap /home/sparhawk/.Xmodmap sudo -u sparhawk pkill xcape sudo -u sparhawk xcape -e 'Alt_L=Return' && sudo -u sparhawk notify-send "xmodmap" "TECK connected." -i /usr/share/icons/oxygen/48x48/devices/input-keyboard.png --hint=int:transient:1 

/etc/udev/rules.d/90-razerwakeup-slowdown.rules :

 ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0016" RUN+="/bin/sh -c 'echo $env{DEVPATH} | grep -q usb./[^/]*/[^/]*/[^/]*$ && echo enabled > /sys$env{DEVPATH}/../power/wakeup; razer_slowdown'" 

/usr/local/bin/razer_slowdown :

 #!/usr/bin/env bash # slow down the tracking speed of a razer mouse. # to check, $ xinput --list-props "Razer Razer DeathAdder"| grep 'Constant Deceleration' # which was originally 1 scriptproper () { sleep 0.5 # perhaps not necessary, but putting it in background is. export DISPLAY=:0.0 sudo -u sparhawk xinput --set-prop "Razer Razer DeathAdder" "Device Accel Constant Deceleration" 3 } scriptproper & 

Нет, поскольку для операций, которые вы описываете, требуется X-сервер. Вы должны подумать о создании для них элемента автозапуска .