#993903 xfce4-session: After resuming from suspend, the synaptic touchpad was no longer working #993903
- Package:
- xfce4-session
- Source:
- xfce4-session
- Description:
- Xfce4 Session Manager
- Submitter:
- Wirawan Purwanto
- Date:
- 2021-10-22 17:33:02 UTC
- Severity:
- important
Dear Maintainer,
My laptop is running stock Debian 10 with up-to-date software,
and no custom kernel or such modifications.
I am using the stock XFCE packages provided by Debian.
I notice that at random times (not quite sure the context of the
happenings, i.e. the precise cause of the issue), the synaptic
touchpad was no longer working after the laptop was suspended to RAM
then resumed.
Note: I file this bug against "xfce4-session" initially because I do
not know which package may cause the issue.
Desktop: XFCE, under Debian 10
Hardware: Lenovo Thinkpad T450s
Screen-saver: xscreensaver
(It has light-locker installed but not running)
After resume from suspend, the mouse was locked.
Clicking works, but the mouse would not move.
The last time this happened, the sequence of events was as follows:
1) the computer was completely connected to external USB mouse and keyboard
2) the computer was suspended using "xfce4-session-logout --suspend"
3) the peripheral devices were removed
4) the computer was resumed
Upon resumption, the mouse no longer moves according to the synaptic
touchpad's input.
But pressing the mechanical buttons (left/right buttons) worked.
I am not 100% confident if the external device being removed when
sleeping was the cause of the touchpad not working.
At first I thought this was a hardware error.
But today I diagnosed the situation with "libinput debug-events",
the movements of finger on the touchpad were registered, like:
event12 POINTER_MOTION +4.68s 0.00/ -0.48 ( +0.00/ -1.00)
event12 POINTER_MOTION +4.70s 0.48/ 0.00 ( +1.00/ +0.00)
event12 POINTER_MOTION +4.70s 0.00/ -1.04 ( +0.00/ -2.00)
event12 POINTER_MOTION +4.71s 0.00/ -0.52 ( +0.00/ -1.00)
event12 POINTER_MOTION +4.74s -0.38/ 0.00 ( -1.00/ +0.00)
event12 POINTER_MOTION +4.75s 0.00/ -0.38 ( +0.00/ -1.00)
event12 POINTER_MOTION +4.76s -0.48/ 0.00 ( -1.00/ +0.00)
event12 POINTER_MOTION +4.77s -1.03/ 0.00 ( -2.00/ +0.00)
Which means, the hardware was fine, and the hardware driver was fine too.
But for some reason the events was ignored by the desktop or the GUI.
Or was the touchpad input grabbed by a program--a screen saver??
This laptop has been running on Debian 10 since April 2021.
The issue only happened a few times.
Usually, when this issue happened, I could put the laptop through one
more suspend/resume cycle, then the touchpad became responsive again.
Which is annoying but not too bad.
But with the latest system reboot, the issue happened again only within 2-3
suspend/resume cycles from the boot-up.
This was "the last time this issue happened" again as described in
detail above.
But this time, the touchpad never became responsive again, despite the
"libinput" program showed activites from the hardware while my finger
was moving on the touchpad.
This is now counterproductive, since I am treating the OS as a
"server OS", i.e. I expect to rarely reboot the system so that I don't
have to restart all the open windows and documents.
PS: I will wait for responses from the community for a while before
rebooting the current OS. I am doing so to keep this system running
in this erroneous state so that you can get whatever diagnostics
needed from this buggy state, if at all possible.
Thanks,
Wirawan
Ok, I found the solution. With the "xinput" command, I got the following output:
/ Virtual core pointer id=2 [master pointer (3)]
| +--> Virtual core XTEST pointer id=4 [slave pointer (2)]
| +--> HID 062a:0000 id=13 [slave pointer (2)]
| +--> Synaptics TM3053-004 id=12 [slave pointer (2)]
\ Virtual core keyboard id=3 [master keyboard (2)]
+--> Virtual core XTEST keyboard id=5 [slave keyboard (3)]
+--> Power Button id=6 [slave keyboard (3)]
+--> Video Bus id=7 [slave keyboard (3)]
+--> Sleep Button id=8 [slave keyboard (3)]
+--> Integrated Camera: Integrated C id=9 [slave keyboard (3)]
+--> AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
+--> ThinkPad Extra Buttons id=11 [slave keyboard (3)]
then the "xinput --list-props 12" command gives:
Device 'Synaptics TM3053-004':
Device Enabled (154): 1
Coordinate Transformation Matrix (156): 1.000000, 0.000000,
0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (286): 1
Device Accel Constant Deceleration (287): 2.500000
Device Accel Adaptive Deceleration (288): 1.000000
Device Accel Velocity Scaling (289): 12.500000
Synaptics Edges (290): 77, 1863, 57, 1005
Synaptics Finger (291): 25, 30, 0
Synaptics Tap Time (292): 180
Synaptics Tap Move (293): 97
Synaptics Tap Durations (294): 180, 180, 100
Synaptics ClickPad (295): 1
Synaptics Middle Button Timeout (296): 0
Synaptics Two-Finger Pressure (297): 282
Synaptics Two-Finger Width (298): 7
Synaptics Scrolling Distance (299): 44, 44
Synaptics Edge Scrolling (300): 0, 0, 0
Synaptics Two-Finger Scrolling (301): 1, 0
Synaptics Move Speed (302): 1.000000, 1.750000, 0.090457, 0.000000
Synaptics Off (303): 1
Synaptics Locked Drags (304): 0
Synaptics Locked Drags Timeout (305): 5000
Synaptics Tap Action (306): 0, 0, 0, 0, 1, 3, 2
Synaptics Click Action (307): 1, 3, 2
Synaptics Circular Scrolling (308): 0
Synaptics Circular Scrolling Distance (309): 0.100000
Synaptics Circular Scrolling Trigger (310): 0
Synaptics Circular Pad (311): 0
Synaptics Palm Detection (312): 0
Synaptics Palm Dimensions (313): 10, 200
Synaptics Coasting Speed (314): 20.000000, 50.000000
Synaptics Pressure Motion (315): 30, 160
Synaptics Pressure Motion Factor (316): 1.000000, 1.000000
Synaptics Grab Event Device (317): 0
Synaptics Gestures (318): 1
Synaptics Capabilities (319): 1, 0, 0, 1, 1, 1, 0
Synaptics Pad Resolution (320): 20, 20
Synaptics Area (321): 0, 0, 0, 0
Synaptics Soft Button Areas (322): 970, 0, 870, 0, 0, 0, 0, 0
Synaptics Noise Cancellation (323): 11, 11
Device Product ID (278): 1739, 0
Device Node (277): "/dev/input/event7"
Wait! Why the "Synaptics Off" value (property 303) is 1?? I turned
that off: "xinput set-prop 12 303 0" -- and voila, the trackpad
worked again (mouse movement & taps).
So, the problem is solved! BUT there is a lingering question. Which
program turned off the touchpad and then not turn it on again? Here is
my theory: In the "Mouse and Touchpad" setting, I have the "Disable
touchpad while typing" option checked. I set a shortcut key to suspend
the laptop, calling "xfce4-session-logout -s" . Once this shortcut
combination was invoked, the suspend action began immediately, yet
there was not enough time for the touchpad to be re-enabled. As a
result, the trackpad was stuck in the "disabled" position even after
resuming from sleep.
So this should be filed as a bug with the XFCE4 settings daemon, I
think (xfce4-settings). The bugfix should be fairly easy, I suppose,
but it will require a hook that is invoked when the computer going to
sleep: when the touchpad is supposed to be disabled only temporarily,
it should be re-enabled upon resumption from sleep.
Wirawan
Hi Wirawan, could you check with a recent xfce4-settings then? Stable has 4.16.2 now. Regards,