With X.org being in maintenance mode, with the process of replacing it with Wayland accelerating pretty quickly now, a lot of projects using X.org are looking for ways to prepare for the future. Alpine Linux, a distribution focused on musl, BusyBox, and OpenRC, also wants to reduce its maintenance burden for X11 applications, and so Alpine Linux maintainer Ariadne Conill has come up with something interesting.
Wayback is an experimental X compatibility layer which allows for running full X desktop environments using Wayland components. It is essentially a stub compositor which provides just enough Wayland capabilities to host a rootful Xwayland server.
It is intended to eventually replace the classic X.org server in Alpine, thus reducing maintenance burden of X applications in Alpine, but a lot of work needs to be done first.
↫ Wayback GitHub page
It’s nowhere near done and most likely contains massive amounts of bugs and issues, but the seed has been planted. Wayback will make it possible to keep running X11-based desktop environments even in a full-Wayland environment. This may be necessary in case you need a specific feature not yet available in the Wayland version of your desktop environment, or if your desktop environment of choice simply isn’t going to move to Wayland at all (due to lack of maintainers or whatever).
It’ll also be a boon for retrocomputing, especially as over the coming years and decades unmaintained X11 desktop environments become become ever harder to keep running on modern Linux distributions. While X.org as it exists today certainly isn’t going anywhere any time soon, it will, eventually, stop working properly on Linux distributions who don’t ship it by default anymore, and it’s awesome to already have the beginnings of a project to address this problem.
I tried wayland again by installing some of the “waylandest” distros inside virtual machine. Basically after changing resolution to much higher one, everything grinds to a stable 5fps (host CPU is Threadripper 7960X). It’s pathetic that open source solution doesn’t even work with another open source solution correctly. As expected, Xorg workerd perfectly well and I didn’t experience any frame drops, slowdowns or video glitches. Is something that doesn’t even work correctly trying to replace X, which worked flawlessly in this case? When Wayland works I’ll happily drop X11, but as of now Wayland doesn’t work and situation keeps repeating every month. I even tried Factorio on my laptop (HP Victus with RTX) where Wayland works “better”. After changing to X11 just to test (I was running Wayland before), magically all stuttering of graphics and sound disappeared …
What VM are you using? Sounds like a driver issue. Try using a Live CD and I think you’ll have better results, that would at least prove that the problem is likely VM driver related.
Good morning Thom. Nice summary and a good start into the day.
Please can someone explain with an example, what Wayback was going to do which XWayland is not going to to do? I understand that Wayback is using XWayland?
Also, I feel this should have been the plan from the begin. We all would have been running Wayland for years now then.
Personally I am most interest in: XFVB and Java SWING UI. Would that work (eventually) with Wayback?
> what Wayback was going to do which XWayland is not going to to do? I understand that Wayback is using XWayland?
From what I gather from the description, it’s not a replacement for xwayland, but a wayland compositor that has been reduced to the minimum that is necessary to run xwayland.
So I was this going to help with my “X11 desktop”? I am honestly lost here.
Wouldn’t this be the option to keep running your x11 desktop with minimal overhead if xorg support were to be axed (either by distro or graphics vendor)?
Is this going to help with my “X11 desktop”?
The answer is yes. Wayback is about running a rootful XWayland session (almost a full X11 implementation) atop a minimal Wayland compositor. With rootful XWayland you can run X11 window managers and X11 desktops inside XWayland and use Wayland to render it to the graphics card.
With this Wayland mostly replaces the DDX part of X11 and XWayland provides the DIX part of X.org
Thank you!
> what Wayback was going to do which XWayland is not going to to do?
AIUI: you need an existing compositor to run Xwayland.
An X server is a display server: it can run on its own, and apps can output to it, with nothing else running. When one program runs early on and provides windows furniture, that’s a window manager.
If that program (or associated ones with a uniform look and feel) also provides UI functionality so you don’t need to use a command prompt, such as tools to launch apps, see and manage files, edit text files, mount and unmount media, and maybe things like see the time, adjust system settings, do calculations, etc. then that is called a *desktop environment.*
Wayland is not like this. Wayland is a protocol. There are no separate display servers. What under X is called a “window manager” usually talks Wayland and so other apps talk directly to the WM over Wayland in order to display stuff.
There’s no bottom layer program, no server. The WM *is* the display server. Without a WM you can’t run anything.
That means you *need* a Wayland compositor to run anything else, such as XWayland.
This means that you can’t use an X WM to be the compositor, because the layer needed to run the WM is not there until another different app provides the Wayland environment, and then it’s the WM and your X WM can’t take over. Remove the compositor, there’s no GUI.
This is not a question of whipping out the tablecloth from under a fully-laid table. It’s removing the table.
So what this project looks like is a compositor that isn’t a WM and so enables Xwayland to run full-screen as the root window, letting you use an X WM as your desktop with no Wayland WM.
It sounds of great interest to me because whereas there are about half a dozen X desktops and environments I like, some I’ve been using for decades now, there is not a single Wayland environment I would be willing to use.
(I copied my own answer from HN since the same basic question was asked there, too.)
Yes. I’d be very happy to be able to keep using openbox. =)
You may like Labwc on Wayland. I used it as the compositor to run XFCE on Wayland (panels, terminal. launcher, and Thunar for example). It worked pretty well though I did not use it long.
Thank you!
@Andreas
Xwayland is for running X11 applications on a Wayland compositor.
Wayback is for running X11 window managers instead of a Wayland compositor but still “on Wayalnd”. Or that is what I understand at the moment at least.
I do not think that it makes X11 on Wayland work any better Not that I find that bad now. The only Swing apps I use are the IntelliJ IDEs and BurpSuite. Both work great for me in multiple Wayland compositors.
Thank you! I think I get it now better though I more and more think that Wayland should have provided that first, not last.
Anyway, BurpSuite and IntelliJ max SwingUI out. So I need to give it a try based on your feedback.
Best and cheers!
Is there something like XWayland but the other way round? Like to run Wayland-only apps on an X11 server? This might become relevant in the future especially for BSD/Illumos users.
The closest you are going to find is probably Cage:
https://github.com/cage-kiosk/cage
You run cage on Xorg and your Wayland app in Cage.
You can also run Wayland on BSD (except maybe OpenBSD).
What is the benefit of using this over just plain old Xorg?
Xwayland will be maintained until 2040 at least. That is the minimal required for even RHEL11.
Xorg will be maintained by Red Hat until at least 2035 and by others for probably two decades after that.
Xorg not only shares a lot of code with Xwayland but it also uses libinput, DRI, KMS, and Mesa. These are all required for Wayland and so will be maintained. Keeping Xorg going will not be hard.
So, if my goal is just to run a legacy window manager. Why not just run Xorg?
And, wouldn’t Cage already do what Waynack is intending?
So, I will be able to run CDE forever and ever?
Oh come on!