Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Linux Touchpad Like MacBook Update: 2023 Progress on Smooth Scrolling (gitclear.com)
256 points by wbharding on March 5, 2024 | hide | past | favorite | 275 comments


Why does this seem like such a hard problem to solve for everyone that isn’t Apple, when Apple seemingly solved the Trackpad over a decade ago?

Is this it? An unknown ROI?

>the highly uncertain ROI for trying to align touchpad acceleration has prevented us from proposing a system change to the default Linux settings.

I can only speak for myself, but I gave up using trackpads on anything that isn’t a MacBook many years ago. Very occasionally I’ll try them and have always been disappointed. This prevents me from buying any laptop that isn’t a Mac and prevents me from running any OS that isn’t macOS on a laptop. I can’t be the only person who prioritizes the quality and feel of input devices when choosing a system. If this can make or break sales and adoption, it seems like the ROI would be pretty good. Even if we are just talking about Java app, if I’m using an obviously Java app that feels like a clunky Java app, I’ll usually find an alternative app that doesn’t feel horrible to use.

I’m glad progress is being made, but I struggle to understand why it’s still a problem at all when it’s been so good for so long with Apple. They even sell Bluetooth trackpads for desktops it’s so good.


It isn't... You can see this in an open source JavaScript implementation of kinetic scrolling by Apple called PastryKit[3] using a magic number momentum * 0.9.

The problem is, that on modern Linux environments, there is no clear responsibility for where scroll handling code belongs. Especially Kinetic / Inertial scrolling is handled way different than in macOS.

There is libinput (for handling and redirecting input events)

There is the display server

There is the compositor

There is the window manager

There is the app layer (every App, like Firefox, Gimp,

Currently kinetic scrolling is implemented on the App layer, every app has to handle the scrolling events manually to provide kinetic scrolling. This is not the case in macOS... the kinetic scrolling / rubber banding is handled within the OS.

In my opinion, the scrolling code could belong into the compositor, so that not every app developer has to write code to handle the scrolling, but still prevent unwanted effects like kinetic scrolling transfer between windows. Additionally, the kinetic scrolling approach is not configurable in Gnome... some touchpads / screens are scrolling way to fast, some are too slow...

I filed an issue[1] on cosmic in hope they'll get it right, but I don't have too high hopes that this is of much interest. On Fedora it works ok-ish with a little hack[2] called libinput-config.

[1]: https://github.com/pop-os/cosmic-epoch/issues/204

[2]: https://gitlab.com/warningnonpotablewater/libinput-config.gi...

[3]: https://stackoverflow.com/questions/38619717/need-help-disse...


Worth mentioning that before libinput, the synapse driver handled kinetic scroll very well IMO, but AIU the developers removed the device-specific coefficients and other parameters because they said it couldn't be tested and became a mess or something. I remember looking at my Linux (Wayland, gnome3) notebook in anticipation of physical pain, at which point I switched to Mac OS permanently. To this date, I still don't understand why Linux desktop developers had to throw everything away and valued their grand refactorings more than a working desktop, especially when absolutely no new desktop apps are being developed anyway, but I guess that's what you get with a "hobby" (= developer motivation rather than demand driven) OS after all.


While is may be true from a user perspective, this "kinetic scrolling simulation" was removed, because it could lead to unexpected behaviour.

Example: If you where scrolling in a window, the driver kept sending scroll events for a short time to simulate kinetic scrolling. Now, if you moved the cursor to another window, the other window started scrolling, because of the simulated events.

This is not the case on macOS. Changing window focus doesn't change the scrolling. So, while working from a user perspective (in my opionion this would have been better, than NO kinetic scrolling at all), technically, it is a bug / unsolvable behaviour :-), because this problem cannot be solved on the driver level - there is no reference to the current focussed "window" / active element.

That's probably the reason why they thought: This must be solved at App level, which was the worst decision they could make. Putting the effort on the shoulders of App developers instead of solving it at one place leads to so much wasted developer time, that could have been put into new features or solved issues. I was shocked about how nobody seemed to notice that.

However, they are not "hobby" at all. Peter Hutterer is awesome and he understands the problem very well - but as a single developer it's hard to convince a whole community, that partly does not even (want to) understand the problem. And he's responsible for libinput, not for the compositors - so it's clearly not his fault.

I think the problem lies in separated responsibilities. They are trying to keep the projects (driver, compositor, window manager) separated / independent, but in this case, the problem is spanning the whole stack.


> Now, if you moved the cursor to another window, the other window started scrolling, because of the simulated events.

This is such a trivial thing to fix, you just stop sending scroll events when the cursor moves.

Peter has done a great job on libinput for the most part, but he is 100% wrong about inertial scrolling (and button remapping, among a few other things).


> Peter has done a great job on libinput for the most part, but he is 100% wrong about inertial scrolling (and button remapping, among a few other things).

Maybe you're right. However, this should not about individual persons / projects... this is more about that I'm still uncertain, why so many experts cannot get this thing right by just working together finding a suitable solution :-) There must by more than one way of solving this.

I'd argue that he is right about the fact, that the "driver" (libinput) should not send "simulated" events, that are not really there. Whereas the cursor movement should defintely stop the scrolling behaviour, the driver is not the place to care about this, I think it is more a compositor / window manager thing, but I'm not an expert.

However, if he would implement an opt in solution (2 config options) for lets say:

  libinput.simulateKineticScrolling=1
  libinput.kineticScrollingSpeed=0.22
  
a lot of people would be really happy, but this probably is a really dirty hack.


> the "driver" (libinput) should not send "simulated" events

scrolling itself is a simulated event. So is any two-finger gesture that isn't directly represented as an affine transform from one pair of coordinates to another.


that the "driver" (libinput) should not send "simulated" events

As long as they are marked as being synthetic, why not?

If you mark them with a "this is a synthetic event" bit, the compositor/windowmanager has all the information it needs to decide whether or not to ignore the event (because, for example, the pointer moved out of one window and into another).

The driver generates the synthetic events, the compositor/windowmanager decides whether or not to drop them. Done.


Alt + Tab


Putting the effort on the shoulders of App developers instead of solving it at one place leads to so much wasted developer time, that could have been put into new features or solved issues. I was shocked about how nobody seemed to notice that.

However, they are not "hobby" at all. Peter Hutterer is awesome and he understands the problem very well - but as a single developer it's hard to convince a whole community

Wait what?

I'm pretty sure Hutterer was the one who pushed it into the App layer. He's the maintainer of libinput, and refused to do kinetic scroll within libinput (like the libsynapse driver did for X11). If he wanted to do it centrally in libinput there's nobody else to block him from doing that -- he can just do it.


> I'm pretty sure Hutterer was the one who pushed it into the App layer.

I'm not sure what he did and I'm not trying to do fingerpointing. I thought he just pushed it away from libinput stating that it's the wrong place to handle it and wanting to keep libinput as "clean" as possible - even if this might be a questionable argument in this case.

To answer one of your other comments...

> If you mark them with a "this is a synthetic event" bit, the compositor/windowmanager has all the information it needs to decide whether or not to ignore the event (because, for example, the pointer moved out of one window and into another).

Yeah, this would be one of the many possible partial solutions. Don't get me wrong, I'm totally fine with this suggestion, but let's think that through:

libinput implements "simulated" events algorithm for intertial scrolling. It also would probably need a config setting for "speed" or "intensity". Nevertheless, this would not help without changes in at least one of the other layers I mentioned (Compositor, Window Manager, Apps) to either ignore or handle these events. In my opinion the App layer is the wrong place, because so every App developer / maintainer who want's to support inertial scrolling had to implement it AGAIN for his personal app which would create a tremendous amount of additional effort and different implementations acting differently. Not a great user experience...

So, the (additional) implementation has to be done somewhere between libinput and the App layer, which means either compositor or window manager.

Now, if an implementation in one of these layers is inevitable to get it working, why should it be implemented in libinput? Issues would spread over two projects, instead of one and getting pushed back and forth. This is of course my personal opinion.

Instead NOBODY implemented it and App developers and Framework Developers (QT, GTK, etc.) put in the effort to workaround this problem. That just feels wrong to me.

I wish at least one project just had shown good will to do it, in my opinion it would have been better to implement it everywhere (with optional disable) instead of nowhere, but I think it's just a too heated topic to solve it easily :-)


this would not help without changes in at least one of the other layers I mentioned (Compositor, Window Manager, Apps) to either ignore or handle these events

Yes, certainly. But it's basically one or two lines of code with zero configuration knobs:

    if (ev->is_synthetic && focus_changed_since_last_nonsynthetic) return;
Compare this to the current state of affairs, where every toolkit/compositor/app has to reimplement momentum scrolling on its own. That is multiple pages of fairly tricky code and several configuration knobs -- all of them replicated (differently) in each different thing that sits on top of libinput.

why should it be implemented in libinput?

Because libinput is the "narrow waist" in the input stack.

Doing this in libinput puts all the new configuration knobs, and all but one or two lines of code ("if focus changed then drop") in the one place where they can live without having to be duplicated.

Any higher up the stack and you end up replicating this functionality.

Issues would spread over two projects, instead of one and getting pushed back and forth.

I don't think so. If the problem is that a marked-as-synthetic event is/isn't being dropped when it shouldn't/should, that's the problem of some layer above libinput. Any other problem is libinput's. I know nobody wants to own these problems, but we can't make them disappear -- somebody has to own them. If they are owned at or below the libinput layer we can fix each bug once and be done. If we fix them anywhere above the libinput layer we will end up having the same bugs occur in multiple independent implementations and they will have to get fixed independently.

in my opinion it would have been better to implement it everywhere (with optional disable) instead of nowhere

I don't agree with this either. This "multiple reimplementations of the exact same thing" is becoming entrenched! We could get stuck in this situation, permanently. This isn't a question like "what should a titlebar look like" where different toolkits can legitimately have different opinions about it.

In my opinion the App layer is the wrong place

I agree.

Some part of this has to be done somewhere at-or-above the compositor layer, since those are the only layers that are aware of focus changes. Unfortunately there seems to be no traction for e.g. wayland to require that all compositors do this. So the replication gets amplified even further by pushing it up into every compositor or toolkit. That's why it's so important to limit the size of the bit that gets pushed up the stack to being two lines of code.

Perhaps a viable compromise would be to insert a new layer above libinput. For argument's sake, call it "libgesture" (*). It's responsible for consuming libinput events and emitting synthetic events like momentum scrolling. It would have exactly the same API as libinput, except events would have an additional `is_synthetic` field. I've actually built something similar to this (but at the kernel evdev level) for my own use.

Perhaps that would make everybody happy.

(*) This is unrelated to `libei` -- I have this sinking feeling that many apps (especially chromium) will reject any event that smells "emulated" to them "because muh bots" or something stupid like that. Trying to use libei for this is likely to backfire once the chromium devs decide that "emulated" means "bad for Web Environment Integrity". The indicator for gesture-synthesized events like momentum scrolling really needs to be completely separate from any marker indicating that the event was in any way emulated.*


Very convincing pitch

> Perhaps a viable compromise would be to insert a new layer above libinput.

Since I think this probably will never get integrated in libinput, this might be the best solution for everyone - also opt in. Unfortunately I don't think anyone is ever gonna implement it in a way that everyone can agree on.

However, if someone would implement patches for libinput as well as e.g. mutter that work flawlessly, are documented and gain acceptance, this would put a lot of pressure on all other projects to integrate this.

If you have such patches and they are open source, you surely would have my support. I would definetely use it...


> I filed an issue[1] on cosmic in hope they'll get it right, but I don't have too high hopes that this is of much interest.

That's insane but you're right. Firefox on Ubuntu had awful trackpad scrolling 10 years ago and it's still bad. How do you make an OS where the main pointing device on half of the market sucks and assign that low priority?


> How do you make an OS where the main pointing device on half of the market sucks and assign that low priority?

Because Linux isn't "an OS". It's a kernel made by one set of developers, combined with a bunch of operating systems made by a second set of developers, which pick and choose compositors/window managers/etc. often made by a third set of developers. Each of these sets of developers are pretty good at solving bugs that live entirely in their "domain", but when there's an issue which crosses these interface boundaries, there is nobody to "assign priority", never mind actually work to fix it.

(Not to mention, systemd demonstrates that trying to solve these kinds of pan-system problems earns you little gratitude but tons of vociferous hatred, so people are not inclined to do it.)


That's why I mentioned Ubuntu; if anyone has incentive and resources to contribute to all these projects and get smooth scrolling working it's Canonical. If _they_ can't, I guess that means the whole community is screwed on that side. Maybe it's going to work 20 years from now, when we've moved on from trackpads to AI voice interfaces.


In 20 years there will be so much baggage to fix that we’ll be at the same point we are now “ugh but you have to rewrite everything from the ground up and update so many programs…”


That's what I think is the problem. And exactly the reason I thought cosmic could get this right. There is a lot of promising decisions in this project, but maybe it'll take a while to work as expected :-)


I've been using Firefox on Ubuntu from 2009 to 2022, 08.10 to 22.04, then switched to Debian, but I never noticed any problem. I always used X11, a laptop, touchpad and two finger scrolling. Maybe is it a Wayland thing? Or it is very subjective.


Noticing a problem and having smooth / improved scrolling are two different things. I think you can only notice the difference if you've ever used a macOS device with a trackpad for more than 2 weeks and then switched back to either Windows or Linux. It's just feels HORRIBILE for some people (like me).

The interesting thing: Some Distributions have smooth scrolling (or interial scrolling / kinetic scrolling) by default (Fedora, Ubuntu) and some don't. Those who have enabled it, have no speed setting, so most of the time it's way to fast. I tinkered around a very long time with libinput-config to get it right and now it's acceptable. But it is still waaay better on macOS.

It is NOT a hardware issue though. I tried "hackintosh" on my T460s, and the touchpad experience is nearly as good as on a MacBook, so it is mostly software / OS.


Smooth scrolling is something completely different, having to do with mousewheels.

Please don't perpetuate the awful terminological confusion around this issue.


Try enabling "XINPUT2" in firefox, you'd be surprised what a difference it makes


I gave it a try. The difference is that XINPUT2 scroll has inertia: I start scrolling, remove the fingers from the touchpad and it keeps scrolling for a while. If I want to stop when I see something interesting I have to click or it will scroll away. That adds an extra action that must performed at the right time. I don't think I like that because this is not a videogame and Firefox is not supposed to challenge my abilities. I prefer the current behavior: it scrolls until I stop sliding my fingers on the touchpad. Then I have to move them up to the top of the touch pad and start again but I can scroll all the front page of HN in a single motion and it gives me time to check what I'm looking at, especially on longer pages (this comment thread.)

Anyway, it's nice to have different settings that suit different people.


Try it for some longer time. Scrolling on Macbook becomes subconscious. I don't think about it anymore. I don't even notice that I am moving my fingers. The scroll pane just moves where I want it to move. Simulating the behavior of physical objects allows our minds to reuse what it learned about the physical world. That is imho a very powerful user interface metaphor. But beware, this is just an anecdote.


There are two other problems I thought about later:

1) It's too fast. My Android phone also scrolls like XINPUT2 but it's got a smaller acceleration. But maybe it's what you say about getting used to it.

2) That would work in Firefox and every other window would still scroll in the other way. That's really bad and works against getting used to a specific scrolling behavior. I don't get it: the scrolling behavior should be managed at a level below every application. All the scrollbars should behave in only one way, except the random application that implements its own logic because of some important reason. So I would expect a system wide setting for XINPUT2 or traditional scrolling.


> I start scrolling, remove the fingers from the touchpad and it keeps scrolling for a while

If you want it to not scroll further you need to stop scrolling before lifting you fingers. That should be pretty easy to get used to.


The pointing device doesn't suck, just the defaults (and probably the graphical configuration tools - I always use CLI and editing config files but most open-source GUIs are horrible). If you're willing to spend 5-10 minutes tweaking, you can get exactly the same performance or better just by playing around with some settings.


You're right, after tinkering around I also found settings that are ok. But that's only part of it. There are so many things that just work better on macOS, e.g. the "tap-to-stop" or "vertical-scrolling".

I also think that the App developers should not have to shoulder this. App developers have way better things to do than care about touchpad events... like fixing issues and developing new features. I don't see where smooth scrolling should be an App feature...


That's only going to affect part of your apps though. Last I checked, Firefox on Ubuntu finally had a kind of pixel-perfect scrolling, but it wasn't smooth and didn't keep momentum if you let go of the trackpad while scrolling fast. That just feels bad, even after getting used to it.

And Qt apps will scroll differently than the GNOME project's apps which will scroll differently than other Gtk apps. It really feels disorganized and unfinished.


This doesn't help me. I have zero confidence I can do any of this.


> There is the display server

> There is the compositor

> There is the window manager

What kind of Schrodinger Way11 world is that? X11 has display server and window manager (and window manager doesn't deal with mouse movement), and Wayland has a compositor.


I just meant to point out the complexity of the transition Linux has gone through... The transition from X11 to Wayland is still a thing and most Environments / Window Managers still use code from both technologies.

However, you are right, there is no such thing like display server AND compositor.

> and window manager doesn't deal with mouse movement

And that's causing one of the problems I described above, when changing window focus while scrolling. The driver just sends scrolling events, regardless of the window focus, so it keeps scrolling, when you trying to "simulate" kinetic scrolling.


Slight correction: macOS handles the kinetic scrolling, but rubber banding is handled by the app itself.


Oh, that was new to me. Thanks...


This explains a lot. Thanks so much! This is a rabbit hole I didn’t want to go in a few years back. Some people would say they had issues, others didn’t. Would’ve taken me a lot of time to figure out that we all may be talking about different DEs, apps, etc.


It is an interesting thing to think about, I have friends that use Windows that are shocked that I willingly chose to get an external trackpad when I use my Mac as desktop.

Even more interesting is when I see my partner try to do something on my Mac using a trackpad, he seems... apprehensive? Like he is so afraid of doing the wrong thing and for me this trackpad has never done something I didn't want it to do. Like without even thinking about it while I was re-reading this comment, I had fingers just resting on my trackpad.

It has to be a combination of software and hardware. Likely shared software and hardware.

Like is wrist detection on the trackpad the same as the wrist detection on an iPad?

I believe that the 3D Touch tech that was once in the iPhone is the same tech that is in the track pad and the Apple Watch.

We saw them use the same (or similar) tech on the iPhone home button when they removed the physical button.

Is the multitouch functionality of the trackpad the same technology as in iPhones and iPads?

I am genuinely curious about some of these because they feel like the same technology from the outside looking in and it would explain a lot about why it works as well as it does.

And yeah on the ROI, I mean they sell a $130 external trackpad... that I had zero qualms about buying. Because when using my MacBook Pro as a laptop I heavily rely on gestures. Those gestures only work if the trackpad is as perfect as it can be. But those gestures is also software.


> Even more interesting is when I see my partner try to do something on my Mac using a trackpad, he seems... apprehensive? Like he is so afraid of doing the wrong thing and for me this trackpad has never done something I didn't want it to do. Like without even thinking about it while I was re-reading this comment, I had fingers just resting on my trackpad.

I think I'll never "get" drag&drop on MacBook touchpads. Every time I try to do it, I accidentally open the file info, or the touchpad is too small to actually reach the place where I want to drop the file to. It is absolutely doing things I don't want it to do. I absolutely dread having to use the touchpad. (that applies to other laptops too, though)


Since you mention the touchpad being too small, are you trying to drag and drop with one finger or multiple?

What I always just do is click with my thumb and move around with my other fingers. As long as my thumb stays down it stays selected. Then just a few quick swipes with my finger gets whatever it is I am selecting where I want to go.

Same works for windows and anything you click and drag. Admittedly there is a quirk here that I have noticed, if for some reason I click and try to drag with the same finger, I then can't switch to dragging around with a different finger.

But personally I treat my thumb just resting no the track pad as my click finger and move/gesture with my other fingers.


This is 100% the way to do it.

It just came so naturally because I’ve used Macs for years. But I’ve noticed on Linux and Windows laptops (even Windows on an Intel MacBook) this approach doesn’t work. I find it so frustrating when I have to use a trackpad with any other OS, I completely understand all those users carrying around a mouse to use with their laptop, and why they look at us like we’re nuts!


You know I never really thought about where that habit came from. It’s been so long that it’s just second nature at this point, I dont think about it anymore than I think about typing or using a game controller.

That presents an interesting problem. The older physical click trackpads had a physical thing to encourage a specific use of it. Now that the device doesn’t care where you click, there is no longer something there to naturally find using it in this way.


This works on my system76 lemur pro 10 with pop!_os: - click and hold on the touchpad with thumb - swipe with another finger to drag around. Multiple, disjoint strokes work, so there's nothing special about switching fingers

It would be a bit uncomfortable to do for long periods, since my thumb has to hold down with clicking force.


On that note, why is this possible on iOS but not Android? It's even possible to pick up several icons on the homescreen and then move them to a different screen with your other fingers. Android is a nightmare by comparison.


One configuration I always immediately make is enabling three-finger dragging, along with tap-to-click. Significantly reduces the friction (both literal and figurative).


I've found that many Mac users aren't aware of the three-finger drag and select feature, and it seems Apple has somewhat hidden this setting for some reason: https://support.apple.com/en-gb/102341

With tap-to-click, my touchpad is completely silent.


I've used it since before it was shunted to Accessibility settings.

Nowadays, sometimes Finder gets confused when you use 3-finger drag, and it doesn't work with sliders in the newer control center released years ago.


FWIW, 3-finger drag works perfectly for me. I've never used anything else. Currently on M1 Air with Sonoma.


I don't have a MacBook but I looked up a video and this seems interesting. But how does it solve the problem of hitting the edge of the trackpad? If anything, it seems like it makes the problem worse because now you have three fingers on the trackpad so you will hit the edge quicker.


The gesture is "sticky" when moving objects: you can lift your fingers long enough to move them to the other side of the trackpad to continue dragging.

For selecting text, the trackpad is large enough for nearly any selection.


So I will do my best to explain it, one of the hard problems here is this is just kinda second nature for me. So I may not do a good enough job of explaining it.

But ok so for me, I basically am always resting my thumb (I am right handed if that helps visualize) on the bottom-ish part of my trackpad. So so when I am moving my mouse I have 2 fingers on it. My thumb is just sitting there and my index is moving around.

My thumb is basically my clicking button. It doesn't have to be, but for me it is. It also doesn't have to be at the bottom, I can click anywhere which is nice when I am quickly going from my keyboard to my trackpad and need to click something.

So because I click with my thumb and move with my other finger(s). I can click to drag, select, whatever it is that I am doing with my thumb. And them move with my other finger. With my thumb staying down, I am free to pickup and move my finger as many times as I need. I can pickup my finger for as long as I need to and it will stay selected for as long as my thumb is still there "pressed".

With acceleration that Mac uses, with just a few quick swipes I can easily move a window between 3 monitors.

Since the trackpad is also not physically moving when I "click", it is just pressure sensitive. It also isn't a strain to keep my thumb down.


Oh I get using your thumb to click/hold like it's a button. I was questioning the three-finger-drag but the other comment answered it, the gesture is "sticky" so you can reposition quickly when you hit the edge.


I find it easier to rest my second finger and drag with the third finger as I don't have to twist my hand that way.


Someone I know who's been using apple forever does the same and it always confuses me. Now I know why!


This is also a holdover from how older trackpads with physical buttons worked. The buttons were at the bottom, so click with the thumb and move with the finger(s).

This is how I first used a trackpad 20+ years ago and I never felt the need to change. I tried some of the newer ways to click and drag and they all seemed worse. Tap to click is the first thing I disable on any laptop, that’s what my thumb is for.


Thanks for the hint, I will give that a try.


Try accessibility settings and then 3 finger drag (switching spaces will become 4 fingers). It works really great and makes working in design tools feasible.


Doesn't putting 3 fingers on a track pad already feel so damn awkward? I have to position my wrist so oddly to do something like that.


Are you positioning your wrist differently for three fingers than for one to place your fingers at a particular angle on the trackpad? Or just to reach further into the trackpad to make room for the other fingers? If it’s the former, you don’t need to do that, it will work at whatever angle feels comfortable to you.


So my hands are always resting on ASDF and JKL;

Most natural to use the track pad is to curl my right hand towards me with my wrist still touching the macbook. One finger feels decent, but already 2 fingers feels a bit off to me. And 3 fingers even worse. It's really stretching my wrist at that point. My wrist is always positioned on right of the trackpad, but putting 3 fingers on the trackpad is putting it at an uncomfortable angle.

Even with one finger I think I have to bring my wrist quite away from the usual position though, off the laptop with its bottom. But three fingers feels uncomfortable even when I do that.


Personally, I find 3-finger drag to be a dream. I have spent many hours happily using a MacBook this way, and can’t imagine how I’d want it to change.


Three finger drag is a dream. I have switched to Linux and I'm missing it sorely. Linux is lagging behind, but there are hacks. https://github.com/marsqing/libinput-three-finger-drag


I love drag-and-dropping to arbitrary locations in the Finder using spring-loaded folders. I think it is a bit tricky…if you don’t know the trick.


On laptops with physical left/right buttons, it's as easy and straightforward as it is with the mouse. Thinkpads would be one prominent example.


I turn on the accessibility setting for drag lock as the first thing I do on any new macOS install, that helps a lot


I always turn on 3-finger drag in any Mac I use, not once someone complained I enabled that option for them. I don't understand why it isn't the default...


>I believe that the 3D Touch tech that was once in the iPhone is the same tech that is in the track pad and the Apple Watch

3D touch was only in the iphones for a few years, it was too expensive so they cut it in favor of the haptic touch they have now. The macbook trackpad is nice but honestly I prefer the old 2012 one they had with the actual physical button you could tweak the pressure of with a screwdriver. It seems a lot more ergonomic to have some actual give in the device instead of just jamming your finger onto an unmoving slab of glass. You don't even realize how hard it is you are pressing onto these things until you try testing your muscle memory with the computer off; its sort of alarming.


I thought 3D Touch was cut because no one seemed to know the functionality existed, it had a discoverability issue. It was kinda tacked onto iOS unlike WatchOS where it was part of how the entire OS was designed.

Which I always found unfortunate, it had some really nice uses like not needing to wait when holding down for the OS to register and being able to pull up a context menu, slide up, and release to select the menu item all in one motion. I was sad when it was removed, but I also get it.

I get the idea of a physical trackpad, and I do remember when that was the thing. I honestly don't even notice that the trackpad is not physically moving. It simulates the feel enough that if I didn't know it was not moving I would think it was. You are right it is shocking when you try to use it while it's off and it's like... oh right. But I just am not in that situation often. (However when Mac freezes and it "clicks" multiple times since it did not properly register ealrier, that's honestly kinda wild... but infrequent).

But I also like not needing to think, I need to press on a specific part of the trackpad for it to properly register. I vividly remember only the bottom half really registering and the higher you went the shallower the press was.


I’m sorry what

You can adjust the pressing force required in software, and the glass does in fact depress under your finger. It’s cushioned - that’s how they detect pressure.


They barely deflect, strain gauges measure the deflection and trigger the haptic part. When off, it does feel pretty solid. When on, the effect is very convincing, you would never know it's not a button without being told. I had a coworker once that was ready to open up his turned-off macbook because he had been near sand recently and was convinced sand must be trapped inside the trackpad because it "didn't depress".


My Apple trackpads don’t click when they are powered off. It just feels like pressing a piece of glass.


You can choose three settings instead of an arbitrary level of adjustment with the old screw system. It used to be super easy in the very first round of unibodies, practically tooless except for the screwdriver on the trackpad since the battery came out with a finger latch at the time. Just shut the thing off and try it out, if it had cushioning you'd be able to tell then but its basically a slab of glass.


You can also detect pressure by just measuring how much of your finger is touching the pad. A small spot means light pressure, a large spot where your skin is flatted out more against the glass is higher pressure. In practice these kinds of measurements are fairly tricky so they don't get used very much.


This. If you ever look at apples raw input touch privateframework it provides enough data for the relative direction/size as well as has some encoded states to at least detect between a very faint touch and a finger on the trackpad.

This I think goes back to the first unibody MacBooks from around 2008.


The multitouch trackpads actually showed up in the early 2008 MacBook Pros that were the last ones before switching to the unibody enclosure (IIRC the keyboard/trackpad parts could be retrofitted into 2007 MacBook Pros). The early 2008 models still had a separate physical button at the bottom of the trackpad. The late 2008 models got rid of the button and made the whole trackpad hinged at the top to act as a button. Then in 2015 they introduced the Force Touch trackpad that fixed the awkwardness of needing more force to click the further up the trackpad you went.


Yep. And this blog post from 2009 was a big inspiration for me in exploring touch on the mac: https://archive.org/details/2009-03-28-steike-code-macbook-m...

and a comment a few years ago by me: https://news.ycombinator.com/item?id=23274577


My work laptop is a macbook and I have been using it for over 5 years, but I still can't get a handle on it, even for a right click. I am not sure how people find MacOS so good. It just constantly goes against my intution and muscle memory.

I also hate how I have to constantly turn of the mouse acceleration at random times using CLI.


Right click is just tap with two fingers. What issue are you having?


You are right it works, but I guess I somehow usually expect it to happen in a lighter way, without the actual click going through. And when I do it, it feels weird to me. It feels like I have to exert more force than I would find "pleasurable" or "intuitive" for a right click. Like I either expect there to be a button that I have to actually press, or if it's a touchpad it feels like it should work with a lighter tap. It feels like having to press too hard for something that doesn't actually seem to go physically down enough.

Another thing that feels really weird to me is the cmd button location.

On windows I would use ctrl + c and v, it's easy to use my pinky finger, but with mac I have to twist my thumb and index finger.

I don't know. I just can't get into it. All of those little actions that are smooth for me otherwise feel like quite a chore and a turn off.


In the settings you can set how much force is needed, light, medium, or firm. Try changing it to light (if you haven't already). You can also enable tap-to-click there if you prefer the lightest touch. The settings area also shows all the various multitouch things that can be done, which is convenient place to learn them, or get a reminder.

In the settings you can also flip the modifier keys around, like control and command. Though that could lead to other weird things like trying to do control+c in the terminal. I usually use my ring and index, or middle finger and index. If you're using pinky for control, why switch to the thumb when you can use a closer finger that would be over command with your hand in the same position?

I will say the command+c does get a bit cramped, but I think command+v feels better than the stretch of control+v.


So I tried changing the settings, and somehow during that, I accidentally managed to change the size of my menubar, I don't know how. But anyway - even after changing to light, which also seemed an odd process to me that I had to do it as a range slider, where it snapped at certain point in time, even though I was moving my hand smoothly, which I guess is NOT that bad, but it could've been just 3 radio button options, not this goofy slider. And somehow when I click on the option the range option, this simple animation lags and skips. It just doesn't feel smooth animation. I don't have the latest M chip, but I do have an M1 Pro chip, so I'd imagine it should be able to handle animating a slider change... But I didn't finish my sentence previously. Even at light, it doesn't feel like I would intuitively expect it to feel. Something is still wrong.

And another random grievance - what is the point of only showing X, - and the other icon when you hover on them. It's just weird decision to me. The Red > Yellow > Green thing.


Yes, exactly - I did the ctrl cmd switch previously, but then there's

1. Magic Keyboard with no "fn" button.

2. Macbooks own keyboard with FN button. Which really messes with me, because my pinky expects the left most button to be the CTRL action button.

All of it messes with my brain so hard - it makes those little actions hurt me almost every time.

And as you said, different sets of terminals drive me just so crazy.

I might try the settings, but I also overall hate the MacOS settings, as it seems it's all just so obscure and weirdly limited, like someone has given me those random options that do not adhere to me at all. As mentioned previously, no easy ability to turn off acceleration, which keeps gaslighting me and not feeling right even after using CLI to turn it off.

My solution has been to opt just for a mouse, but Magic Mouse feels extremely terrible and awkward to hold. I have Logitech MX Master 3 - which feels nice, but not with Macbook. It sometimes randomly starts to skip and lag, I have to reset it. And it still feels like at times some force is working against me when I'm trying to move the mouse.

I still feel it just somehow working against me even if I have turned off the acceleration, despite it working well with Windows.

And then the MacBook animations, which feel horrible. The jumping up down thing, feels just annoying. The genie effect, terrible, the having to move the app to install it and then no loading indicator, horrible. I know I can turn off the Genie, yes, but it feels so cheesy and cheap animations.

I can honestly list countless things more that I hate about MacOS, but feel so smooth on Windows.

Spotlight feels better with latest MacOS version, but previous ones I always write something, and it just changes moment before, or it gives me irrelevant result. Because I either use spotlight to open the correct app or Windows btn, which is very responsive and always opens what I want.

The search for correct app should be realtime. Also I'm not going to go into window management....

Then one of the very common things I have to do, taking a screenshot from part of a screen and putting it in a clipboard to share with someone. I have to use I think 4 fingers?? And then another click. And all of those 4 fingers in such an awkward position.


I get it. I'm generally in favor of not changing too much, so I can sit down at other systems and use them, or get a new one and not have to spend 2 weeks tweaking and tuning stuff. I figure I'll get used to it eventually. Some things take longer than others, and some things just require acceptance. Deciding that doing things the Apple-way will be easier than fighting against it. I gave in long ago and things got easier. When on Windows or Linux, I try to have the same mindset of doing it the way they intend. I went so far as to read documentation and watch videos to try and figured how the hell Gnome expects people to manage windows without a minimize option, as the add-ons for that seemed very hacky. I don't think I'll ever get used to throwing something in a new desktop instead of minimizing it, but I was working with someone from Red Hat who seemed to do it without even thinking about it, as if it was normal... which I guess it is on Gnome.

lol, yeah, the screenshot keyboard shortcut is crazy (3 fingers). It took me a while to get the muscle memory down, but once I did I liked the flexibility of it way more than Windows (at least at the time which just had print screen, while Apple could do the whole screen, a selection, or a window).

I suppose these days spotlight can open the screenshot utility, although I never think to do that since I've got it down. It's worth going in there at least once, as you can change some settings, like not showing that little thumbnail, automatically saving to the clipboard instead of a file... stuff like that, depending on your needs.

I had the benefit of using OS X since version 10.2, so each year when stuff came out I could just learn those things. If I was starting now it would take me forever to find all the random little stuff and where various settings are hidden away. I don't even know where I'd go to try and learn it all. I'd probably be frustrated as well.


Yeah - I just never feel like I truly have the time or I guess the motivation to keep up to date with those OS updates or releases. I only got Windows for my personal laptop just recently, and it still somehow feels completely natural to me. Despite the last one I seriously used frequently being Windows XP. I don't know if it's just because I spent most of my youth on Windows, and I was tuned to it or not, but MacOS feels like something I'm constantly fighting with.

The only terrible thing about Windows is development, but right now it feels like I'm almost satisfied with WSL2. In the past for my side projects I used to do dualboot.

But also I somehow like Windows design and animations so much better. Another thing about MacOS I can't get hang of is the menubar below and how the windows adjust to it. And it is especially confusing with multiple monitors setup.

I've been trying to "Wing It" to understand MacOS a lot, which I admit, and it hasn't really worked, but it feels like Windows works for me without putting in effort or having to watch any YouTube videos. And I don't think in my youth I watched any tutorials, it's just something that I learned naturally. Then is it my age, but I wasn't that old when I started with MacOS.

Something like even the "Finder" icon bothers me. What is this weird happy, artsy smile, and why can't it just be something that resembles folders? It's just so random, everything about MacOS feels so "random" for me.

Plenty of icons I can't understand, and sometimes the hover text appears on what they mean, sometimes it doesn't. Idk.


For me the standard Command position is much more accessible than the standard Control position, no twisting needed — Control is the one that I find my hand having to contort to reach.

Control still gets used fairly often under macOS though, so it needs to be easy to reach, and my solution is to remap Caps Lock to Control which is pretty comfy. If this remap weren’t possible under Linux and Windows too I think I’d go insane using them.


Which fingers are you using to CMD + C? Because this is one of the more common things I would do and it feels bad every time, I'm using my thumb to press command and it doesn't feel well, and index finger on C.

I have to use side of my thumb to press the CMD kind of.


Not in front of my computer right now but I’m pretty sure it’s thumb and index finger. Feels completely natural.

Maybe it has to do with hand size, finger/joint length, etc?


Okay. Otherwise do you in your natural state hold your left hand index on F and right hand index on J? Going to A on pinky on your left hand and the key after L on your right pinky?

Because I think I have pretty much average male hands, but if I have to do CMD and C, with this natural state position, I have to hit the CMD with pretty much the nail of my thumb sideways, unless I rotate my wrist a lot.


Index on F/J, pinky on A/L, thumb naturally resting on space. Hitting left Command involves bending my thumb and though the press is performed with the side of my thumb, it’s not on its nail but further down.


on a mac when i'm in mouse and keyboard mode my left thumb is resting on CMD with my index finger on W (CMD+W, close window), middle on 1 (it'll reach down to do CMD+Q), and ` (CMD+`, cycle through windows)

when i'm in programming mode, i'm in emacs on the homerow


I find that changing the right click to the bottom right corner works well for me. I constantly have two fingers resting on the trackpad. Other replies have commented about using the thumb to click while you drag with another finger. I do that constantly so I just gave up on the two finger right click. It would trigger all the time when I didn’t want it to.


How do you middle-click?


If I'll ever use a desktop again I also want an external touchpad and I want to place it in front of the keyboard like on a laptop. But you wrote trackpad. It's it the one with the ball? Probably not because you also wrote about multitouch. So, which trackpad do you use?


Touchpad and trackpad are synonyms. Trackpad is the older term.


I'm a 100% trackpad user as well, and I also got into mechanical keyboards so my setups always look like this now:

https://imgur.com/a/pmRO9r9

That one is an older magic trackpad, if it ever dies I'll upgrade to the newer one.


What's the two keyboards layout for? At first I suspected that they are two different keyboards, let's say US and some national layout, but they are both US. Maybe the black one is not connected and it's there only for the picture?

Anyway, that's the keyboard/touchpad layout I would use too. The only difference is that I like touchpads with physical buttons. Three of them because I use Linux and pasting text with the middle button is great.


Ah yeah, the extra keyboard was just there for the photo. I designed the PCB so I'm kinda proud of it :)

I agree that physical buttons are nice. The older magic trackpads actually are physical buttons, but they're on the underside of the trackpad, so the disadvantage there is you don't feel the button on the surface.


I got an external trackpad recently too for my Mac, but it feels noticeably less responsive than the one built into my MacBook, even when connected with a USB cable.


> It has to be a combination of software and hardware. Likely shared software and hardware.

You need decent hardware to be sure, but Asashi Linux on Macbooks is a horrific experience, unless you plug in a mouse. It seems like it is mostly software.


> I have friends that use Windows that are shocked that I willingly chose to get an external trackpad when I use my Mac as desktop

I use an external Apple Magic trackpad on a Windows desktop. It's a good and smooth experience.


> It is an interesting thing to think about, I have friends that use Windows that are shocked that I willingly chose to get an external trackpad when I use my Mac as desktop.

external mouse is much more fun to use


I think the reason is that "a good trackpad" as well as "a good keyboard" is not something that can be measured. Let's say that the cost of a good trackpad is equivalent to the cost of, let's say, 16 more Gb of RAM. Does the user given the same price choose to by the laptop with written on the box "32Gb of RAM" or the one that says 16? The first, because 32 is better than 16!

Apple is different because they have a product that is not comparable to other PCs, or they want you to believe that, thus they can put the price tag they want on it. Want they spend 100$ on a trackpad, they can, but a PC manufacturer can't.

Beside that, I think also the reason why PC manufacturer didn't invest on them is that most PC have Windows on them, and native multitouch trackpad gestures on Windows is rather a new thing (even on Linux, by the way, it started being supported as smoothly as macOS only with Wayland). Thus why have an hardware that supports something than in the end the OS that most people is using doesn't support?


> I think the reason is that "a good trackpad" as well as "a good keyboard" is not something that can be measured.

While I agree that these metrics can be subjective at times, I believe there are some fairly well-established features that dictate whether something is, objectively, a good product. In the case of a trackpad, gestures such as pinch to zoom are arguably an essential (for me at least), as well as stepless scrolling, configurable pointer acceleration configuration, and a reasonable size.

In the case of a keyboard, sure -- that's a whole other kettle of fish. I quite like the one on my Dell XPS, but I'm sure some others wouldn't.

However, I think you've downplayed how much a keyboard matters here: for me, it makes or breaks a laptop (or a USB keyboard, of course). When the laptop is on, I'm spending a good 70% of my time using the keyboard. Therefore, I would argue it is one of the most important things to get right.

I've come across good keyboards, bad ones, and ones that are just OK -- as an example, the more sponge-like ones on Logitech media keyboards do not make a good experience. In my experience, you have to try a keyboard to know whether you like it, but you can filter out plain terrible ones from other online reviewers' experiences.


> In the case of a trackpad, gestures such as pinch to zoom are arguably an essential (for me at least), as well as stepless scrolling, configurable pointer acceleration configuration, and a reasonable size.

I'm typing this on my work windows laptop, which can tick all these boxes!

But the experience is still terrible. While the acceleration and such are fine enough for my use, I still get the feeling there's some lag between my finger movement and the pointer on the screen. There are things which I loved on my 11 yo mac which still don't exist on windows, like "drag hold" which only holds for a little while. On windows, it either doesn't hold at all, or holds forever. But this is purely a software issue.

Funnily enough, Linux with X11 on this very same laptop runs circles around windows, and has none of these issues.

I've never had any issue with palm detection on either OS, but I'm not sure if it's because it works well, or because of the size and position of the touchpad.

However, despite the poor performance on Windows, I still find it usable for random "office" use, and never felt the need to cart around a mouse when I'm not at my desk.


>I still get the feeling there's some lag between my finger movement and the pointer on the screen.

This is a big one. Something I found really impressive, even on the first iPhone in 2007, was that it felt like my finger was moving the display itself, rather than performing a gesture to elicit an action. I feel the same way about the macOS trackpad, it feels almost connected to what is on screen. Other systems usually have that gesture/response feeling, which doesn't feel good natural to use.


Yeah, no. Just tried on rando iPhone SE 1st gen I have here for some tests, and it lags on scrolling just like any other phone from similar era. You just slide back and forth slowly and observe the content of the screen pretty clearly not following the changes in direction immediately, and you can observe about 1-2cm distance between your finger and text.

It's impossible to be in sync anyway, unless you avoid VSYNC, and then you'll have tearing ans at best halve the delay. There are limits to these things that not even "Apple" can violate.

And first iPhone sure was not faster than SE.

Maybe with some 120+Hz refresh rate, and some SW tricks, you can get close to what you're talking about. First iPhone did not have that.


Sample size of 1 and whatnot, but this has absolutely never been my experience on my iphone 7, which I've kept up to date and stopped using less than a year ago. Scrolling in Mail, for example, was the contents following my finger. Hell, I complain about Android phones, even newer ones, which lag while scrolling the settings app, but even there I've never noticed that big of a distance between the finger and the text.

Never handled an SE, though, but I doubt it's worse.


https://nanoreview.net/en/phone/apple-iphone-7

> Response time 35.5 ms

So at 60 fps, that's 2 frames delay + some. (and this is just display response time and doesn't include the content rendering, double buffering, and the input lag)

Here's the input lag for phones from similar era as the SE 1st gen: https://blog.gamebench.net/touch-latency-benchmarks-iphone-x... (88ms)

Another set of numbers: https://danluu.com/input-lag/

You can move your finger quite far in 80ms.


> they can put the price tag they want on it. Want they spend 100$ on a trackpad, they can, but a PC manufacturer can't

Why can't they?


Because they will have a more expensive laptop with nothing to show for it on the label, and customers will buy cheaper ones with "the same specs".

You can't really put "better touchpad" on a label... or can you?


Why couldn't they? Why is a trackpad different than better speakers or camera or battery runtime or having quiet fans?


Because those who make that choice believe (or have data proving it, but my feeling is that usually they just believe) that users are too dumb to understand.

That's a real problem in many situations: users are often under-estimated (they are also often dumb, which doesn't help).


They should invent a measurement unit for trackpads/touchpads, whatever we call them. Then a grade 5 touchpad will be immediately perceived as better than a grade 4 one. Or Basic, Business, Elite. Marketing teams are good at that.


Microsoft tried "precision touchpad" and I think there was some uptake. But you never see it advertised anymore, so maybe it didn't drive many sales?


They made it a requirement for Windows 11, so the term no longer provides any differentiation.


I can get on board with that. Just some kind of language to describe a touchpad in marketing material. Without it, it is hard to see, without living with it, how a touch pad differs across two or more devices. I tend to think of touchpads as Mac touch pads and non-touch pads. Even though that is wrong.


This whole thread is about people buying Macs because they have great touchpads (and I agree with that - I also would never buy anything else because of the touchpad).

Apple doesn't put "better touchpad" on their labels either. It's just very very obvious that they're better.


> Apple doesn't put "better touchpad" on their labels either. It's just very very obvious that they're better.

Exactly. Everyone knows Apple has better touchpad, but nobody knows that about some random PC manufacturer. How will they signal that he has better touchpad in order to justify the higher price?


By sending their laptop to shops and reviewers for people to try?

There are plenty of PC manufacturers that aren't "some random PC manufacturer". ThinkPad, Asus, Acer, HP, Dell. They are known brands that can easily maintain reputations.


I've read PC reviews that do point out when a touchpad is abysmal or excellent, or list models with good touchpads (https://www.windowscentral.com/best-laptop-touchpad) but near as I can tell most customers aren't willing to spend more money on a model with an excellent touchpad so it's not surprising that most manufacturers don't bother adding them except possibly on their premium lines.

I would also wager that the sort of customers who are willing to spend more for interface refinements like an excellent touchpad already use Apple hardware at a higher rate than the general population, further shrinking customer demand for good PC touchpads.


> as I can tell most customers aren't willing to spend more money on a model with an excellent touchpad so it's not surprising that most manufacturers don't bother adding them except possibly on their premium lines.

Of course, I don't think anyone would expect an Apple level touchpad on a budget Windows laptop. But they don't even seem to be on premium Windows laptops.

You're probably right that premium Windows laptops are a super niche market so there isn't much incentive for touchpad manufacturers to cater to it. That's one huge advantage Apple has. If they want a product that no manufacturers want to make, they can just make it themselves.


> But they don't even seem to be on premium Windows laptops.

Yeah, from that my conclusion is that the market for Windows laptops with really excellent touchpads is simply not large enough to be worth pursuing. My guess is that the increase in revenue between a "good enough touchpad" and "really excellent touchpad" is nowhere near enough to cover the astronomical costs of developing one.


It is NOT a hardware issue. I used Hackintosh on my T460s and the macOS experience was nearly as good as on a MacBook Pro (hardly noticable difference). Switching back to Linux / Windows was the usual "meh" experience.


I'm pretty sure there's some bias present due to adaption. I'm very much used to some non-MB touchpad, and whenever I use a MB it feels worse (too slow and mushy). I feel similar pain even when switching operating systems on the same laptop, which almost certainly has to do with muscle memory. In that sense "getting it right" for Apple users would mean other manufacturers would need to exactly copy Apple's behavior, and probably make other users unhappy.


It sounds to me like you’re feeling difference in pointer acceleration curves, which is something that some people are very sensitive to.


I hated the trackpads I used before buying a macbook, and one of those was a high-end XPS, the best I've seen on Windows. The mac ones are definitely an improvement. Both hardware and software feel better.


I've been reading this kind of opinion for years, but I have always found the touchpad to be annoyingly slow under macOS.

On the other hand, MacBooks are basically the only laptops with a large enough touchpad to be comfortable, I don't know if there's some other secret sauce Apple algorithm in the firmware that contributes to the experience, but to me the perfect combination is with a MacBook running Linux, which is what I've been using for about 12 years now.


I think I'll have to watch one of these people who love the Mac touchpad work. We are clearly not working the same way. Even with max speed and acceleration my MacBook air m2 touchpad feel anemic, and cumbersome for selecting text.

Fwiw I also have an apple mouse, and the touch based scroll feels unpredictable, and the mouse a bit slow too.


When I select text with the trackpad, which isn't all that often, I'll usually double-click on the first word and drag, so I don't need to be very precise. Or triple-click if I need the whole paragraph. When editing text or code I almost always navigate and select using the keyboard, but I do that regardless of the pointer device I'm using.


I never find the speed and acceleration of the Apple Trackpads slow. Out of curiosity, how are you moving your fingers when you want the mouse to travel long distances? What I do is repetitions of the movement on same area of the trackpad , e.g. my finger never drags more than two inches of the surface. I also have tap to click disabled, and use my middle finger to move, thumb to do left click, and middle + ring finger for right click.


I think you're using it wrong. You can travel a whole screen with one trackpad move if you move the finger fast enough. Maybe you didn't hit a high enough acceleration?


Also when "holding" a window or icon?


When I have my laptop plugged into a 38" ultrawide monitor, I occasionally need to use more than one motion to get a window from the far side of the ultrawide monitor over and down to the laptop's built-in screen. But that doesn't feel too slow to me; rather, it's just that I'm moving the window a pretty large distance. For more reasonable distances, I have no trouble dragging windows or files around. I usually have my cursor speed set two ticks above default (leaving three faster settings available on the slider).


The cursor moves the same way, it's just a bit harder because you can't let go of the cursor and start over from the corner of the touchpad with more room to move once you've pressed. But thanks to acceleration, you can move fast towards e.g. the left, slowly move back to the right (covering a much shorter distance), then move fast back left to finish the travel, if you missed it the first time.


Thank you for explaining how you work. But kinda sounds like a workaround?


> MacBooks are basically the only laptops with a large enough touchpad to be comfortable

This is surprisingly tough to google, but apparently at least some Apple laptop touchpads are 13cm wide, and my Framework 13" touchpad is 11.5x7.66cm (and making it any taller would increase the size of the whole chassis).


Just measured a stand-alone, a 2020-era macbook pro 13” and a M1 Air. The pro and stand-alone are 13cm and the air is 12cm wide. For depth, the stand-alone is closer to square though at 11cm while the laptops both seem to be around 8cm or so.


Likewise. There's something about MacOS's touchpad handling that makes it impossible to get it to feel good for me. The default Gnome settings on a Mac touchpad feel perfect.


KDE's defaults feel great on Magic Trackpad 2 as well, I prefer it with acceleration disabled. That said I'm using GNOME right now and it handles great on a multitouch trackpad.


I also priorise input devices and because of that I would never get a laptop without a track point. Track pads (no matter which ones) are just such a poor choice of pointing device on a laptop, requiring one to essentially move the hand away from the keyboard. Unfortunately I'm pretty much locked into thinkpads now because all other track pointers are pretty crap. The again I can't really complain thinkpads are quite excellent compared to most other laptops.

Just goes to show that people can prioritise but come to very different conclusions


There's a categorical difference between preferring one sort of input over another, and there being only one acceptable implementation of that category. As you indicated, if the keyboard cough nub, let's call it a nub, is your mouse pusher of choice, you pretty much own a ThinkPad, because the other ones suck.

If you like a trackpad, you have a Mac, for the same reason. I don't know if it's the hardware or the firmware, might be some of both, but no one else ships a laptop with an acceptable response curve.

I stick with the Apple ecosystem for a few reasons, but this is a big one. Even when I'm at the desktop with keyboard and trackball, I'll reach over to the laptop sometimes to pinch, or three-finger swipe, just because it's the easiest way to express my intention. The context switch from using the keyboard to using the mouse is a fairly complete one for me, which is to say I tend to spend long stretches doing one or the other. I don't place any value on staying on the home row while switching. I do place considerable value on proper pointer and scroll acceleration, reliable recognition of gestures, and input rejection when my palm or thumb happens to rest on the trackpad. Any non-Apple laptop trackpad I've tested completely fails one or all of these.


“If you like a trackpad, you have a Mac, for the same reason.”

I have a ThinkPad with a track point and don’t use it opting instead to use the trackpad. Before the ThinkPad I had a MacBook Pro. I find neither trackpad better or worse than the other.


> If you like a trackpad, you have a Mac, for the same reason.

Weird fanboyism. I've migrated from nubs to touchpads because Lenovo ruined Thinkpads, and I'm perfectly fine without a Mac thankyouverymuch.


It sounds like you don't like trackpads, so you're not providing a counterexample to that statement.


Weird hostility. Apple's trackpads are best in class, there's no serious debate about this. There are plenty of other considerations as to what machine or machines someone might use, I don't care what sort of computer you prefer or even want to know, really. "Fanboy" is your insecurity talking, nothing more.


My first laptop was a Thinkpad and I used the trackpoint exclusively, because the trackpad was so small and awful (this was around 2001). At the time I said something similar, that the trackpoint is the best. Years later, probably around 2007 I got my first MacBook Pro and the trackpad was great. Many years after that got I got work laptop with a trackpoint on it and had a really problem getting used to it again... the trackpad was also bad, so I just used a mouse all the time.

I think the trackpoint can be great, but more adaptation is required and most people aren't willing to go through it.

My dad also ended up with some sort of tendon injury that he attributed to the using the trackpoint on his laptop all day, every day, which I've never experienced, but it has always been in the back of my mind.


Quite possible the trackpoint was genuinely worse in 2007 than in 2001. Like Windows 95 itself, huge amounts of human factors research went into making it worthwhile when it was new and unproven, with usability studies deriving the optimal curves and constants. People described it as feeling like telepathy. And like Windows itself, some time between then and now, everyone seems to have forgotten that it's a hard problem and just started YOLOing whatever random stuff "feels right".

Rant: On my T480 - an extremely popular, flagship Thinkpad - the trackpoint is unusable out of the box on Linux - it crawls at a snails pace unless I manually max out the sensitivity in sysfs, and also fiddle with xinput (no configuration is possible on Wayland). What is worse, infuriatingly, the curve seems to frequently change whenever libinput is updated, requiring me to go and find another set of fiddles to bring it roughly into line. This is clearly not the output of a structured, empirical, research-based approach to the issue, but of someone just fucking around with the constants for one reason or another. It does not feel like telepathy, and it makes my wrist hurt in short order if I overuse it (luckily the laptop also has a generous touchpad).

I dunno, maybe it's better on Windows. But I'd be amazed if anyone cared enough to make sure that 90s usability research was still valid, on modern variants of trackpoint sensors and modern high resolution screens.


Trackpoints IMHO suck hard, simply because you need a lot of fine motor control to precisely operate them, the texture is bad, and a single "purring cat on closed lid" event can be enough to permanently stain the screen.


Skill issue.


There are people on this world who legitimately have physical/neurological issues with fine motor control. The latter one just happens to include myself.

Apple's touchpad is far superior - it allows for really precise gestures as well as high speed coarse gestures, just varied by the speed of moving.


That “ROI” comment stood out. Companies should focus on making quality products without tying everything to ROI. The state of some software on Linux is just embarrassing. No attention to detail. Oh and I’ve been using Linux since I installed Slackware via floppy disks.

I have an external Apple touchpad and I got the Boot Camp drivers for it working on my gaming PC. I keep it to the left of my keyboard with my mouse on my right to alternate hands for RSI reasons and because even Windows has a lot of features that work best via trackpad gestures.


> Companies should focus on making quality products without tying everything to ROI.

Unfortunately the companies prone to do that are the ones that go out of business. When you get the huge resources like the tech giants you have that luxury, but as a startup you don't.


Generally Apple is only expected to make their own touchpads work well. So it's fewer devices to develop/test, the OS folks can talk to the hardware devs, see their designs and firware and even get to influence hardware decisions. Perhaps Apple puts in work for a handful of the top touchpad brands, but they also are incentivised to work with Apple.

Compare to linux, where they have zero influence over any of the hardware involved, and are expected to support every single hardware combo possible.


It's not a problem for Linux distributions that jettison all the GNU beliefs. ChromeOS has had perfect multitouch input with gestures for years. They ship opaque binaries from Synaptics or whomever and forget about the politics.


It's a little more than that, they then added subpixel and momentum scrolling support to Chrome that bypasses X11 and does something custom [1]. Integration problems like this one that require a bunch of coordination are harder to do in open source land.

1. https://github.com/dnschneid/crouton/issues/244


Synaptics touchpads on Linux used to support these features with a FLOSS driver, but this was abandoned when Linux distributions adopted libinput instead. https://wiki.archlinux.org/title/Touchpad_Synaptics Note the amount of config options available.


i'm going to be honest, maybe i'm just not particularly sensitive to poor input devices, but there have only been 2 trackpads i've used that actually felt bad, the vast majority are just... not noticeable to me? like i just use them and everything just feels fine. the only exceptions were a crappy old chromebook i had back in about 2016 and my current HP probook, itself a few years old now. i have heard very good things about the macbook trackpads, but macOS just doesnt interest me overmuch so i haven't ever bothered purchasing a macbook. it is something i'm considering, however, at least getting a used M1 air, just to try so i can see what all the fuss is about. maybe i'll be converted :)


I'm the same way a trackpad is a trackpad. I actually find mac's more annoying because they are so big for some reason and i barely use like a quarter of the entire space of the dang thing but my palm will constantly accidentally trigger it because it's so huge. Why are they so big? drives me nuts.

I also don't use any gestures. I hate moving my hand down to the trackpad at all if i can avoid it and the entire OS seems built around you using the dumb gestures.


If the price difference between the M1 and M2 air is negligible for you, it would probably be best to go for the M2. The M1 uses the old Intel chassis. The M2 gets the new design which means a better screen, keyboard, speakers, webcam, MagSafe charging. It's well worth a little extra, even if you don't care about the spec bump. Lots of quality of life stuff.


thanks for the advice! i think i'll have an easier time getting a good deal on an M1 but i'll keep an eye out for good M2s


Mac trackpads have been top notch as far back as I can remember, to the iBook G3. First one I actually owned was a derelict 2006 MacBook someone had thrown away in 2012, and it was still easier to use than the modern loaner Windows laptops at school.

And now with the modern Macs, I prefer the trackpad over a mouse even on a desk. Never would've thought it before.


Didn't Apple buy up a bunch of companies and patents that enabled their various touch control devices?

Here's one https://en.wikipedia.org/wiki/FingerWorks

I remember another one for the iPod interface but don't want to put that much research into it.

I think it comes down to patents and getting a bunch of small things just right... which you can do if you're Apple and you own the full stack, but is much more difficult supporting all the rest of random hardware.


Didn't Microsoft try to do something with the Surface laptops? Did that pan out?

But yes, it's mindboggling how bad trackpads are on PCs. I've had corporate Lenovo T-series, X1 Carbon, and Yoga for more than a decade, and while things have gotten slightly better I still need an external mouse

I may need to travel a lot by bus to my new job, and I'm now actually considering a Mac again even though Excel/PowerPoint is horrible due to missing hotkeys


Yeah, Windows has gotten better in recent years with “Precision Touchpad” support. If you use an Apple Magic Trackpad on Windows (not supported but works on normal PCs, not just Boot Camp) Windows recognizes it as a Precision Touchpad.


I prefer my x1 over my former mac touchpad by a big margin.

Selecting text is a pain in the ass on mac as the cursor moves when you release the press on the touchpad.

No issue on thinkoads as you just use the separate physical left mouse button.


I’d say—yes, very much so. Pointer movement is damn near perfect now on the Dell Precision I have at work. Clicking unfortunately not so much, but it’s mostly bearable.

Also, at 15×9 cm, it has over 5 times the area of the teensy trackpad on my old ThinkPad R61, which is just 5.5×4.8 cm.


It’s really annoying. I’ve used a couple of Chromebooks that had excellent trackpads so I know Apple isn’t the only manufacturer that can manage it.


One thing that might make a difference is that for a long time now, Apple trackpads are actually touchscreens sans screen. They use the same multitouch hardware as iPhones and iPads, which of course are precise and responsive.

I would guess that these are probably a bit more expensive than your run of the mill trackpad from e.g. Synaptics that ends up in the typical laptop.


I thought so, but then installing Asahi results in terrible trackpad experience even though the hardware is the same.


It’s not hardware alone for certain. You need good software and hardware, with the latter defining the upper bounds of how good the former can be.

I’ve experienced the reverse with macOS running on generic laptops via hackintoshing. Potato trackpads are still potatoes under macOS.


One of the problems with asahi is that it isn't pressure sensitive enough, so you have to press harder. That feels like something that they can fix, but they haven't for some reason.


In particular, Linux has been in the middle of a decade-long transition to a new display server that has split efforts for a while. The incumbant Xorg had a few attempts at Windows-style gesture libraries, but those were clunky and not at all like what you'd get on Mac (mostly). By the time quality solutions existed on x11, Wayland desktops were already shipping 1:1 gestures a-la Mac.

So basically, two separate philosophies took two roundabout paths to suit both their needs. It took some doing, but booting up KDE or GNOME in Wayland should "just work" with good trackpad gestures. Both desktops did a good job integrating it, IMO.

> They even sell Bluetooth trackpads for desktops it’s so good.

I use one! When they make one with USB-C charging I'll start recommending it to others again. =)

Pretty much everything besides Force Touch works, too. Multitouch gestures where you rotate or pinch your fingers, Bluetooth connectivity, it's all perfectly usable. The cherry on top is that KDE even has a little mouse-acceleration switch right in the Trackpad settings, no terminal commands required. I'd actually say the trackpad experience on modern Linux is great.


> Why does this seem like such a hard problem to solve for everyone that isn’t Apple

One factor is that many customers don't demand this kind of refinement, and of those who do many of them already use Macs.

Another is that it's not primarily a technical problem, but an organizational one. These kinds of interface refinements require coordinating across hardware, drivers, OS, toolkit, and applications. It would be hard for any one person to own that problem in Open Source Software.


A decade? That's nothing. macOS had a compositor 22 years ago, and Wayland still isn't as good. A bunch of unpaid amateurs just isn't good at moving humanity forward. At least the Linux kernel has some truly paid contributors; the talent bar is higher there. Apple software is a grand architected cathedral; most open source software is accreted, like a stalagmite.


> Why does this seem like such a hard problem to solve for everyone that isn’t Apple, when Apple seemingly solved the Trackpad over a decade ago?

Patents?


Bud, you have been shadowbanned for some reason. Pinging dang @dang, this doesn't seem fair. :/

Bud's comment: "Over 20 years ago, actually. The glass trackpads Apple made in 2002 were essentially identical to today's, albeit quite a bit smaller."


I feel exactly the same as you do. I switched to MacBooks in 2007 primarily because of how much better the trackpad was than the Windows and Linux laptops I had. Still using a MacBook, haven't looked back.


I’m also baffled by this, but Apple's trackpads have been really good for much more than a decade. I remember doing Bézier curves on a G3’s trackpad and PC people thought I was a wizard.


multiple layers of gatekeeping, both corporate and individual. It’s understated in the article but present: hard battle to get access to configuration. After that experience there’s uncertainty if the battle to change the default is worth the investors level of effort.


> Why does this seem like such a hard problem to solve for everyone that isn’t Apple, when Apple seemingly solved the Trackpad over a decade ago?

The circle of enshittification, plain and simple.

Windows itself is the worst culprit, given that it took until (IIRC!) Windows 10 to arrive at a sensible gesture API and before that it was a hit-and-miss involving custom drivers for every model and barely any unification for gestures.

That in turn led to software for Windows never even utilizing the benefit of multitouch, and so in turn hardware manufacturers weren't pushed either because why invest effort when it's useless anyway?

On top of that, hardware build quality sucks on everything Windows. It's almost exclusively really small (i.e. half a cigarette pack) touchpads, recessed 2mm or more into the hardware, and full plastic that stains after less than half a year of moderate usage. In contrast, MacBooks ship with touchpads literally larger than the hands of someone who has worked in construction, and they're made out of glass that is nearly flush with the casing, so no dirt or anything even has a chance of accumulating.

(I don't even care about Linux at that point, where the hot mess of display drivers, window managers, UI frameworks and whatnot makes the complexity of "getting it right" even worse)


Even the mousewheel experience is janky as hell on Windows, I don't spend nearly enough time in Linux Desktop to know if it's equally as shit, but seriously; how can something that should be simple behave so badly?


It has little to do with 'ROI' and much more with the way hardware gets made.

Touchpad, touch screens and input devices are actually VERY difficult to get all the details right because you're dealing with material properties, differences that show up in manufacturing and even the geometry of the end user (small hands, big hands, wet hands, etc) among other factors.

Apple takes on the responsibility of their internal hardware (SoCs, all embedded boards, materials) AND software (embedded, OS, drivers, etc). They have a culture of caring about details and do a tremendous amount of R&D on these related details, at the design and manufacturing level, before releasing their product.

In contrast, almost all PCs are made by "integrators" (i.e. Dell, HP, Lenovo, etc) who take mostly off-the-shelf or semi-customized components, "integrate them" (I use it in quotes because often, as we know, products will ship with broken ACPI, EFI, broken drivers, etc) and put it out there. The drivers usually come from a hardware vendor who has little incentive to get "details" right, they will be lightly modified and then the OEM will shoehorn that into a semi-customized OS image and the device ships.

Further, traditional vendors like HP or Dell are under pressure to keep churning out "the next" iteration of their HW, so they don't really go back and improve drivers or firmware unless they are forced to.

On the Linux, FreeBSD and open-source side, you have an army of dedicated volunteers who often take highly sub-par or questionable hardware and work (often in the dark, or through reverse engineering) to make things reliable and add polish. The fact that things work "as well as they do" under modern Linux or *BSD is a miracle and mostly the result of individuals who care. There might be a few individuals at an OEM who care, but by and large the culture is not "we should make the most amazing product and provide documentation and support to the open-source community" and more "if they can get it figured out, good for them".

A more practical detail is the fact most touchpad ICs are made by Alps or Synaptics. And these devices include things like 'palm rejection' and other advanced features that haven't been enabled until somewhat recently because the IC vendor might not have shared the details with the people working on the open-source drivers.

You see nearly the same pattern with Android phones, how long before the next phone gets pushed out? Did they really fix the weird bugs that caused the previous phone to overheat, or the celluar link to drop calls unexpectedly? Fix the fact the satellite GPS doesn't work 1 out of 8 times?

Apple isn't perfect by any means, in fact I find the most current versions of macOS to be VERY user hostile but sadly most OEMs superficially copy Apple (i.e. moving to only ONE or TWO USB-C ports on a modern laptop) and miss the key point of making hardware & software actually working well together and openly supporting something other than Windows.


Look and feel of MacOS is great but above all I value freedom, serviceability and extendability. Therefore for some long time I had a 16GB Mac at work (because as Tolkien or someone else wrote, one does not simply put additional RAM in a MacBook) and 24 GB old Linux laptop at home and guess on which one did I run my VMs faster?

On the other hand Linux is still very unstable and uncomfortable. My Linux Mint Cinnamon was behaving unstable in prosaic cases, like entering PIN into my built in Wireless WAN.

I would love to see MacBook open for extension and interoperability


Having more resources is required if you're going to dedicated a portion of those resources to VMs. More RAM, more CPU cores, more storage... if your VMs are constrained for resources because you don't have them, or the VMs leave the base OS constrained for resources, that's going to make things slow. If VMs are what you're doing 24 > 16, regardless of the OS running the hypervisor.


Apple has been perfecting its trackpad software since 1994, and it’s been getting better ever since. By contrast Apple keyboards have gotten worse since 1995 when it discontinued the Apple Extended Keyboard II. We don’t talk about Apple’s mice.


Yep.

The TouchPads from Apple are good. Their keyboards are bad. There are two important I/O devices in a laptop, the keyboard and the display. The keyboards from ThinkPads are near perfect and don’t fall apart. Lenovo decided to remove the 7th row to acquire more space for the TouchPad. Which is a design mistake because TouchPads don’t get better by becoming just bigger.

I never use the TouchPad in my ThinkPad. I mean it is there and works nice. Libinput improved a lot. But there is a TrackPoint in the keyboard. Never leave the home row. That is where HJKL is :)


wait, _THAT_ was the reason they removed the 7th row?? those m... But jokes aside, I read it saving them money in manufacturing cost was the reason. Would have loved to be a fly on the wall around David Hill when he pushed for the t25 to get a 7row, my feeling is that it is what made him leave lenovo


It's not just the software. I have Ubuntu on a 2017 MBP and the touch pad experience is so much better than linux on anything else.


I've connected an Apple Magic Trackpad (external bluetooth trackpad that sits on your desk) to an ubuntu machine and it's wonderful. There are still some software things to solve to get the acceleration perfect and things like scrolling working, but having trackpad hardware that isn't trash goes a really long way.


I tried doing this with a Thinkpad but the BT connection would cut out periodically and I gave up. Did you have to do anything special to get it working?


Nope, it "just worked." I ended up vastly preferring a mouse, though, so I didn't stick with it long term.


Well, that’s core Apple, isn’t it: „People who are really serious about software should make their own hardware“.

A handful of stupid mice and trashcan Macs don’t negate the fact that for a significant number of solutions, Apple nailed vertical integration of software and hardware, and the math plays out wonderfully in terms of User Experience; for these devices, 1 plus 1 equals 11.


I just got one of these with a Quadra 650 I bought. It's good but it's bugging the hell out of me that the bumps are on the d and k keys vs. the more modern f and j.


Eh, the multitouch magic mouse is pretty intuitive when you get used to it. Depending on what you do, it could be an excellent daily driver, but it does tend to have some limitations that can make it a non-starter...


I can’t right click on them. I guess you have to raise up your fingers from the left side? I just found that to be a dealbreaker. I’ve had to use them for work and I turn them into one-button mice with scrolling. The scrolling is excellent, I like low-profile mice, and I don’t mind the charger port location. But I need to right click!


Yes, you have to consciously lift the finger(s) from the left side and only touch the right side when right clicking. Not hard to get used to, but there's definitely some friction if you're coming from a normal mouse.


I wonder if that's the old magic mouse. I don't think I do that with the newer one but I remember something like that with the original.


No, that's both versions of the Magic Mouse. I have the most current version (in my hand right now), and if you want to right-click, you definitely need to lift your finger from the left side.


Oh wow you're right. I didn't even notice I do it. Now it's going to bother me.


That’s so weird. I love my Magic Mouse for everything except gaming, and I right-click all day long without even thinking about it.

I wonder what we do differently?


Magic mouse only has only one button, like all Apple mice. It relies on touch detection to fake multiple button support.


This basically makes their mice unusable for certain things like gaming. I had to use their mouse for a while and I opted to bind right click to a keyboard button because what do you know, most games bind aim and shoot to right and left click.


Apple has never prioritized gaming on their devices.


There was once a time when Halo was a first party release pitched at MacWorld.


Ctrl+click. I find it more intuitive than right clicking personally.


I like the multitouch aspect, but I hate how tiny and flat it is for ergonomic reasons. It's also not comfortable to raise your fingers up and pull them back to draw on the surface of a mouse.


It's a surprisingly okay daily driver mouse if you actually don't use the mouse that much, like if you're writing code or staring at code most of the time. I daily drove it for 3 years despite the terrible ergonomics, because I consider macOS almost unusable without the gestures (horizontal scroll, zoom, mission control, swiping between fullscreen apps). A few weeks ago I snapped and got the Magic Trackpad instead, which is a bit pricey (that's why I delayed the purchase), but IMO lovely to use.


The first-gen butterfly keyboards were pretty atrocious (although still kind of usable). I actually like the chiclet-key keyboards that Apple sells nowadays.


Yeah I don’t actually want Apple to put Alps switches into a Macbook.

I’d buy one if they did though.


I remember this project starting. Not one single thing has changed that affects me as a result and I use Linux everywhere, daily. As far as I can tell it's a lot of small, niche work, that is almost completely immaterial to average users.

Meanwhile there's no stop scroll events across the ecosystem. The single biggest win that Linux touchpad needs is stop scroll events.

I'll bite my tongue on passing more judgement on how this effort has been portrayed over the past few years.


Depends on what you decided to use I guess. The touchpad experience is neat on gnome on wayland on a macbook/surface.


Right, I've looked before and happy to be corrected but none of that is the result of this project. In fact, the gestures present in GNOME, today, have been there since before the first blog post in this series.


There is stop scroll support in GTK4


Is this something like what Qt `QScrollerProperties::MaximumClickThroughVelocity` controls? It's not exactly an event, but a click-through would stop the scroll immediately.


I welcome any and all improvements to touchpads on Linux and Windows systems. Switching from my personal MacBook to my work ThinkPad is like traveling back in time in terms of usability.


I always thought it was strange that people went through the inconveniences of plugging a mouse into their laptop when there was a trackpad right there until I had to use a Windows system and saw just how bad it was.


I have an Apple Magic Trackpad, which I use with my laptop and external monitor. There is no way I'm going to suffer the ergonomic hell that is a laptop for a second longer than I absolutely have to. It's great to be able to take your laptop with you, but it's not a device suited for hours of use.

It's also illegal to work on a laptop, without external peripherals and monitor, so you need a pointing device anyway.


> There is no way I'm going to suffer the ergonomic hell that is a laptop for a second longer than I absolutely have to

I agree with this, but intentionally choosing a trackpad to put on your desk is just accepting a portion of this hell, in my opinion. The trackpad is an RSI torture device to me, because of the way you have to hold the muscles in the back of your hand tense so all but one finger is a little higher than the others.


On the flip side, one of my colleagues was overjoyed when Apple released the Magic Trackpad, because it's worlds better for her to use with her arthritis than any kind of mouse she's tried.


For me it's either a trackpad or a trackball. I find that any pain comes from moving my wrist and the Magic Trackpad is large enough that I move my entire arm and not the wrist.

It's great that we have options, so that people can pick what works for them. It is a little sad that Apple is pretty much the only option for an "external" trackpad though.


Back in the 90s I had a 102-key keyboard with a built in trackpad (and dual PS2 connectors to hook up to the PC) that was actually pretty nice—except if I tried using the trackpad when my fingers were damp in which case it was hell. I bought it in anticipation of moving to a laptop (which didn’t actually happen for another 5 years), but it was the first step in my becoming a trackpad aficionado.


You and me both. A friend introduced me to vertical mice. I regretted the purchase for the first hour, then came to kind of like it, and now you couldn’t pry it away from me.


I just want the integrated touchpad of my Dell Latitude 9330 to work decently. The libinput driver is just crap with this model, to the point that I have to connect an Apple Magic Trackpad, and that works great. Synaptic driver works better for the internal one, but apparently it is old and deprecated and everybody writes that we should not be using that.


Was the Thinkpad running Windows? I find Linux (Debian distro running Wayland) on Thinkpads to be exceptionally good -- on par with (and in fact I would dare say better than) MacOS on Mac hardware.


I'm confused what this is trying to achieve. In my four years of Linux usage, I have had no complaints about the touchpad[0].

[0] Other than the issue where sometimes my touchpad requires an extra finger touch to work after resuming from suspend, but I have a hunch that is a hardware/firmware issue. In fact, I seem to recall that happening on a Windows machine once.


Same here. ThinkPad user for years, never had any issues. Whenever I help a friend with a MacBook I often feel like I cannot control the touchpad and so I ask the friend to do the clicking. I think the whole story here is people moving from Apple to Linux and wanting things to feel exactly the same.


Have you lived with a Macbook for a while? People who do generally feel pain when using any other trackpad afterwards. They are just much better. Feel more responsive. It becomes second nature and ingrained in your nerve pathways. Other trackpads feel wrong after getting used to a Macbook trackpad. They accelerate wrong.


As someone who has had multiple vendors with Ubuntu and Fedora installed, and having a work macbook, I can tell you the trackpad experience is much better on Apple. To me, it's the same user experience as going from a 60 hz screen to a 120 hz screen smoother animation, more immediate response, and better " intuitive " acceleration.


Same here and on my laptops I don't need the extra finger touch. It just works.

I have had a work MPB for years and while the touchpad is nice I just use the other touchpads with no problems.

Then again as I like bigger displays I use an external keyboard and mouse when not traveling.


I find this project really confusing, as well. I'm sure sure this project is doing some good work, but I'd love if they take the time to catch us up a little bit, or maybe tweak their name to better reflect what it is they're actually doing. Like, for a modern Linux desktop on well supported modern hardware, what is this affecting?

From my perspective as someone who is rather picky about pixel perfect scrolling and animations, and happily using GNOME 45 with a Magic Touchpad, a Logitech mouse, and a Thinkpad touchpad, and finding nothing particularly amiss with any of those[0] … I'm, um, lost.

Is this all about backporting things to X11? I'm unfamiliar with how touchpads are over there nowadays. (Frankly that sounds like a waste of time to me, but if it still makes people happy, that's cool). Or has this project been actively contributing to exactly those things I'm using, and I just didn't realize?

[0] The Magic Touchpad is definitely a better experience than the Thinkpad one, but they both support multi-finger gestures, and Gtk apps correctly do pixel-perfect scrolling with kinetics and all that jazz. Could maybe do a better job doing the right thing when I lift my finger after scrolling at low speeds. If I used more apps with different toolkits, I know I'd be annoyed by the differences in behaviour between them, so there's definitely something missing there. Happily, since somewhat recently, pretty much every app I use supportsGtk 4 apps all support pixel-perfect scrolling with smooth scroll wheels, too, which is pretty cool.


The main thing I think is missing is universal support for kinetic/inertial scrolling, where you can fling your fingers on the touchpad and it keeps going after you stop. It seems to work with GTK but not Qt


I would find that incredibly annoying for touchpad inputs. Sure, I can understand kinetic input for touchscreens, but touchpads should be precision inputs, not the sort of thing where accidentally bumping two fingers on the touchpad sends you two pages down.


It doesn't have to. That's why there are usually various thresholds when dealing with input devices. Like dead zones in controllers. Ideally you should both have inertial scrolling when you intend it and precise scrolling when you don't.


I don't find accidentally triggering it to be a problem, and it's really useful when you need to scroll a long way


I am suffering that ever since I switched to wayland and the newer GTK version that supports it.

Turns out, in classic GNOME fashion, there's no setting to disable inertia scroll.

And I hate it. I hate it. I hate it.

It is the same problem with smooth scroll, or as I call it "laggy scroll", which forces me to watch an animation, when I made it clear (by scrolling) that I want to be seeing the scroll destination already. That's why I scrolled in the first place!


This fad of using an AI-generated image as the tacky doormat of an otherwise interesting blog post is making me pissed off /uncaffeinated


Especially when it's a pregnant Tux 0.o


If that image is AI generated the text probably is too. We should start flagging these posts. I'm not interested in seeing model output


It's hard to guarantee a consistent experience given the large variation of hardware out there. Apple has the advantage of vertical integration, allowing them to optimally tune their drivers for a single device.


I think windows touchpads have also been improved after windows 10. Just a few years ago you could easily recognize windows user using notebook because they always brought a mouse with them, such bad was the touchpad on windows; actually it was way way worse than on linux.

That habit seems to be fading out, so I guess the touchpads have also been improving for windows users recently.


I've recently switched back to Windows 11 from Linux and while it is certaintly better than what it was, is still way behind what Linux has.


> at the moment, our lead developer is working on Linux touchpad improvements at less than 1/8 capacity. This means that progress is slow as he can only spend half a week per month on improvements.

How does it work? For most engineers, working on some complex task with this kind of scattered schedule means a need to spend the significant time on restoring the context.


Is there an initiative going on to make hibernation work on Linux?

I think this is a much higher priority... Honestly, this is the only thing that bothers me about Linux. I need to keep my machine suspended between use sessions, which is a waste of the planet's resources. Imagine that multiplied by the dozens (maybe 100's?) of thousands of engineers doing the same?


I have always been bewildered about the demand for suspend-to-disk (aka. hibernation). Suspend-to-RAM (aka. standby) consumes virtually no energy, doesn't create disk writes, and wakeup is instant.

The desire for hibernation seems to be constant and widespread though. Honest question, what do you expect from hibernation that you don't get from standby?


Back then (10 years ago?) standby consumed energy, if you left your laptop on standby mode for far too long you'd come back to see the battery dead and you lose all your work.

So hibernation was by far the best option to maintain a long-running desktop session. But these days standby mode consumes so little energy that hibernation is no longer needed in my honest opinion. Still the mindset remains.


What exactly is smooth scrolling? Like you press the down arrow, and the scroll is animated instead of instantly snapping down by 50 pixels?


In this context, it's about scrolling when you slide your fingers along a trackpad surface.

It's supposed to be like "buttery smooth" scrolling on a smartphone. Whatever is on the screen should move with your fingers, with pixel accuracy and low delay, so it feels like you're dragging something around with your fingers.

When you let go, it might continue to scroll, as if you flicked the object with your fingers. This is called inertial scrolling. At the limits, it should show your attempt to scroll beyond the limits somehow. Apple and Android do this differently for patent reasons.

Of course with a touchpad the image isn't underneath your fingers like with a smartphone. So the scrolling amount doesn't have to be the same physical length as your finger movement. It's scaled, but it should feel similar to smartphone scrolling.

There's no arrow.


AFAIK: two fingers on the touchpad, move your fingers and observe how things scroll. When it is good you don't feel any lag and the content moves as fast or as slow (even by a single pixel) as your fingers are. Some inertial scrolling on top and that's it.

Privately I am using a lot of Chromebooks and it is good in my opinion, but I was never wowed by Apple implementation so maybe I am not a good person to ask.


Using the term 'down arrow' in the context of scrolling already reveals you aren't the target audience for such a feature.


Ok, I'm not in the target audience. Fine. I would still like to know what it is.


Well, the first thing you need to know is that, as the title of the submission clearly states, this is about touchpads. Not keyboards. So, y'know, pointing out that the down arrow isn't super relevant isn't exactly coming out of nowhere.

But assuming that their version of smooth scrolling does, in fact, work the same as Apple's, it's not even a matter of "it smoothly animates scrolling down by one line;" it's that you can scroll by individual pixels, rather than by lines, using the touchpad. I suspect that a certain amount of work also has to go into ensuring that the scroll animation is both smooth and well-synced with the user's finger motion on the touchpad, but I've never done work that low-level, so I'll have to defer to anyone with better expertise there.


I see.

If you can move a mouse cursor by a single pixel, that would seem to be enough fidelity to scroll by a single pixel. I've never seen a touchpad that didn't meet that criteria. But then I've never used a touchpad in linux. And maybe I'm just wrong about everything. Wouldn't be the first time.


On older systems, scrolling on the trackpad would emulate mouse scroll wheel events - scrolling my one (or more) lines per increment.

This made sense with scroll wheels, because they moved in discrete (large) clicks.

The problem isn't capturing one-pixel accuracy with the trackpad deiver, it's that at the application layer a lot of legacy mouse input APIs treat scrolling as if the user still has a 90s-era mouse with a physical scroll wheel.


I finally get what this is about. That sounds terrible. Thank you.


Scrolling that exactly matches your fingers and has “realistic” momentum.

On a Mac I might scroll through an article by just sort of pushing it the right direction, removing my hand from the trackpad and then tapping to stop it at the right place. It’s very hard to describe these things because so much is muscle memory.


I just tried it on this Windows laptop, and it worked exactly as you described, at least in firefox. I pretty much never use a touchpad though, so I don't think I ever saw that before. If I did though, I can imagine coming to rely on it pretty quickly.


From Macrumors: MacBook Pro offers an enhanced multi-touch trackpad supporting inertial scrolling. The feature, already present in similar forms on Apple's iPhone OS devices and the Magic Mouse, allows users to "flick" while scrolling as the trackpad senses the momentum of the gesture and smoothly scrolls through long documents and libraries.


Like you two-finger scroll on the touchpad and it behaves exactly like a smartphone.


I think in relation to touchpads, it allows for scrolling at smaller increments than 50px (without animation)


> We now have smooth scrolling support in popular Java library called "awt." Many Java applications use this library underneath, including IDEs such as Eclipse, IDEA or Rider.

Eclipse doesn't use AWT, but rather uses SWT, a completely separate toolkit/API. That said, it's still great to hear that this is being improved.


That whole section made me squarely. It feels like it is written by someone who doesn't know Java.


Maybe this will allow mouse to scroll like a trackpad? That would be nice.

Particularly spreadsheets with tall cells can be almost impossible to scroll with a mouse because mouse scrolling is on lines and you need half lines to comfortably view what’s at the bottom of a tall cell. But use the track pad and it’s fine.


How can I test the improvements?

Wayland, XServer, Firefox, Gtk and QT patches were merged in 2021 already: https://bill.harding.blog/2021/06/06/linux-touchpad-like-mac...

But while running a current Debian unstable with Mate desktop, I don't know in which applications I could test the gestures, neither do I know which gestures are supported


The touchpad experience on Gnome is largely great already. It has kinetic scroll and gestures.

My only gripe is that you can't control the scroll speed. Especially in Firefox it feels way to fast. There are config options for that, but they also apply to a mouse scrollwheel, which in turn will feel too slow.

I guess the lack of this setting on the OS level is caused by the ongoing discussion what the "correct" place for advanced touchpad settings would be (application/compositor/libinput), which has been mentioned in multiple comments here.


If you want to have mouse scroll wheel acceleration, you might be interested in a small project of mine: https://github.com/albertz/mouse-scroll-wheel-acceleration-u...

I'm using this all the time on non-Mac platforms. Once you get used to this, it's hard to get back.

But I'm still waiting that such a feature gets more built into the core, e.g. libinput or so.


Who doesn't carry a wireless mouse? Or just hotkey your way through. Anything in between seems like a huge drop in QoL.


I grew up a PC gamer in the 2000s, so developed a very strong preference for no acceleration at all and a medium-low pointer speed.

Apple may have great trackpad hardware, but all the software smoothing/acceleration/inertia is infuriating when trying to make precise cursor movements.

I find myself constantly overcorrecting. These fractions of a second wasted add up in a day while trying to work. It's exhausting. Windows is even worse and I don't believe it's possible to completely get rid of the acceleration.

All these skeuomorphic attempts to apply physics to the UI are misguided. Why not bring back those old ugly icons and the wasted screen space too?


Seems like calling it "Linux touchpad like MacBook" is a way to make sure that no one will be willing to help you other than people who use MacBooks, and people who use MacBooks have no need for this.

I'm into "Linux touchpad with more tweakable and accessible parameters," or "Linux touchpad with better gesture support," but described like this, it's the type of thing I would ignore or not even hear about until it was an abandoned/dead project. I simply wouldn't realize that it's something useful for me to support. I exclusively use touchpads and Linux desktops, and while I've been frustrated at not being able to get the touchpad to feel like I would ideally want, if it felt like a Mac touchpad I would hate it.

A bunch of parameters that you can tweak to imitate MacBooks? Yes, please. A switch to turn your touchpad into a Mac touchpad? Who cares other than people who are only forced to use Linux for development on the job because their preferred Mac is too nerfed to allow them to allow them to get their work done?

As a larger statement, it seems that the strain of "What will make Linux catch on is making it more like Macs" has largely died off, largely because the people who want Macs buy Macs. It's a tactic as likely to be as successful as the "making Firefox indistinguishable from Chrome will make Chrome users switch to Firefox" pretense, and gets as much development support as the "making GIMP exactly like Photoshop" projects. The Firefox thing wouldn't have happened if they weren't completely funded by Google, and people who like Photoshop prefer Photoshop and aren't going to work on GIMP.



Related. Others?

Linux Touchpad like MacBook Update: 2022 progress and new poll - https://news.ycombinator.com/item?id=34300973 - Jan 2023 (59 comments)

Linux Touchpad Like MacBook Update: Touchpad Gestures Now Shipping - https://news.ycombinator.com/item?id=29555822 - Dec 2021 (419 comments)

Linux Touchpad like MacBook: Touchpad gestures land to Qt, Gimp and X server - https://news.ycombinator.com/item?id=27414160 - June 2021 (3 comments)

Linux touchpad like a Mac update: Firefox gesture support live in nightly - https://news.ycombinator.com/item?id=26102894 - Feb 2021 (16 comments)

Q3 Linux touchpad update: Multitouch gesture test packages now ready - https://news.ycombinator.com/item?id=24700537 - Oct 2020 (136 comments)

Linux Touchpad Like a MacBook update: progress on multitouch - https://news.ycombinator.com/item?id=23615218 - June 2020 (127 comments)

Linux touchpad: preliminary project funding, survey results - https://news.ycombinator.com/item?id=23235609 - May 2020 (169 comments)

Linux touchpad like a MacBook Pro, May 2020 update - https://news.ycombinator.com/item?id=23080435 - May 2020 (324 comments)

Linux touchpad like a MacBook: April 2020 update - https://news.ycombinator.com/item?id=23039515 - May 2020 (155 comments)

Linux touchpad like a Macbook: progress and a call for help - https://news.ycombinator.com/item?id=19485178 - March 2019 (212 comments)

Linux touchpad like a Macbook: goal worth pursuing? - https://news.ycombinator.com/item?id=17547817 - July 2018 (336 comments)

Linux touchpad like a Macbook: goal worth pursuing? - https://news.ycombinator.com/item?id=16843720 - April 2018 (1 comment)


Somewhat relatedly, I hate hate hate clickpads. They are so much slower, unintuitive, and finicky yet every single laptop these days has the useless damn things.

I used to be so efficient with touchpads with tactile left and right mouse buttons. Now my modern laptop is practically useless to me without an external mouse, which significantly reduces its flexibility. I have spent days fiddling with utilities in Linux to alter settings to a state where its barely tolerable if I absolutely must use it.


That logo is just wrong.


2024 is the Year of the Linux Desktop! This _surely_ is a sign we're going to get it, right?

Right?


We all know the "Year of the Linux Desktop" meme, but this deserves an answer.

I don't think linux will overtake apple on the desktop (which actually includes notebook and laptops) but the current state has been good enough for a few years. And I'm not saying it is good enough only in terms of it being ready or well rounded, I mean in terms of marketshare. Linux has surpassed the 4% mark in globalstats last month and combined with chromeOS (with which it share many drivers) had peaks above 7% last year; it is very likely that the record will be broken this year. Of course, globalstats may be inaccurate, but I guess it is a good picture of the trends.

This has had an interesting consequence: it is no longer a good idea to ignore linux on the desktop; at least not for hardware vendors. It's been a long time since I last saw a consolidated laptop with anything not working out of the box. In the software side, linux is still ignored by some big name vendors, namely adobe, microsoft and game studios. That point is still sad.

Now, considering most developers software are multiplatform and, besides games, most entertainment runs on the browser, the last obstacle is still software. As linux' usage grows (and although very slow, it grows increasingly faster), vendors will eventually have to change their minds about linux on the desktop. Nevertherless I don't think that will happen before the end of this decade, also I don't think will see linux beating windows or even mac on the desktop. But, since I'm not dependent on any non-multiplatform software, I really don't care: the current situation (even in terms of marketshare and the way it has been continually improving) is good enough for me and has been for some years already.


Also... I don't really want Linux on the Desktop to beat macOS/Windows. Because at that point it will be just like macOS/Windows, and I am not on Linux for that.

I often see complaints that Linux on the Desktop is not enough like macOS/Windows, and I never understand: why use Linux then? I want Linux because of what it is now, not because I want a free macOS/Windows.


You don't understand because most would-be converts by far want a free-as-in-beer Windows or Mac.

Annoyed by Microsoft 365 nagging? Sick of the Apple ecosystem? Mah freedom? Nevermind all that, they're just excuses. The real reason is they don't want to pay $200+ for a Windows license or $1000+ for a Mac.


Sure, I understand the "I don't want to pay" intention. What I don't get is why anyone would work for free to convert those people. I don't need them to use Linux, and in fact I don't want them here because they will push Linux towards a direction I don't like.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: