Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

X11 and Wayland is like when the previous API is deprecated, but the new API is in beta


X is like trying to fly modern rockets with Apollo-era computers. The computers will work, until they don’t. In which case the only people able to fix them are retired and you have to salvage parts from aerospace museums. Over the years the cruft of replacement parts has accumulated and no one person can really understand the whole thing anymore, and entire sections are not understood and nobody remembers why they’re there or really what they do (but if you get too close to it the lights go off in certain important corner cases).

Wayland is the shiny new SpaceX module that brings a lot of improvements but needs to have its toilet fixed.


> X is like trying to fly modern rockets with Apollo-era computers. The computers will work, until they don’t. In which case the only people able to fix them are retired and you have to salvage parts from aerospace museums. Over the years the cruft of replacement parts has accumulated and no one person can really understand the whole thing anymore, and entire sections are not understood and nobody remembers why they’re there or really what they do (but if you get too close to it the lights go off in certain important corner cases).

And often the response to that it to rewrite it in something "modern," like Electron.

I feel the appropriate response to a situation like you describe is put in the work to figure the existing thing out rather throw it away and put the work to building and debugging a replacement. It's less sexy, but it's the right thing to do.

Now it would be an entirely different matter if the old system could not longer provide adequate performance, etc. I'm only addressing the "it's old and only understood by olds, therefore replace" thought process.


The problem is that X was created over decades for very different eras of computers and it doesn’t really make sense to keep modifying it — there are design limitations to it, and the accumulated complexity has made it unmaintainable. X maintainers have abandoned it and told people to migrate to Wayland. Sometimes you just need a clean slate.


Nah, you figure it out, then throw it out and rebuild a better alternative.

X11 has had too much piled on it already; it needs to go.


Most people who criticise X like you have no idea what they're talking about. The parallels you're drawing are childish and indicate an extremely shallow understanding of the issues at hand.


Well you don’t have to listen to me, the X maintainers have said Wayland is the way forward and they’ve stopped developing X as of several years ago. It’s silly this is still an issue.


They themselves also said there's no technical reason why they couldn't easily keep using X. They just didn't want to. <https://wayland.freedesktop.org/faq.html#heading_toc_j_5>

So it is putting their own selfish desire for fun and personal glory above the good of the linux community and ecosystem. This deserves zero respect.


That’s just bullshit. X is architecturally bad, which makes sense considering that it came from a time when there were no goddamn GPUs at all!

Wayland is closer to the hardware what we actually use, so an implementation can actually be more lightweight, and it cuts out all the legacy shit from X and starts from a sane abstraction.

As an actual X maintainer put it: “ You can only apply so much thrust to the pig before you question why you're trying to make it fly at all”


I find it hard to disagree - and I'm (finally) on a full Wayland setup (that's honestly pretty stable/good -- Sway for anyone curious)

The amount of 'lift' involved was absurd. Half of the applications I launch need tickled/informed that Wayland is in use.

If I don't do this, most of these things default to XWayland and copying/pasting between that and native things is absolutely broken (often one direction)


I'm in a similar boat as you. I switched from X11 to Wayland (also Sway) and from PulseAudio+Jack2 to Pipewire a couple weeks ago. I am in the extra difficult boat of doing it on a high DPI display (I assume you aren't, or you would have mentioned it, given how annoying it is to get everything working). GDK_DPI_SCALE, ELM_SCALE, QT_SCALE_FACTOR, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, XDG_CURRENT_DESKTOP, XDG_SESSION_TYPE and a few other things are necessary to get everything working.

Then you have little things like having to do xdg-desktop-portal to do screencasting, little nits like not being able to screen-share a window at a time (only a full desktop). It's definitely not a super easy and comfortable transition at the moment. I'd recommend most anybody who wants to do it use a DE that takes care of as much of the pain as possible, like modern Gnome or something. Sway itself is nice. I've never used i3, but I've used Awesome for like a decade, so Sway is not a big jump.

Moving to Pipewire was really easy, on the other hand. Mostly drop-in, and I had some annoying audio issues both with PulseAudio and Jack2 that Pipewire completely fixes for me. I absolutely love it, and feel like Linux audio is in an acceptable place for the first time in my life.

edit: oh, and before Firefox 93, I had to force Firefox to run in X11, because extension popup windows were broken on Sway due to a Firefox bug. Much of the testing for Wayland applications is done only on Gnome.


Ouch, I hadn't even considered highDPI!

You're right, haven't crossed that bridge myself. I have three displays but all rather normal pixel density.

Agreed - if someone wants Wayland, I'd have to suggest Gnome (or even KDE, I hear they're doing well).

As usual with window managers, you've got to build your own fun - and moving to Wayland (through Sway) has not been that.

I started with i3 - so I basically had a working config to copy/extend... but the amount of extension necessary - oh buddy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: