Ubuntu 24.10 to Default to Wayland for Nvidia Users
omgubuntu.co.uk
omgubuntu.co.uk
The issue with popular distro's like Ubuntu defaulting to X11 for certain hardware is it allows companies like Nvidia to de-prioritize Wayland support. Even in the best case, Nvidia's Linux docs are still written assuming Ubuntu + Xorg which is very unhelpful.
I bet we'll finally see proper Wayland-focused documentation and more Wayland compatibility updates from Nvidia within a year or two just because Ubuntu changes the default.
We are all but a drop in the nvidia ocean.
The biggest annoyance by far is all the little scripts I’ve created over the years which use `xdotool` magic for sizing, positioning, and minimizing-and-restoring.
My other annoyance is Wayland has no `easystroke` like application, and having used StrokeIt on Windows for years, then easystroke on Linux for many more years, I just can’t use a computer efficiently without it.
I don't have much advice on the gesture stuff as I only use "plain" gestures so haven't looked into it. Technically there isn't anything about this that should require X11 but that doesn't mean anyone has actually made a nice convenient tool for it.
Of course, no reason to jump immediately just because it'll be the default in the non-lts versions. Waiting some more may make the above less work to figure out. Two years ago it would have been many times more difficult and two years prior to that a "maybe this git branch will work" adventure for basic things.
> But there is a modern replacement, https://github.com/jersou/mouse-actions, which works on both X11 and Wayland
As for easystroke being unmaintained, it's a simple utility that does what it says. And it has worked the same way for the last 14 years.
[1] https://github.com/jersou/mouse-actions/issues/15
I admit that I only played with this for an hour or so. Maybe I didn't do some of the necessary configs to get a good experience, I just followed the Arch wiki instructions.
I hope it's better on Ubuntu.
TBH Archlinux and NixOS have the easiest Nvidia experience because IIRC I think Ubuntu still defaults to Nouveau?
I used Arch for 2 years and Fedora for about a year. I just can't handle Linux as a daily driver anymore, I don't really want to deal with all the little annoyances anymore. Every couple of months I come back to see if things are improving.
I have zero issues with Windows. I don't do much dev work on this machine and when I do a VM is good enough for me.
It's pretty rare to have a machine now days without integrated graphics so it's easy enough to just use the integrated GPU for the desktop environment and only use the dedicated/Nvidia GPU for games/CUDA stuff.
I'm running EndevourOS (Arch), KDE Plasma 6 on X11 and rarely have issues. Wayland isn't nice to me though. And as long as XScreenSaver doesn't work on it I likely won't switch. The same for AutoKey, although Hawck seems to be an alternative (https://github.com/snyball/Hawck).
Zoom in Chrome sent my CPU usage to 100%, screen sharing was annoying and some of the options in that portal selection dialog weren't working.. Video playback in Firefox was freezing.
Switched back to X11 after an hour and things started working normally again.
And let's not pretend that Wayland implementations are without bugs. But it feels closer than I believed possible.
[original reply, based on a faulty interpretation of your response due to my not realizing I made the typo I had] Well, that would be my position for sure... at which point I would argue they in fact did know how to fix their issue: stop using Wayland. But like, people sometimes claim to have good reasons to be using Wayland, and so before I start going down that path I wanted to hear, from them, whether they actually cared about Wayland for a real reason.
* Cursor didn't show up at first. I had to use `export WLR_NO_HARDWARE_CURSORS=1`, but the software cursor had some noticeable latency to it.
* Extreme flickering in both Firefox and terminals. I installed wlroots-nvidia [1] but even then the flickering, while improved, was not gone. I manually played with WLR_RENDERER options between gles2 and vulkan but they all had flickering. [2]
In the end I decided that the flickering issue prevents me from using Sway.
Hardware: NVIDIA GeForce RTX 4080 Super
Driver: 550
OS: Arch Linux
I always wanted to get in to i3, but traditional window managers seem to work better with my brain.
I find I reach for a tiling WM (or tmux) when I have a lot of terminal tasks I need to do and being able to quickly summon, dismiss and rearrange windows visibly is more important than their placement.
As with everything else, everyone has their preferences and each paradigm has its strengths, weaknesses and natural use cases.
Tiling windows and touch interactions work great together, if the system is set up to things like snap to fit. Current day tablets & many phones do limited forms of tiling, because it is the better fit. Managing floating windows on a touch-only system (like a tablet) is the worst combo.
My preferred setup is a floating WM with dual monitors, with each monitor’s virtual desktops being fully independent (so switching one doesn’t switch the other), which allows using the desktops to create “windowsets” that can quickly be switched between. This is by far the least micro-managey arrangment I’ve used, with windows rarely being moved or resized once set up. Practically zero mental overhead, it’s very nice.
Python config and runs under either X11 or Wayland.
https://docs.qtile.org/en/latest/manual/ref/layouts.html#mon...
My final push came from Gnome (on X11) randomly messing up Alt+Tab so that each time it would start cycling from an arbitrary window rather than the current one, only fixable by logging out and logging in again. Also annoying: with an external monitor, windows sometimes jump between monitors after suspend and resume for no clear reason.
No such issues with Sway at all. Overall, I found the switch very worthwhile.
Just idle or shut it down like a sane man.
This replaced years of Dell and Asus models that kept trying to commit thermal suicide in my bag.
Although my experience also matches sibling’s when it comes to power management.
It's why I always either just idle or shut down if I'm not using a desktop/laptop, depending on the expected downtime. I'm going to hard reboot anyway because of how janked up everything would otherwise be, so I might as well save myself the "fast" boot up cycle that just wastes my time.
All I can say is that the ThinkPad + Sway combination seems solid even with suspend. I’m hoping you’ll find a fix too.
Especially nowadays where computers boot off of SSDs, a full cold boot doesn't take more than several seconds anyway. There certainly was an argument back in ye olde HDD days.
Does Gnome give you similar bugs on Wayland too?
https://github.com/swaywm/sway/blob/3334d11adc926c0f6d86afc4...
If that's not a problem you have then great! But most people today are using multiple monitors.
Just out of curiosity, what was complex about your quad 4k monitor configuration? As a lark, I've used xrandr to do all sorts of weird stuff and it has handled it just fine.
I've been using multiple monitors with xorg for fifteen, twenty years. (For quite a while, I used three monitors, but now I just have two.) Until XRandR became a thing, configuring them was definitely a headache, but after its release, everything Just Works(TM).
On my laptops, I've always used Intel hardware, and on my desktop, I've always used ATi/AMD hardware. Are you -perhaps- using nVidia hardware? If you are, that may be the source of your problems... nVidia's Linux support for the little things that make using a graphical desktop not tear-your-hair-out bad has always been pretty awful. (Usually because they typically refuse to do what everyone else does and go off and make an incompatible version that's generally worse.)
I think it's on the verge of being impossible to be honest. If you don't need any scaling then yeah, xrandr is fine. I ran 4 24" monitors, 2 horizontal and 2 vertical and xrandar handles it just fine.
> I think it's on the verge of being impossible to be honest.
You sure about that? QT seems to handle per-monitor scaling fine (at least with 'kwin'), so it doesn't seem to be at all a problem with xorg. Read on:
QT has environment variables that let you set per-monitor scaling... even fractional scaling. See: <https://doc.qt.io/qt-5/highdpi.html#high-dpi-support-in-qt>
On my system, I have two monitors, DisplayPort-0 (a 32" 4k) and DisplayPort-1 (a 24" 1200p). I also have Dolphin installed, and it has a "Desktop" item in its sidebar that has a "minimal" square-cornered icon. When I run:
QT_SCREEN_SCALE_FACTORS='DisplayPort-0=2.73;DisplayPort-1=1' dolphin &
Dolphin produces a "Desktop" square on DP-0 that's 44x44 pixels, whereas QT_SCREEN_SCALE_FACTORS='DisplayPort-0=2.60;DisplayPort-1=1' dolphin &
Dolphin produces a "Desktop" square on DP-0 that's 42x43. (There's some dithering/blending/whatever going on that's obvious when you zoom way in.)And, when I move Dolphin to the DisplayPort-1 monitor, once more than half of the window is on DP-1, the icons shrink to 16x16, and scale back up when I move back to DP-0.
Now, for some reason neither 'QT_ENABLE_HIGHDPI_SCALING' nor 'QT_AUTO_SCREEN_SCALE_FACTOR' seem to do anything at all. Given that xrandr knows the physical size of each monitor, and how many pixels each is configured to output, my expectation is that they simply never wired this up when running on xorg. I wonder if they're accepting patches.
EDIT: I also wonder if the reason they never wired this up when running with xorg is because nVidia's scaling performance is absolute dogshit, and they (somewhat reasonably) really want to have this autoscaling stuff on by default.
I had a similar problem to what the sibling comment mentioned - scaling was causing me performance issues. I disabled the laptop monitor and just ran multiple screens of the same resolution, and need about 150 % scaling to have text visible on these 4 X 32 inch 4 K monitors, but it was causing a huge amount of lag in xorg. It was solved by switching to Wayland which reduced the lag completely, and also let me run fractional scaling (I think I use 135 %) which wasn't available in xorg. I spent a lot of time with combinations of drivers and inputs and docks and scaling and couldn't get xorg to work. The laptop is a dell precision 3580 with a 4 GB NVIDIA gpu so a pretty standard piece of hardware
Your sibling didn't mention any performance issues at all. And yeah, nonsense like that sounds par for the course for nVidia hardware.
In re: per-monitor and also fractional scaling, check out what I played around with today: <https://news.ycombinator.com/item?id=40437217>
EDIT: Oh, and yeah, your multi-monitor setup sounds not even a little bit complex. Four or more monitors on Xorg? Easy as pie, when you've not made the mistake of using nVidia hardware.
I don't think that's really true. Most devs, maybe, but even then I'm doubtful.
There's also better security between applications, in case one is hostile. However this can lead to reduced functionality.
All in all not that big a deal for most people. I'm partly interested in keeping important components of the OS well supported.
- Support for multiple monitors with different scale factors, eg. a high-DPI internal laptop screen and a low-DPI external screen. Dragging windows between each display is seamless with Wayland, which is better than you can even say for Windows.
- Touchpad scrolling in web browsers is now smooth tear-free 60fps+. For some reason, both Firefox and Chromium-based browsers had frame pacing issues with Xorg, especially on low-powered hardware or with full desktop composition. These issues were so well known that testufo.com refuses to give results on Linux browsers. But both browsers work about as well with Wayland as they do in macOS and Windows.
It's crazy to imagine that "just" these two points are what's making people move to a completely different architecture. I wonder how things would be if xorg implemented multi monitor scale factors and fixed their tearing and performance.
Also, the people who originally developed X were brilliant and X was brilliant.
https://en.wikipedia.org/wiki/Survivorship_bias
In general:
- Brilliant people in the eighties will still write better code than typical people in the 2020s.
- Ditto for brilliant code. A lot of this is actually pretty random. Sometimes an idiot will architect something great by accident, and vice-versa.
- Most things written in the eighties still used are really, really good in some way (or they would have been replaced many times over).
So most attempts to replace classic technologies end up with dramatically inferior replacements. Classic Unix was really, really good. It survived not because OSes in the sixties and seventies were any good (most weren't), but because if you build many of them, one will turn out great.
I'm not sure there's much more than that.
I don't think it helped that the core protocols were so minimal though or that the reference implementation was really just that. Both GNOME and KDE went their own way on building their own compositors and I think that was sad :(
What did the users do wrong? All the pushback I'm aware of from that corner has been either "Wayland doesn't support $FEATURE and I need that" or "Wayland is buggy for me", neither of which is a fault on their part.
But the gist was basically that Walaynd devs built a good core and then decided they wouldn't do any of the integration work between graphics and window managers, etc. The article implied devs had bad experience with the monolithic X and wanted to break most features out to other folks.
Sounds reasonable but resulted in every window manager/desktop having to implement their own integration, with different designs. Which resulted in an inconsistent mess.
Things like screen sharing over Zoom, (which is taken for granted on the Big2 OSs) was impossible for a decade+ until someone else built bridges over gaping ravines of missing/prohibited functionality.
Found this thread that sort of supports the idea: https://news.ycombinator.com/item?id=37349270
I want to setup a passwordless workflow with a Linux desktop environment, but I’m honestly lost between “Wayland” vs “wlroots” vs “X”. I only understand that Wayland is the preferred “display server” and “X” only exists for legacy.
And this is only the display server. I have not even delved into the other components.
Right now, I have setup a basic desktop environment.
Boot up VM or PC -> presented with a terminal to ”login” -> input user -> input password -> load basic terminal (i guess this is called a “tty” (?) -> type command to load desktop environment -> do stuff
What I am looking for is:
Register yubikey with user and password as fallback. Reboot PC and leave yubikey connected.
As PC boots up, it will automatically see yubikey corresponds to user on machine, and proceeds to load in desktop environment. No more manual process as described above. Can “do stuff” much faster.
Can even use the yubikey for subsequent operations in user space (ie, sudo authentication).
Would be cool to have a security feature that will lock the session if it has been removed; or have ability to fallback to manual password entry (in case hw auth is broken).
I have been able to do this in macOS to a certain degree of success with TouchID. But every time I update the machine, Apple update process resets the pam modules.
So this likely works under Wayland and X equally, provided the right yubikey: https://adl1995.github.io/passwordless-logins-with-yubikey.h...
I don't know of any (phoronix.com, maybe? it slants more towards hardware enthusiasts than desktops so probably not, but it tends to be interested in things like drivers), and I'd be surprised if they existed for the interesting parts of the graphics stack. In the old times (2010) X was the only option and it handled display. There has been a huge push since AMD got serious about open source graphics to redesign the graphics subsystem to be more linux-y by transforming it into something a bit more like a Jenga tower of components stapled together (wayland is one of them) that coordinate to replace X.
The coordinating body seems to be freedesktop.org but it takes a lot of investigating to figure out what it is they are doing at any given time. It happens very slowly though so knowledge picked up can stay current for a decade or more.
The new component based world has a couple of key nodes where the work happens - the kernel (DRM subsystem specifically) for drivers, freedesktop.org for technical compatibility coordination, mesa3d.org for the heavy lifting libraries, Red Hat for pipewire that picks up the slack that Wayland fumbled, then the morass of compositers (https://en.wikipedia.org/wiki/List_of_display_servers#Waylan...) that are the user-facing part and where most people will interact with all this. They all have their own communities but IMO it is unclear which will take the lead outside the majors like KDE and Gnome. swaywm so far but I don't think it has a community anywhere as such.
Searching "YubiKey" brings me here: https://wiki.archlinux.org/title/YubiKey#Linux_user_authenti.... It seems to describe your exact use case.
Of course it has a lot of info about Wayland vs. X too, etc.
A minor clarification: Wayland is a protocol, not an implementation. X11 is also theoretically a protocol, but the only implementation anyone seems to care about is the Xorg server. Because a lot of compositors (the wayland-world piece of software that actually implements the display server) need similar core functionality, wlroots was created as a library that provides a lot of the needed code and which gets used by the actual compositor (ex. mutter for GNOME, kwin for KDE, and sway for sway).
(ZeroTier gets a pass though because it's an uncommon protocol and I can't remember the last time I've actually seen the app open - as it should be.)
Granted, this is a right pain in the ass, because you have to restart the fucking GlobalProtect™ service to flush out the bug... but otherwise, it has been fine for years and years.
I’m actually super surprised because the thing looks like cheap jankware.
It worked flawlessly with the GlobalProtect VPN we had to use at my last job. A few folks ended up switching to using openconnect on Mac too. The official client seems to be quite bad on both platforms.
They did not work on my system. If you have a working workstation with NVidia hardware on Ubuntu LTS, keep waiting. Chrome no longer works for me on this mess.
Not sure if this fundamentally does not work yet or if I’m missing something.
That did the trick for me. Without that I only got a black screen with the cursor.
I can get into the plasma session, but it's basically unusable
Can anyone explain how Wayland and X(?) relate to Linux?
Like what’s the windows equivalent?
I’ve used Ubuntu desktop a few times, I keep liveUSB versions of mint, Suse, and Ubuntu on my ventoy, but I just don’t understand what the deal is with the constant discussion of Wayland and X…
A Linux system is assembled from several parts that aren't all that related to each other beyond the API interfaces exposed/used
The Linux kernel brings a lot of core OS functionality, including display hardware handling, and a framework to expand that with hardware-specific drivers
The kernel does not bring a GUI framework. That has to come separately. X and Wayland are both approaches to filling that gap on Linux systems
X is basically how GUIs have worked on most Linux/Unix systems for the last few decades. There's some weird cruft from the assumptions used when the X framework was designed
Wayland is trying to get rid of the cruft and align better to how computers are used today. But it has to fight against X's inertia, and it's been a long road to Wayland being "daily driver" usable
Fifteen years and counting! If my math is right, it's older now than XFree86 was when Xorg was forked from it, and ~six months younger than XFree86 was when xorg got XRandR and input hotplugging support.
In practice Linux is even more granular, with multiple options at many more layers of the stack.
The closest is probably Desktop Window Manager.
On a similar vein, CMD and PowerShell are equivalent to the Terminal as the command line interface shell.
>I just don’t understand what the deal is with the constant discussion of Wayland and X…
Imagine two groups of people squabbling whether it's better to use Stacking Window Manager (used from Windows 2 through XP) or Desktop Window Manager (used from Windows Vista onwards).
https://en.wikipedia.org/wiki/Stacking_window_manager#Micros...