5 ms·
I'm faintly curious, how does the MacOS "Touchpad Experience" referenced in question #1 differ from the Windows one? (Or any other OS?) (Background to my ignor
by gertrunde 6y ago
I'm faintly curious, how does the MacOS "Touchpad Experience" referenced in question #1 differ from the Windows one? (Or any other OS?)
(Background to my ignorance: While I do (very) occasionaly use MacOS, I usually default to the terminal as it's more familiar... and probably spend most (60-70%) of my time connected to linux or unix-like systems via cli/ssh... from a Windows system.)
Are we talking touch gestures or something? Or multi-finger things? Are they really that massively different? Surely a touchpad is a touchpad? (Not counting those awful things without proper buttons).
- fearface 6y agoThe touchpad on my Lenovo X1 Extreme has a noticable delay (maybe 300ms) of when it starts working after I used the keyboard. Instead of real palm detection, it gets into some kind of sleep mode.
- sethhochberg 6y agoYou'd think "surely a touchpad is a touchpad", but the reality for most heavy users is that Apple really does have an experience substantially better than most in this area. Large tracking surface. No dead zones, which can't be touched or tapped. Fantastic palm rejection. Gestures that work reliably, and never over or under-detect fingers. Its not really to say that the Apple trackpads are better at their best than the other vendors, as much as it is that the other vendors often behave in unpredictable ways. I used to have a Thinkpad which worked every bit as well as my current Macbook trackpad when it worked right, but which would frequently fail to recognize a finger during a scrolling gesture, couldn't be clicked on the portion closest to the keyboard, and occasionally the palm rejection just wouldn't work. The minor annoyances over time add up to a much more frustrating experience.
- aarmenaa 6y agoI've noticed that two-finger scrolling, which should be one of the easiest things to get right, is wrong on basically anything that's not MacOS. Windows and Linux arbitrarily insist on 3-line scrolling in a lot of apps. Even when pixel scrolling is technically available, it works poorly. It appears small movements are ignored, and then once you've hit some sort of distance threshold the scroll "jumps" to register the whole movement. There's weird delays where you need to "un-touch" the pad before you can transition from moving the cursor to scrolling. The scroll gets "dropped" after a while even though I still have two fingers on the pad. I've seen all this across many laptops running Linux and Windows, including Macs, which leads me to believe that that the issue software.
- floatboth 6y ago> Windows and Linux arbitrarily insist on 3-line scrolling in a lot of apps Yes, macOS is definitely more consistent in terms of UI toolkits, of course. Stick to GTK apps (with libinput on your system of course) and everything should be great :)
- wbkang 6y agoActually on Windows, 3 line scrolling is a configurable default in the control panel. On X/Linux, on the other hand, is where it's hard-coded to 1 line and there is no way to change it to 3 without having undesired side effects (such as scroll events being fired 3 times).
- myself248 6y agoBut no matter what you set it to, an inch of scroll motion on the trackpad results in a different number of screen-inches of window movement, between different apps. In Ubuntu right now: Firefox seems pretty intuitive, one trackpad-height worth of finger movement results in roughly one screen-height worth of window movement. That's great. But LibreOffice Calc, for the same amount of finger movement in the upward direction, scrolls about 3 screenfulls up. And bizarrely, for the same amount of finger movement in the downward direction, scrolls about half a screen. Discord desktop app (which I assume is Electron like everything else), scrolls about 1.5 screens per touchpad-worth of finger movement. That's acceptably close to Firefox and not disorienting. Gedit scrolls about 2 screens per touchpad. Arduino IDE scrolls about 2 screens per touchpad. How on earth can these be different? And how do you even start to fix that?
- floriol 6y agoThey all use different UI toolkits, some are gtk, some are java UIs, some are electron-based apps. So that's why - it's a higher level problem that is unfortunately inherent to desktop fragmentation which is hard to avoid on linux.
- yencabulator 6y ago> Large tracking surface. No dead zones, which can't be touched or tapped. Looking forward to a driver that fixes those for you...
- aloer 6y agomuch much much better: - super smooth. Scrolling and everything just feels right. They do a lot of low level software magic to make that happen. Off topic: If you ever try to reimplement a scroll view on iOS you will see how much effort is needed to make it smooth - even if you have access to all the same APIs - biiiig trackpad. I find this especially important when I have a big external monitor plugged in. I can easily move the mouse across two screens without lifting the finger. And very good palm recognition to avoid accidental presses - the haptic feedback is amazing. The entire surface is stiff and the feeling of a button click is done entirely in software + haptic feedback. Once you are used to it every other trackpad just feels old and cheap (same with iPhones and taptic engine actually) - Gestures and what you can do with them (OS X spaces!) is really well done. On many other systems a gesture will only work via on/off states. On Mac you have continuous gestures (you can undo/go back at any point) and that makes a big difference in terms of how fluid and smooth interactions will feel
- floatboth 6y ago> Gestures and what you can do with them (OS X spaces!) is really well done GNOME 3 does this correctly (but spaces are vertical), I think KDE Plasma too, and I have personally implemented this gesture in Wayfire :)
- saagarjha 6y agoI've done some reverse engineering of the macOS Spaces implementation and it is really all the way through the stack; Dock creates animation transactions and everything in WindowServer to make it work. You really need deep integration to have something like that be smooth and work well.
- aloer 6y agoany chance there is a writeup on this anywhere?
- saagarjha 6y agoI don't think I have enough for a writeup; I was actually looking into how Dock manages spaces so I have a bunch of general information on the SkyLight/CoreGraphics API. In short Dock grabs trackpad events and creates "SLSTransactions" to animate the windows around, but if there's anything in particular you're curious about I can try to go look that up specifically.