# Ubuntu – Run configuration script at X session resume

power-managementscriptssuspendxinput

On Ubuntu 13.04 I have to manually configure the touchpad since a bug prevents me using the standard configuration tool (changes don't save). However I created a script that sets up velocity, acceleration and scrolling, configured it to run at sartup and it works. The problem rises when I resume after suspension: especially the scrolling settings (the easiest to check) disappear.
Following other questions and answers I wrote this script (which contains the same commands I used in the over-mentioned one) located in /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  But it doesn't work at all. Thnks for help! EDIT I found out that the script works when suspending with pm-suspend or pm-suspend-hybrid, but when suspending from the system menu or closing the laptop lid it doesn't. It seems the error is 'unable to connect to X server'. So, the question better be rephrased: where should I put those commands for them to be executed when the X session is resumed? I tried ~/.xinitrc, a file under ~/.xinitrc.d and ~/.xsessionrc. Any suggestions? #### Best Answer • I had a similar problem. The issue is to connect to the X server. I solved it by stealing from /etc/acpi/sleep.sh. Put the following into /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


Finally make the file executable: chmod 755 /etc/pm/sleep.d/99_setup_touchpad.

Note: I'm usually the only one logged in via X on my laptop. So the loop is just one iteration. I don't know what happens if there are more than one sesssions live at the same time. The above is good enough for me.