linux-surface
linux-surface copied to clipboard
Surface Laptop touchpad tapping problem
I observed that the touchpad "tapping" and "double tap right click" stops working after a while. I have tried to play with libinput settings but no avail.
I've found this to be a problem as well on kernel 4.19. My 4.18 kernel works just fine though.
Surface Laptop. Confirmed with 4.19.27-1 kernel. Tapping works after booting, but stops after some time. Can't detect what i'm doing wrong before it.
I also experience this on a Surface Laptop 2 on kernel 5.0.1 (and several kernel versions prior)
I also have the same issue. every time I reboot the system, it will work for a while, and stop at a random time.
I have discovered that the problem happens only after you physically click. You boot, and tapping works until you make that first physical click. After that, you have to reboot again to reset it.
Confirmed same issue on type cover for Surface Go.
Tested with evbug post-break: [ 1877.842307] evbug: Event. Dev: input10, Type: 3, Code: 57, Value: -1 ⎜ ↳ Microsoft Surface Type Cover Touchpad id=10 [slave pointer (2)] A -1 value event fires for the touchpad when tapped, so this event must be ignored by xinput once a physical button is used. Will dig in source so see how this plays out. Could use an evbug dump pre-break for comparison and an "lsmod | grep xinput" for id matching.
Have the same problem here, it is so annoying that I am tapping and then after a few minutes I have to press down to click😂.
@xander-petty I have discovered that the problem happens only after you physically click.
Can't confirm on my device. After physically click, tapping is still working. So i also tried not to click for a while after boot. After time tapping stops working too.
The Surface Laptop1 also had this problem and had to use 4.18
I tried again with Ubuntu 18.10 and signed the 5.0.1 kernel by myself. This problem is not happen anymore. Previously I have this problem with Elementary OS 5 and the kernel is unsigned.
I have discovered that the problem happens only after you physically click. You boot, and tapping works until you make that first physical click. After that, you have to reboot again to reset it.
I was mistaken. As SoleSensei puts it, it still quits after some time. That is the same for me, I called it too soon.
I tried again with Ubuntu 18.10 and signed the 5.0.1 kernel by myself. This problem is not happen anymore. Previously I have this problem with Elementary OS 5 and the kernel is unsigned.
What device are you on? I'm currently on 18.04 and kernel 4.18. If you can confirm that 18.10 works on kernel 5 on the Surface Laptop 1, I will go ahead and upgrade and see if we can get a second confirmation on this.
I tried again with Ubuntu 18.10 and signed the 5.0.1 kernel by myself. This problem is not happen anymore. Previously I have this problem with Elementary OS 5 and the kernel is unsigned.
What device are you on? I'm currently on 18.04 and kernel 4.18. If you can confirm that 18.10 works on kernel 5 on the Surface Laptop 1, I will go ahead and upgrade and see if we can get a second confirmation on this.
I went ahead and upgraded to kernel 5 and ubuntu budgie 18.10. I can also confirm that upgrading fully resolves this problem!
surface laptop 1 also the same problem
I can also confirm that the problem goes away after upgrading from Ubuntu 18.04 to 18.10
Broken on Elementary OS 5 using kernel 5. It only seems to stop working when the touchpad goes idle or I stop using it. I've never had it just die on me while constantly using it.
I've had to alias disabling and enabling it via xinput. It's pretty annoying but not enough to get me to switch from eOS 5 to 18.10. Hoping I can put some time aside to find the root cause. Doesn't seem to expose itself as an issue in the Xorg logs.
Edit: nevermind, seems completely random so far.
UPDATE:
I spoke too soon, the touchpad eventually dies even using the synaptics drivers. It does last longer but the touchpad experience is much worse with synaptics.
Conclusion: If you're using Ubuntu 18.04 LTS or eOS 5 Juno, I wouldn't go higher than 4.18 kernel.
OLD POST:
I found a temporary fix for those of you that don't want to move to 18.10.
sudo apt install xserver-xorg-input-synaptics
Haven't had any issues with the tap to click all day. Unfortunately, it's not as slick as libinput. The tracking is fine but there's a 500ms delay on tap to click. I haven't figured out how to make it faster but I'm happy that I can reliably tap to click now.
Another issue you'll want to remedy is disabling the touchpad when typing if your palms hit the pad a lot. For this you can use syndaemon
syndaemon -d -i 0.5 -t -k -R
// -d run in background
// -i Disable touchpad for 0.5 seconds
// -t Only disable tapping and scrolling
// -k ignore modifier keys
// -R enable XRecord extension (honestly have no idea what this does but I see other posts use it)
I put the above snippet in my .zshrc
to enable it on boot.
UPDATE:
I spoke too soon, the touchpad eventually dies even using the synaptics drivers. It does last longer but the touchpad experience is much worse with synaptics.
Conclusion: If you're using Ubuntu 18.04 LTS or eOS 5 Juno, I wouldn't go higher than 4.18 kernel.
OLD POST:
I found a temporary fix for those of you that don't want to move to 18.10.
sudo apt install xserver-xorg-input-synaptics
Haven't had any issues with the tap to click all day. Unfortunately, it's not as slick as libinput. The tracking is fine but there's a 500ms delay on tap to click. I haven't figured out how to make it faster but I'm happy that I can reliably tap to click now.
Another issue you'll want to remedy is disabling the touchpad when typing if your palms hit the pad a lot. For this you can use
syndaemon
syndaemon -d -i 0.5 -t -k -R // -d run in background // -i Disable touchpad for 0.5 seconds // -t Only disable tapping and scrolling // -k ignore modifier keys // -R enable XRecord extension (honestly have no idea what this does but I see other posts use it)
I put the above snippet in my
.zshrc
to enable it on boot.
Just wanted to comment on this for anyone else who might be having this issue. I was having the same issue where the touchpad would work for a while, but then it would just stop working and I would have to actually click to do anything.
This solution seems to have worked for me so far. If I notice issues I'll come back and edit my comment. My system:
Device: Microsoft Surface Go OS: Pop!_OS 18.04.2 Kernel: 5.0.0-21-generic
Has this problem not been dealt with?
I'm having the same issue on 18.04 with kernel 5.1.15
I had the same issue on my SL2 with an install of Ubuntu 18.04. Upgrading to 19.04 only fixed it temporarily. It's probably the only thing keeping me from reinstalling Linux.
The best thing you can do is stick to a version of the kernel that matches what shipped with the distro. I switched back to Windows but I had the most stability and less issues with 4.X.X series when I was using Elementary OS 5 Juno. The trackpad almost became a non-issue the moment I downgraded the kernel from 5.x.x to 4.x.x
Thanks, @narkeeso. I'll keep that in mind for next time. Was it the tap-to-click issue that made you switch back to Windows or something else?
I've upgraded to 19.04, latest kernel 5.1.15 and so far the issue seems to have gone away. THanks for the suggestion.
@dsi3 I wanted to try WSL 2 since the main reason I switched was so I can get native docker support in Ubuntu. Docker in WSL 2 is not as fast as Ubuntu but it's working now and it feels nice to just know everything should be working as it should. I do miss the Elementary OS UI though.
I've gone ahead and installed Linux Mint 19.2 on my SL2, using the latest modified kernel (5.1.15), and I'm still having this issue. It seems like clicking the touchpad is often what triggers the tapping to stop working, but it doesn't happen every time I click. I can go long enough periods without having to disable and re-enable the touchpad in xinput, however, so it's not bad enough that I want to install Windows 10 again
Edit: I don't have much technical knowledge, so forgive me if I'm completely wrong, but does this have anything to do with our issue?
I'm also having this issue in Arch, kernel 5.8.5-arch1-1-surface (from pkg.surfacelinux.com), the unnumbered Surface Pro (2017?). Occasionally the keyboard and touchpad stop working for a second, and when they come back the touchpad settings have reset to default. When this happens, I fix it by opening KDE touchpad settings, changing any setting and changing it back so the apply button becomes active, and then clicking apply.
My guess is some part of the input stack crashes and when it comes back it forgets to load the user settings.
I'm glad to have found others with the same problem! All KDE flavors I tried (opensuse, fedora, kubuntu, neon) suffer from this problem. But ubuntu (gnome 4) doesn't. On my machine the breaking of the touchpad functionality is always preceded by something strange happening. Can be a configuration bar dropping from the top of my screen, can be a window sticking to my cursor. Immediate after that the touchpad is almost useless. Also in ubuntu I feel there are the same strange events. But they have no influence on the touchpad. The touchpad just keeps on going. Could it be that in ubuntu they made a systemd service that will immediately restart the appropriate service/daemon/kernel module when it starts behaving abnormally? That would be a workaround for the time being. I searched but I couldn't find this systemd-service. I tried to write one myself but it seems I can't find what it is exactly that crashes... In any case, it would be great if such a service could be added to any KDE flavor.
By pure luck I stumbled upon the solution of this problem! I installed the package xserver-xorg-input-multitouch and all problems went away! Now I have a cursor in X (I didn't) and under Wayland the touchpad is 100% stable and the machine behaves impeccable.
@begonia208: Have you tried the up-to-date kernel from https://github.com/linux-surface/linux-surface (as outlined in #677)?
Yes I tried the up-to-date kernel but it became a mess. I will try again. But note that in Ubuntu libinput never crashes on the same machine. So my guess would be that it has to do with the libinput implementation on Plasma.
Btw. I spoke too soon. The Surface Pro 3 still suffers from libinput crashes. Only they really happen later (hours, not minutes)
I installed the surface kernel successfully. Now I guess I have to test for a while. I'll let you know how it went.
I think the surface kernel does good things... Imo the machine boots faster, closes down faster and becomes less hot. But I regret to say that the surface kernel does not have a good effect on the libinput crashes... They still occur with Plasma.
In that case you are encouraged to file a bug report on their side, because that kernel is further ahead and actually actively maintained. Thanks.
I could do that. But perhaps it's not even evident that it is a bug in the surface-kernel. It could very well be a bug in plasma or in the way libinput is implemented in plasma. I guess that if it were a bug in the surface-kernel Ubuntu would suffer from it too. And it doesn't.
They also have a discussion section there, which might be a good place to ask: https://github.com/linux-surface/linux-surface/discussions
Is there an equivalent issue to this, in the linux-surface repo? I'm running the linux-surface kernel, and tapping stops working fairly regularly.
I reported it as bug with KDE https://bugs.kde.org/show_bug.cgi?id=450911 . Nate Graham assigned it to libinput. That could very well be accurate but I also wouldn't be surprised if it turned out to be a typical KDE-thing or perhaps even a Surface-kernel thing. But on the other hand: why does tap to click never crash on Ubuntu if it were a Surface-kernel thing? Could be that they are more clever with systemd and they let the tap-to-click process restart if it doesn't function normally...
Which device are we talking about specifically? SL1/SL2 have (IIRC) a standard USB-HID touchpad. SL3 and later have a HID over SAM touchpad.
In either case just it's a HID device. And HID is just a transport protocol, so if the cause is some very specific thing (like tapping as opposed to just dragging the finger) it's either an issue on the device side or an issue on the side interpreting things (which would be libinput).
Also what kernel versions does this happen with? If it's anything recent you might want to move the discussion to https://github.com/linux-surface/linux-surface.
I am using a Surface Pro 3. And I am loosing the tap as long as I use it. But ONLY with KDE. Not with Gnome... It makes no difference what kernel I use...
I'm using a Surface Laptop Go, running Ubuntu Mint 20.2, with the Mate desktop. I've never run KDE. Kernel is 5.16.17-surface.
Symptoms:
xinput disable/enable has no effect. I.e., this doesn't fix it:
sudo xinput disable 'ELAN Touchpad and Keyboard Touchpad'
sudo xinput enable 'ELAN Touchpad and Keyboard Touchpad'
If I switch users (using keyboard controls), tapping works for the other user. When I switch back, it's still broken. If I log out, and log back in, it's fixed. That's the current workaround.
So it actually sounds like these symptoms are different, and, perhaps, might be specific to Mint/Mate.
Is there a discussion forum for linux-surface? Or is the issue tracker the only meeting place?
Could also be multiple things... but those do sound a bit like userspace/DE problems. The kernel itself doesn't care about logout/login etc.
Is there a discussion forum for linux-surface? Or is the issue tracker the only meeting place?
There's https://github.com/linux-surface/linux-surface/discussions, or reddit (r/surfacelinux)
had this issue on my surface pro 6. Found a fix in kubuntu/kde desktop inside "trackpad" settings,there's an option "allow touch" and enabling it will fix the issue
I am using Kubuntu 22.04 with backports ppa and plasma 5.25 beta on a Surface Pro 3. I have to use Wayland because X won't doe anything. But to my regret on my machine there is no such option as "allow touch"...
I have SP7 and KDE Neon (20.04). Touchpad tap-to-click stops working after computer goes to sleep. Sometimes, I can go to settings and disable + enable tap-to-click to make it work again, but other times the tap-to-click option is just greyed out.
How can I debug this? I suppose something stops working (or does not restart) after sleep.