Запустить скрипт конфигурации при возобновлении сеанса 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 на моем ноутбуке. Таким образом, цикл - это всего лишь одна итерация. Я не знаю, что произойдет, если одновременно будет жить более одной сессии. Выше это достаточно хорошо для меня.

Другие вопросы по тегам