Admittedly I have Linux set up for keyboard use with a TWM, but the trackpads, when I used them, have been fine.
Admittedly I have Linux set up for keyboard use with a TWM, but the trackpads, when I used them, have been fine.
In addition to multi finger gestures, the biggest gaps for me are general handling of inertia, scrolling smoothness, ignoring accidental touches, fine grained pointer accuracy, and handling of alt-clicks(two finger right click, three finger middle-click, etc).
Again, it works, and is usable, but it feels like it was finished before the bar was raised on the trackpad User Experience.
I didn't know there was a "trackpad meme" - but to me the thinkpad is fine, but unquestionably more frustrating than the mac. I've tried to tweak things but never made it feel good.
I even set up a camera at one point to try and figure out what was causing my frustrations. Looking at the footage I noticed even though the thinkpad felt slower (or a bit "sluggish"?) I would still often slightly over-shoot my target.
I can't figure out exactly why it's different but it sure feels like some sort of black magic on the macs part.
Then I got back to my MX2 Anywhere and it felt like a mile away.
The other issue is that PC laptops tend to have much smaller trackpads for whatever reason, allowing for less room for fine adjustments after swiping.
My old Asus UX305 feels as good as a Mac, the trackpad is large, the scrolling has momentum and feels good, etc.
On the other hand, my HP Envy trackpad is terrible, the palm detection doesn’t work well, the trackpad itself is too small to aim properly, the acceleration is pretty high and hard to aim. It almost seems like the team responsible for the design of the laptop never considered what it would be like to use such a small trackpad.
1. Linux touchpad scores on par with Macbook touchpad per mouseaccuracy.com testing. As of today, I can consistently score twice as high on macOS (average score 250 with “Hard” + “Small” options) vs Linux (average score ~100).
2. Visual or terminal-based means to configure rudimentary touchpad settings. The fewest options I could imagine supporting for v1 would be: scroll speed/acceleration, scroll speed, natural scrolling toggle, hopefully support for gestures.
3. First-class palm and thumb detection/ignoring
Numbers 2 and 3 are already in libinput. I am still struggling to understand what it is the author feels they need to fork the project for; there is some additional software that needs to be provided to really get the mac-like desktop experience with gestures, but that is covered by the libinput-gestures project. https://github.com/bulletmark/libinput-gestures
It looks like this doesn't take viewport size into account. A smaller window still shows dots of the same size, just distributed over a smaller area. Given that it's (more) idiomatic to maximize windows under Linux and Windows than under MacOS, those results could be skewed.
_Is_ it? I know that it seems to be kind of a thing on Windows, but I've never really noticed it with Linux.
For my part, I don't use a tiling window manager, and the only things I maximize sometimes are VM displays.
I've used various different laptops (Macbooks, Windows machines, Linux-based ones, Chromebooks), and while the experience was certainly different, Macbooks never felt particularly superior. They seem to be configured (by default) to move cursors fairly slowly compared to the competition, but it's a lot about just getting used to it. There are of course some cheap, jumpy touchpads out there, but this doesn't apply to all non-Macbooks, by far.
Mac allows the cursor to move quickly, but where it differs & excels is how fast it decelerates or stops the cursor.
On Linux, I am always overshooting what I'm trying to click on even when I make the mouse tracking speed very very slow. On Mac I can keep the tracking speed high and jump around quickly but still manage to stop right where I need to every time.
So either, it's faster to register you're slowing down/stopping OR it slows down at a faster rate than your finger is slowing down (vs faithfully tracking your finger)... or both?
Edit: This is true for the handling of external mice too, it's not just the trackpad. The difference is night and day, and overshooting things is frustrating with a normal mouse as well as the touchpad.
Tweaking acceleration curves will not help overcome latency of 2-3 frames which is common on Linux compositors (33-50 ms of delay, causing target overshoots).
Things I've noticed:
- Mouse jumps after thumb-clicking.
- Thumb doesn't get ignored when doing certain combination actions (thumb + click and drag to select multiple items).
- Scrolling isn't 'inertial'
- Mousing around lacks some of the accelation/deceleration that makes getting around a screen easier.
(bias: I spent a lot of time thinking about the mac touchpad and once wrote an app leveraging it's privateframework data).
I'm really tempted to find time to help on this effort, but it likely requires getting another machine since I can't see myself living in linux full-time for a while.
> Scrolling isn't 'inertial'
It seems different applications have different scrolling settings. I'm on Ubuntu, on Firefox there is inertial scrolling (smooth scrolling setting), on Chrome there isn't.
I get this one on Windows with my touchpad (with Microsoft's 'precision' driver) but not Linux.
One that I don't like about the Macbook touchpad is that the cursor won't move for a short period after clicking, which makes it hard to click stuff quickly
Because of their low resolution, windows scrolling is done one text line at a time, while macs scroll a pixel at a time.
This sounds superficial, but it is really not. With the higher resolution, you get a very direct connection with the scrolled content. Without this almost tactile feedback, inertial scrolling doesn’t work at all.
And since scrolling is like 90 % of what I use a trackpad for, I will not even consider using windows with a trackpad until they have fixed it.
This behaviour one of the things in Mac OS that nobody really notices because it feels so intuitive, but if you took it away everyone would be puzzling over why scrolling feels broken.
I think the story is similar for Windows, but a little less satisfying since their hodepodge of UI toolkits starts from the very core, whereas at least with modern desktop Linux distros the core apps are generally implemented the same way.
Alas, mouse wheels are a whole other story. Pixel perfect scroll wheels have been a thing for a while, and Windows actually has support for these (not that it works anywhere). Support in Linux has been progressing at a similarly glacial pace, but it looks really promising. That's one spot where Apple is definitely years ahead. (If only they would make a practical mouse…).
No longer true. Windows 10 works pretty well as long you use precision trackpad, or use an apple touchpad with a third party driver (https://github.com/imbushuo/mac-precision-touchpad , https://magicutilities.net )
There is not a similar effect in other applications.
I stopped buying Macs due to the ESC key, the butterfly keyboard, the touch bar, and the removal of USB-A ports, so I'm very happy to have the Precision 55xx options.
Strangely enough, my only other laptop whose trackpad as almost as good as the Mac is my cheapo Chromebook.
There is a much better option than the trackpad mac or otherwise built in ;-)
You can observe this effect by comparing a magic trackpad 2 vs the internal macbook trackpad, when connected over bluetooth: there is a small but noticeable latency that makes the external trackpad less precise and less "fun" to use than the internal one.
Edit: you can observe the same difference between a standard corded mouse vs a bluetooth mouse. Or, in my case, a 125Hz USB mouse vs my PS2 mouse back in the Windows XP days - the difference was night and day.
Let's put it this way: the one accessory that's in my Linux laptop's bag that isn't in my MacBook's bag is a wireless mouse.
"Here, it's moving, what else do you want?"
The input experience in Linux is an example of the "Soviet style" pattern. Quoting the "Adrenaline Junkies and Template Zombies" book:
"You have probably used some of these Soviet-style products that do more or less what they are intended to do but in a way that you find awkward or irritating. You find that the products’ usability is not what it should be; their look and feel is unattractive; they lack certain security aspects you feel are needed; or they contain cultural references you find disconcerting or offensive. These are failures to meet the products’ non-functional requirements—those that make them appealing to the humans who use them. Such requirements are every bit as important for eventual acceptance as the functional requirements."
Whys and hows of this are also explained in this attempt: https://www.artlebedev.com/mandership/172/. TL;DR is that to make a good design for anything, be it a city park, or a gas stove, or a software product, you need to widen your comfort zone to include other people besides yourself.