XPS13Linux
XPS13Linux copied to clipboard
Touchpad Palm Detection not working on Ubuntu
On the default installation of Ubuntu 14.04, the touchpad palm detection is not working correctly.
Which BIOS version are you using?
A03
This is the same when booting from a Live USB 15.04 btw
Could help: http://stevenkohlmeyer.com/fixing-palm-detect-ubuntu-14-04/
If this is also an issue in 15.04 than it might make sense to change the title to avoid confusion.
Is this verified to be a palm detect issue?
I assume the issue described here are spurious cursor jumps and text selections or, worst, even shortcut executions (e.g. when cursor jumps into thunderbird K
might actually kill the thread.
I am getting the feeling that CPU load may trigger these effects as I have been very careful to keep my palms clear of the touchpad.
And yes I still see all of this in ubuntu 15.04.
My initial report was related to palm detection.
@MarcusMoeller yeah, I got lost for a bit between the many possibly related issues. Do you also see those events generated for my recipe in issue #14?
As native Ubuntu unity 14.04 had several problems (hdpi, touchpad, external monitor, etc.) I made fresh install of Ubuntu Gnome (seems much better than Unity re hdpi issues). All is splendid, except the palm detection of the touchpad which is really annoying. I fiddled with it for quite some time but no solution it seems. I also tried: http://stevenkohlmeyer.com/fixing-palm-detect-ubuntu-14-04/ Results: With 'xinput list' I find two items which relate to the touchpad:
- DLL0665:01 06CB:76AD UNKNOWN
- PS/2 Synaptics TouchPad
When I enable/ switch off the first (DLL) via xinput in the terminal the touchpad indeed toggles on/off. The touchpad does not react at all to enabling/ switcing off the second (Synaptics). The settings of DLL also correspond to the Gnome GUI settings under 'mouse&touchpad' for all tickmark settings and the ON/OFF button. One exception, it does not change settings when I adjust the pointer speed in the GUI (I see no change in the xinput settings, however the pointer does speed up/ slow down...).
When adjusting the palm detection settings with:
xinput set-prop 12 "Synaptics Palm Detection" 1
xinput set-prop 12 "Synaptics Palm Dimensions" 5, 80
And fiddling a lot with the values I have to conclude: they do not do ANYTHING, i.e. when I stroke with my palm the pointer always reacts.
I would be very happy with a solution as I know use a workaround: completely switching off the touchpad when typing with shortkeys.
Dell XPS 9343 (april 2015) bios A03 Ubuntu gnome 15.04 (3.19 kernel)
@musicformellons, have you seen this comment by @anaran? Does that help at all?
I looked into Anaran's issue (and watched his video), but I am pretty sure he addresses another issue: he touches the touchpad with his thumb when using/resting at his space bar. I however do not have this issue: I touch the touchpad with my palms now and then (as everybody does...when typing).
@musicformellons Not sure what you are trying to say. What I addressed and fixed with a modified config in issue #14 is a separate issue, yes. And as I was able to feel my interactions while recording the video I was not touching the upper rim of the touchpad with my thumbs.
This issue #3 is still unresolved for me. I was not able to get my sytem to ignore brushes of my palms. They still cause cursor moves and even button clicks with tap to click on.
Ah, reading your older comment suggests you are just confirming that palm detection does not work for you either.
Yes, issue #3 still unresolved for both of us.
Palm detection is disabled by default. I've just tried turning it on like this:
$ synclient PalmDetect=1
It looks like there's also PalmMinWidth
and PalmMinZ
settings to tinker with (synclient -l
to see the full list). Note that you'll need to add this to your xorg conf to make the changes persist (i.e. after a reboot).
@Robsteranium : and does palm detection work for you? Because I have the correct setting but it is pretty clear that it does NOT work. When I use my palm on the touchpad the pointer reacts as if using a finger...
My synclient settings: ~$ synclient -l Parameter settings: LeftEdge = 48 RightEdge = 1168 TopEdge = 36 BottomEdge = 644 FingerLow = 25 FingerHigh = 30 MaxTapTime = 180 MaxTapMove = 61 MaxDoubleTapTime = 180 SingleTapTimeout = 180 ClickTime = 100 EmulateMidButtonTime = 0 EmulateTwoFingerMinZ = 282 EmulateTwoFingerMinW = 7 VertScrollDelta = -27 HorizScrollDelta = -27 VertEdgeScroll = 0 HorizEdgeScroll = 0 CornerCoasting = 0 VertTwoFingerScroll = 1 HorizTwoFingerScroll = 1 MinSpeed = 1 MaxSpeed = 1.75 AccelFactor = 0.143575 TouchpadOff = 2 LockedDrags = 0 LockedDragTimeout = 5000 RTCornerButton = 2 RBCornerButton = 3 LTCornerButton = 0 LBCornerButton = 0 TapButton1 = 1 TapButton2 = 3 TapButton3 = 2 ClickFinger1 = 1 ClickFinger2 = 3 ClickFinger3 = 0 CircularScrolling = 0 CircScrollDelta = 0.1 CircScrollTrigger = 0 CircularPad = 0 PalmDetect = 1 PalmMinWidth = 5 PalmMinZ = 5 CoastingSpeed = 20 CoastingFriction = 50 PressureMotionMinZ = 30 PressureMotionMaxZ = 160 PressureMotionMinFactor = 1 PressureMotionMaxFactor = 1 ResolutionDetect = 1 GrabEventDevice = 0 TapAndDragGesture = 1 AreaLeftEdge = 0 AreaRightEdge = 0 AreaTopEdge = 0 AreaBottomEdge = 0 HorizHysteresis = 6 VertHysteresis = 6 ClickPad = 1 RightButtonAreaLeft = 608 RightButtonAreaRight = 0 RightButtonAreaTop = 557 RightButtonAreaBottom = 0 MiddleButtonAreaLeft = 0 MiddleButtonAreaRight = 0 MiddleButtonAreaTop = 0 MiddleButtonAreaBottom = 0
I followed several links on this topic but settings simply do not work so it is a driver issue I suppose: https://wiki.archlinux.org/index.php/Touchpad_Synaptics http://en.community.dell.com/techcenter/os-applications/f/4613/t/19544120 https://wiki.archlinux.org/index.php/Touchpad_Synaptics http://stevenkohlmeyer.com/fixing-palm-detect-ubuntu-14-04/ http://xps13-9333.appspot.com/#touchpad
Did not try the patch in the last link as it is 'way above my head' and pretty unsure whether this will solve it...
Hi @Robsteranium, the ArchLinux XPS 13 page seems to be the best resource for the XPS 13 I can find, and if you ignore Broadcom Wifi & Bluetooth issues (you can after all purchase an Intel card quite cheaply), then this seems to be the only outstanding issue.
My output of xinput list
contained an unknown device:
~ $ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ DLL0665:01 06CB:76AD UNKNOWN id=11 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ Dell WMI hotkeys id=14 [slave keyboard (3)]
You see, the DLL0665:01 06CB:76AD UNKNOWN
device. I noticed that this was the device in use and not SynPS/2 Synaptics TouchPad
, because setting the Device Enabled
property to 0
on the latter didn't disable my touchpad but on the former it did. So I tried setting the Synaptics Palm Detection
and Synaptics Palm Dimensions
properties on this device but it still didn't have any effect.
I checked the Arch Linux XPS 13 wiki page, it says this:
With the latest BIOS patch, most of the touchpad functions should work, although palm detection does not work in i2c mode yet.
I'm not sure what "i2c mode" is and I'm not sure how to disable it, but I just tried a couple of things and I ended up adding this line:
blacklist i2c_hid
to /etc/modprobe.d/blacklist.conf
. This blacklists the linux kernel module i2c_hid
, so it won't get loaded. After I rebooted the laptop, I noticed the unknown device disappeared from the xinput list
output:
~ $ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad 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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
Not sure why disabling the i2c_hid
module has this effect. Anyway, now changing the Device Enabled
property on SynPS/2 Synaptics TouchPad
did have effect, but changing the Synaptics Palm Detection
and Synaptics Palm Dimensions
properties still didn't have any effect.
But while I was experimenting, I noticed that the behavior did change somewhat. I noticed that while I was typing, I didn't have accidental taps anymore. I found out this was because the process syndaemon
was running. This is a daemon that disables the touchpad when there's keyboard activity. I checked if this was also running if I didn't blacklist the i2c_hid
module and it was, but then it apparently didn't have any effect.
So, as far as I can see, blacklisting the linux kernel module ic2_hid
makes an unknown device in xinput list
disappear and syndaemon
work. When syndaemon
works, I actually don't have a lot of issues with the touchpad anymore (at least for now).
Hope this helps anyone. Btw, I have a XPS 13 Core i5 without touchscreen, with Ubuntu 15.04 and the latest BIOS driver (A04).
Edit: Too bad, I just noticed that when I'm blacklisting ic2_hid
, the mousepad occasionally freezes (the pointer stops moving for about half a second) every couple of seconds. I checked if this was because of syndaemon
but turning that off didn't make a change. Very sad, this is at least as annoying as the occasional palm touches... I might just turn of the tap functionality and use the click functionality of the touch pad only.
@gitaarik: I did follow your settings. In the end the "disable while typing" does not work however, I still have jumps and taps. Are you sure it is working for you?
Some other weird behaviour I noticed:
- setting the "Synaptics Two-Finger Width" to 1 (xinput set-prop 13 "Synaptics Two-Finger Width" 1) or 10000000 does not do anything (two finger scrolling works but the width does not matter); when I set it to 0 however, the cursor stops all together, so that 'does work'.
It think 2 finger width and palm detection are closely related and both do not work with current drivers.
@musicformellons yes, pretty sure it worked for me. Did you have the unknown device in the xinput list
output? What did you try? The id of your device (13
) doesn't tell me much.
@gitaarik Yes I had the exact same unknown device. All of your steps were the same. Whether I set the Gnome GUI setting checkbox for "Disable while typing" checked or unchecked does not make a difference it seems.
My settings: Device 'SynPS/2 Synaptics TouchPad': Device Enabled (139): 1 Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (272): 1 Device Accel Constant Deceleration (273): 1.000000 Device Accel Adaptive Deceleration (274): 1.000000 Device Accel Velocity Scaling (275): 12.500000 Synaptics Edges (297): 1583, 5359, 1371, 4481 Synaptics Finger (298): 10, 14, 0 Synaptics Tap Time (299): 250 Synaptics Tap Move (300): 350 Synaptics Tap Durations (301): 180, 100, 100 Synaptics ClickPad (302): 1 Synaptics Middle Button Timeout (303): 0 Synaptics Two-Finger Pressure (304): 40 Synaptics Two-Finger Width (305): 12 Synaptics Scrolling Distance (306): -190, -300 Synaptics Edge Scrolling (307): 0, 0, 1 Synaptics Two-Finger Scrolling (308): 1, 1 Synaptics Move Speed (309): 1.000000, 12.000000, 0.022000, 0.000000 Synaptics Off (310): 2 Synaptics Locked Drags (311): 0 Synaptics Locked Drags Timeout (312): 5000 Synaptics Tap Action (313): 2, 3, 0, 8, 1, 3, 2 Synaptics Click Action (314): 1, 3, 0 Synaptics Circular Scrolling (315): 1 Synaptics Circular Scrolling Distance (316): 0.100000 Synaptics Circular Scrolling Trigger (317): 7 Synaptics Circular Pad (318): 0 Synaptics Palm Detection (319): 1 Synaptics Palm Dimensions (320): 5, 5 Synaptics Coasting Speed (321): 20.000000, 50.000000 Synaptics Pressure Motion (322): 30, 160 Synaptics Pressure Motion Factor (323): 1.000000, 1.000000 Synaptics Resolution Detect (324): 1 Synaptics Grab Event Device (325): 0 Synaptics Gestures (326): 1 Synaptics Capabilities (327): 1, 0, 0, 1, 1, 1, 1 Synaptics Pad Resolution (328): 1, 1 Synaptics Area (329): 0, 0, 0, 0 Synaptics Soft Button Areas (330): 3471, 0, 4083, 0, 0, 0, 0, 0 Synaptics Noise Cancellation (331): 28, 28 Device Product ID (259): 2, 7 Device Node (260): "/dev/input/event6"
@gitaarik BTW: I do not have freezes... I am on Dell XPS 13 9343, ubuntu 15.04 Gnome, bios A03 and kernel 4.1
@musicformellons Did you check if the syndaemon
process is running?
ps aux | grep syndaemon
For me this process was always running (as long as the "Disable while typing" checkbox in the touchpad settings was checked), but only worked after I blacklisted i2c_hid
and restarted. But yeah, then I had the freezes too.
Not sure about output, but seems to be running?!: 885 0.0 0.0 22352 232 ? Ss 10:44 0:00 /usr/bin/syndaemon -d -t -k -i 2 1010 0.0 0.0 22352 2492 ? S 10:44 0:00 syndaemon -i 1.0 -t -K -R 2063 0.0 0.0 13696 2216 pts/0 R+ 10:46 0:00 grep --color=auto syndaemon
2015-06-18 10:36 GMT+02:00 Rik [email protected]:
@musicformellons https://github.com/musicformellons Did you check if the syndaemon process is running?
ps aux | grep syndaemon
For me this process was always running (as long as the "Disable while typing" checkbox in the touchpad settings was checked), but only worked after I blacklisted i2c_hid and restarted. But yeah, then I had the freezes too.
— Reply to this email directly or view it on GitHub https://github.com/advancingu/XPS13Linux/issues/3#issuecomment-113076299 .
It even looks like it's running two times for you, /usr/bin/syndaemon -d -t -k -i 2
and syndaemon -i 1.0 -t -K -R
. Not sure why it's running two times for you, maybe that's the problem. You can kill one with kill <process-id>
where the number on the left in the output is the process id. You can also spin off a new process by entering the command yourself. You can check the options for syndaemon with man syndaemon
or maybe syndaemon --help
.
yes, I followed this: https://wiki.debian.org/SynapticsTouchpad which runs the /usr/bin/syndaemon
the other one is the one of Gnome GUI checkbox.
Killing one or the other does not work: touchpad remains on while typing.
I did delete the first one as it seems redundant.
Thanks anyways.
2015-06-18 12:37 GMT+02:00 Rik [email protected]:
It even looks like it's running two times for you, /usr/bin/syndaemon -d -t -k -i 2 and syndaemon -i 1.0 -t -K -R. Not sure why it's running two times for you, maybe that's the problem. You can kill one with kill
where the number on the left in the output is the process id. You can also spin off a new process by entering the command yourself. You can check the options for syndaemon with man syndaemon or maybe syndaemon --help. — Reply to this email directly or view it on GitHub https://github.com/advancingu/XPS13Linux/issues/3#issuecomment-113103315 .
@musicformellons are you also still able to tap-to-click with the touchpad while typing?
@gitaarik AAAH! It works! GREAT! As the value of "Synaptics Off" is set to 2 (I tried setting it to 0 before but that stopped my touchpad completely) I was thinking that the swipes would still occur but that clicks should be blocked. That is what I tested all the time (so I do not know if it worked while having syndaemon running twice). But you are right it is stopping taps form occurring. Very clearly so. So it works for taps which is great!
Actually after fine-tuning the settings I am starting to feel pretty comfortable about the touchpad. A pity that palm detection does not work but this is already quite good.
I tried now to set Synaptics Off to 0 (to also block swiping), but it will not accept this setting it seems. It does not alter the behavior (swipes continue while typing; taps are blocked). The setting gives this (look at the end for strange lines..., it seems to toggle back from 0 to 2... ): ~$ xinput --watch-props 13 Device 'SynPS/2 Synaptics TouchPad': Device Enabled (139): 1 Coordinate Transformation Matrix (141): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (272): 1 Device Accel Constant Deceleration (273): 1.000000 Device Accel Adaptive Deceleration (274): 1.000000 Device Accel Velocity Scaling (275): 12.500000 Synaptics Edges (297): 1583, 5359, 1371, 4481 Synaptics Finger (298): 10, 14, 0 Synaptics Tap Time (299): 180 Synaptics Tap Move (300): 350 Synaptics Tap Durations (301): 180, 100, 100 Synaptics ClickPad (302): 1 Synaptics Middle Button Timeout (303): 0 Synaptics Two-Finger Pressure (304): 40 Synaptics Two-Finger Width (305): 12 Synaptics Scrolling Distance (306): -200, -300 Synaptics Edge Scrolling (307): 0, 0, 1 Synaptics Two-Finger Scrolling (308): 1, 1 Synaptics Move Speed (309): 1.000000, 12.000000, 0.022000, 0.000000 Synaptics Off (310): 2 Synaptics Locked Drags (311): 1 Synaptics Locked Drags Timeout (312): 5000 Synaptics Tap Action (313): 2, 3, 0, 8, 1, 3, 2 Synaptics Click Action (314): 1, 3, 0 Synaptics Circular Scrolling (315): 0 Synaptics Circular Scrolling Distance (316): 0.100000 Synaptics Circular Scrolling Trigger (317): 7 Synaptics Circular Pad (318): 0 Synaptics Palm Detection (319): 1 Synaptics Palm Dimensions (320): 5, 5 Synaptics Coasting Speed (321): 20.000000, 50.000000 Synaptics Pressure Motion (322): 30, 160 Synaptics Pressure Motion Factor (323): 1.000000, 1.000000 Synaptics Resolution Detect (324): 1 Synaptics Grab Event Device (325): 0 Synaptics Gestures (326): 1 Synaptics Capabilities (327): 1, 0, 0, 1, 1, 1, 1 Synaptics Pad Resolution (328): 1, 1 Synaptics Area (329): 0, 0, 0, 0 Synaptics Soft Button Areas (330): 3471, 0, 4083, 0, 0, 0, 0, 0 Synaptics Noise Cancellation (331): 28, 28 Device Product ID (259): 2, 7 Device Node (260): "/dev/input/event5" Property 'Synaptics Off' changed. Synaptics Off (310): 0 Property 'Synaptics Off' changed. Synaptics Off (310): 2 Property 'Synaptics Off' changed. Synaptics Off (310): 0
2015-06-18 15:04 GMT+02:00 Rik [email protected]:
@musicformellons https://github.com/musicformellons are you also still able to tap-to-click with the touchpad while typing?
— Reply to this email directly or view it on GitHub https://github.com/advancingu/XPS13Linux/issues/3#issuecomment-113149235 .
The other syndaemon service (I had before) works as well separately (when I uncheck 'disable typing') and then I can set the inverval as I like.
2015-06-18 15:04 GMT+02:00 Rik [email protected]:
@musicformellons https://github.com/musicformellons are you also still able to tap-to-click with the touchpad while typing?
— Reply to this email directly or view it on GitHub https://github.com/advancingu/XPS13Linux/issues/3#issuecomment-113149235 .
@musicformellons Ok nice going, did you also had to blacklist i2c_hid
? And aren't you getting the occasional freezes?
@gitaarik The freezes you have: these are really obvious to notice?
My cursor sometimes seems to 'hang' for a second or so but I think maybe my pressure settings need some adjusting, since when I just make swiping circles (or just up and down) for a long time (with more or less same pressure) it does not hang.
2015-06-18 15:04 GMT+02:00 Rik [email protected]:
@musicformellons https://github.com/musicformellons are you also still able to tap-to-click with the touchpad while typing?
— Reply to this email directly or view it on GitHub https://github.com/advancingu/XPS13Linux/issues/3#issuecomment-113149235 .