I am new to Linux. What’s the differences between Xorg and Wayland?
xorg is a old implementation of x11, which is basically abandon-ware right now. No one is adding feature to it, testing it, or fixing security vulnerabilities. It also lack some common-sense security feature: for example every program can get every input (keyboard and cursor location) without root, so a key logger is trivial to implement in xorg.
Wayland is newer, with more features (reasonable multi-monitor support, one-to-one gestures, etc). But many application framework and hardware have poor support for it, because it is slightly newer (developed on 2008, so not that new any more). Notably, electron and nvidia are typically the worst offender, like everything on linux, but both has come a long way.
I have wayland on my laptop, since one-to-one gesture is a must for me, and I present quite often using that laptop. My desktop is on xorg, since I have a nvidia GPU and use quite a lot of electron app.
AMD GPU + KDE Plasma with Wayland finally gets me close enough to the smoothness of Windows, especially the per-display settings for fractional scaling and high refresh rate were sorely lacking on Linux. It’s not perfect yet (and neither is Windows’ implementation) but it improved the Linux desktop experience a ton!
What’s are one-to-one gestures?
It’s like scrolling on your phone, where the content on your screen follows exactly your fingers movements. On Wayland you can do the same with a trackpad, like for example when scrolling, switching workspaces or invoking the activities overview. It feels much nicer, more immediate and more natural than on X.org, where gestures are just triggering a shortcut after a set distance.
I would add, even my last Windows machine surface laptop 2 with latest windows 11 don’t have this feature. it is so awkward, I just stopped using gesture all together.
So it is pretty great linux has that.
Desktop Linux is in its never-ending process of replacing old displaying system with new one. The process is long and not really transparent, because the two displaying systems were designed in completely different times for different hardware and with different security concerns in mind, therefore the X11 clients (all the software that was ever made or ported to Linux) are very much incompatible with Wayland. For backwards compatibility there’s Xwayland, which provides full blown Xorg server running on top of Wayland compositor with all the things X11 app requires. Until now, Firefox, even though had its Wayland backend as WIP feature (possible to activate with environment variable MOZ_ENABLE_WAYLAND=1) it defaulted to Xwayland on Wayland sessions. It now uses native Wayland backend by default providing better efficiency, DPI scaling, touchpad gestures etc
I’m not an erudite so feel free to correct me c:
Wayland is a new implementation on how your system draws windows and components in your computer (I’m not sure if it’s responsible for the content) and it tries a different way to do it compared with xorg.
Xorg is the old implementation, and it has been patched to support most of the new features, and Wayland is trying to get the same features xorg has and some extras.
As a Linux user I have noted that sharing screen is more private in Wayland, also I think multi monitor refresh rate was a problem in xorg. One common issue with Wayland is the GPU compatibility, as far as I know Wayland runs better in AMD GPU I think is because of Mesa integration.
Thanks for all the responses. All of them have been so helpful. What I’m getting is that at this moment Wayland can be seen as a successor to Xorg?
Yes, exactly, I think it is pretty clear that the linux community is moving towards wayland. Most distro and desktop environment are all in the process of slowly removing xorg.
For a user: In Wayland programs are supposed to draw their own title bar. Java aplications and old applications must use a backwards compatibility layer that can cause flicker and bad font rendering. The terminology is different (compositor = window manager). Some niche new programs may only run on Wayland. Wayland hasn’t been adopted by BSD (AFAIK).
For a programners: Wayland has more modern, tidy code, but not all toolkits support it natively and few are easy. If you code exclusively for Wayland, a lot of users won’t use your program at the moment.
Java aplications and old applications must use a backwards compatibility layer that can cause flicker and bad font rendering.
There have been efforts to provide better support for Java applications on the Wayland. For instance, the OpenJDK project has been making progress on implementing native “pure” Wayland toolkit integration not dependent upon XOrg/X11 or XWayland.
but not all toolkits support it natively and few are easy.
There have been significant developments in providing native support for Wayland in various toolkits. For example : Clutter, GLFW 3, SDL, GTK 3.20+, QT5+, EFL, Slint, Iced & OpenJDK. Just to name a few.
While it is true that not all toolkits have full native support, ongoing work is/has largely shifted towards much better Wayland support.OpenJDK has Project Wakefield going on to address Wayland support for Java applications.
I asked chatGPT what Wayland is since the article contains no explanation
In this context, “Wayland” refers to a protocol and a display server protocol used in Linux operating systems. It’s an alternative to the more established X Window System (X11). The article highlights that Firefox version 121.0 has integrated support for Wayland by default, indicating that the browser can now utilize Wayland’s capabilities directly on modern Linux desktops without relying on XWayland compatibility layer, thereby enhancing performance and compatibility with the native display server protocol.
Have they fixed the copy+paste problem from the Firefox address bar under Wayland in KDE plasma yet? I’ve been holding off switching to Wayland in my Plasma desktop because of that one Firefox issue.
Edit: Nope still broken: https://bugzilla.mozilla.org/show_bug.cgi?id=1791417
It’s been reported and easily reproduced for more than 3 years: https://bugzilla.mozilla.org/show_bug.cgi?id=1717305
So should I remove the environment variable?
Yes, you should.
Nice now we just need GNOME search working :)