Since installing the xserver-xorg-input-libinput package even though it fixed my other problems, I have found that the touch sensitivity area is much smaller than previously on the outside of my touchpad if I drag my finger the cursor does not move, same with this person: https://bugs.launchpad.net/ubuntu-gnome/+bug/1586657/comments/8 I am running Ubuntu GNOME 16.04 with GNOME 3.20. I initially reported this issue here but thought I should also do so upstream: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-libinput/+bug/1586683
Please look at https://wayland.freedesktop.org/libinput/doc/latest/reporting_bugs.html and provide the info listed there, thanks.
The version number of libinput10 is 1.2.3-1ubuntu1, and the version number of xserver-xorg-input-libinput is 0.18.0-1. And I will attach the evemu-record output and the 'xinput list-props' output. Here is the contents of the "/sys/class/dmi/id/modalias" file: dmi:bvnLENOVO:bvrH5ET69WW(1.12):bd11/15/2012:svnLENOVO:pn62742SG:pvrLenovoB590:rvnLENOVO:rn62742SG:rvrWin8ProDPKIPG:cvnLENOVO:ct10:cvrNotAvailable: And I have a Lenovo B590 laptop. I am not absolutely certain of the dimensions of my touchpad, but I have used my huge meter long ruler which also deals in mm to try to establish this, so as far as I can tell it's: length: 94mm width: 57mm
Created attachment 124278 [details] xinput_list-props_Touchpad_Information.txt
Created attachment 124279 [details] scroll.evemu
replay of the event shows that the finger is detected as palm at the edge. run the touchpad-edge-detector tool please. The axis ranges look out of whack which would make the edge zones larger than they are designed to be. https://wayland.freedesktop.org/libinput/doc/latest/palm_detection.html
OK, I ran that tool, here is the output: Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event5 Move one finger around the touchpad to detect the actual edges Kernel says: x [1184..5760], y [1022..4828] Touchpad sends: x [1270..5659], y [1114..4764] - Touchpad size as listed by the kernel: 88x54mm Calculate resolution as: x axis: 4576/<width in mm> y axis: 3806/<height in mm> Suggested udev rule: # <Laptop model description goes here> evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnLENOVO:bvrH5ET69WW(1.12):bd11/15/2012:svnLENOVO:pn62742SG:pvrLenovoB590:rvnLENOVO:rn62742SG:rvrWin8ProDPKIPG:cvnLENOVO:ct10:cvrNotAvailable:* EVDEV_ABS_00=1270:5659:<x resolution> EVDEV_ABS_01=1114:4764:<y resolution> EVDEV_ABS_35=1270:5659:<x resolution> EVDEV_ABS_36=1114:4764:<y resolution>
(In reply to cooks.go.hungry from comment #6) > OK, I ran that tool, here is the output: > > Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event5 > Move one finger around the touchpad to detect the actual edges > Kernel says: x [1184..5760], y [1022..4828] > Touchpad sends: x [1270..5659], y [1114..4764] - wow, that is quite unusual. The touchpad's range is actually smaller than the range it announces, usually it's the other way round. Find the file 60-evdev.hwdb on your system and follow the instructions at the top to save this hunk as local hwdb entry. Then restart and check if the behaviour improves. If the hwdb entry applies correctly, evemu-describe should show the new axis ranges. evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrLenovoB590* EVDEV_ABS_00=1270:5659:49 EVDEV_ABS_01=1114:4764:67 EVDEV_ABS_35=1270:5659:49 EVDEV_ABS_36=1114:4764:67
So just to be clear, do I just need to create a local entry with the same configuration and basically the same contents as the global file (I assume that's what it is)?
nope, the new file just needs to include the bit from comment 7, but the 60-evdev.hwdb file has a long comment with how to save, update, restart, etc. everything so it actually applies :)
Right, sorry for the delay, I have done as you and the file said but it makes no difference. I assume that a restart of the system is not required for these changes to take effect?
you do need to restart, or at least run sudo udevadm trigger /dev/input/eventX. I usually recommend to run sudo udevadm test /dev/input/eventX, make sure the new properties appear in the output and then restart. eventX is your device's event node.
I already ran all those commands as it was instructed in the file, but still no difference. I have even now restarted my entire machine, but still no difference.
do the EVDEV_ABS_00 etc properties show up in the udevadm info /sys/class/input/eventX output? if not, the match string is incorrect and we need to figure out what isn't correct here. If they show up, evemu-describe should show the new axis ranges/resolutions
When running that command, no, they do not show up in the output.
please describe exactly what you did and attach the file you're using so we can figure out what's wrong. the file must be named with a .hwdb suffix and you need to follow the instructions at the top of 60-evdev.hwdb to rebuild the database, and trigger the rules.
Well, that was strange, after a restart of my machine they do show up in the output of that command...
so, what's the status of this bug now. with the hwdb entry above applied it works well?
No, it works exactly as it did without them applied.
ok, so recap: your touchpad's range is smaller than announced, with the udev rule in place the touchpad-edge-detector should match the input data (make sure you move the finger around the whole touchpad area) I've pointed out palm detection in comment 5, but that's usually interfering when the touchpad ranges are larger than the kernel announces. In your case the zones should be set up mostly correctly. So what areas or movement on your touchpads don't work? The comment you linked to is an intended behaviour, if a touch starts inside the palm zone and moves slowly vertically then this is the same behaviour we see from a palm touch and hence we discard it. There is no good way to detect palms otherwise (especially on touchpad like yours).
Basically if I place my finger at the edge of my touchpad or in one of the corners no matter where I move my finger, as long as it does not leave the touchpad, there is no movement of the cursor. This also means that I am unable to use the edges of my touchpad to scroll. Neither of these issues were present before I installed this package. And even if I use my little finger (so it can't possibly think it's my palm), it doesn't work, even if not right on the edge of my touchpad, where one would normally try to scroll that is.
(In reply to cooks.go.hungry from comment #20) > Basically if I place my finger at the edge of my touchpad or in one of the > corners no matter where I move my finger, as long as it does not leave the > touchpad, there is no movement of the cursor. this is intended, see the link regarding palm detection above > This also means that I am unable to use the edges of my touchpad to scroll. do you have edge scrolling enabled? your xinput list-props output above shows you have 2-finger scrolling enabled, not edge scrolling. run this command to enable it temporarily: xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Scroll Method Enabled" 0 1 0 if that does the job either write an xorg.conf snippet or get your DE to enable it for you (eg. GNOME has a toggle for it) > Neither of these issues were present before I installed this package. And > even if I use my little finger (so it can't possibly think it's my palm) [..] you're vastly overestimating the capabilities on your touchpad, sorry. it can't even track two fingers properly (it's of the semi-mt class) and pressure information is notoriously unreliable - that's why we don't use it for palm detection. anyway, afaict the problem here is that edge scrolling isn't enabled.
The "edge-scrolling-enabled" option in gsettings was enabled, though the "scroll-method" was set to "two-finger-scrolling". But even now that I have set it to "edge-scrolling" it does not seem to make any difference, two-finger scrolling is the only scrolling that will work, the other does not and everything behaves as previously described.
Ok, you're probably running into https://bugzilla.gnome.org/show_bug.cgi?id=769276 try the xinput command above and test, if it works then the gnome bug is the only remaining issue.
Well, I've set 'edge-scrolling' as my scrolling method in dconf but still that doesn't work and only two-finger-scrolling seems to. Here is the "xinput list-props 11" output: Device 'SynPS/2 Synaptics TouchPad': Device Enabled (138): 1 Coordinate Transformation Matrix (140): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Tapping Enabled (274): 0 libinput Tapping Enabled Default (275): 0 libinput Tapping Drag Enabled (276): 1 libinput Tapping Drag Enabled Default (277): 1 libinput Tapping Drag Lock Enabled (278): 0 libinput Tapping Drag Lock Enabled Default (279): 0 libinput Accel Speed (280): -0.750000 libinput Accel Speed Default (281): 0.000000 libinput Natural Scrolling Enabled (282): 0 libinput Natural Scrolling Enabled Default (283): 0 libinput Send Events Modes Available (258): 1, 1 libinput Send Events Mode Enabled (259): 0, 0 libinput Send Events Mode Enabled Default (260): 0, 0 libinput Left Handed Enabled (284): 0 libinput Left Handed Enabled Default (285): 0 libinput Scroll Methods Available (286): 1, 1, 0 libinput Scroll Method Enabled (287): 1, 0, 0 libinput Scroll Method Enabled Default (288): 1, 0, 0 libinput Disable While Typing Enabled (289): 0 libinput Disable While Typing Enabled Default (290): 1 Device Node (261): "/dev/input/event5" Device Product ID (262): 2, 7 libinput Drag Lock Buttons (291): <no items> libinput Horizonal Scroll Enabled (263): 1 That bug wasn't entirely clear on one thing (at least to me), is this an issue when two-finger-scrolling is available, or only when it is also set?
again, please try the xinput command, not dconf, gsettings or anything else gnome related. your output still shows 2fg scrolling enabled. (In reply to cooks.go.hungry from comment #24) > That bug wasn't entirely clear on one thing (at least to me), is this an > issue when two-finger-scrolling is available, or only when it is also set? when 2fg scrolling is enabled the edge zones are used for palm detection. when edge scrolling is enabled, the right edge zone works as scrolling area and palm detection is disabled in that area.
Sorry, maybe I misunderstood, how exactly do I set it using xinput?
xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Scroll Method Enabled" 0 1 0
ping?
Right, sorry, I thought I had replied but apparently not... To reply, no, it didn't make any difference. Unless that's not what you were asking me?
Actually, saying it didn't do anything is not entirely true (though I did not realise this when I posted he above comment), there is one thing which it managed to do. And that is to disable two-finger scrolling which is what I had enabled before, so now I can't scroll at all with my touchpad.
I'm getting lost here because we have three bugs here. First: the axis ranges are out which is what the hwdb entry in comment #7 is supposed to address. Judging by comment #16 that one applies locally. Please verify that the ranges are correct by re-running the touchpad-edge-detector and trying to reach all edges of the touchpad. The events should be within a couple of units of the announced ranges. Second: the palm detection area - that one is intended, but only for 2fg scrolling. When edge scrolling is enabled the right edge should work just fine. Edge scrolling can be enabled with the command in comment #27. Please verify that when edge scrolling is enabled, the right edge works as expected for scrolling. Third: gnome's edge-scroll setting doesn't work. For this bug we'll have to ignore this, we can't fix that from within libinput.
Sorry for keeping you waiting, I've been very busy. I will reply on this matter within the next couple of days if not tomorrow.
(In reply to Peter Hutterer from comment #31) > I'm getting lost here because we have three bugs here. First: the axis > ranges are out which is what the hwdb entry in comment #7 is supposed to > address. Judging by comment #16 that one applies locally. > > Please verify that the ranges are correct by re-running the > touchpad-edge-detector and trying to reach all edges of the touchpad. The > events should be within a couple of units of the announced ranges. I ran the command again and this was the output: Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event5 Move one finger around the touchpad to detect the actual edges Kernel says: x [1270..5659], y [1114..4764] Touchpad sends: x [1243..5759], y [1130..4832] \ ^C Touchpad size as listed by the kernel: 89x54mm Calculate resolution as: x axis: 4389/<width in mm> y axis: 3650/<height in mm> Suggested udev rule: # <Laptop model description goes here> evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnLENOVO:bvrH5ET69WW(1.12):bd11/15/2012:svnLENOVO:pn62742SG:pvrLenovoB590:rvnLENOVO:rn62742SG:rvrWin8ProDPKIPG:cvnLENOVO:ct10:cvrNotAvailable:* EVDEV_ABS_00=1243:5759:<x resolution> EVDEV_ABS_01=1130:4832:<y resolution> EVDEV_ABS_35=1243:5759:<x resolution> EVDEV_ABS_36=1130:4832:<y resolution> > Second: the palm detection area - that one is intended, but only for 2fg > scrolling. When edge scrolling is enabled the right edge should work just > fine. Edge scrolling can be enabled with the command in comment #27. > > Please verify that when edge scrolling is enabled, the right edge works as > expected for scrolling. If when I run the command which should enable edge scrolling, it doesn't get enabled. Although 2fg scrolling stops working, no way of scrolling is enabled. Now I can't scroll at all. > Third: gnome's edge-scroll setting doesn't work. For this bug we'll have to > ignore this, we can't fix that from within libinput. This might not be the case as your command wasn't working either. Also, sorry for keeping you waiting so long, I've been very busy.
I should also just add that dconf does not register that the command has been executed. What I mean by the that is I looked in the settings and edge scrolling is not enabled there, though enabling it there also does nothing.
gsettings and the xinput command are two different beasts, gsettings doesn't notice things directly done with xinput. After running the command, what's the value of the property? and I need you to run the edge-detector and make sure you hit every edge properly, including the corners. The first file I gave you is still out because in comment 34 you have different value. Please run your finger around the touchpad's edges a few times to make sure we get the correct min/max values.
Right, sorry for not getting back sooner. I was quite sure that the last output I gave you in comment 34 was the right one. At least I tried for quite some time to get all my fingers round all of the touchpad so it should be correct. I can try again, if you want?
https://github.com/systemd/systemd/pull/5031 I *think* this should fix the issue now, so I'm closing this bug. If there's another issue left after this was properly applied etc, please open a new bug because I can't keep my attention across 38 comments without having some summary feature that bugzilla doesn't have, sorry :)
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.