xinput and synclient forget user settings on resume

Bug #399902 reported by Alex Wauck
102
This bug affects 18 people
Affects Status Importance Assigned to Milestone
xserver-xorg-input-synaptics (Ubuntu)
Confirmed
Wishlist
Unassigned

Bug Description

Binary package hint: xserver-xorg-input-synaptics

I use synclient to set my ALPS touchpad to use fake two-finger scrolling and disable tap-to-click. When I suspend to RAM and resume, two-finger scrolling does not work, and tap-to-click is enabled. Running synclient again reinstates my settings.

Revision history for this message
Alberto Milone (albertomilone) wrote :

This is the intended behaviour as there's no way to save your settings with Synclient.

Changed in xserver-xorg-input-synaptics (Ubuntu):
status: New → Triaged
importance: Undecided → Wishlist
status: Triaged → Confirmed
Revision history for this message
Alex Wauck (awauck) wrote :

I don't understand why it loses the settings. Aren't they stored in RAM? If not, I think the synaptics driver should cache them and restore them when coming back from suspend-to-RAM.

Please note that I am NOT asking for it to remember settings across a shutdown. I have a script that runs on KDE startup which applies the settings I want. To my knowledge, there is no way to automatically have this script run when resuming from sleep mode, and I don't think it should have to. All I want is for the synaptics driver to restore hardware state on resume (much like the video drivers do).

Revision history for this message
Alberto Milone (albertomilone) wrote :

What version of Ubuntu are you using?

The xinput command line tool already does what you want.

Revision history for this message
William Grant (wgrant) wrote :

A problem that we've seen with some hardware is that the touchpad device disappears and reappears across suspend-to-RAM. X then sees a new device appear, and the old one disappear, so the settings vanish too.

Revision history for this message
jcwinnie (jcwinnie) wrote :

For Karmic development branch on a Dell Latitude D600, suspend disables touchpad tapping. Version of xserver-xorg-input-synaptics is 1.1.2-1ubuntu5.

Revision history for this message
jcwinnie (jcwinnie) wrote :

Removed gsynaptics. Selected Touchpad tab from Systems -> Preferences -> Mouse and enabled mouse clicks check box. Setting remains after Suspend.

Revision history for this message
Jaromir Obr (jaromir-obr) wrote :

I can confirm the bug on notebook Toshiba A300D-18I. When resuming from hibernation, tapping is disabled and I have to re-enable it in touchpad GUI.
jcwinnie's workaround works well for me, thank you very much

Used SW:
Ubuntu 9.10 amd64
xserver-xorg-input-synaptics 1.1.2-1ubuntu5

Revision history for this message
Alex Wauck (awauck) wrote :

Does anyone know why jcwinnie's workaround works? I use KDE, so I can't use that workaround.

Revision history for this message
Nicolò Chieffo (yelo3) wrote :

Alberto Milone: xinput does not save settings across suspends

Revision history for this message
Alex Wauck (awauck) wrote :

This bug is still present in Kubuntu Lucid. Does GNOME work around it? If so, it that documented anywhere? Really, though, if the devices have to disappear and reappear across the suspend-resume cycle, then the settings should be saved in the X server. I don't see an upstream bug about this. I guess I can report it upstream when I have time.

Revision history for this message
madbiologist (me-again) wrote :

This might be fixed upstream in kernel 2.6.35-rc5. From the changelog:

commit 04a08885c36dc2f4663900d007b9d71a7e7f2b92
Author: Dmitry Torokhov
Date: Thu May 13 00:42:23 2010 -0700

    Input: psmouse - reset all types of mice before reconnecting

    commit ef110b24e28f36620f63dab94708a17c7e267358 upstream.

    Synaptics hardware requires resetting device after suspend to ram
    in order for the device to be operational. The reset lives in
    synaptics-specific reconnect handler, but it is not being invoked
    if synaptics support is disabled and the device is handled as a
    standard PS/2 device (bare or IntelliMouse protocol).

    Let's add reset into generic reconnect handler as well.

    Signed-off-by: Dmitry Torokhov
    Cc: Tim Gardner
    Signed-off-by: Greg Kroah-Hartman

A PPA of this kernel can be found at http://kernel.ubuntu.com/~kernel-ppa/mainline/

Revision history for this message
madbiologist (me-again) wrote :

Oops, that should be kernel 2.6.32.16. Sorry for the confusion.

Bryce Harrington (bryce)
summary: - synaptics driver forgets user settings on resume
+ xinput and synclient forget user settings on resume
Revision history for this message
Ryan Fugger (rfugger) wrote :

Workaround for getting synclient to work in /etc/pm/sleep.d/ script here:

http://ubuntuforums.org/showpost.php?p=10220575&postcount=6

Revision history for this message
Gumuiyul (gumuiyul) wrote :

in my, my settings for RTCornerButton and RBCornerButton reset to default when done login after display resume
but others setting such as RTCornerButton,RBCornerButton works good. I had tried to do with many help but no effect.
several time i try to find where is the default setting of synclient or init script of the display manger called "gdm" .
is there no solution?

my machine is Ubuntu 11.04 64bit on Thinkpad x220 (4287) has Synaptics Touchpad.

Revision history for this message
Gumuiyul (gumuiyul) wrote :

sorry above comment
At the "others setting such as RTCornerButton,RBCornerButton works good"
change to RTCornerButton, RBCornerButton to LTCornerButton,LBCornerButton

in addition, my Ubuntu is in kernel 3.0. uname shows 3.0.0-0300-generic

Revision history for this message
Gumuiyul (gumuiyul) wrote :

SOLVED, renaming my script from 99-synaptics-touch-resume to 0000_synclient-resume in /etc/pm/sleep.d .
the script codes below
#!/bin/bash

case "$1" in
    thaw|resume)
       DISPLAY=:0.0 su myuserid -c "exec /home/myuserid/my-synaptics-touch-resume.sh"
    ;;
esac
exit $?

in the my-synaptics-touch-resume.sh file :
#!/bin/bash
synclient TapButton2=10;
synclient RTCornerButton=3;
synclient RBCornerButton=9;

I think this synclient or touchpad bug should be kept with the user setting on any condition(reboot,suspend ..)
I hope the Ubuntu support the better multi-touch feature and performance than OSX
Thanks lot

Revision history for this message
Gumuiyul (gumuiyul) wrote :

The problem back happens after Update.
updates are below
libpam0g 1.1.2-2ubuntu8.4
libpam-modules-bin 1.1.2-2ubuntu8.4
libpam-modules 1.1.2-2ubuntu8.4
libpam-runtime 1.1.2-2ubuntu8.4
linux-generic 2.6.38.12.27
linux-headers-generic 2.6.38.12.27
linux-image-generic 2.6.38.12.27
linux-libc-dev 2.6.38-12.51

Revision history for this message
Gumuiyul (gumuiyul) wrote :

SOLVED on Kernel 3.1 (64bit)

Revision history for this message
Gumuiyul (gumuiyul) wrote :

it mean that my script as 0000_synclient-resume in /etc/pm/sleep.d/ works on the kernel 3.1
however i think that it should be fixed on the ubuntu built in

Revision history for this message
Sicco van Sas (sicco) wrote :

Lee Cho Kang's script fixed the problem for me (just as a small addendum, change 'myuserid' to your username in the script, it would have been clearer if Lee had written <youruserid>). My details; Ubuntu 12.04 64 bit.

Revision history for this message
stormfitttt (stormfittt) wrote :

On 12.04, synaptics touch pad setting reset after the script run on startup so I must run manually the script in terminal
I have used synclient setting for me which registered in the Startup Programs.

Revision history for this message
Per Wahlström (per-wahlstrom) wrote :

12.04, I think I have a related problem but with a USB mouse.

If you have a script like "20_custom-ehci_hcd" in any of the sleep.d dirs, this may be the culprit here, since it unbinds hcd drivers upon sleep.

"xinput" settings are lost on resume, and a 000-script in sleep.d fails because the device is not seen yet.

To summarize:
Before suspend, 'xinput list' shows my USB mouse and keyboard devices.
On resume, while executing sleep.d scripts, the USB devices is missing from 'xinput list', even after 20_custom-ehci_hcd script has re-bound them.
After resume has completed, 'xinput list' shows the USB devices.

So, X does not rediscover the rebound devices until after the sleep.d scripts have run.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.