Skip to content

Instantly share code, notes, and snippets.

@probonopd
Last active June 14, 2023 05:04
  • Star 224 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
Boycott Wayland. It breaks everything!

Think twice before abandoning Xorg. Wayland breaks everything!

tl;dr: Wayland is not ready as a 1:1 compatible Xorg replacement just yet, and maybe never will. 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. And usually it stays broken, because the Wayland folks only seem to care about Gnome, and alienating everyone else in the process. DO NOT INSTALL WAYLAND! 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 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")

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 2023, it has been stated that Jitsi now uses WebRTC and as long as the browser supports that, screen sharing should work. To be retested with jitsi-meet-x86_64.AppImage.

  • flathub/us.zoom.Zoom#22 Zoom broken since at least 4 Jan 2019. ("Can not start share, we only support wayland on GNOME with Ubuntu (17, 18), Fedora (25 to 29), Debian 9, openSUSE Leap 15, Arch Linux"). No word about non-GNOME!
  • probonopd/Zoom.AppImage#8 broken since 1 Oct 1022 Zoom: "You need PulseAudio 1.0 and above to support audio share" on a system that uses pipewire-pulseaudio

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

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.

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".)

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.

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

References

@deprecated-dot
Copy link

deprecated-dot commented Jun 8, 2023

@kerneliusz

I honestly didn't expect any better other than entertaining myself.

Hey, whatever helps you cope with your emotional outburst.

Ah yes, the i3 bootleg.

The Wayland-centric i3-compatible replacement.

Known for its user friendliness and gentle learning curve

man sway

just as long as your users have infinite amount of time to learn to live without a pointing device.

man 5 sway-input

Really makes sense now that you're desperately invalidating the needs of people who depend on circular scrolling.

Is anyone stopping you from using X.Org since your use case depends on hardware that only exists in a handful of Windows laptops?

Who the hell needs a pointing device if you don't even need one.

I have pointing devices, too:

input "21298:5120:Clearly_Superior_Technologies._CST_Laser_Trackball" { accel_profile flat pointer_accel 1 scroll_factor 1.25 middle_emulation disabled scroll_method on_button_down scroll_button 275 }

That was super difficult, I say!

Maybe you could buy/donate a CF-31 or similar so devs can use the actual hardware. You know, since they owe you support and all. Best of luck with your tantrum and round touchpad! :)

Edit: edited for formatting, but I don't care anymore.

@kerneliusz
Copy link

Hey, whatever helps you cope with your emotional outburst.
Best of luck with your tantrum and round touchpad! :)
implying, insinuations, insults

Do the thing again where you call everyone an emotional toddler. This is my favorite part of reading posts by RedHat trolls.

@deprecated-dot
Copy link

@kerneliusz

Do the thing again where you call everyone an emotional toddler.

I called you an emotional toddler because you had an outburst regarding "toxicity" due to your Perpetual Victim Status™. I didn't call anyone else anything... important distinction. You couldn't contend with that, so you moved the goalposts while raising a straw man to attack. Remember: these threads are linear and easy to digest.

This is my favorite part of reading posts by RedHat trolls.

> uses Gentoo with Sway
> accused of being a RedHat troll, with no supporting evidence

Seems legit.

Good luck with the rest of your tantrum!

@sognokdev
Copy link

@kerneliusz

  • you are invalidating their existence, dependencies, freedom, needs and experience, so don't get surprised when they become hostile towards you because you literally asked for it by marginalizing them, invalidating their needs, and making them look stupid for having exotic hardware

To invalidate the existence and freedom of somebody is very serious crime. What about a class action? We can't let our existences be invalidated without fighting.

My Wayland compositor comes with some licence that states the following:

« Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. »

And Xorg has a licence that states this:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

But maybe an incredibly skilled lawyer could convince a court that this can be interpreted as "we guarantee you that this software will always suit your needs perfectly".

What do you suggest we do? Come on, we can't let them invalidate our existences.

@deprecated-dot
Copy link

@sognokdev

I'm more concerned with the marginalization of the six people who use round trackpads outside of Windows.

Please, won't somebody think of the exotic hardware?!

@kerneliusz
Copy link

@sognokdev the license has nothing to do with it. This is a problem with expectations. Xorg has set everyone's expectations pretty high because over its long existence it supported a lot of hardware configurations. Some of them may be even unobtainable at this point in time. On one hand, I understand Wayland that they'd wish to cut their losses in order to deliver a working product sooner. However, this isn't fair towards people who have hardware that's going to be affected by this. Justifying this by saying "life isn't fair" is just further normalizing this and completely unacceptable. Nobody deserves to be treated like this by free software. This is treatment that's more at home in a proprietary system, or a crypto scam. We should all beware of this kind of behavior and beware of advocating for it, because everyone can be next. This idea of cutting corners and whimsically deprecating things is quite revolutionary for free software, because historically free software would extend its support incredibly vast, and unfortunately incredibly thin in some places. And like with every revolution, it will eventually eat its young. Be careful you won't be in my shoes the next time some ignorant schmuck deprecates your things.

What do you suggest we do? Come on, we can't let them invalidate our existences.

How can we fix the problem? How can we implement circular scrolling on Wayland? I'm asking because clearly the original dev can't be arsed to do it themselves. And one more thing I would really appreciate, and it'd go a long way, is if people stopped assuming I'm making emotional statements based on my use of mockery, shitposting, and abusing the RedHat troll accusation. I would much rather laugh at problems and hard opposition than worry and get depressed over some online arguments.

@ismaell
Copy link

ismaell commented Jun 8, 2023 via email

@phrxmd
Copy link

phrxmd commented Jun 9, 2023

@phrxmd

I'm sorry, @Monsterovich, but the fact that bits_per_pixel is an int does not magically give X11 HDR capability by "just changing the pixel format".

I know there are still some things to do in the drivers, but thank you for proving that this is a possible feature as opposed to those who write that THIS IS IMPOSSIBLE.

TBH that rhetoric is kind of useless. It's literally everywhere else than the drivers. It says so in the original proposal & discussion of a HDR X extension. One can't do more than hand you the links on a silver platter if you don't read or understand things and proceed with arguments like "Hey, DOOM gets ported to all sorts of shit, so developing X11 can't be so complicated". Maybe you are good dev in games or ATMs or missile navigation systems or whatever it is that you do, but I think you just don't want to understand enough about X11 to make a contribution.

@phrxmd
Copy link

phrxmd commented Jun 9, 2023

@kerneliusz

However, this isn't fair towards people who have hardware that's going to be affected by this. Justifying this by saying "life isn't fair" is just further normalizing this and completely unacceptable. Nobody deserves to be treated like this by free software.

The terrible secret is that nobody "deserves" anything from anybody. You don't deserve anything from other developers. As long as it's them who maintain their software, it's them who call the shots; you want to have a say, you better start making constructive contributions.

It's not a contribution to participate in a collection of entitled rants that pretends to be "scientific thinking" and "valuable criticism". The actual benefit to the community is net negative. I would love to see people here move towards something constructive, but they don't. If it frustrates you, do something else.

How can we fix the problem? How can we implement circular scrolling on Wayland?

You have two choices, but both of them would require someone other than the original dev begin doing something:

  1. Write a general-purpose, driver-agnostic circular scrolling daemon, similar to what syngesture does for multi-touch gestures;
  2. Begin making actual, useful contributions to libinput, by implementing the actual circular scrolling, and ideally by taking the maintenance burden off the other guy to deal with the inevitable complaints from everybody for whom it doesn't work the way they think it should.

It seems what some people actually expect is to get the original dev to do it for them for free and maintain it forever (in exchange for what, people maybe, but probably not, stopping their entitled yelling?). I mean you've said yourself that nobody deserves not having it done for them and it's completely unacceptable to suggest otherwise.

But it's him who maintains the thing, and consequently he, not you, gets to call the shots about what he thinks is the best way to maintain it. I guess this is what infuriates people so much. I mean in their world they're the main characters, so of course they deserve it and how can an NPC like the maintainer not do it for them?

I'm asking because clearly the original dev can't be arsed to do it themselves.

The original dev has been maintaining libinput since 2014 or so essentially alone (while also contributing to xf86-input-synaptics and the like). He wrote this blog post in 2016 about why libinput doesn't have lots of config options: because it's easy for someone like you to contribute 5 lines with a patch, and then he has to maintain documentation and an exponential collection of test cases and and deal with user complaints for those options indefinitely.

xkcd 2347

Maintaining an input library is a thankless task. It's the last piece of software any of you will ever contribute to, but it's the first that people will rant about when something goes wrong. This being so, and seeing your attitude to the guy, why should they "be arsed" to do you a favour?

@kerneliusz
Copy link

@phrxmd completely understandable.

If you overdeliver like this (keyboard, mouse, synaptics), you're setting the stage for others to criticize that your next big thing (libinput) doesn't preserve all the functionality you've built so far. This becomes even more damaging, when the next big thing sets out to replace and phase out previous contraptions. Up until KDE 4.0, I've seen this happen only in proprietary software. When free software wasn't doing it yet, It was a breath of fresh air from proprietary software's love for planned obsolescence. I hope we can agree, that we should all take constructive action to reduce planned obsolescence and what even can be perceived as such. I most appreciate this part of your post:

You have two choices, but both of them would require someone other than the original dev begin doing something:
Write a general-purpose, driver-agnostic circular scrolling daemon, similar to what syngesture does for multi-touch gestures;
Begin making actual, useful contributions to libinput, by implementing the actual circular scrolling, and ideally by taking the maintenance burden off the other guy to deal with the inevitable complaints from everybody for whom it doesn't work the way they think it should.

I'll take a look at all 3 projects when I'm free, but I can't promise anything. I'm booked currently.

@lranixonl
Copy link

hotplugging

I often disconnect the VGA monitor, it works. HDMI/DP works better though.

This is usefull for VM and GPUs passthrough, so you can "disconnect" a GPU in a VM and move it to another, not physically removing your GPU nor disconnecting your monitor.

multi-GPU support

Remember the reason NVidia killed SLI? Because devs had to optimize games to make it work properly and it sucked anyway. Same reason here.

This isn't for SLI, but works with it. Notebooks with various GPUs are multi-GPU systems, for example an Intel iGPU and a Nvidia dGPU, or an AMD iGPU + dGPU.

@Monsterovich
Copy link

Monsterovich commented Jun 9, 2023

@phrxmd

It says so in the original proposal & discussion of a HDR X extension.

We have finally achieved the end of this dumb statement: "X.org code is old. HDR is impossible.".

It's literally everywhere else than the drivers.

Oh, boy. You have no idea how hard it is to get NVidia to do this in the drivers. Just believe that in X.org it's not that hard at all.

@lranixonl

This is usefull for VM and GPUs passthrough, so you can "disconnect" a GPU in a VM and move it to another, not physically removing your GPU nor disconnecting your monitor.

I'm not sure if "hotswapping" will work with GPUs because they are not like other PCI devices. The fact that it's a VM does not fix the problem in any way, especially considering that the GPU support in VMs is worse than in native systems.

This isn't for SLI, but works with it. Notebooks with various GPUs are multi-GPU systems, for example an Intel iGPU and a Nvidia dGPU, or an AMD iGPU + dGPU.

You propose to look for a solution to artificially created problems. Why do you need an iGPU when you already have a dGPU? You already have an energy-efficient dGPU that is specialized for graphics. If your laptop wastes more battery when the dGPU is powered, it's a laptop design bug. This is an endless problem with notebooks. Either you have hardware with low consumption but shitty performance, or adequate hardware with a short-lived battery. Use a PC.

@deprecated-dot
Copy link

deprecated-dot commented Jun 9, 2023

@Monsterovich

I'm not sure if "hotswapping" will work with GPUs

It works, all it takes is a reset/rebind. My VFIO script handles it automatically.

because they are not like other PCI devices.

Except they are, which is how things like VFIO (and the older PCI stub even) work in the first place.

The fact that it's a VM does not fix the problem in any way, especially considering that the GPU support in VMs is worse than in native systems.

That's not the case, at all. I have two 3000-series nvidia cards and two AMD 7-series cards, and they all run as well (or even slightly better) in VMs, within the margin of error. Your contention might have held up ten years ago, but it's a dramatically different landscape now.

You propose to look for a solution to artificially created problems. Why do you need an iGPU when you already have a dGPU? You already have an energy-efficient dGPU that is specialized for graphics.

There's a flaw in your logic. Almost all iGPUs will be more power efficient versus (reasonably specced) dGPUs. TDP is key, and the issue is often dissipation and power consumption, not just efficiency. Most dGPUs have a TDP that far exceeds the TDP of lower powered mobile processors with some form of integrated graphics.

If your laptop wastes more battery when the dGPU is powered, it's a laptop design bug.

As I've already stated... dGPUs, by and large, consume much more power than iGPUs. Since they consume more power, they have more heat to dissipate, not even considering losses. Laptop manufacturers often make battery trade-offs with "mobile workstations" to keep weight to a minimum and maximize portability. It has nothing to do with a "design bug"; it's physics.

Being able to use the GPU that best suits your current workflow is a no-brainer.

@phrxmd
Copy link

phrxmd commented Jun 9, 2023

It's literally everywhere else than the drivers.

Oh, boy. You have no idea how hard it is to get NVidia to do this in the drivers. Just believe that in X.org it's not that hard at all.

Since the abortive HDR extension effort for Xorg was sponsored & developed by NVidia, it's probably safe to assume that they also intended to do it in the drivers.

Since the effort is abandoned, for the time being HDR is impossible in Xorg until some clever & constructive person comes and picks it up again.

@OraculaSibyllina
Copy link

OraculaSibyllina commented Jun 9, 2023

Maybe you could buy/donate a CF-31 or similar so devs can use the actual hardware. You know, since they owe you support and all. Best of luck with your tantrum and round touchpad! :)

Just to clarify, circular scrolling don't require any special hardware, it is just a gesture, an alternative to two-finger scrolling. Circular touchpads are just rectangular touchpads with edges unusable (just like there's no real circular display). Instead of using two fingers moving up and down, circular scrolling scrolls the page when it detects there's a finger drawing circles on the touchpad.

It is a requirement on Panasonic laptops because the touchpads on them are too small for two-finger scroling and the official driver on Windows comes with this feature. And IMHO it's simply better than two-finger scrolling.

It can be tested on a regular rectangular touchpad. The developer could even 3D print a bracket that covers up the touchpad to make it circular (and I'm perfectly willing to mail one to anyone interested in implementing that), and there won't be any difference from the circular touchpads on Panasonic laptops.

IIRC someone commented in that issue at libinput saying that their laptop comes with circular scrolling on Windows while it has a normal square touchpad (yep, HP 240 G7 mentioned here has a regular rectangular touchpad).

@SoapSpangledGames
Copy link

In my experience, Wayland should be abandoned. It doesn't do half of what X does, and at this point (after more than 10 years of development) probably never will. I just wasted an entire day trying to get Wayland to do fundamentally simple things that X has done for many years (such as display at higher than 1024x768). With my three monitors, Wayland displays content on one monitor but requires interacting with that content on a completely different monitor. Imagine an OK button on screen 0, but having to try to click on that button on screen 2 (or any combination of monitors that is not the correct one).

And that's just the start. Wayland told me that it is incapable of determining monitor resolutions, so "I'm going to use 1024x768, and **** you! Oh, and disconnect your other monitors or I'm going to put your content in a monitor blender. Good luck guessing where shit is!"

Okay, so that wasn't a direct quote, but it may as well have been. After hours of trying to get Wayland to do anything even remotely related to being a display manager, I gave up and returned the sentiment. I had to reinstall an older version of Kubuntu that still used X11 (20.04). I will stay with it until the end of time if necessary.

If anything is going to drive hardened Linux veterans like me (I've been using Linux desktops for 30 years now) back to Windows, it will be Wayland. It f****ng sucks!

@deprecated-dot
Copy link

@SoapSpangledGames

In my experience

Anecdotal, and not an experience shared by most.

I just wasted an entire day trying to get Wayland to do fundamentally simple things that X has done for many years (such as display at higher than 1024x768).

That sounds like user error. Setting output modes is trivial on Sway, for example:

output DP-3 {
    pos 0 0
    res 2560x1080@74.990997Hz
    max_render_time 4
}

With my three monitors, Wayland displays content on one monitor but requires interacting with that content on a completely different monitor. Imagine an OK button on screen 0, but having to try to click on that button on screen 2 (or any combination of monitors that is not the correct one).

Again, that sounds like a misconfiguration. What WM/DE are you using, and have you consulted the appropriate documentation?

And that's just the start. Wayland told me that it is incapable of determining monitor resolutions, so "I'm going to use 1024x768, and **** you!

Wayland didn't tell you that, your DE/WM gave you an error message and you didn't follow it to its logical conclusion. I'm able to determine my resolution just fine with swaymsg -t get_outputs:

Current mode: 2560x1080 @ 74.991 Hz

After hours of trying to get Wayland to do anything even remotely related to being a display manager, I gave up and returned the sentiment.

Wayland isn't a display manager. It's a protocol. Perhaps you should consult the documentation for your WM/DE, and raise specific contentions with that software, and not the underlying protocol.

I gave up and returned the sentiment.

You should read the manuals.

I had to reinstall an older version of Kubuntu that still used X11 (20.04). I will stay with it until the end of time if necessary.

I think we're starting to zero in on the problem here.

If anything is going to drive hardened Linux veterans like me (I've been using Linux desktops for 30 years now) back to Windows, it will be Wayland. It f****ng sucks!

If anything your grasp of the subject matter sucks. If you can't read the manual, perhaps you'd be better suited by Windows.

@lranixonl
Copy link

lranixonl commented Jun 11, 2023

@SoapSpangledGames

In my experience, Wayland should be abandoned. It doesn't do half of what X does, and at this point (after more than 10 years of development) probably never will. I just wasted an entire day trying to get Wayland to do fundamentally simple things that X has done for many years (such as display at higher than 1024x768). With my three monitors, Wayland displays content on one monitor but requires interacting with that content on a completely different monitor. Imagine an OK button on screen 0, but having to try to click on that button on screen 2 (or any combination of monitors that is not the correct one).

And that's just the start. Wayland told me that it is incapable of determining monitor resolutions, so "I'm going to use 1024x768, and **** you! Oh, and disconnect your other monitors or I'm going to put your content in a monitor blender. Good luck guessing where shit is!"

What? How? Do you have an Nvidia GPU or something? A extremely old Wayland version? I couldn't believe what you said and I tested it, connected 3 monitors to my PC (AMD Radeon 6700XT) and worked perfectly at they native resolutions and frequency. One 1080p @ 75 Hz (Display Port), other 1080p @ 60 Hz (DP to HDMI adapter) and one with 1600*900 @ 60 Hz (HDMI to VGA adapter).

Screenshot_20230611_134150

@DraconicNEO
Copy link

DraconicNEO commented Jun 12, 2023

@SoapSpangledGames

In my experience, Wayland should be abandoned. It doesn't do half of what X does, and at this point (after more than 10 years of development) probably never will. I just wasted an entire day trying to get Wayland to do fundamentally simple things that X has done for many years (such as display at higher than 1024x768). With my three monitors, Wayland displays content on one monitor but requires interacting with that content on a completely different monitor. Imagine an OK button on screen 0, but having to try to click on that button on screen 2 (or any combination of monitors that is not the correct one).
And that's just the start. Wayland told me that it is incapable of determining monitor resolutions, so "I'm going to use 1024x768, and **** you! Oh, and disconnect your other monitors or I'm going to put your content in a monitor blender. Good luck guessing where shit is!"

What? How? Do you have an Nvidia GPU or something? A extremely old Wayland version? I couldn't believe what you said and I tested it, connected 3 monitors to my PC (AMD Radeon 6700XT) and worked perfectly at they native resolutions and frequency. One 1080p @ 75 Hz (Display Port), other 1080p @ 60 Hz (DP to HDMI adapter) and one with 1600*900 @ 60 Hz (HDMI to VGA adapter).

Screenshot_20230611_134150

IMO I don't think people from team Red (AMD) should be weighing in on issues that predominantly affect people from team green (Nvidia). Most of the people here against Wayland have Nvidia GPUs and they're not going to "Just switch to team Red" either because it's too expensive or not even possible for them (can't swap out a GPU in a Laptop).

@Monsterovich
Copy link

IMO I don't think people from team Red (AMD) should be weighing in on issues that predominantly affect people from team green (Nvidia). Most of the people here against Wayland have Nvidia GPUs and they're not going to "Just switch to team Red" either because it's too expensive or not even possible for them (can't swap out a GPU in a Laptop).

Ah yes, a classic: "Wayland's haters are NVidia users."

In my experience, Wayland should be abandoned. It doesn't do half of what X does

The perfect solution for GNOME Desktop!

@kerneliusz
Copy link

IMO I don't think people from team Red (AMD) should be weighing in on issues that predominantly affect people from team green (Nvidia). Most of the people here against Wayland have Nvidia GPUs and they're not going to "Just switch to team Red" either because it's too expensive or not even possible for them (can't swap out a GPU in a Laptop).

Ah yes, a classic: "Wayland's haters are NVidia users."

In my experience, Wayland should be abandoned. It doesn't do half of what X does

The perfect solution for GNOME Desktop!

The only perfect solution for GNOME would be to lay off the whole team so that McCann and his rag tag band of UX design misfits can find a job somewhere else. Preferably in Apple and Microsoft, where historically all Linux pariahs belong, like de Icaza and Poettering.

@lranixonl
Copy link

@DraconicNEO
IMO I don't think people from team Red (AMD) should be weighing in on issues that predominantly affect people from team green (Nvidia). Most of the people here against Wayland have Nvidia GPUs and they're not going to "Just switch to team Red" either because it's too expensive or not even possible for them (can't swap out a GPU in a Laptop).

He never said that is using Nvidia, I asked because I find very weird him having problems with multi-monitor setups. He could be using Intel or AMD with a very old distro with an old Wayland and DE. In his last sentence he says that he "had to come back to Kubuntu 20.04", which is a very old version.

@tylerfan
Copy link

tylerfan commented Jun 13, 2023

as i noob, i never understand the decision by wayland and what makes sense of it. I kept hearing that the absolute position is not an issue. Imagine a multiwindow situation like vscode, previously, all toplevel windows could be positioned and combined together to look like a fine editor, now they have to be draw on ONE surface since now subwindows could not get combined like that(no absolute position control on toplevel windows), and subsurface are claimed to be used for embedded plugins and obviously in the case of a vscode editor, these subwindows are not plugins. Now imagine if the app is a 3d drawing tool, this will mess up everything as drawing on one surface with all subwindows is very different than drawing on independent surfaces for each subwindow, all the viewport and scissor needs to be updated accordingly, which basically complicated a lot of things.

I am not saying wayland may not be a good design, but could someone elaborate on the reason of increased complexity brought by it and what might be a good solution to the above mentioned scenario?

@ssokolow
Copy link

ssokolow commented Jun 13, 2023

It's a response to the same Windows malware tricks that prompted Firefox to make extension signing something you can only disable by downloading special unbranded or developer-channel builds of Firefox.

In the Firefox case, some junkware download manager was bypassing Firefox's extension consent restrictions by using shaped, positioned windows to make it look like Firefox itself was guiding the user through granting its extension permission to run. (eg. Overlaying "click here" arrows and the like on Firefox windows.)

This particular aspect of Wayland is about requiring that applications can't be programmed in a "give me permission to absolutely position my windows or I'll crash on startup or freeze/guzzle 100% CPU/etc. as I loop trying to force positions" way. (Sort of like how Wayland was the only viable way to make Google Chrome secure because it breaks if you enable the X11 extension which provides similar security features in an opt-in manner and the Google stance, if they even gave you the time of day, was the X11 equivalent of "Running as Administrator/root is the only supported configuration".)

@tylerfan
Copy link

tylerfan commented Jun 13, 2023

It's a response to the same Windows malware tricks that prompted Firefox to make extension signing something you can only disable by downloading special unbranded or developer-channel builds of Firefox.

In the Firefox case, some junkware download manager was bypassing Firefox's extension consent restrictions by using shaped, positioned windows to make it look like Firefox itself was guiding the user through granting its extension permission to run. (eg. Overlaying "click here" arrows and the like on Firefox windows.)

This particular aspect of Wayland is about requiring that applications can't be programmed in a "give me permission to absolutely position my windows or I'll crash on startup or freeze/guzzle 100% CPU/etc. as I loop trying to force positions" way. (Sort of like how Wayland was the only viable way to make Google Chrome secure because it breaks if you enable the X11 extension which provides similar security features in an opt-in manner and the Google stance, if they even gave you the time of day, was the X11 equivalent of "Running as Administrator/root is the only supported configuration".)

see that's the part i don't understand. why wouldn't Windows want to disable this usage? I mean this seems like a problem that can be fixed in other means. firefox could add stuff to disallow extensions with unsafe links. that's a very typical measure for modern browsers to issue warnings before redirection.

@ssokolow
Copy link

ssokolow commented Jun 13, 2023

Microsoft is basically in its own X11 vs. Wayland sort of situation where they've tried several times to replace the Win32 APIs and companies like Adobe have flat-out refused to buy in. The situation is greatly complicated by how entangled and monolithic the Win32 APIs are.

Last I heard, they were experimenting with rearchitecting Windows so that:

  1. The Windows kernel running on the bare hardware will have no Win32 APIs.
  2. A separate kernel with Win32 APIs but with driver support locked down to hard-coded Hyper-V guest drivers will be run under a virtualized sandbox using Hyper-V.
  3. To get XWayland-style isolation at the GUI layer, the Win32 kernel's visuals will be merged into the host OS's desktop using an optimized "local-only" form of RDP capable of supporting accelerated graphics in the guest by forwarding DirectX drawing commands in a sandboxed manner. (Basically, a more polished, more performant, version of what you get when you use VirtualBox's Seamless Mode.)
  4. New application development will be encouraged to use their successor to Win32 which is sort of like WASI, in that, not only is the execution environment sandboxed, the APIs follow WebAssembly's lead in providing capability-based security. (In essence, designing an execution environment where, like Orwell's NewSpeak, the machine code and/or platform APIs lack the words necessary to describe disallowed actions.)

I imagine that last one will be achieved partly by following the web's lead, where shiny new APIs like MediaDevices.getUserMedia() (how you prompt to access the user's camera and/or microphone so you can implement stuff like the Discord's support for doing voice/video calling using an ordinary web browser) are only accessible to pages served over HTTPS.

@tylerfan
Copy link

Microsoft is basically in its own X11 vs. Wayland sort of situation where they've tried several times to replace the Win32 APIs and companies like Adobe have flat-out refused to buy in. The situation is greatly complicated by how entangled and monolithic the Win32 APIs are.

Last I heard, they were experimenting with rearchitecting Windows so that:

  1. The Windows kernel running on the bare hardware will have no Win32 APIs.
  2. A separate kernel with Win32 APIs but with driver support locked down to hard-coded Hyper-V guest drivers will be run under a virtualized sandbox using Hyper-V.
  3. To get XWayland-style isolation at the GUI layer, the Win32 kernel's visuals will be merged into the host OS's desktop using an optimized "local-only" form of RDP capable of supporting accelerated graphics in the guest by forwarding DirectX drawing commands in a sandboxed manner. (Basically, a more polished, more performant, version of what you get when you use VirtualBox's Seamless Mode.)
  4. New application development will be encouraged to use their successor to Win32 which is sort of like WASI, in that, not only is the execution environment sandboxed, the APIs follow WebAssembly's lead in providing capability-based security. (In essence, designing an execution environment where, like Orwell's NewSpeak, the machine code and/or platform APIs lack the words necessary to describe disallowed actions.)

I imagine that last one will be achieved partly by following the web's lead, where shiny new APIs like MediaDevices.getUserMedia() (how you prompt to access the user's camera and/or microphone so you can implement stuff like the Discord's support for doing voice/video calling using an ordinary web browser) are only accessible to pages served over HTTPS.

that would be very surprising to see they would break apps on Windows. Same goes for MacOS. Never had such issue in Mac either.

@ssokolow
Copy link

ssokolow commented Jun 14, 2023

They're not breaking Windows apps. That's the point.

They've already made it so that, on a machine where you haven't gone through the song and dance to get Windows to boot in developer mode, you need to get Microsoft to bless digitally sign anything you want to load into the kernel so the design laid out there would just make post-Win32 apps invisible to Win32 apps, same way that Wayland apps are invisible to X11 apps running under XWayland when they use X11 APIs to poke at windows not their own.

It certainly wouldn't be as disruptive as when they killed off support for SafeDisc-protected games in 2015.

@anoraktrend
Copy link

In my experience, Wayland should be abandoned. It doesn't do half of what X does, and at this point (after more than 10 years of development) probably never will. I just wasted an entire day trying to get Wayland to do fundamentally simple things that X has done for many years (such as display at higher than 1024x768). With my three monitors, Wayland displays content on one monitor but requires interacting with that content on a completely different monitor. Imagine an OK button on screen 0, but having to try to click on that button on screen 2 (or any combination of monitors that is not the correct one).

And that's just the start. Wayland told me that it is incapable of determining monitor resolutions, so "I'm going to use 1024x768, and **** you! Oh, and disconnect your other monitors or I'm going to put your content in a monitor blender. Good luck guessing where shit is!"

Okay, so that wasn't a direct quote, but it may as well have been. After hours of trying to get Wayland to do anything even remotely related to being a display manager, I gave up and returned the sentiment. I had to reinstall an older version of Kubuntu that still used X11 (20.04). I will stay with it until the end of time if necessary.

If anything is going to drive hardened Linux veterans like me (I've been using Linux desktops for 30 years now) back to Windows, it will be Wayland. It f****ng sucks!

I don't want to believe that this comment is only 3 days old. This entire statement reeks of being unaware of any and all recent developments in wayland since 2020. Pipewire & xdg-portals alone deletes 90% of the complaints in the op, and half the issues you mentioned seem to be UBUNTU specific issues that don't exist on even Debian. (To be clear, Ubuntu's KDE/Qt implementation has severe issues that I don't like talking about, because I'm not knowledgeable enough to fix the problems.)

@tylerfaninthezoo
Copy link

tylerfaninthezoo commented Jun 14, 2023

They're not breaking Windows apps. That's the point.

They've already made it so that, on a machine where you haven't gone through the song and dance to get Windows to boot in developer mode, you need to get Microsoft to bless digitally sign anything you want to load into the kernel so the design laid out there would just make post-Win32 apps invisible to Win32 apps, same way that Wayland apps are invisible to X11 apps running under XWayland when they use X11 APIs to poke at windows not their own.

It certainly wouldn't be as disruptive as when they killed off support for SafeDisc-protected games in 2015.

im noob enough. are you basically saying they will run apps through something similar to xwayland...then what's the purpose of native wayland then? so Windows will support old win32 apps all the way forever? wouldn't they still need the old ones to update at one point, to utilize the new API natively? if not, people just stick with the old ones, why spend the efforts? Your saying is making me more confused.. i meant fine if linux will support xwayland forever. that would work for me.

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