Hacker News new | ask | show | jobs
by jmyeet 1265 days ago
So 2023 will be the perennial Year of the Linux Touchpad?

I don't know the details of this but it seems like we're touching on some fundamental architectural problems with Linux here. Please correct me if I'm wrong but it seems like a combination of:

1. The Linux device driver model is fundamentally flawed. Namly, device drivers live in the kernel (I'm including modules here) and there's no stable ABI to isolate device drivers;

2. This seems to be another example where X is showing its age and the fact that it was designed to do things people care less about.

A lot of engineers like to use Macs for development because its Unix-like and has a nice and responsive UI and hardware. There are technical problems with OSX but they don't seem to matter.

High DPI didsplay were a problem for Linux for the longest time where it quickly became just a scaling setting in OSX. OSX seems to benefit for complete vertical integration in a big way here.

To be fair, touchpads are (IMHO) a big problem on Windows too. This just seems to be an area that Apple completely nails (hardware and software). It's kind of weird that a decade+ later Windows and Linux are still playing catch up, even with Mac hardware.

3 comments

Maybe I'm unlucky with my popOS distro but I don't understand everyone here saying their linux trackpad is as good as a mac one.

When I two finger scroll on a mac, the content smoothly matches the movement of my finger. When I two finger scroll on linux it scrolls, but emulates a notched mouse wheel, with definite steps and no momentum. Some window management gestures worked on gnome, but as I noticed when trying to get four finger virtual desktop switching, you do the gesture then a command is run. On Mac the gesture animation starts as soon as your fingers start doing it, matching your speed and movement.

It's cool that I can map any gesture to whatever command I want, but it is very far from a smooth and responsive touchpad experience. My uneducated guess is that certain things in the linux UI stack only operate in mouse actions and have no mechanism for passing on multitouch gestures?

PopOS doesn't use Wayland yet, so it can't benefit from any silky-smooth 1:1 trackpad gestures (yet). It's on the roadmap probably, but only GNOME and KDE-based systems have implimented 'complete' gesture support.
> This seems to be another example where X is showing its age

This is 95% of the problem, and frankly it's not even an insurmountable one; Touchegg was a solution that would buffer both touchpad gestures and the animations, giving you "smooth" but not 1:1 gestures on x11. It was... okay, but clearly a different model was required to make it work.

> High DPI didsplay were a problem for Linux for the longest time where it quickly became just a scaling setting in OSX. OSX seems to benefit for complete vertical integration in a big way here.

I completely don't understand what you're talking about here. Linux can also do display scaling like MacOS, it's just horribly ugly and blurry on most systems. The current goal is switching to a more Windows-like model where the actual UI libraries can be scaled instead of pointlessly doubling pixels like they do on Mac: https://apple.stackexchange.com/questions/421858/how-does-di...

> It's kind of weird that a decade+ later Windows and Linux are still playing catch up

Really? Having used all three operating systems, I don't know what you're pointing to here. Linux is far-and-away my preferred Unix-like operating system now that it has gesture support, and even Windows is frankly not that bad in comparison to MacOS. Both OSes second-guess your authority and relentlessly push you ads, honestly I have no preference between MacOS and Windows anymore.

I don't see how in-kernel vs out of tree drivers is at all relevant. There's no problem getting the raw sensor data out of the device and delivering it to userspace. The main problems are at the opposite end of the software stack: the applications and the GUI toolkits they use. Mac OS pretty much has one GUI toolkit and window system, with good multitouch support throughout. Linux is a menagerie, and as a result getting features like multitouch or accessibility features implemented uniformly is a Herculean (Sisyphean?) task. X vs Wayland differences can make this a bit easier or harder, but cannot remove the need to implement multitouch support in GTK, Qt, etc.