3 ms·
How has nobody figured out Apple’s 2010s trackpad technology? I think because the focus is so much on the trackpad technology itself, which may be a misplaced
by chongli 7y ago
How has nobody figured out Apple’s 2010s trackpad technology?
I think because the focus is so much on the trackpad technology itself, which may be a misplaced focus. My fear is that the solution may involve rearchitecting the entire application-GUI stack to get it working on Linux. Why? Because Apple's trackpad is not a mouse emulator, it's a first class input device all the way up to the application. Trying to make the driver really smart is fruitless if you throw out all of that rich information and try to reduce the inputs down to what a mouse is capable of.
- duskwuff 7y agoEh, I think you're overblowing it a bit. While Apple's trackpad does do some unique things (like Chinese character input[1]), most of the behavior that people are interested in emulating here can be reduced to the cursor position, click events, and (high-resolution) scroll events. The only part of this that isn't currently available on Linux, AFAIK, is the scrolling bits, and even that isn't critical. [1]: https://support.apple.com/guide/chinese-input-method/use-trackpad-handwriting-scim27935/mac https://support.apple.com/guide/chinese-input-method/use-tra...
- eyelidlessness 7y agoAs someone who's put a ridiculous amount of effort into mouse-specific user experience, I agree. Apple's only physical/technical advantages are resolution and accuracy (and they only have that because they have software that justifies the cost). The real advantage is they spent research and engineering hours, LOTS of them, determining how to give the best user experience for the majority of their users, including users coming from other platforms with other expectations.
- parhamn 7y ago> AFAIK, is the scrolling bits, and even that isn't critical. It seems that this is in fact the chief complaint of the folks who commented above you. It seems like they're saying that they choose to purchase alternative goods because of that behavior. That seems critical to me, no?
- duskwuff 7y agoMost of the complaints I've heard about non-Apple trackpads focus more on pointing behavior -- finger tracking, pointer acceleration, palm rejection, etc. -- than scrolling.
- chongli 7y agoThat’s because those are old complaints. It’s a moving target though. People are still complaining about problems that were solved over a decade ago in macOS. Now there are a bunch of new features (described in my other comments) that need to be added if you want an experience as smooth and intuitive as macOS on a recent MacBook.
- chongli 7y agoIt isn't just that. The scrolling in macOS is 2D (you can scroll a small rectangle inside a large one in any direction) and has position, velocity, acceleration, and a bounce effect on the boundaries of the content area. Additionally, you can pinch to zoom (in and out) and the zooming is smooth and continuous centred on the cursor location. There are also various 3-finger swipe gestures, and force touch lets you click on things with different levels of force to do different things. The only Linux application I've seen that uses smooth scrolling with acceleration is Firefox, and that isn't nearly as smooth as macOS scrolling (which is available in every application).
- duskwuff 7y agoTwo-axis scrolling isn't unique to macOS. The way that scrolling has traditionally been implemented on Linux (as mouse buttons 4 and 5) makes it difficult to implement any kind of continuous scrolling, but once you have one axis working, a second one isn't much harder. The velocity and bounce effects on scrolling are implemented at the application layer. They don't depend on any unique features of the trackpad hardware or driver stack. Zoom and swipe gestures are nice to have, but I don't think they're critical in the same kind of way that pointing and acceleration are. Force Touch is more of a gimmick than anything. It's a relatively recent feature, and was only added to the Macbook Air in 2018; very few applications do anything interesting with it. Personally, I leave it turned off.
- chongli 7y agoThe velocity and bounce effects on scrolling are implemented at the application layer. They don't depend on any unique features of the trackpad hardware or driver stack. I didn’t say they did. Oh macOS they’re not implemented by the application though, they’re implemented by the UI APIs and thus available to all applications for free. This is not the case on Linux.
- cycloptic 7y agoIt is the case on Linux. Both GTK and Qt have this built in for a while now: https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html#GtkScrolledWindow--kinetic-scrolling https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.ht... https://doc.qt.io/qt-5/qscroller.html https://doc.qt.io/qt-5/qscroller.html Why it's not working on your applications is a different question.
- 0xCMP 7y agoIt does involve the whole stack as explained here: https://pavelfatin.com/scrolling-with-pleasure/ https://pavelfatin.com/scrolling-with-pleasure/ Luckily Linux is closer to figuring it out than Windows and I'm watching several issues on libinput and wayland which are trying to address it.