<<<< Index Source RSS

This post is marked as outdated!

I have marked this post as outdated! There may be a better review out already, or this review / opinion piece no longer reflects my views as of present day. You may still read it, although if there is a newer version I recommend reading that instead!


DISCLAIMER: Those are my personal observations from using Wayland in ways I usually use my computer under X11. I am not here to keep bagging on Wayland or / and its developers. This is just my pure experience with it, and me trying to help things improve. I am not here to blame anyone, this is just what I experienced and my raw thoughts about Wayland experience.

Are ya landing son? - State of Wayland as of Q1 2021

Wayland Logo

Wayland logo by Kristian Høgsberg at freedesktop.org.

I consider myself a realistic person. That being said, I try to look on things from the perspective as-is without shifting things around in anyone's favour. I, like everyone else, acquire my conclusions and opinions based on facts that I experience myself. For example, if something works - I'll say that it works in my case. If something doesn't work - I'll point it out directly. That's how I, and many other people operate. Sadly, this world is not ideal. Not everything that works for one person may not work for the other and vice versa. Maybe John has a functioning motherboard that doesn't crap itself every hour, unlike unlucky James right next to him. That's just how things are in life.

Sadly, because of that everlasting lifelong condition of things being different, some people find themselves frustrated at the notion that something doesn't work for them - but works perfectly fine for others or, in some cases - other way around. And that's okay. Things being perfect is rarely the case in the modern world. You can't please everyone...

Where was I... Oh, right: Wayland.

Waywhat?

If you seriously opened this post without even knowing what Wayland is - then this post is not for you I'm afraid. If you don't know what things like Wayland, X11, Display Protocol, Display Server and other terms mean - I'm sorry, this is for people who are aware of the situation between Wayland and X11. Feel free to research on your own, though. I don't want to explain too much as I want to keep this concise.

A way big road to desktops

Wayland initially released on 30th of September 2008. That would make it, at the time of publishing this piece - roughly 12 years old. That's quite a long time ago, and is plenty of time to let things in Wayland mature enough to the general usability point.

I initially wasn't very excited for it. Mainly because X11 did the job fine on what I have used it for, and I saw no reason to change... yet. However, after experiencing many shortcomings of X11 (Singlethreaded, Outdated, Insecure design, A bunch of hacks you needed to do to have it work well etc.) I decided that this is time for a change. For a change to something that will work on my computer and won't hang if GPU usage goes a bit too high. And there I thought - it is time for Wayland.

While, that is cool and all, I would come to a very abrupt halt when working with Wayland as I would not experience Wayland until early 2021. No big deal right? Well, to be fair, other people have experienced Wayland way before I did and considering I wanted to test it for longer than I can remember, it's a bit of a bummer that I only got my hands on it now. On the other, positive note - I am lucky, in terms of that I can experience ever so slightly more refined experience with Wayland than I would had if I did it way beforehand. Oh well, better late than never.

Initial Experience

My first experience with Wayland could be described as bittersweet. I got really excited to see KDE Plasma load after selecting "Plasma (Wayland)" in login manager as an option, since that was the first time I ever got to try something new and upcoming! It loaded into the DE and... The... The desktop on primary monitor is... gone?

No, seriously, my primary monitor was just a blank screen with nothing on it, meanwhile my second monitor was acting like a primary monitor. Weird. However, then it hit me - Primary monitor was actually still working, I could still interact with the DE on it. Then, I eventually conluded that the way Wayland monitor configurations are stored are a little bit different - therefore something went up behind the scenes resulting in my primary monitor being blank. That's... Not ideal, but not the end of the world either - This is fine, I can fix it... Or can I?

I went over to display options in system settings in hopes to fix the primary monitor being blank and secondary monitor acting as primary. I opened display settings, and... There is... No option for a primary monitor? Well, as it would turn out - Wayland has no concept of "Primary Monitor". None, null, zero, nana. Wayland has no idea or interest which monitor is which. That has to be handled by the people who implement Wayland into their DE. As of Plasma 5.21.3, there is no option to set primary monitor under Wayland. This may not be Wayland issue per se, but dang is it a bummer.

I eventually did a hacky workaround to this display issue. Or rather, I found a hacky workaround for the hacky workaround to the display issue. I read that disabling secondary monitor in settings and then enabling it back would make your primary monitor stay primary and your secondary becomes your secondary - as it should be. That however, doesn't persist through reboots but I let that slip - it's a workaround and it works at least somehow. You might think that that's it, right? Well, sadly, no. Guess what disabling my secondary monitor in system settings did? Nope, it didn't stay on. Nope, it didn't disable my primary monitor either. Neither did it shut down my system. It actually, to my absolute shock, managed to crash Wayland. Thankfully, Wayland managed to recover from it (to sweeten things up - this is unlike X11, which, if dies - tough luck, have fun restarting your system) buuuut... The recovery was meh at best. Apps would not launch from tray or launch menu - only thing that worked is terminal shortcut and launching things from terminal. Not to mention that my CPU usage was now at a constantly 50%! Some apps were eating up as much as 15% (ish) each, requiring me to totally restart - because relog just made things worse.

Next thing I noticed is that when some windows pop up they pop up in seemingly random spots. However, as I saw them appear, they appear in a looping grid form when they appear. This is pretty weird to say the least, but not a complete dealbreaker - who cares anyway? They are opening and that's good enough in my books.

I also noticed some really glitchy artifacting with window headers throughout the entire time I was in a Wayland session. Those glitches don't interfere with apps' functionality - they work just fine. However, this is really annoying after a while. But wait - that is not all! Some windows would completely blank out periodically, requiring a full on restart of them. Now THAT was just getting on my nerves. This was especially prominent with Discord, which was constantly going blank and it made me restart it as much as 8 times in the span of 6 mintues.

Eesh, alright, as I put all that aside I decided to give wine a go. And yes, I am aware - Wine isn't a Wayland app. How does it work then? Well, you see, when you are going to make something people can migrate over to from the other platform - you'd want to make some sort of backwards compatibility layer. Otherwise, migrating to your new product will be as painful as possible to everyone. Introducing - XWayland! By nesting an X server under Wayland, you can launch applications made for X11 under Wayland. And so, I decided to give XWayland a go to see how well it does. And... Well... I'm afraid that from my experience it didn't really go well. Launching a semi-intense project under the Wine app produced as a little as 5 FPS. Ouch. That will probably get fixed with a future GPU driver, though, so not all hope is lost!

But hey, I was running Wayland for crying out loud! Isn't it something to be proud of? I decided to take a screenshot and post it onto Discord to show that I managed to run Wayland after all this time and I got stopped in the tracks probably by the least expected thing I could think of. I could not take a screenshot? That's right, I could not make a screenshot under Wayland. My screenshot tool, flameshot, used a function "QWindow::requestActivate()" which is not supported under Wayland. Thus, I could not take a screenshot. I thought I could install other screenshotting tool and call it a day but nope - same story here. Can't create a screenshot anywhere. On the bright side, Wayland is so secure it won't let anyone capture your screen! Even screenshot tools!... Eh.

But here is something funny - a person who I was talking to was running Linux under Wayland as well. And they could take screenshots. However, they could not paste them onto Discord. I, on the other hand, could not take any screenshots but I could copy and paste images onto Discord just fine. Thought this was quite funny.

Some long-term shortcomings

Since Wayland is intended to be a secure display server protocol, it has to have security features in order for it to be considered secure. However, the implementation of those security features... In my opinion, is questionable at best. Mainly because some of them comprise of cutting down functionality in favour of 'security'.

Fellas, Wayland developers... Cutting features for 'security' may be a fine idea under the condition that the software you are making is intended for your use-cases only and you can live without a certain feature or two in favour of your software being more secure. That is, however, only under condition that it's a piece of software that you are making for your personal reasons. This... Doesn't really work on a larger scale. Many people have different use-cases and different people look for different things. As such, some of those people, myself included, can seriously get stumped when something they want to do isn't feasible or possible on software you provide. In the end, this sucks for everyone. It sucks for you, developers - because in that way, Wayland gets bad press from people who want to use it in a certain way that is not possible due to Wayland's restrictions. And it sucks for people who like to use Wayland, but can't fully - because of those restrictions. Sure, you can argue that Wayland is different in it's nature and you have to live with it - But different doesn't always mean better. See where I'm getting at?

What I think would be a pretty good and sane middleground approach to this pickle would probably be having Wayland ship by default as-is with every parameter at its defaults. That means Wayland comes to end users computer as it's intended to be used - with default configuration. However, users who would want to get a certain obstacle out of their way while using Wayland - they could simply modify a config file to disable a certain mechanism if they would like to, and as they see fit. Sure, that might put user at risk - but is it really your fault? Is it your fault that they went out of their way to disable something you've put in place for typical end users' good?

Overall, I don't think ditching usable features in favour of anything is a good idea. Not without any other options presented anyway.

"Wow! This guy really hates Wayland! We're so tired of this anti-Wa-"

Woa woa woa! Put down your pitchforks! Relax! I don't hate Wayland! Quite the opposite, really - I want Wayland to replace X11 as a display server protocol - I'm sick of X11 myself! In fact...

Wayland Way... Landing?

Apart from what I listed, with the issues fixed Wayland will be a production-ready and total replacement for X11 once and for all! Wayland actually provided (obviously apart from the issues) a pretty superb experience out of the box. Here are benefits that I could note right off the bat with Wayland:

And many, many other under-the-hood benefits. It may not seem much, but in my opinion, the benefits massively outweigh my more bitter experience with Wayland.

Conclusion

Although this post might come off as really pessimistic and melancholic towards Wayland - but that's at core is incorrect, Wayland has a very good road ahead of it. Everything I listed so far are just final bumps in front of its finishing line. Wayland provides a really good experience, albeit with having some roughness arounds its edges and some things that need to be addressed. With little bit of bugfixing - I believe Wayland will become a drop-in replacement for Linux desktops as early as this year.

Don't let my experience alone by the factor of the state of Wayland - many other people have tried it and they are very happy with what it offers and how well it does. What I had is basically almost flawless initial experience as contrary as it might sound. Let's actually break it down and answer these questions:

From a sample of just a few questions - you can see that, overall, my experience wasn't that horrible, just slightly rough.

To sum it all up - I like Wayland. I want Wayland to succeed in becoming an X11 replacement. Which to my, and many others joy - is insanely close to being true. The future is bright for Wayland, I believe it so. And on that hopeful and pretty positive note - I am signing off.

All this was typed with pleasure in Wayland on my main machine :-)