I've been trying to find the optimal palm detection setting on my touchpad,
but I've run into a problem with PalmMinWidth in that it doesn't seem to
actually do anything.
Using synclient -m, I've found that the absolute "widest" I can make my
fingers when doing normal movement on the touchpad is around 12. My palm,
unfortunately, sometimes appears as "thin" as 13, but 15 seems to be a decent
value, so I set PalmMinWidth=15.
Then for pressure. When my palm rests on the edge of the touchpad, I can get
an unfortunately low value of around 35. But let's say that doesn't happen
often, but 50 is pretty typical, so let's set PalmMinZ=50.
Unfortunately, when I slide my finger across the touchpad, now the mouse
doesn't move. synclient -m reports my normal finger Z value of around
170-200, and a typical width value of around 7 or 8, which is of course less
In fact, even if I still set PalmMinWidth to 50, using my finger only fails to
move the mouse cursor.
Using v1.1.2 of the driver here with xorg-server 1.5.3.
Do you have PalmDetect on?
Yes, PalmDetect is on. If I turn it off, then my single-finger drags do indeed make the mouse move. If I turn PalmDetect back on, then I can't move the mouse cursor again (with the MinZ and MinWidth settings I described, anyway).
sorry, I can't reproduce this. I'm running 1.1.3 and the basic values are the same for me as for you but it seems to work fine.
if i set the min width to 5 the cursor moves only if I use the tip of my finger (correctly so). anything higher has the same effect and palm detection seems to work fine.
Strange. Well, I'll update to 1.1.3 and check it out the next time I'm in a position to restart X (using 1.1.2 now).
there's nothing between 1.1.2 and 1.1.3 that should have affected this, so I think you can save yourself the trouble of upgrading.
anyway, I've found the trigger. If you go above the palm min_z with the first touch of the finger, the palm detection code doesn't trigger the palm but still unsets the finger value.
Created attachment 30154 [details] [review]
simple patch, but I think it's the right thing to do here.
It simply changes the expectation of the driver, just because a value is above PalmMinZ doesn't mean it's probably a palm.
Great, this works well for me (testing patched against today's git master).
Now the only problem (though this may be intended behavior) is if I have my left palm slightly resting on the touchpad, and try to use a finger on my right hand to move the mouse cursor, it doesn't do anything.
Of course, without palm detection, in this case it thinks it's a two-finger swipe, so it's not like I'm losing functionality here.
I guess it would need to be a bit smarter about multitouch here, which is a separate issue.
our multitouch support is pretty bad. I don't even have a multitouch pad so I can't even test half the stuff out there and there's not a lot of patches coming in. If you're interested in improving it, please go for it, I'd be too happy to see the current state improve.
Thanks for testing this patch btw, much appreciated.
Author: Peter Hutterer <firstname.lastname@example.org>
Date: Thu Oct 8 11:56:57 2009 +1000
Don't expect a palm based on pressure (#22806)