Skip to content

Instantly share code, notes, and snippets.

@probonopd
Last active July 22, 2024 07:26
Show Gist options
  • Save probonopd/9feb7c20257af5dd915e3a9f2d1f2277 to your computer and use it in GitHub Desktop.
Save probonopd/9feb7c20257af5dd915e3a9f2d1f2277 to your computer and use it in GitHub Desktop.
Think twice about Wayland. It breaks everything!

Think twice before abandoning Xorg. Wayland breaks everything!

Hence, if you are interested in existing applications to "just work" without the need for adjustments, then you may be better off avoiding Wayland.

Wayland solves no issues I have but breaks almost everything I need. Even the most basic, most simple things (like xkill) - in this case with no obvious replacement. And usually it stays broken, because the Wayland folks mostly seem to care about Automotive, Gnome, maybe KDE - and alienating everyone else (e.g., people using just an X11 window manager or something like GNUstep) in the process.

The Wayland project seems to operate like they were starting a greenfield project, whereas at the same time they try to position Wayland as "the X11 successor", which would clearly require a lot of thought about not breaking, or at least providing a smooth upgrade path for, existing software.

In fact, it is merely an incompatible alternative, and not even one that has (nor wants to have) feature parity (missing features). And unlike X11 (the X Window System), Wayland protocol designers actively avoid the concept of "windows" (making up incomprehensible words like "xdg_toplevel" instead).

DO NOT USE A WAYLAND SESSION! Let Wayland not destroy everything and then have other people fix the damage it caused. Or force more Red Hat/Gnome components (glib, Portals, Pipewire) on everyone!

Please add more examples to the list.

Wayland seems to be made by people who do not care for existing software. They assume everyone is happy to either rewrite everything or to just use Gnome on Linux (rather than, say, twm with ROX Filer on NetBSD).

Edit: When I wrote the above, I didn't really realize what Wayland even was, I just noticed that some distributions (like Fedora) started pushing it onto me and things didn't work properly there. Today I realize that you can't "install Wayland", because unlike Xorg, there is not one "Wayland display server" but actually every desktop envrironment has its own. And maybe "the Wayland folks" don't "only care about Gnome", but then, any fix that is done in Gnome's Wayland implementation isn't automatically going to benefit all users of Wayland-based software, and possibly isn't even the implementation "the Wayland folks" would necessarily recommend.

Edit 12/2023: If something wants to replace X11 for desktop computers (such as professional Unix workstations), then it better support all needed features (and key concepts, like windows) for that use case. That people also have displays on their fridge doesn't matter the least bit in that context of discussion. Let's propose the missing Wayland protocols for full X11 feature parity.

Wayland is broken by design

  • A crash in the window manager takes down all running applications
  • You cannot run applications as root
  • You cannot do a lot of things that you can do in Xorg by design
  • There is not one /usr/bin/wayland display server application that is desktop environment agnostic and is used by everyone (unlike with Xorg)
  • It offloads a lot of work to each and every window manager. As a result, the same basic features get implemented differently in different window managers, with different behaviors and bugs - so what works on desktop environment A does not necessarily work in desktop environment B (e.g., often you hear that something "works in Wayland", even though it only really works on Gnome and KDE, not in all Wayland implementations). This summarizes it very well: https://gitlab.freedesktop.org/wayland/wayland/-/issues/233

Apparently the Wayland project doesn't even want to be "X.org 2.0", and doesn't want to provide a commonly used implementation of a compositor that could be used by everyone: https://gitlab.freedesktop.org/wayland/wayland/-/issues/233. Yet this would imho be required if they want to make it into a worthwile "successor" that would have any chance of ever fixing the many Wayland issues at the core.

Wayland breaks screen recording applications

  • MaartenBaert/ssr#431 ❌ broken since 24 Jan 2016, no resolution ("I guess they use a non-standard GNOME interface for this")
  • https://github.com/mhsabbagh/green-recorder ❌ ("I am no longer interested in working with things like ffmpeg/wayland/GNOME's screencaster or solving the issues related to them or why they don't work")
  • vkohaupt/vokoscreenNG#51 ❌ broken since at least 7 Mar 2020. ("I have now decided that there will be no Wayland support for the time being. Reason, there is no budget for it. Let's see how it looks in a year or two.") - This is the key problem. Wayland breaks everything and then expects others to fix the wreckage it caused on their own expense.
  • obsproject/obs-studio#2471 ❌ broken since at least 7 Mar 2020. ("Wayland is unsupported at this time", "There isn't really something that can just be easily changed. Wayland provides no capture APIs")
  • There is a workaround for OBS Studio that requires a obs-xdg-portal plugin (which is known to be Red Hat/Flatpak-centric, GNOME-centric, "perhaps" works with other desktops)
  • phw/peek#1191 ❌ broken since 14 Jan 2023. Peek, a screen recording tool, has been abandoned by its developerdue to a number of technical challenges, mostly with Gtk and Wayland ("Many of these have to do with how Wayland changed the way applications are being handled")

As of February 2024, screen recording is still broken utterly on Wayland with the vast majority of tools. Proof

Workaround: Find a Wayland compositor that supports the wlr-screencopy-unstable-v1 protocol and use wf-recorder -a. The default compositor in Raspberry Pi OS (Wayfire) does, but the default compositor in Ubuntu doesn't. (That's the worst part of Wayland: Unlike with Xorg, it always depends on the particular Wayand compositor what works and what is broken. Is there even one that supports everything?)

Wayland breaks screen sharing applications

  • jitsi/jitsi-meet#2350 ❌ broken since 3 Jan 2018
  • jitsi/jitsi-meet#6389 ❌ broken since 24 Jan 2016 ("Closing since there is nothing we can do from the Jitsi Meet side.") See? Wayland breaks stuff and leaves application developers helpless and unable to fix the breakage, even if they wanted.

NOTE: As of November 2023, screen sharing in Chromium using Jitsi Meet is still utterly broken, both in Raspberry Pi OS Desktop, and in a KDE Plasma installation, albeit with different behavior. Note that Pipewire, Portals and whatnot are installed, and even with them it does not work.

Wayland breaks automation software

sudo pkg install py37-autokey

This is an X11 application, and as such will not function 100% on 
distributions that default to using Wayland instead of Xorg.

Wayland breaks Gnome-Global-AppMenu (global menus for Gnome)

Wayland broke global menus with KDE platformplugin

Good news: According to this report global menus now work with KDE platformplugin as of 4/2022

Wayland breaks global menus with non-KDE Qt platformplugins

Wayland breaks AppImages that don't ship a special Wayland Qt plugin

  • https://blog.martin-graesslin.com/blog/2018/03/unsetting-qt_qpa_platform-environment-variable-by-default/ ❌ broke AppImages that don't ship a special Wayland Qt plugin. "This affects proprietary applications, FLOSS applications bundled as appimages, FLOSS applications bundled as flatpaks and not distributed by KDE and even the Qt installer itself. In my opinion this is a showstopper for running a Wayland session." However, there is a workaround: "AppImages which ship just the XCB plugin will automatically fallback to running in xwayland mode" (see below).

Wayland breaks Redshift

Update 2023: Some Wayland compositors (such as Wayfire) now support wlr_gamma_control_unstable_v1, see https://github.com/WayfireWM/wayfire/wiki/Tutorial#configuring-wayfire and jonls/redshift#663. Does it work in all Wayland compositors though?

Wayland breaks global hotkeys

Wayland does not work for Xfce?

See below.

Wayland does not work properly on NVidia hardware?

Apparently Wayland relies on nouveau drivers for NVidia hardware. The nouveau driver has been giving unsatisfactory performance since its inception. Even clicking on the application starter icon in Gnome results in a stuttery animation. Only the proprietary NVidia driver results in full performance.

See below.

Update 2024: The situation might slowly be improving. It remains to be seen whether this will work well also for all existing old Nvidia hardware (that works well in Xorg).

Wayland does not work properly on Intel hardware

Wayland prevents GUI applications from running as root

  • https://bugzilla.redhat.com/show_bug.cgi?id=1274451 ❌ broken since 22 Oct 2015 ("No this will only fix sudo for X11 applications. Running GUI code as root is still a bad idea." I absolutely detest it when software tries to prevent me from doing what some developer thinks is "a bad idea" but did not consider my use case, e.g., running truss for debugging on FreeBSD needs to run the application as root. https://bugzilla.mozilla.org/show_bug.cgi?id=1323302 suggests it is not possible: "These sorts of security considerations are very much the way that "the Linux desktop" is going these days".)

Suggested solution

Wayland is biased toward Linux and breaks BSD

  • https://blog.netbsd.org/tnf/entry/wayland_on_netbsd_trials_and ❌ broken since 28 Sep 2020 ("Wayland is written with the assumption of Linux to the extent that every client application tends to #include <linux/input.h> because Wayland's designers didn't see the need to define a OS-neutral way to get mouse button IDs. (...) In general, Wayland is moving away from the modularity, portability, and standardization of the X server. (...) I've decided to take a break from this, since it's a fairly huge undertaking and uphill battle. Right now, X11 combined with a compositor like picom or xcompmgr is the more mature option."

Wayland complicates server-side window decorations

  • https://blog.martin-graesslin.com/blog/2018/01/server-side-decorations-and-wayland/ ❌ FUD since at least 27 January 2018 ("I heard that GNOME is currently trying to lobby for all applications implementing client-side decorations. One of the arguments seems to be that CSD is a must on Wayland. " ... "I’m burnt from it and are not interested in it any more.") Server-side window decorations are what make the title bar and buttons of all windows on a system consistent. They are a must have_ for a consistent system, so that applications written e.g., Gtk will not look entirely alien on e.g., a Qt based desktop, and to enforce that developers cannot place random controls into window titles where they do not belong. Client-side decorations, on the other hand, are destroying uniformity and consistency, put additional burden on application and toolkit developers, and allow e.g., GNOME developers to put random controls (that do not belong there) into window titles (like buttons), hence making it more difficult to achieve a uniform look and feel for all applications regardless of the toolkit being used.

Red Hat employee Matthias Clasen ("I work at the Red Hat Desktop team... I am actually a manager there... the people who do the actual work work for me") expicitly stated "Client-side everything" as a principle, even though the protocol doesn't enforce it: "Fonts, Rendering, Nested Windows, Decorations. "It also gives the design more freedom to use the titlebar space, which is something our designers appreciate" (sic). Source

Wayland breaks windows rasing/activating themselves

Wayland breaks RescueTime

Wayland breaks window managers

Apparently Wayland (at least as implemented in KWin) does not respect EWMH protocols, and breaks other command line tools like wmctrl, xrandr, xprop, etc. Please see the discussion below for details.

Wayland requires JWM, TWM, XDM, IceWM,... to reimplement Xorg-like functionality

  • Screen recording and casting
  • Querying of the mouse position, keyboard LED state, active window position or name, moving windows (xdotool, wmctrl)
  • Global shortcuts
  • System tray
  • Input Method support/editor (IME)
  • Graphical settings management (i.e. tools like xranrd)
  • Fast user switching/multiple graphical sessions
  • Session configuration including but not limited to 1) input devices 2) monitors configuration including refresh rate / resolution / scaling / rotation and power saving 3) global shortcuts
  • HDR/deep color support
  • VRR (variable refresh rate)
  • Disabling input devices (xinput alternative)

As it currently stands minor WMs and DEs do not even intend to support Wayland given the sheer complexity of writing all the code required to support the above features. You do not expect JWM, TWM, XDM or even IceWM developers to implement all the featured outlined in ^1.

Wayland breaks _NET_WM_STATE_SKIP_TASKBAR protocol

  • https://github.comelectron/electron#33226 ("skipTaskbar has no effect on Wayland. Currently Electron uses _NET_WM_STATE_SKIP_TASKBAR to tell the WM to hide an app from the taskbar, and this works fine on X11 but there's no equivalent mechanism in Wayland." Workarounds are only available for some desktops including GNOME and KDE Plasma.) ❌ broken since March 10, 2022

Wayland breaks NoMachine NX

Wayland breaks xclip

xclip is a command line utility that is designed to run on any system with an X11 implementation. It provides an interface to X selections ("the clipboard"). Apparently Wayland isn't compatible to the X11 clipboard either.

This is another example that the Wayland requires everyone to change components and take on additional work just because Wayland is incompatible to what we had working for all those years.

Wayland breaks SUDO_ASKPASS

Wayland breaks X11 atoms

X11 atoms can be used to store information on windows. For example, a file manager might store the path that the window represents in an X11 atom, so that it (and other applications) can know for which paths there are open file manager windows. Wayland is not compatible to X11 atoms, resulting in all software that relies on them to be broken until specifically ported to Wayland (which, in the case of legacy software, may well be never).

Possible workaround (to be verified): Use the (Qt proprietary?) Extended Surface Wayland protocol casually mentioned in https://blog.broulik.de/2016/10/global-menus-returning/ "which allows you to set (and read?) arbitrary properties on a window". Is it the set_generic_property from https://github.com/qt/qtwayland/blob/dev/src/extensions/surface-extension.xml?

Wayland breaks games

Games are developed for X11. And if you run a game on Wayland, performance is subpar due to things like forced vsync. Only recently, some Wayland implementations (like KDE KWin) let you disable that.

Wayland breaks xdotool

(Details to be added; apparently no 1:1 drop-in replacement available?)

Wayland breaks xkill

xkill (which I use on a regular basis) does not work with Wayland applications.

What is the equivalent for Wayland applications?

Wayland breaks screensavers

Is it true that Wayland also breaks screensavers? https://www.jwz.org/blog/2023/09/wayland-and-screen-savers/

Wayland breaks setting the window position

Other platforms (Windows, Mac, other destop environments) can set the window position on the screen, so all cross-platform toolkits and applications expect to do the same on Wayland, but Wayland can't (doesn't want to) do it.

  • PCSX2/pcsx2#10179 PCX2 (Playstation 2 Emulator) ❌ broken since 2023-10-25 ("Disables Wayland, it's super broken/buggy in basically every scenario. KDE isn't too buggy, GNOME is a complete disaster.")

Wayland breaks color mangement

Apparently color management as of 2023 (well over a decade of Wayland development) is still in the early "thinking" stage, all the while Wayland is already being pushed on people as if it was a "X11 successor".

https://gitlab.freedesktop.org/pq/color-and-hdr/-/blob/main/doc/color-management-model.md

Wayland breaks DRM leasing

According to Valve, "DRM leasing is the process which allows SteamVR to take control of your VR headset's display in order to present low-latency VR content".

Wayland breaks In-home Streaming

Wayland breaks NetWM

Extended Window Manager Hints, a.k.a. NetWM, is an X Window System standard for the communication between window managers and applications

Wayland breaks window icons

Update 6/2024: Looks like this will get unbroken thanks to xdg_toplevel_icon_manager_v1, so that QWindow::setIcon will work again. If, and that's a big if, all compositors will support it. At least KDE is on it.

Wayland breaks drag and drop

Wayland breaks ./windowmanager --replace

  • Many window managers have a --replace argument, but Wayland compositors break this convention.

Workarounds

  • Users: Refuse to use Wayland sessions. Uninstall desktop environments/Linux distributions that only ship Wayland sessions. Avoid Wayland-only applications (such as PreSonus Studio One) (potential workaround: run in https://github.com/cage-kiosk/cage)
  • Application developers: Enforce running applications on X11/XWayland (like LibrePCB does as of 11/2023)

Examples of Wayland being forced on users

This is exactly the kind of behavior this gist seeks to prevent.

History

  • 2008: Wayland was started by krh (while at Red Hat)
  • End of 2012: Wayland 1.0
  • Early 2013: GNOME begins Wayland porting

Source: "Where's Wayland?" by Matthias Clasen - Flock 2014

A decade later... Red Hat wants to force Wayland upon everyone, removing support for Xorg

References

@probonopd
Copy link
Author

probonopd commented Jul 18, 2024

Since there were questions what this gist is supposed to be about, and since some ground rules should be established:

Considered on-topic:

  • Reasons why we still need (and will need for the foreseeable future) X11 and Xorg
  • Deficiencies of the Wayland philosophy, policies, architecture, protocols, and current implementations; constructive ideas on how to fix those
  • Deficiencies of technologies (like D-Bus, .desktop files, Pipewire, Portals) that Wayland factually forces upon us and which we would not have to use if it wasn't for Wayland (while I am writing this I notice that many of those have to do with IBM Red Hat - coincidence?)

Considered off-topic:

  • Application alternatives (just use Y instead of X)
  • Statements about other people

Off-topic comments may get deleted. Even though I don't like to do this, this gist becomes a random dumping ground otherwise.

@mattatobin
Copy link

Cool. I'll try and follow it as best as I can :)

@Consolatis
Copy link

Consolatis commented Jul 18, 2024

  • Deficiencies of technologies (like D-Bus, .desktop files, Pipewire, Portals) that Wayland factually forces upon us and which we would not have to use if it wasn't for Wayland (while I am writing this I notice that many of those have to do with IBM Red Hat - coincidence?)

What do .desktop files have to do with wayland? Did you ever use *any* kind of desktop panel / taskbar in the last 10 years that didn't use .desktop files to create its menu? Also dbus, pipewire and portals have nothing to do with wayland and are definitely not "forced upon us by wayland". If at all one could argue that Gnome tries to promote those (and flatpacks). But again, this has absolutely nothing to do with wayland.

@Sivecano
Copy link

yo, I know that this thread isn't exactly known for being productive but you guys might be interested in this: https://codeberg.org/river/river it's a wayland compositor, that has some custom protocol extension to allow for external window managers. If we're decrying the loss of standardization then it might be worth putting some weight behind something like river or wayfire that bring back your composable architecture.

@bodqhrohro
Copy link

Did you ever use any kind of desktop panel / taskbar in the last 10 years that didn't use .desktop files to create its menu?

I don't even have an idea what do you mean. I find those .desktop files useless garbage. And yet I have a taskbar (even though I was considering it a legacy kludge, just like GNOME Shell developers thought of tray that time and also showed it somewhere into a corner hidden by default lol).

@Consolatis
Copy link

Consolatis commented Jul 20, 2024

Did you ever use any kind of desktop panel / taskbar in the last 10 years that didn't use .desktop files to create its menu?

I don't even have an idea what do you mean. I find those .desktop files useless garbage. And yet I have a taskbar

And that taskbar you use has an application menu? If yes, how are the applications added there?

@bodqhrohro
Copy link

If yes, how are the applications added there?

Eh? The point of a taskbar is switching open windows only. Not launching any applications. Do you confuse it with a superbar, just like zoomers grown up on Chrome confuse DNS with Google Search?

@Consolatis
Copy link

Eh? The point of a taskbar is switching open windows only. Not launching any applications. Do you confuse it with a superbar, just like zoomers grown up on Chrome confuse DNS with Google Search?

Yep sorry. I am new to computers.

@bodqhrohro
Copy link

But see what the most worrying part is? Previously, generations differed in favoured technologies drastically. Grandgrannies listened to AM radio and gramophones, grannies listened to tapes, boomers listened to CDs and WinAmp and youngsters listened to pirated MP3 in Telegram Spotify.

But we're already approaching a time when generations would differ in terms of what Windows version they consider "classic": NT3.11 for Workgroups, 98, XP, 7 or 10. Or, in terms of OP: Lisa, iMac G3 or Macbook Air.

It clearly smells of a severe stagnation. But OP would see nothing wrong. After all, we still have AM radio and landline phones, sometimes even with pulse dialing, so you can plug and use your rotten rotary phone.

@bodqhrohro
Copy link

You know what, this taskbar discussion made me think that the SKIP_TASKBAR hint was actually a kludge to avoid listing auxiliary windows, which Wayland now has a native concept of subsurfaces for, so the kludge is not needed anymore. Am I true? Or did it have other legitimate use cases?

@bodqhrohro
Copy link

Ah, I recalled, AIMP could be minimized to a floating mini player window, which is not needed to be listed on a taskbar.

@shvedes
Copy link

shvedes commented Jul 20, 2024

How do I can unsubscribe from this thread?

@mattatobin
Copy link

I don't think you can.

@bodqhrohro
Copy link

@myownfriend
Copy link

myownfriend commented Jul 21, 2024

Since there were questions what this gist is supposed to be about, and since some ground rules should be established:

Considered on-topic:

So you just want a thread for people to repeat back to you what you already think and you don't want anyone to correct you on the things you're misunderstanding? Nah, I'm not gonna do that.

The reason this gist is unproductive is because of you. You don't want it to be productive. You started it like a year before you knew what Wayland was, and you refuse to spend anytime learning about it and evaluate it fairly compared to X11.

You have demonstrated that much like everyone's parents, you've already reached the point where you won't learn about new things. Everything past a certain point sucks and is straying away from "how things should be". I think you've even said as much, just in different words.

What is the point of discussing anything in the gist of there's no actual reachable goal when you just want Wayland to be X11? I've asked you plenty of times if you have any issues with X11. I've asked you how you would improve X11 and you never seem to answer those questions. It's been around like 37 years. The compute we run now, how we use them, who uses them, and the standards we have for them have all changed dramatically in 40 decades but you can't think of a flaw or something to improve in it.

Progress isn't really a thing with you. It's all about preservation.

@probonopd
Copy link
Author

probonopd commented Jul 21, 2024

You started it like a year before you knew what Wayland was, and you refuse to spend anytime learning about it and evaluate it fairly compared to X11.

This Wayland thing started to appear out of nowhere (I think Fedora was first to force it on my be default), and the first thing I learned about Wayland is that it degraded my desktop experience. Since people seemed to push it as a "successor" to X11, I created this gist to document in which ways it degrades the desktop experience, so that people a) might have a chance to fix the issues and b) stop pushing Wayland until everything was fixed. The more I learned about what this Wayland thing is, the philosophies behind it, the never ending discussions, the more I realized that it wasn't just a matter of fixing some remaining issues, but that the issues go deeper, beginning with the mindset that everyone would appreciate to change existing software or even the way we work.

For example, it is still not possible for an application to set pixel precise locations for its windows on the screen. Something that has been working without a hitch all the time.

I've asked you plenty of times if you have any issues with X11. I've asked you how you would improve X11 and you never seem to answer those questions.

Sure, there's plenty of stuff that could be improved with X11, but it doesn't take away things that have been working fine so far. Like, having applications set pixel precise locations for its windows on the screen. What X11 is missing it never had. So you could argue it is not progressing fast. But then, it doesn't break (take away) things. It has been proven in psychology that taking away things from people is perceived much worse than not giving them something to begin with.

People talking about multiple screens with different pixel densities and HDR and whatnot is fine and all, but those are very rare edge cases for exotic hardware setups. Sure, it would be nice for those who have such hardware, but we could all live without those things for all those years. But take away the possibility for my application to set pixel precise locations for its windows on the screen and I get angry, really angry. And don't get me started about screen capturing and screen sharing, which despite all the claims is still an issue even today and doesn't work in a consistent and robust way across all Wayland "compatible" software. The more I learn about Wayland, the more I understand that those issues are deeply based in the Wayland core architecture (e.g., every desktop environment suddenly requiring its own window server, baked together with the window manager).

What do .desktop files have to do with wayland?

As of now, applications that don't use one show a yellow "W" icon rather than what the application has set as a window icon. (There is a very new protocol that will eventually change that.)

@probonopd
Copy link
Author

https://codeberg.org/river/river it's a wayland compositor, that has some custom protocol extension to allow for external window managers. If we're decrying the loss of standardization then it might be worth putting some weight behind something like river or wayfire that bring back your composable architecture.

Interesting. I'll link to it on wayland-x11-compat-protocols. Thanks!

@lukefromdc
Copy link

lukefromdc commented Jul 21, 2024 via email

@probonopd
Copy link
Author

probonopd commented Jul 21, 2024

in wayland, it is in fact possible to do exactly that in wlroots compositors for GTK applications by using gtk-layer-shell.

Good to know.

And, say, for Qt applications running on kwin? Why should such an essential functionality that should work regardless of the toolkit being used even have "gtk" in its name?

For me, everything that works just with some toolkits or just in some desktop environment is actually counterproductive, because it further splinters the already small "Linux" user base, and creates "but it works for me" responses from Wayland proponents.

KDE is said to be working on this

Ah. See. With Wayland, everyone needs to be working on everything before it works for everyone. Unlike with X11, where it "just worked".

About not being able to read one apps window positioning from another app: That is intended to make it more difficult for a malicious app to capture inputs and redirect them.

Classic "Wayland solves no issues I have but breaks almost everything I need" situation.

Many of the Wayland design seem to come from the idea that you run untrusted applications on your computer, which imho is a flawed assumption to begin with. Not everyone wants a "hostile desktop environment" where nothing can be trusted and everything is assumed to be malicious and hence is sandboxed and encumbered, some prefer a "collaborative desktop environment" where the focus is to make things work no worse than on the Macintosh in 1984.

@myownfriend
Copy link

myownfriend commented Jul 21, 2024

This Wayland thing started to appear out of nowhere

What the fuck are you talking about "out of nowhere"? Wayland was in development since 2008 and the major DEs had implemented a Wayland backend by 2016. Even before Wayland was in development, people knew that X11 needed to be replaced because it was pretty obvious it needed to be.

Just because you're asleep at the wheel doesn't mean that things are happening "out of nowhere".

(I think Fedora was first to force it on my be default), and the first thing I learned about Wayland is that it degraded my desktop experience.

You learned that something changed and you didn't know what. To this day you don't seem to realize what exactly Wayland is.

Since people seemed to push it as a "successor" to X11, I created this gist to document in which ways it degrades the desktop experience, so that people a) might have a chance to fix the issues and b) stop pushing Wayland until everything was fixed.

"Fixed" is a dubious way of putting it consider things that aren't broken are still list as broken according to you because they're only broken in the sense that they aren't X11-like which is what you're used to. Case in point, you have Zoom issue still up that has been closed since August 2022 and was never an issue with Wayland or even Pipewire, it was an issue with Zoom. I imagine it's still there because Zoom uses Pipewire.

The more I learned about what this Wayland thing is, the philosophies behind it, the never ending discussions, the more I realized that it wasn't just a matter of fixing some remaining issues, but that the issues go deeper, beginning with the mindset that everyone would appreciate to change existing software or even the way we work.

Bro, to this day you'll ask question about Wayland that someone who really cared about this shit should have found out three months in at most. Furthermore you pushed the idea that Wayland can't be a successor to a true successor to X11 unless software used it with zero changes: something that sound dumb to anyone who knows what they're talking about.

For example, it is still not possible for an application to set pixel precise locations for its windows on the screen. Something that has been working without a hitch all the time.

And? The only reason you think that's super essential is because your hyper-specific use of it for the Hello Systems interface. That's not a super common use case and is actually a pretty dumb way of implementing the interface.

Sure, there's plenty of stuff that could be improved with X11, but it doesn't take away things that have been working fine so far. Like, having applications set pixel precise locations for its windows on the screen. What X11 is missing it never had. So you could argue it is not progressing fast. But then, it doesn't break (take away) things. It has been proven in psychology that taking away things from people is perceived much worse than not giving them something to begin with.

Damn you STILL can't say what you don't like about X11 or what can be improved about it. Saying "Sure it can be improved" and then talking about something else is cop out. You knew it would sound dumb to claim it's perfect so you said it can be improved but you never really thought about how it can be improved so you just said it can be improved and then changed the topic.

So I'll ask again: What flaws does X11 have? How would you improve it?

People talking about multiple screens with different pixel densities and HDR and whatnot is fine and all, but those are very rare edge cases for exotic hardware setups.

Again showing you're asleep at the wheel. Mixed DPIs and multi-monitor setups aren't "exotic" anymore. People frequently have dual monitor setups with their laptops for work and anyone from streamers to graphic designers to video editors have dual or triple monitors setups. Windows literally has built-ins screen casting so people can wireless use their TVs as second monitors and people use it.

Sure, it would be nice for those who have such hardware, but we could all live without those things for all those years.

It depends on what you use your computer for. Claiming that it's not a problem that it's not a problem that X11 can't properly do multi monitor just because you feel people don't absolutely need it is crazy.

But take away the possibility for my application to set pixel precise locations for its windows on the screen and I get angry, really angry.

Okay, and I got really angry when I switched to Linux and had to lower my 4K screen's resolution down to 2560 x 1440 because after I managed to get something like mixed DPIs working on X11 it slowed down my mouse cursor, made my lower resolution monitor look worse, and some applications launched so that they were scaled down by 33% which made them unreadable on both screens.

Constant tearing and games changing the display resolution of both of my monitors also got me really angry.

And don't get me started about screen capturing and screen sharing, which despite all the claims is still an issue even today and doesn't work in a consistent and robust way across all Wayland "compatible" software.

Again, Wayland doesn't do screen sharing, Portals and Pipewire do. They're not part of the Wayland protocol or the Wayland project. This has been said a million times to you and you can't get it through your thick skull. Portals and Pipewire literally work in X11 as well because they're not part of Wayland. The issue you're dealing with is that you've demonstrated a complete inability to tell the difference between Wayland, Wlroots, Pipewire, and Portals.

Your dumb ass even said an audio problem was Wayland-related because you saw Pipewire mentioned in an issue. You still have it linked in the first post, too! Pipewire is an audio backend but you didn't know that because you're averse to learning.

@myownfriend
Copy link

For me, everything that works just with some toolkits or just in some desktop environment is actually counterproductive, because it further splinters the already small "Linux" user base, and creates "but it works for me" responses from Wayland proponents.

"But it works for me" is literally your reasoning for using X11. It doesn't work for a lot of other people but you don't care.

Ah. See. With Wayland, everyone needs to be working on everything before it works for everyone. Unlike with X11, where it "just worked".

Nothing "just worked" in X11. After I switched to Linux, installed the Nvidia Proprietary driver, and got switched to X11 without knowing, it was immediate and noticeable down grade in usability. I've said it a million times but it almost made me switch back to Windows because it felt like I was using a broken operating system that wasn't yet meant to be run on desktop computers. It wasn't until I realized what had happened after installed the Nvidia driver that I realized what happened and stuck around.

Pipewire, btw, was another reason why I stuck around Linux. Not only did it fix small audio issues I was having, it allowed me to use applications like Carla and Helvum to route audio between applications via a patchbay interface. It can also route video streams to other applications and even route webcams to multiple applications at the same time which is something that no other OS can do. Its such an obvious choice to use it for screen and window capturing as well.

Classic "Wayland solves no issues I have but breaks almost everything I need" situation.

It solve issues other people have and breaks the one thing that you specifically want but don't need.

Many of the Wayland design seem to come from the idea that you run untrusted applications on your computer, which imho is a flawed assumption to begin with. Not everyone wants a "hostile desktop environment" where nothing can be trusted and everything is assumed to be malicious and hence is sandboxed and encumbered, some prefer a "collaborative desktop environment" where the focus is to make things work no worse than on the Macintosh in 1984.

This is stupid bullshit worded to make it sound pleasant. "Collaborate desktops" is your dumb way of sugar coating "it's a free-for-all where all apps fight for control over each other". It's not collaborative if there's no agreements between applications, that's called being intrusive. There's nothing hostile about it.

@lukefromdc
Copy link

If you use a computer online, surf to any websites at all you do not know and trust, and let them run JS, you are allowing unknown and untrusted code to run on your computer. A browser running untrusted JS itself becomes untrustable keep in mind. This is why some run the browser from a whole separate VM (Qubes style) or as another user for this reason.

Wayland makes it more difficult for a separate app to attack a window being used by a legitimate website in your browser but as I said in the last post cannot protect one browser window from another short of having the browser itself open every site in a separate instance. Unfortunately, that is the most likely scenario for clickjacking or keystroke-jacking on a desktop it seems to me,.

The browser itself could defeat this by using say, up to 100px of random top and left padding for each tab opened. Popup positions for login popups could further be randomized within the same basic part of the screen they now appear in. This would throw most transparent/invisible attack entries overlaying a legitimate website's browser window and tab out of position. This should work on wayland, x11, even Windows and MacOS.

in wayland, it is in fact possible to do exactly that in wlroots compositors for GTK applications by using gtk-layer-shell.

Good to know.

And, say, for Qt applications running on kwin? Why should such an essential functionality that should work regardless of the toolkit being used even have "gtk" in its name?

For me, everything that works just with some toolkits or just in some desktop environment is actually counterproductive, because it further splinters the already small "Linux" user base, and creates "but it works for me" responses from Wayland proponents.

KDE is said to be working on this

Ah. See. With Wayland, everyone needs to be working on everything before it works for everyone. Unlike with X11, where it "just worked".

About not being able to read one apps window positioning from another app: That is intended to make it more difficult for a malicious app to capture inputs and redirect them.

Classic "Wayland solves no issues I have but breaks almost everything I need" situation.

Many of the Wayland design seem to come from the idea that you run untrusted applications on your computer, which imho is a flawed assumption to begin with. Not everyone wants a "hostile desktop environment" where nothing can be trusted and everything is assumed to be malicious and hence is sandboxed and encumbered, some prefer a "collaborative desktop environment" where the focus is to make things work no worse than on the Macintosh in 1984.

@mattatobin
Copy link

mattatobin commented Jul 21, 2024

@lukefromdc Best watch how you present internet security via web browsers. I actually know a thing or two about that and sorry dude but you're full of crap. You act like javascript hasn't had security features well before the browsers started dropping any semblance of a good user experience, customization, and extensibility.

@probonopd
Copy link
Author

probonopd commented Jul 21, 2024

What the fuck are you talking about "out of nowhere"?

I did not install it. Nor ask for it. As you say, I didn't even know what it was. It was pushed upon me (when it was undoubtedly premature) in one of the Fedora Live ISOs as the default. And the experience was noticeably worse. I noted down everything it broke. In the expectation that whoever was responsible for that Wayland thing would fix the breakage in time. Only then I learned that not even did they not intend to fix everything quickly, they partly refused to even take it as their job (example: "Wayland doesn't do screen sharing, Portals and Pipewire do. They're not part of the Wayland protocol or the Wayland project."). And this is the most annoying aspect of Wayland - it breaks stuff that had been working all the time and then expects other projects to provide workarounds. And expects everyone to like using those.

people knew that X11 needed to be replaced because it was pretty obvious it needed to be

Not obvious even to this day. Why not improve it in the few nice-to-have areas in which it needs to be improved.

Case in point, you have Zoom issue still up that has been closed since August 2022

As you wrote in the linked issue,

The issue you experienced isn't with Wayland, it's just with Pipewire's PulseAudio plugin. Wayland doesn't have anything to do with audio. Try it with Pipewire again

Before Wayland there was no need to have Pipewire. As you say, "Wayland doesn't do screen sharing, Portals and Pipewire do." So by having to deal with Pipewire we now have to deal with Pipewire's issues, too. (Fun fact, I don't actually have much to complain about Pipewire as an audio server on Linux, my main complaint is that Wayland doesn't do screensharing properly without having Pipewire and hence factually forces it upon us, assuming everyone is using Linux. On FreeBSD, for example, we use an entirely different audio system.)

So I'll ask again: What flaws does X11 have? How would you improve it?

None that really bother me. It can do the things I have been able to do with it for the past decades. Sure, the default built-in "GUI" could look nicer, it would be better if it would work without the need for configuration files (although this got a lot better), etc. But in the end, it all works like it "always" has. How I would improve it? Well, I'd mark certain unused features as deprecated for at least half decade or so (first with compile time warnings and then with run time warnings), and then eventually disable, later remove them. New features I would add without interfering with how the rest works. Never ever I would remove or change actively used features. Never ever would I impose any artificial barriers to what applications can or cannot do (for those who want that, they can come up with some sandboxing). Preserving the existing body of application and desktop environment software on a binary and API level would be key objective, similar to how Windows has evolved without major breakages over time. If a new version of Windows cannot run an old application anymore, then it is rightfully assumed that Windows broke it. After all, we don't even know whether the application is still being developed.

when I switched to Linux and had to lower my 4K screen's resolution down to 2560 x 1440

Qt can do fractional scaling on X11.

After I switched to Linux, installed the Nvidia Proprietary driver

Then be lucky that you never encountered the open source Nvidia driver, Nouveau. At least in my experience, it has been a disaster. Even just clicking on the application launcher in Gnome 3 made the icon animation stutter. Only with the proprietary Nvidia drivers, things were are halfway smooth.

Portals and Pipewire literally work in X11 as well because they're not part of Wayland.

Maybe, but that's besides the point. The reverse is much more interesting: How can Wayland work without life support from those Linux-centric technologies. Just because a circle of people involved with IBM Red Hat, Fedora, Gnome, and Flatpak think they want to sandbox everything it still doesn't mean that everybody wants everything sandboxed, and no, GNUstep won't start using D-Bus anytime soon.

"Collaborate desktops" is your dumb way of sugar coating "it's a free-for-all where all apps fight for control over each other".

I am coming from the assumption that I only run software on my personal computer that I want to run. If I don't like how an application behaves, then I either change it (if it is open source), or I don't run it at all. Simple as that. The desktop should not feel like a battleground where everything has to be restricted,, encumbered, and made unnecessarily hard.

If you use a computer online, surf to any websites at all you do not know and trust

That's the difference. The web is a battleground. My open source personal computer desktop is not.

@probonopd
Copy link
Author

@hyprwm in https://twitter.com/hyprwm/status/1814983041598591223:

We are now independent! No more wlroots, only Hyprland :)

How is this a good thing? Isnt't wlroots what was supposed to unify the splintered landscape that is Wayland implementations?

@mattatobin
Copy link

@probonopd when the majority has no choice you don't need to care about things like interop or basic functionality. You do understand this right?

@lukefromdc
Copy link

A good enough attacker can jump out of a sandbox. There is no such thing as impenetrable security and that has been true since long before computers existed. I am not going to start letting untrusted sites run scripts no matter what the sandboxes offered by the browser. Even Torbrowser has had (rare) exploits, thus the use of Tails or Whonix with it when things really count.

I rely on defense in depth, relying on browser security measures alone means having only one "trench" facing a potential storm of attackers.
Having not analyzed Firefox security myself, I treat it as being potentially vulnerable to click and keystroke jacking given a malicious input until proven otherwise. If you can prove otherwise, great! I normally assume an attack to be possible until proven otherwise.

Wayland can help with attacks mounted from one app against another, but not against attacks mounted from one window of any application against another so far as I know. My point here was on the limitations of wayland's denial to apps of knowing where another app's windows are, not the current state of the arms race between browser devs and writers of attack websites.

@lukefromdc Best watch how you present internet security via web browsers. I actually know a thing or two about that and sorry dude but you're full of crap. You act like javascript hasn't had security features well before the browsers started dropping any semblance of a good user experience, customization, and extensibility.

@probonopd
Copy link
Author

probonopd commented Jul 21, 2024

"But it works for me" is literally your reasoning for using X11. It doesn't work for a lot of other people but you don't care.

The difference is: If something doesn't work in X11, then it likely never has. --> It may lack features, but does not take anything away

With Wayland, things are no longer working properly that have worked nicely until Wayland came into the picture. --> It takes away things that we took for granted over the decades

Big difference!

@Slayer5934
Copy link

"But it works for me" is literally your reasoning for using X11. It doesn't work for a lot of other people but you don't care.

The difference is: If something doesn't work in X11, then it likely never has. --> It may lack features, but does not take anything away

With Wayland, things are no longer working properly that have worked nicely until Wayland came into the picture. --> It takes away things that we took for granted over the decades

Big difference!

From what I can see you are just a smart troll at this point, almost everything was designed with X11 in mind and something relatively new comes out and you keep acting surprised when things don't just snap in place anymore, and even with things being changed to make it work on Wayland you go out of your way to just leave the status as "broken"; You see growing pains as a means to say Wayland is bad and will be bad forever, and you see the upsides to Wayland as non-existent, your prerogative I guess.

@mattatobin
Copy link

@Slayer5934 Growing pains.. for over a decade? Enough is enough. Wayland will be forced on everyone who can't be bothered to do anything that isn't sanctioned from up high to do.. But I will.

Wayland does not control my system and never will. SystemD's days are numbered on my system as anything past basic unit files is annoying as hell to deal with and a sysvinit script would simply be easier. Pipewire MOSTLY works but hell I am not even sure why I need PulseAudio.. But it has a mixer I use so its okay.

It isn't trolling to be ABSOLUTELY LIVID that not only have things NOT gotten over all better (because what is broken or missing changes from release to release) and the fact it is being MANDATED and if you don't agree you're a <insert whatever here/>.

I am tired of it and just want off this perpetual trainwreak at least long enough to get my shit in place so everyone else can destroy everything and it won't impact me.. AS much.

@lukefromdc
Copy link

lukefromdc commented Jul 22, 2024 via email

@Consolatis
Copy link

With Wayland, things are no longer working properly that have worked nicely until Wayland came into the picture. --> It takes away things that we took for granted over the decades

have worked nicely until Wayland came into the picture.

No. Until *you* started to use wayland.

@Samueru-sama
Copy link

Is there a xrandr --setmonitor equivalent in wayland? It seems only sway has implemented something similar that only works for fullscreen applications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment