I can’t tell if this post is a parody or not. The fact that it’s 2020 and minor annoyances like this are still fairly common in desktop Linux is telling.
macOS SSHing into a Linux VM (either locally hosted or on the cloud) is the sweet spot for me.
I've just had another popup from OSX wanting a password for google, sophos pops up saying it's upset a fair bit, on occasion the entire machine just hangs, and wireguard doesn't set my search domain. There are other niggles but those are the ones that have affected me in the last 30 minutes.
On the other hand the biggest hassle from my desktop is ssh connections time out if I suspend the machine overnight.
(I've used ubuntu LTS on the desktop since 2006, before then it was debian testing since 1999)
That's funny. I was on Linux Mint (windows PC with dual boot) for a few years, then I bought a Dell XPS13 with Ubuntu installed from the factory. I really wanted to like the XPS13, but both the hardware and the OS were just so poor compared to my Mac (that I used at work) that after a few broken things (power source plug broke, the fan was very noisy when I was coding on an IDE, the trackpad was not nearly as advanced as the Macs', shortcuts broke when I upgraded to Ubuntu 19, then to 20, language switching suddenly started taking 2 seconds for no reason, etc etc etc I hope you get the point) that I decided to finally hit the bank and get a little MacBook Air... what a life changing experience: even though the specs of the MacBook Air are a lot lower than the XPS13, it's just a incredibly superior UX. No fan noise even when using the most out of my IDE... trackpad is awesome... even the keyboard is excellent (after the fiasco of the previous Macs, they did get it right), quite superior to the XPS13. The OS itself is just much prettier in all aspects. I feel a small amount of delay sometimes when putting some pressure on the processor, but that's still not something I would call remotely annoying (as opposed to the incredibly annoying Linux UX).
As much as I don't like using Apple stuff due to price and their closed-garden policies, I just can't pass on the superior UX.
Even though my Windows and Linux machines are still available in my closet, I just never had the desire to touch them again since I got the Mac. Unfortunately!
My current desktop PC has been on Debian (mostly Stable, sometimes Testing) for about fifteen years now, and apart from some minor bug here and there, everything works. Including gaming (Steam, as well as some standalone games), work, software development, multimedia.
From where I'm standing, I find Linux desktop much less bothersome than Windows or Mac these days. Every other week, there is an outcry about some new Bad Thing that Apple or Microsoft has done to their OS and half the tech community is up in arms about how all of their workflows are broken.
Or random Twitch streamers often having to fight against Windows more often than I thought reasonable, in order to get their streaming setup back under control.
Or work colleagues annoyed every other month about some VPN app not playing nice with Windows TCP/IP stack and locking them out of company network until they reboot.
Meanwhile, I'm in my little Linux corner, quietly doing my thing and not really having to fix anything other than mistakes I make, and bugs I cause.
IME, Manjaro/Arch unironically provide a better, less buggy experience. Maybe the bugfixes come in faster than the bugs and the devs pay most of their attention to current versions.
And more anecdata: I wouldn't say scripts to fix your resolution are "common" pains on Linux. (Though crashes on Cinnamon are ;p -- stick to KDE or GNOME if you want polish.) The closest I've come to that lately was having to reset the sound daemon due to a Manjaro bug, but that's the only thing in two years I've had to do. Meanwhile, on Windows, the internet dies when I turn my VPN off (the same VPN I use on Linux, at that). And, for that, the scriptable solution's more elusive. "Reinstall and pray" is the only way to go.
X11 and its separation of graphic server and window manager encouraged code reuse by placing it in the server, but with Wayland that separation (and the extra context switches) are gone so there is less incentive to share code.
But we don't, and the libraries push other issues into your design as you often are forced to follow their specific idiosyncracies.
input is broken and inconsistent – what?
screenshots don't work – they do. I use them all the time.
remoting is broken – I know it's supported but I've never wanted to do it.
every WM has to be rewritten or abandoned – of course, that's by design. Wayland doesn't even have WMs.
c&p handling are not yet there – do you mean copy and paste? That works fine; it also has a clipboard manager protocol.
they don't work on wayland, they work on specific compositors that implement an extension.
Also, compositors are not mandatory anyways on X (I don't use one personnally and prefer it like that) so it's a weird remark to make.
For example, top level windows and popups themselves are an extension in Wayland (xdg_shell protocol rather than the defunct wl_shell), and so is the rather basic feature of compositing on the GPU (dma_buf) rather than going through some shared CPU memory.
but that is the main critique. Most of the things not being part of core means that there is a lot more fragmentation of the linux desktop than there was with X, which is unilaterally a bad thing.
Currently compositor developers prefer separate implementations and it's really their choice.
Saying "people could just do / not do X" absolutely never ever ever works, not in politics, not in programming, not in "not being an asshole to each other", not in "not using firearms", etc - things have to be enforced & unescapable at some point if we want sanity.
* X11 is a protocol
* Wayland is a protocol
* X11 and Wayland are not compatible protocols
* Wayland protocols are all public
* XOrg is an implementation of the compositor of the X11 protocol
* wl_roots is a toolkit used for creating compositors
From this, it follows that:
* Anyone can theoretically write another X11 compositor which implements a subset of the functionality
* Anyone can write a Wayland compositor which implements a subset of the functionality
I really don’t understand where this supposed extra fragmentation is coming from — unless your objection is that we have more than one Wayland compositor? I don’t see that as a particularly bad; in the same way I don’t see having GNOME, i3 and XFCE existing is necessarily problematic.
It will also get worse, because the architecture of wayland forces an implementer of a compositor (which replaces an X11 window manager) to implement a lot of the display functionality all over again. Wayland itself is just a lib that helps a little with it. In X11 terms, just imagine every window manager developer doing development against their own fork of X.org or a reimplementation of it. Wayland is designed in such a way that it causes incompatibility and fragmentation.
Well no — this is where I disagree. The extensions are standard and hosted within the repository [1]. A repository may support their own proprietary protocol, after all it’s an XML file, but practically speaking without distributing it through the repository means that you won’t get any clients to actually use it. It is wrong to suggest that there is a huge proliferation of interfaces.
It is true that the core Wayland protocols support less functionality than X11. It’s also true that developers implementing windowing managers need to do more work — however, again I point you towards wl_roots, libinput etc. as examples to show that you don’t need to implement anything from scratch unless you want to.
I don’t believe this particular design doesn’t have trade-offs, but to pretend that it has no benefits is also incorrect. The fact that there are less core protocols means that you can implement a simpler compositor if you should so wish. There are comments in this thread pointing to the usage of Wayland in different devices as an application of this.
Screenshots require a privileged application to have access to the whole screen. The X protocol doesn’t provide that, though some implementation might.