4 ms·
I personally find the Linux desktop to be never as polished as macOS because it’s hacks over hacks. One of the problems in inertia scrolling is that in Linux,
by pcr910303 7y ago
I personally find the Linux desktop to be never as polished as macOS because it’s hacks over hacks.
One of the problems in inertia scrolling is that in Linux, it’s implemented in the driver level — which means that while scrolling by inertia, if I close the window, the window below will scroll. This is basically a hack because of backwards compatibility with the legacy APIs that only concern mouse events.
The proper way to do this (which is implemented in macOS) is to do this inertia scrolling in the GUI toolkit, which in macOS is AppKit. (macOS implements this in NSScrollView.)
Fixing this in Linux will be hard, since it needs coordinated effort between at least GTK, Qt, libinput, and the harware vendors — it’s an artifact of the fragmented ecosystem of Linux.
- sprash 7y agoBoth GTK and QT are exceptionally bad toolkits and are part of the reason the Linux Desktop never took off. Giving GUI toolkits responsibly for even more things is clearly a bad Idea. Also personally I like the fact that inertia scrolling works everywhere consistently the same way. Just think about the horrors everybody now implementing their own scrolling. Consequently the fact that Linux is "hacks over hacks" is a feature not a bug. People should stop assuming that copying Windows and Mac will somehow give Linux more popularity.
- pcr910303 7y ago> Both GTK and QT are exceptionally bad toolkits > Also personally I like the fact that inertia scrolling works everywhere consistently the same way. > Just think about the horrors everybody now implementing their own scrolling. Which should be a reason for advocating one toolkit that rules everywhere (maybe systemd-toolkit?), not a reason to have poor inertia scrolling experience that doesn’t work properly across different windows. > Consequently the fact that Linux is "hacks over hacks" is a feature not a bug. How can this is a feature, not a bug? Isn’t it technical debt?
- deltron3030 7y agoI'm sure that the real issue with Linux is more a philosophical one, where certain aspects about freedom overlap with UX in a counter productive way, preventing devs from being very opinionated about important UX things.
- pcr910303 7y agoIf these problems don’t get fixed promptly, systemd might have to start a project related to GUIs so that Linux can finally get a proper & consistent GUI environment. (And I’m not joking — systemd gets criticized a lot about the monolithic design, but it’s design which ‘knows’ each other means that it can cooperate on big changes and features, provide consistency, etc...
- LargoLasskhyfv 7y agoSystemKit(ty)!1!! Finally! Meow!
- diffeomorphism 7y agoSo do qt apps in macOS have good inertia scrolling? Do gtk apps? Do java swing or whatever apps? > it’s an artifact of the fragmented ecosystem of Linux You mentioned literally two frameworks gtk and qt, which both use libinput, i.e. one thing. How is this fragmented?
- pcr910303 7y agoI was saying that the inertia scrolling should be implemented in the toolkit level, instead of emitting bogus mouse events for ‘inertia’. Which means that GTKScrolledWindow (or whatever is NSScrollView’s eqivalent is) should implement it’s functionality, not in libinput. I considered it as fragmented b.c. the reason it was implemented this way (instead of implementing in the toolkit) was mostly because one can’t coordinate big changes in at least three big libraries (vendor drivers + libinput + Qt/GTK) to achieve something relatively small (inertia scrolling) when Apple can just decide to ‘fix everything related’ if one decides to adopt a new feature. Not that fragmentation is a necessarily bad thing, but it’s not great in these cases.
- diffeomorphism 7y agoSo in qt or gtk on macos it is implemented at the toolkit level?
- pcr910303 7y agoI’m not quite understanding the question (probably due to my lack of English skills) but if you’re asking if it’s implemented in the macOS equivalent of Qt/GTK(which probably means AppKit), yes AFAIK it’s true.
- tssva 7y agoSome apps on macOS are not written using AppKit but are cross platform apps which use either the QT or GTK toolkits even on macOS. The question is asking how inertia scrolling is handled on macOS for applications which use these toolkits instead of AppKit.
- mcv 7y agoAt this moment I'm just generally frustrated with the state of desktop OSs in general. I used a Mac for a decade, and was generally happy with it, but not so happy with Apple's direction and recent poorer hardware. I recently installed Windows on a couple of machines, and that's just a horrific experience, and below the shinier surface, the OS is still as clunky as ever. I've been putting my hope on Linux, but what the world really needs, is for someone to create a unified vision for a Linux/BSD/open source based OS and hardware that basically takes the Apple approach, or at least the approach Apple had 15 years ago. It's amazing how little progress there has been in this field. If I had money and some expertise in this area, I'd start my own company making better laptops with a Unix-like OS that's not afraid of breaking compatibility with old Linux ideas like this that are holding us back. But that's never going to be more than a dream.
- cassianoleal 7y ago> making better laptops with a Unix-like OS that's not afraid of breaking compatibility with old Linux ideas That's what OS X did, only for BSD rather than Linux.
- mcv 7y agoThat's why I loved OS X 15 years ago. But it's not open source, and it feels like it's getting less open with every new version. But worse is their hardware: I can't access it anymore. In a way, I think they peaked with the 2011 unibody design.
- skavi 7y agoFuchsia maybe? It’s already broken POSIX, and its entire stack is built with modern tech in mind.
- freedomben 7y agoTrue, but then they closed it up and boarded it off. It gets less open as we go, which is the opposite of what I want.
- ebiester 6y ago
- econcon 7y agoAs someone who tried using Digital Signature using ePass2003 token on Mac, I found the process impossible. Meanwhile, it was few clicks on windows. Atleast anything on ROC India/GST portal is impossible with Mac.
- Unklejoe 7y ago> it’s implemented in the driver level Not anymore, at least for any system that uses libinput (which I think is most of them at this point). The reason libinput doesn't implement it is exactly for the reason you described, too.
- bwat49 7y agoYour information is very out of date. The old synaptics driver worked as you describe (implementing kinetic scrolling at the driver level) Libinput (which all modern distros switched to ages ago) does NOT implement kinetic scrolling at the driver level. Instead libinput implements 'scroll sources' and it's up to the toolkits/clients to use that data to perform kinetic scrolling.