Запустить скрипт конфигурации при возобновлении сеанса X
В Ubuntu 13.04 мне приходится вручную настраивать тачпад, так как ошибка мешает мне использовать стандартный инструмент настройки (изменения не сохраняются). Однако я создал скрипт, который настраивает скорость, ускорение и прокрутку, настроил его на запуск в sartup, и он работает. Проблема возникает, когда я возобновляю работу после приостановки: особенно настройки прокрутки (проще всего проверить) исчезают. После других вопросов и ответов я написал этот скрипт (который содержит те же команды, которые я использовал в вышеупомянутом), расположенный в /etc/pm/sleep.d/ZZtouchpad
:
#!/bin/sh
case "$1" in
resume|thaw)
xinput --set-prop "CyPS/2 Cypress Trackpad" "Device Accel Constant Deceleration" 2
xinput --set-prop "CyPS/2 Cypress Trackpad" "Device Accel Velocity Scaling" 35
xinput --set-prop "CyPS/2 Cypress Trackpad" "Synaptics Scrolling Distance" -20, -20
esac
Но это не работает вообще.
Спасибо за помощь!
РЕДАКТИРОВАТЬ
Я обнаружил, что скрипт работает при приостановке с pm-suspend
или же pm-suspend-hybrid
, но при приостановке из системного меню или закрытии крышки ноутбука это не так. Кажется, ошибка "невозможно подключиться к X-серверу".
Итак, вопрос лучше перефразировать: куда мне поместить эти команды, чтобы они выполнялись при возобновлении сеанса X? Я старался ~/.xinitrc
файл под ~/.xinitrc.d
а также ~/.xsessionrc
, Какие-либо предложения?
1 ответ
У меня была похожая проблема. Проблема заключается в подключении к X-серверу. Я решил это путем кражи из /etc/acpi/sleep.sh
, Поместите следующее в /etc/pm/sleep.d/99_setup_touchpad
,
#! /bin/sh
. /usr/share/acpi-support/power-funcs
case "$1" in
resume|thaw)
if pidof xscreensaver > /dev/null; then
for x in /tmp/.X11-unix/*; do
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
getXuser;
if [ x"$XAUTHORITY" != x"" ]; then
export DISPLAY=":$displaynum"
su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Device Accel Constant Deceleration' 2"
su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Device Accel Velocity Scaling' 35"
su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Synaptics Scrolling Distance' -20, -20"
fi
done
fi
;;
*)
# Nothing.
;;
esac
Наконец, сделайте файл исполняемым: chmod 755 /etc/pm/sleep.d/99_setup_touchpad
,
Примечание: я обычно единственный, кто вошел в систему через X на моем ноутбуке. Таким образом, цикл - это всего лишь одна итерация. Я не знаю, что произойдет, если одновременно будет жить более одной сессии. Выше это достаточно хорошо для меня.