One thing i've seen desktop Linux struggle with, or rather the kernel or some other subsystem/drivers, is mouse and trackpad handling.
On OSX (and possibly Windows although its been a long time), its soooooo silky smooth. But on multiple Linux distros i've used, including Pop and Ubuntu, it just doesn't feel right even after adjusting all sorts of settings.
This is one thing thats kept me from full time Linux DE usage :(
I've shared my opinion before on why mouse/trackpad handling is terrible on most Linux distributions [0], thanks to a misguided obsession w/ rewriting the entire stack and throwing away vendor-provided acceleration curves (most recently in order to provide gesture support instead of just building it on top of the correct, working solution).
More importantly, there is a solution for fixing this and I've done my part by open sourcing a multi-touch gesture solution (userland daemon) that's driver-agnostic and runs on top of the vendor-provided drivers w/ their correct acceleration curves [1].
(But TBH I don't know if this applies to Apple's trackpad because I don't know if there are any first-party drivers w/ proper acceleration curves for Linux or if they've all been – unfortunately poorly – reverse engineered.)
Interesting. I came to accept the rewrite for libinput, considering it's being developed by the same developer as synaptics, and he/she who codes gets to decide whether to maintain something he/she considers a mess of course. However, the only possible reaction from my side was to leave behind what was causing physical pain for me and return to Mac OS. From past discussions ([1], [2]), it appears I'm far from the only one. I hope the extant desktop devs at Red Hat and elsewhere enjoy their big refactorings for the sake of it as a hobby (wayland, gnome, libinput, systemd) but man does it suck. It's such a regression I've given up any hope and think desktop Linux has already peaked around 2016-18.
You’re not the only one to express this sentiment; a lot of people grappling with the discontinuities in the X11 to Wayland migration (and the gnome 2 to gnome 3 to gnome 4) have been saying the same thing. And that’s just for cases where the same developers have decided to move on to a new approach and the community has begrudgingly agreed to march along.
Very cool. I am trying to compare the gesture support for syngesture and MacOS [0], which I have never used. In syngesture, it seems you can swipe left/right/up/down with 1-5 fingers.
In MacOS, there are additional things you can do.
* Spread or bring closer 2-4 fingers.
* Swipe from the edge to do a different action than swiping in the bulk of the pad.
Are there any system limitations on linux that prevent the implementation of such gestures?
I just want to add 3-finger drag-and-drop to the list. It's so useful and much easier than the double tap or holding down the button to move things or rectangle select, especially the latter because I don't like tap-to-click. I don't know why Apple moved it from the trackpad settings to the accessibility settings.
Same! Drives me crazy every time I have to set up a new Mac for myself (I'm a contractor and clients sometimes insist i use their hardware). I have to Google it every time.
Thanks for looking. There is no such fundamental limitation and the code was written to support these and other gestures in the future. However I don’t use those other gestures myself and had no motivation to write in support for them. (They might also not be particularly in demand by users as I’ve never been asked to add them.)
(Also, syngestures separately recognizes and supports both taps and swipes, and it supports both/either with anywhere from 1 to 5 fingers.)
Hahaha I never thought of it like that! But to admit it myself and to my own detriment, having seen people so accustomed to their phones try to “pinch and zoom” in real life makes me think that no number of additional gestures will make up for not supporting the ones macOS/iOS does.
Good question. There is no technical barrier since it is possible to generate a mouse down event separate from a mouse up event however currently events are generated after the gesture is complete (meaning mouse location has been lost).
It’s easy to separate that into pre- and post- hooks, but the most reliable method I found for counting fingers in a gesture is “the maximum number of fingers during the gesture at any point” as it allows for variations in timing, location, direction, etc of first, second, subsequent fingers for a multi-finger gesture (you can’t assume they’re all present from the very start or that one finger won’t accidentally be raised mid-gesture). I’d have to change that to “detect number of fingers within xx ms of start of gesture” but that is somewhat problematic because the cursor position actually changes in response to touch between when your fist finger touched the trackpad and the time when (in your example) the third finger was finally added to the gesture (even if that all takes place in “a split second”). So it can be done but you might need to be intentional about being more careful with your three-finger swipe-to-drag to ensure the cursor remains within the desired click area until your third finger has made contact with the trackpad and hover there a brief moment to allow the daemon to determine you’re not going to add a fourth finger to the mix (changing it to another gesture altogether).
It would be entirely possible to retroactively generate a mouse down event at the original gesture start (with the first finger) when the third finger is added and no fourth finger is added, but that might be jarring from a UX perspective (cursor moves out of the bounding rectangle then the drag starts some ms later).
I had written a Windows script for adding three-finger drag[0] that I use daily, perhaps it could provide some inspiration.
Basically, it is an independent subscriber to RawInput messages that only keeps track of whether or not to send three-finger drag, and posts emulated mouse messages using SendInput. I have a few other scripts that each run as independent userland processes that only monitors their own trigger and nothing else.
Tangentially, my TPMouse[1] script implemented inertia in a framerate-independent way so that it uses very little resource while having perfect simulation stability.
A previous discussion where I explained the analytic derivation for this low-resource exact-solution damped inertia can be seen in [10]
Nice; I've been looking for a way to do two-finger-swipe -> Browser back/forward in Ubuntu/Pop for a few years now, and still haven't found a solution. Hoping this is it!
I think Firefox supports this natively, but it’s hidden behind a config option (dom.w3c_touch_events.enabled) and you need to enable XInput2 by setting the MOZ_USE_XINPUT2=1 environment variable
I'm using a Dell laptop, but I'm running vanilla GNOME on EndeavourOS (took out the distro-specific customizations in the installer), and its trackpad support seems perfect on mine. Everything is as smooth as I've seen on Windows or MacOS. The settings menu for it is nice. I especially like how it comes with a three-finger swipe left or right to switch workspaces/desktops, or a three-finger swipe up to get an overview of your current desktop. It all feels natural, and it gives me a sense of control; if I swipe slowly, it switches slowly, rather than just make the transition deterministically after I've swiped in some direction (something I've experienced elsewhere on Linux).
I also like that you can use two-fingers to zoom in on a webpage with Firefox, just as on Windows.
GNOME is the first DE I've tried where all of this touchpad support was implemented so well, although I haven't tried that many, to be fair.
Sorry if I sound like an advertisement; I just wanted to be specific about what I like about GNOME's trackpad support as opposed to just saying that it "works fine for me."
I'm running stock Fedora (which uses GNOME) on a Framework laptop and it's the same for me. It's the first time I've had Mac level trackpad support and UI responsiveness out of any non-Mac.. windows or Linux.
>it just doesn't feel right even after adjusting all sorts of settings.
personal opinion: have you looked at the sheer number of options exposed for a modern trackpad in linux?
it's insane; I don't really have any problem understanding the difficulty in achieving a good set of defaults -- there were like 200 exposed parameters the last time I tried to get it 'just right'. (a modern synaptics' touchpad on a new dell XPS.)
if I was on some quest to make it feel like Windows or OSX i'd probably have to give up -- not that those two feel better to me, but the sheer granularity is intimidating.
NOTE: this isn't to say that I dislike how the trackpad feels in Linux; I usually always get to a nice set of parameters that feels good to me, they just aren't the same as Windows or OSX, although I have little doubt that the granularity is there for someone to get it right.
I got forced by my employer to use a mac two years ago, and I had the exact opposite experience: the trackpad was so far from what I was used to (from reversed scroll motion, to the many accidental and undiscoverable multi-touch or smart gesture shennanigans) that I just hated it, and I soon plugged a mouse.
UX is a very subjective thing, and it depends a lot on your background: you're never going to feel instantly home when switching platform no matter how “polished” it is supposed to be.
The only unexpected gesture I had was the swipe back/forward a page (I've had the same issue on mobile as well) but I just disable this particular gesture. Which gestures did you find that you accidentally triggered?
Right now, at least on my machines, Linux/X11 is better than Windows.
I think that on macOS, the hardware is also miles ahead of what you can get on a pc. This isn't to downplay the software because I remember my MBP's touchpad being wonky under windows a few years back.
But things have improved. My HP EliteBook 845 G8 is fine under Linux/X11. Still somewhat worse than the 2013 MBP, but not nearly as horrible as the HP two generations back. I'd rate it as comparable to my 2012 unibody MBP.
Under windows, it's fine, too, but it has a weird lag if you pay attention.
Mac trackpad keeps getting mentioned as something that is leagues above the rest. I recently had to use MacBook air M2 and the trackpad was horrible. It was big but hard to use and it couldn't handle simple click and drag style of gesture that works on both windows and Linux. The buzzing feedback was random and confusing. I had to get a mouse after a few minutes struggling with it. For me experience on 15yo Dell with trackpad 1/4 the size feels superior to Mac.
Where are you encountering buzzing feedback? I don't think I've experienced that in any Mac laptop I've used in the past 20 years. There's the haptic feedback from clicking but that's singular, distinct, and non-repeating.
Could be the electrical nature of the case? When I used a Macbook for work, if it was plugged in (original charger and cable and all) then dragging my finger over the chassi or trackpad could be described as a "haptic buzz", it felt like there were ridges on it, like corrugated cardboard. When unplugged and on battery, it would feel smooth.
Yep, that's probably because the power adapter wasn't grounded.
Here in Europe, at least in 2013, the adapter had two ways of plugging into an outlet: a cable and a plug that could be clipped on. The plug only had two prongs, while the cable had a ground connector. I'd get the "buzz" if the adapter wasn't grounded.
This also happens with my HP laptop if I plug it into an ungrounded usb-c adapter, so I'd expect the same thing to happen to iPads.
To me the acceleration of the touchpad of macbooks feels unnatural, even after prolonged used. And this is coming from a linux user on an XPS. It's so rare to find this opinion being shared though.
I actually like the acceleration, and when I switched from the mac to linux, I spent a long time trying to reproduce it. Never quite got there, though.
Nah. I was used to Dell trackpads for years, but I immediately felt the Macbook's was superior immediately.
We have many Windows laptops in the family, and everyone uses mice most of the time. I only use a mouse on my Macbook when it's hooked up to an external display. Even then, I sometimes wish I had a Magic Trackpad.
> We have many Windows laptops in the family, and everyone uses mice most of the time.
Yup, at work we have "high end" enterprise HP Elitebooks. We've had a general refresh 1.5-2 years ago. Basically, everyone lugs around a mouse. And they're not "nice" mice, either, so it's not like they're getting any extra fancy ergonomics or what not. Hell, generally they're the basic 3 button Logitech, without even a back button (don't know how people can go without this today).
I've never had a problem getting good mouse performance on Windows, under what circumstances are you noticing any lag?
Windows, like X11, uses a hardware mouse cursor. It sends a sprite to the GPU along with coordinates and it is drawn by the GPU outside your compositor's pipeline.
My wired mouse always worked as expected. Ditto for my wireless mice when using their own adapters. My MX Master 3s had some very noticeable lag at one point, but it got fixed by some windows and/or Bluetooth driver update.
The touchpad, though, has a bit of lag that's noticeable when making sudden changes. For "regular" use it's not much of a problem and not really noticeable if you don't pay attention. But I only rarely use Windows, so whenever I do, I see it for a few minutes at first. It's a bit like moving to a Bluetooth mouse after using a wired one.
My main gripe with the touchpad under windows, though, is that I can't get the "tap and hold" behavior of macOS/Linux. Meaning that if a double tap and drag, say to select text, it will "hold the tap" for a short time if I lift my finger. Since the touchpad is of the hinged variety, it's impractical to actually press on it and move the finger while pressed. Bonus points for pressing near the top not exactly doing anything.
I think there is a setting to tap and hold, but that'll hold the tap indefinitely (or at least very long) until you tap again.
Trackpads are anything but standardized. For example those Apple's been using for quite a while now are built with the same touch controllers they use in iPhones (essentially making them iPhone screens sans screen panel), and on the extreme opposite end you've got cheap ones like is built into a Logitech media center combo board I bought several years ago which emulates a mouse instead of presenting itself to the connected device as a trackpad (and as you might expect, is terrible to use).
I'm using a Magic Trackpad 2; my experience has been just about perfect on KDE Wayland. GNOME's implementation is good too, but KDE's feels slightly more intuitive to me.
KDE gives you more granular trackpad settings than MacOS offers out-of-box, and the Wayland session has more gestures than you can shake a stick at. I think you owe yourself another visit :)
Seconded. On the rare times when I boot into the Windows partition on my laptop, the touchpad feels noticably better. Linux doesn't even handle all the quirks of my touchpad correctly so occasionally it'll get extremely slow and laggy, bordering on unusable! It's a Dell XPS-15 9510 and I haven't been able to solve this despite the laptop being out for almost two years. I've upgraded the touchpad firmware and the BIOS multiple times.
I'm also using an Apple trackpad on Linux (over both Bluetooth and USB) and it works absolutely fine. I didn't need to adjust any settings. It feels native. No difference whatsoever that I can perceive between this trackpad on Linux and on macOS.
I'm using a razor basilisk and it just feels so awful to use on linux. The best part of the mouse is the great scroll wheel(very similar to the mx master but better) and this part does not work at all on linux. Scrolling in general is just a total mess in linux and it frustrates me so much that I went back to windows. The mouse movements also feel so janky for reasons I can't really put my finger on.
I agree about the trackpad. I have two old Max Laptops running Ubuntu and the trackpad experience is perfect.
That said, I have a style involving sometimes using both index fingers on my System76 trackpad and the experience is really good, but to be honest it always takes me a minute to get in a groove with it.
I've been sponsoring the project since the beginning. They have to add support at all layers of the stack, and in Linux that's a lot of (moving) targets! Wayland, libinput, Firefox, Chrome, GNOME, KDE, etc... it's open source. We can't just sit around and complain.
For what it's worth, I've been using an Apple Magic Trackpad 2 for five+ years via USB and Bluetooth and it works well. Pinch to zoom, two-finger swipe for forward/backward in the browser, and others.
Linux have it but the acceleration curve is quite different from Windows' offering.
> A mouse acceleration feature accelerates the motion of your pointer. It enables users to move their pointer faster and cover more on-screen distance with merely a faster mouse movement rather than the physical distance the mouse covers.
I may just not be as picky as others but I have felt my System76 laptop's trackpad with PopOS is quite smooth. Improved from when I previously just installed Ubuntu on random Dell laptops.
My System76 laptop's trackpad is also very smooth. The only moment when the mouse freezes for a while (sometimes) is when using the default screenshot application.
I use pop os and for some nearly insanity level reason highlighting is VERY janky. It often looses focus, switches the start point, completely becomes unavailable, and generally has nearly driven me to go insane.
Apple's Magic Trackpad has a disappointingly low polling rate. It feels bad even on my Mac when using it with a 120hz display. The built-in trackpad on the other hand feels great. Is it possible this is your problem?
This is the first time in recent memory that a company's software has made me want to buy their hardware. They are doing such cool stuff with Pop_OS, figure my next laptop will be from System76.
I'm looking forward to their Virgo laptops, which will be designed and manufactured in-house instead of being rebadged Sager/Clevo laptops. If they're able to pair high-quality hardware with a high quality Linux desktop experience, I think a lot of developers will switch over.
I use their os on an old xps 13, and it's fully replaced ubuntu (I hate snaps!) as my go to distribution. It's pretty flawless.
I do hope they take the time to fully iron out the bugs on cosmic before making it the default. I was an early wayland adopter but after facing issue after issue, I eventually realized that the jump from xorg to wayland was all about making the developers life easier, with little to any benefit to me as an end user.
Yeah as I recall they simply buy a well known laptop from Asia and rebrand it (as a lot of other companies do), at least the first ones were not developed by them at all.
Genuine question, are any of the package manager "app store" style front ends actually nice to use right now? From my perspective having used several different distributions and environments over the course of the last ~15 years, they've all been "just ok" at best, very obviously webviews with some native chrome glued on, and had issues with resource usage, glitchy UI/UX, lagginess, etc.
Is it a matter of these particular bits not receive adequate attention or something else? I'm not opposed to trying to pitch in and help improve them but before that's feasible the root problem needs to be understood.
I've been using Solus 4.4 for a few days. Best package install experience I've had - one tool to do it, no weirdness or scary messages about dependencies, and the hit rate on getting the software I'm looking for without issues has been very high. Top notch desktop distro.
I think a lot of it is because distros tend to play hot potato with the packaging and try to reduce their load by building off Debian or Arch, which makes the experience way less consistent as you end up with fragmentation surfaced to the user. Add in a bit of corporate open-source "embrace the user" and you get app store jank that the developers never use because they just open a terminal instead.
Is there any legitimate reason for this? I also find it generally unresponsive and it lags hard inbetween searches and clicks. I mean I always update from terminal but for how they’re trying to develop the desktop experience I don’t get why it takes up so many resources despite being sluggish
Recently, the keyboard and trackpad of my two-year-old laptop suddenly became a convex surface. Had to open a support ticket to ask how to get a replacement battery.
Many days later, I got a reply that it would be $120 + shipping and do I want to go ahead and order one? No advice on how to mitigate a potentially hazardous situation caused by their product and full retail price on replacing the defective part.
Pop!_OS:
Before I had actually moved into the laptop or installed anything (other than emacs and firefox), the package manager crapped itself with some circular dependency. As I started to work through unfucking the situation, it occurred to me this wasn't my fault and why am I putting up with this?
I got the new Pangolin12 a few months ago and it was a bit of a nightmare. USB-C with alt-dp was completely nonfunctional (the USB hardware would constantly reset and all my external storage would be unmounted and remounted and ethernet over USB-C would disconnect, making normal work impossible while docked). I went through three laptops and all of them had the same issue. The line from S76 was that there must be something wrong with my dock, though I tried three different docks, multiple linux distributions, and pretty much every kernel version available in Pop!_OS to no avail.
Kudos to them for working with me and for the support staff generally being friendly (and also putting up with 3 RMAs). I ended up just getting a refund though and buying an M2 Macbook Pro.
I think the major issue atm is that they're stuck working with second-string ODMs who aren't necessarily the highest quality but who will at least give them access to hardware documentation.
The designs for their most recent laptops are also freely and openly licensed, using the CERN Open Hardware License: https://github.com/system76/virgo/
The effort to write a DE in Rust (especially with iced) is impressive and will definitely improve Rust GUI efforts. I am surprised, however, the margins around buttons and layouts in the settings are uneven (eg. no margins around the "Wallpaper" title but large margins on the toggles on "Background fit" or "Slideshow"). Is this a beta thing, or how the UI is supposed to be designed?
It's better than it was in previous previews, which makes me think we're probably seeing the result of "get a bunch of shit done" with sprints of "now make it look better", cycle and repeat.
Before Plasma this was also an issue with KDE, I mean uneven or missing margins/paddings. Gnome always had that though I think. Hopefully they'll improve these kind of things, at least from a first try the UX feels very smooth. Also considering it's built by one company.
Can you provide any references on the DE being written with Rust + iced? That's huge news in my book. This would be, AFAIK, the first major production UI written with a Rust GUI framework.
Its use of iced is mentioned in the article itself, second paragraph from the bottom. That same paragraph has a link to cosmic-text on github & its Rust code.
I'm so stoked about a well supported tiling Wayland compositor! Now KDE/Gnome are the only secure options in a world where all others implement screen capture, virtual keyboard and virtual mouse interfaces without access restrictions (looking at you sway and all of wlroots)
These early results look very promising, it is really interesting to see the high quality and speed of iteration and they are tackling some hard problems such as High DPI right off the bat. Hoping to get to try this out soon
Although I am myself running PopOS LTS on my machine right now, for historical reasons, I see no value proposition compared to Debian 12. If their Cosmic DE does not handle scaling at least as good as KDE (which is alow bar) I won't use it.
We do not use JavaScript. It is Rust from top to bottom. The native applets are written with iced/libcosmic, and the same is true of the shell components in the compositor.
This looks super smooth but I wish there were a floating-first version. All of the notable standalone Wayland WMs I know about are tiling-first which doesn't work well for me at all.
Perhaps that's because the people driven by tiling window management are evangelical enough about it that they'll build entire new software stacks to support it, and the people who want floating windows are just... sufficiently satisfied by KDE/GNOME.
All I know is that I don't like the trend to moving controls into the title bar, making everything like Microsoft Office where there's so much crud in there you have to play Minesweeper to find a few pixels you can click on if you want to actually drag the window and not do anything else.
I want something that looks more like FVWM or even IceWM, a perpetual late-1990s vibe.
GNOME apps support window drag and drop on the entire title bar, even if buttons are beneath the cursor.
And the wayland compositor hyprland does support floating windows like any other compositor. Though I agree that if your comfortable with no/simple tiling, using Gnome/KDE/other DE's is likely your best bet.
I’m not really satisfied by GNOME, KDE, etc but the prospect of rolling my own is daunting to say the least. As a dev whose entire hobby and career work has consisted entirely of typical user-facing native desktop and mobile apps, the bits one need to work with to write a WM (let alone a DE) may as well be alien runes, and looking at the code for existing Wayland WMs doesn’t really help a whole lot.
From the point of view of desktop development, I don't see any value on it.
What are the frameworks for UI, audio, 3D, IPC, how they integrate with the remaining Linux distributions stack?
I bet they are yet something that isn't quite GNOME, KDE, XFCE,..., with its own little island of APIs, reducing its utility to yet another window manager in practice.
To make it easier to multitask between classical xterm and Electron apps.
Considering you can install the current Pop!_OS on non-S76 laptops, I don't see why COSMIC wouldn't become more widely available when it's done.
Heck, if it stays true to the idea of being just a Desktop Environment and not an entire OS, there's no reason we couldn't start to see it become a standard Ubuntu flavor or a Fedora Spin.
That looks pretty good! I have a System76 laptop running PopOS somI will try it this weekend.
A little off topic, sorry, but I bought my System76 laptop about 5 years ago, and it is still a workhorse. Good but old i7 and 1080 GPU and software is up to date.
Interested in if the fractional scaling is using that new Wayland protocol that allows windows to render at the desired dpi directly, or if its the old Mac-style render-at-2×-then-shrink.
We are in the age of mobile computing and most consumer Linux news I've seen on HN is about DESKTOP environment. Nothing new or innovative, it's always yet another way to stare at the gaps of multiple tiled windows, in the middle of the screen. People use computers like this?
They’ve been talking about this for years I feel like. Are they committed to releasing it any time soon? The last Pop update was well over a year ago. Are they moving to a rolling distribution model once cosmic is completed? I recall System76 saying they’d do annual releases but again they haven’t delivered on that
It's been only a little more than a year since it was started. I don't know anyone who's able to announce the start of development of a new DE, and then have it released in less than a year.
Your loss, it's quite good. I've been using it for 3 years on a Ryzen laptop and it's the best Linux experience out of the box and with minimal customization that I've ever had in decades of Linux desktop use.
Submitted title was "COSMIC Skies of a Colorado July", which HN's software changed to "Cosmic Skies of a Colorado July", which was even more generic. I've replaced the title with representative language from the article now.
On OSX (and possibly Windows although its been a long time), its soooooo silky smooth. But on multiple Linux distros i've used, including Pop and Ubuntu, it just doesn't feel right even after adjusting all sorts of settings.
This is one thing thats kept me from full time Linux DE usage :(
Edit: i'm using an Apple trackpad.