Remix.run Logo
wmf 9 hours ago

For people who absolutely have to have X11 this looks like a better plan than XLibre.

sho_hn 9 hours ago | parent | next [-]

It depends on whether their reasons for "absolutely having to have X11" hinge on actual compatibility with e.g. old binaries or wanting full remoting without streaming pixels.

This project would satisfy people who really actually want Wayland, but were upset by transitional pains or interactions they had around it and want to stick with X11 just-cause while getting some similar benefits. This arguably does describe some people but not sure it's a whole lot in the long run.

But who knows, maybe this could also make an easier to maintain XWayland some day, or a nice basis for implementing more esoteric X11 bits down the road vs. the older Xorg codebase.

PunchyHamster 2 hours ago | parent | next [-]

From my perspective X just got to the point where it just works for me few years ago and Wayland is just introducing more issues than it solves (to be clear it solves no current issue for me, only one that I think might be better for me is handling different refresh rate displays and maybe fractional scaling... and that could probably be done within X11)

Like, why simple "copy the screen" got suddenly so complicated? Why every WM suddenly needs a bunch of features that before were just handled by display server, where they belong ? Why some(most) WMs handle title bars but GNOME doesn't ? Why someone decided title bar management is optional to window manager ?

X11 might need to go but Wayland have learned no lessons from it. It's just knee-jerk "if X11 done it this way, let's do it differently"

vidarh 8 hours ago | parent | prev | next [-]

I don't "actually want Wayland" because I want the simplicity of X and the ability to run my own wm, but I have no need for legacy X11 requests, for some values of "legacy". Whether this will become viable for me remains to be seen, but I need very little from my X11 server.

mathstuf 5 hours ago | parent | next [-]

Look into river. It has the window management and keybindings able to be offered by other tools (I have an idea to implement one using XMonad's layouts).

It also vastly improved battery on my Dell Pro laptop. 58% battery used in 7h45m (light compilation day, but no suspend).

mikkupikku 22 minutes ago | parent [-]

That sounds cool, but TBQH the last thing I want to do is make myself dependent on some obscure piece of tech I've only heard of once before (just now.) My plan is to keep running X as long as I can manage to make it run. If river finds traction and is well known to me in 10 years then I'll consider it then.

This is one of my big problems with Wayland; the fragmentation of Wayland imposes an unacceptable cost to picking the wrong DE, whereas with X all my tools for X still work regardless of my DE.

sho_hn 8 hours ago | parent | prev [-]

Fair! Though I'm actually not sure I understand what you mean with simplicity. X11 is so vastly more complicated than Wayland.

vidarh 8 hours ago | parent | next [-]

For the server/compositor.

Not for the client, or if you want to write a wm and is forced to write a compositor.

And actually I'm not even even convinced about the server if talking about a minimal server like this that insists on DRI/GBM, and ditches all the old rendering cruft.

LeFantome 4 hours ago | parent | next [-]

Well, you are not really forced to write a compositor these days as there are libraries that do all the heavy lifting for you.

Check out Louvre for example. Or Smithay if you like Rust. And if you want a bit more depth, there is wlroots of course (or the hyprland version). It is not really any harder than writing an X11 WM.

kelnos 2 hours ago | parent [-]

wlroots and smithay (I'm not familiar with louvre) do a lot of the difficult work for you, that most compositors will do without much variation but there's still a lot that compositor writers still have to do. It's still a significantly larger task than, for example, writing an X11 WM.

(Well, writing an X11 WM that also includes a built-in compositor is a bit more than just the WM, but I'd say still less than writing a Wayland compositor using wlroots or smithay. For example, xfwm4's compositor is around 5300 lines of C, which is... not nothing, but not crazy either.)

dismalaf 4 hours ago | parent | prev [-]

So build on top of wlroots or something. DWL for example is super small...

mikkupikku 9 minutes ago | parent | prev [-]

What's the simple way for a bash script to get the title of the currently focused window? In X this is easy and the bash script will work with every DE. In Wayland you have to write a different solution for each compositor/DE.. Prove me wrong, please.

It shouldn't be hard, all I want to do is fuzzy match window titles to named audio streams in pipewire, but "Oohh noo that's a security flaw!" say the patronizing Wayland developers who care more about making their own lives as developers simple than supporting basic desktop functionality.

Qwertious 7 hours ago | parent | prev [-]

Wayland made writing WMs needlessly hard, and the benefits of Wayland were frankly not real - most of the reasons given in 2011 were patched in to X11 later. All the Wayland rewrite got us was a situation where Wayland is both bleeding-edge and obsolete simultaneously. Say what you like about X11, but by the time people unironically pushed for mass Wayland adoption, X11 was stable and boringly so.

The future of WMs is, IMO, Arcan - https://arcan-fe.com/ - but that's an ambitious project and I don't blame the main developer for deliberately going out of his way to avoid advertising it before it's ready. In the meanwhile, Wayland and X11 both more-or-less work with the occasional major pain in the ass.

sho_hn 6 hours ago | parent | next [-]

> "most of the reasons given in 2011 were patched in to X11 later"

This definitely doesn't match my memory, and I was there :) Most of the good reasons remain unavailable in X11 to this day.

There definitely were some attempts to advance X11 that post-date Wayland, most notably the proposals by Keith Packard, but they never got much traction.

shevy-java 5 hours ago | parent | next [-]

> This definitely doesn't match my memory, and I was there :) Most of the good reasons remain unavailable in X11 to this day.

You two here don't mention any of the reasons. It is hard to discuss this when there are no specifics, so what was needed, and what was not added?

yepguy 5 hours ago | parent | next [-]

The 3 justifications I remember for Wayland were security (isolating windows from each other), multi DPI, and eliminating tearing. All are now features of XLibre.

sho_hn 4 hours ago | parent [-]

This is all playing a bit fast and loose with the details.

The "isolating windows from each other" stuff in Xlibre for example is the Xnamespace extension, which requires a static config file up front and lets X clients within the namespace interact as before. This may have some utility for specific scenarios (dunno, kiosks maybe?), but is nothing like Wayland's default security model.

Similarly, enabling TearTree in the modesetting driver and having another backbuffer in the driver is a huge crutch vs. having a proper architecture where the compositor can own presentation timing. For one it makes adaptive sync/VRR a lot trickier.

These things are overall not equivalent.

uecker 39 minutes ago | parent [-]

It isn't clear why any of this would require a rewrite.

mathstuf 5 hours ago | parent | prev [-]

Per-display DPI settings. No snooping on input without permission. Awareness of the lock screen (the compositor can know that the lock screen is active and provide alternate keybindings instead of having to configure the lock application as well). Locking is not blocked by context menus being open.

I ran XMonad for 15 years, but recently switched to river and am loving it.

maxdamantus 2 hours ago | parent | next [-]

> Per-display DPI settings

fwiw, Xorg already had this, since you can set the DPI for each display through RandR/xrandr. In both X11 and Wayland it's up to the toolkit to actually detect the setting and rasterise accordingly.

Wayland actually went backwards in this respect by using "integer scales" (eg, 1, 2, 3) instead of fine-grained DPIs (eg, 96, 192, 288), so using a scale of 1.5 would result in downscale blur (toolkit sees scale as 2, then the compositor scales it down to 75%), whereas in Xorg you could just set the DPI to 144, and the toolkit could theoretically render at the correct resolution. As far as I know Qt was the only toolkit to actually do this automatically, but that's not X11's fault.

Wayland has at least since fixed this in the form of "fractional scaling" [1], but here's [0] an old thread on HN where I complained about it and provided screenshots of the resulting blur.

[0] https://news.ycombinator.com/item?id=32021261

[1] Doing some quick searching it seems like this is still unsupported in Gtk3/Gtk4, maybe planned for Gtk5? Apparently Firefox has only just added support (December 2025), 3 years after the fractional scaling protocol was released. Seems ridiculous to me that Wayland failed to get this right from the start.

kelnos an hour ago | parent | prev [-]

You can do per-display DPI just fine on X11 (through xrandr), it's just the major toolkits don't support it. GTK, for example, reads a single global DPI value from XSETTINGS; there's no reason why it has to be that way.

The annoying thing about the other things you mention is that they honestly are not that difficult to fix.

The X server can throw an error (or just silently ignore it) when one client passes the window of another client and button/key events in the mask to XSelectInput(). And the Xinput2 bits that allow for receiving all key and button events can be changed to only send events destined for windows in the same client. There: input snooping is fixed.

Lock screen awareness can be fixed with new requests/events in the MIT-SCREEN-SCREENSAVER extension (or, if that's fraught, a new extension) that allow an app to create a "special" lock-screen window, which the X server will always stack on top, and send all events to. (That new functionality should probably allow for child windows and popups for input methods as well.) This is honestly not hard!

And yes, some applications will break when you do this. But I cannot see how that's not significantly better than creating an entirely new display protocol that everyone has to port to.

There are other issues with X11, of course, mainly in the graphics pipeline (e.g. the compositor should really be in the X server), but it's hard to believe these things couldn't be fixed. It feels like no one really wanted to do that: building something new from scratch that (in theory) didn't have all of the mistakes of X11 would be more fun, and more rewarding. And I get that, I really do. But Wayland has created so much work, so many thousands (tens of thousands? hundreds of thousands? million+?) of developer-hours of work for people that maybe could have been better spent.

So I think Phoenix is a great idea. It's basically "X12"[0]: removing the old cruft and making breaking changes to fix otherwise-unfixable problems. I imagine most modern, toolkit-using X11 applications would work just fine with it, without modification. Some -- perhaps many -- won't... but that's ok. Run a nested, rootless X11 server inside "X12" if they can't be fixed, or until they're fixed.

[0] Yes, I know that an X12-type thing was considered and rejected (https://www.x.org/wiki/Development/X12/), but I still think it's a better idea, after a decade and a half of Wayland still not being able to support everything we need to port Xfce's components and maintain all of their features.

PunchyHamster an hour ago | parent | prev [-]

At around that time X.org worked entirely fine for me, sans some NVIDIA driver config I had to set up in /etc

few years after even that wasn't required.

Yeah it missed some features I could theoretically use in 2025 but I didn't had different DPI/refresh rate displays back then and those could probably be put into X11 protocol just fine

PunchyHamster an hour ago | parent | prev | next [-]

I think the problem is that people wanting to build that and being in position to (being paid for by their employer), are fed up with X11.

It learned no lessons from X11. It made most things harder to write and pushed more things that really every WM needs and doesn't care much to implement differently to WMs making them harder.

For example, stuff like "WM need to manage raw inputs, so they can have more power over them" is cute on paper but in reality most of them don't want to because there is no benefit to reinventing that part. Sure, that part in X11 could be better, maybe it should have better interface for WMs to configure common options in common way without getting into input-driver-specific options, but that just required rework of the idea, not throwing it into the bin and replacing with near entirely worse framework that wastes everyone time.

mikkupikku 13 minutes ago | parent | next [-]

> I think the problem is that people wanting to build that and being in position to (being paid for by their employer), are fed up with X11.

I think one of the intrinsic problems with relying on developers being paid by their employers is they can easily become personally disinvested from the thing they're maintaining; they get paid well, the day-to-day grind gets stale, they get interests and hobbies other than computing but keep working on the thing because it's their job. Eventually they find that just buying a Mac is an easier lifestyle at home, and gradually maintaining X transforms from something they do out of passion for the project into something which is just a job. So they look for ways to make their job easier, hit on the classic "instead of maintaining old thing it'll be more fun to make our own", and because they are now untethered from the needs of real users they only need to make sure the new thing supports the bare minimum to keep their employer happy. They no longer care how real users feel, any use case that isn't required in the checklists approved by management get deliberately abandoned. So we end up with Wayland lacking common sense desktop features in demand by users for years because it's simply not convienent for the developers who are now dispassionate 9-5ers.

I prefer to take my chances with enthusiasts keeping X working on shoestring budgets. Maybe a few more years of development of coding models will make ongoing maintenance easier going forward and I'll never have to switch. I'm willing to make that bet. If it turns out that in 5 years I am forced to switch, at least by then Wayland will be five years more mature, and maybe my cynicism will even be proven wrong by then and Wayland will be good by then (but I'm not holding my breath for that.) Anyway, I have nothing to lose by using X as long as humanly possible.

szundi an hour ago | parent | prev [-]

[dead]

seanw444 5 hours ago | parent | prev | next [-]

First time I've heard of Arcan. Sounds intriguing.

bigyabai 6 hours ago | parent | prev [-]

IMO, if you have to rewrite a display server implementation then you're already proving all the protocol advocates right.

shevy-java 5 hours ago | parent [-]

Why? People complain that the YAML specification/protocol is too complex. This may be, but I found using YAML much, much easier and nicer than XML. So to me these two things are not necessarily interconnected. You can have a great implementation and a crappy protocol; but also a great protocol and a crappy implementation.

shakna 3 hours ago | parent | prev | next [-]

Until Wayland actually has an accesibility story, X is really the only choice. Don't think most grassroots projects will have that.

singpolyma3 8 hours ago | parent | prev | next [-]

Long term if x11 starts having issues then probably https://gitlab.freedesktop.org/wayback/wayback will be it

adastra22 4 hours ago | parent | prev | next [-]

I’m not sure this satisfies X11 needs without remote display capability.

reactordev 9 hours ago | parent | prev | next [-]

My rpi dashboards are gonna love it

c-hendricks 6 hours ago | parent [-]

Anything special about Raspberry Pi's that require X11? Raspberry Pi OS defaults to Wayland nowadays, and there's specific kiosk Wayland compositors like Cage (https://github.com/cage-kiosk/cage).

Tho admittedly kiosk-wm (https://github.com/JOT85/kiosk-wm) is much more succinct.

PunchyHamster an hour ago | parent [-]

less RAM and power usage

superkuh 9 hours ago | parent | prev | next [-]

The people who absolutely have to have X11 like myself usually have reasons. It sounds like currently a lot of those reasons for using X11 would prevent using this X server. Like reliable non-fragmented and widely supported screenreader protocol. Or the ability to do keyboard and mouse sharing.

>Applications will be isolated from each other by default and can only interact with other applications either through a GUI prompt asking for permission, such as with screen recorders, where it will only be allowed to record the window specified or by explicitly giving the application permission before launched (such as a window manager or external compositor).

nixosbestos 7 hours ago | parent [-]

Accessibility? Sure. Everything else? Nah, I'm sorry. There are countless ways to do remoting with Wayland. There are countless ways to do kb+mouse sharing.

MrDrMcCoy 2 hours ago | parent | next [-]

I love Wayland a lot, but as far as I can tell the available remoting solutions still cannot enable a headless LXC container to serve a KDE Plasma Wayland desktop. I spent the last couple days trying to cobble some solution together for it and failed miserably. If you know a way, I would be most grateful :-)

lelanthran an hour ago | parent | prev | next [-]

> There are countless ways to do kb+mouse sharing.

Wait, what? I tried this last year. I didn't find any way to do this that wasn't dependent on the WM.

superkuh 6 hours ago | parent | prev [-]

>There are countless ways to do kb+mouse sharing.

You realize that's worse, right? And to be clearer: core Wayland protocol does not have countless ways. It has zero.

Instead of a single protocol with the strong X11 reference X server the wayland compositors pick and choose between libinput, or libei, or libportal with the InputCapture PR, xdg-desktop-portal with the InputCapture interface, some I've probably missed, or maybe you have nothing at all (weston). It's a gamble if your choice of desktop environment and it's wayland compositor's non-core wayland protocols will match up with those the developer for $software chose. On X11 linux everything that works somewhere works everywhere. With the various waylands if you stay within your desktop's ecosystem you'll probably not notice, but go beyond it and you will.

Each wayland desktop pretty much runs it's own compositor with it's own set of third party libs because the wayland core protocol spec is very minimal. I would say incomplete. ref: https://wayland.app/protocols/

GaryBluto 8 hours ago | parent | prev [-]

People who want to use X11 are likely to be the same people using older software and hardware, which this doesn't support.

vidarh 8 hours ago | parent [-]

I don't use any old hardware, and I have argued for a new X server following almost exactly the steps this project outlines.

nixosbestos 7 hours ago | parent [-]

Good news. The devs of x11 agree and made a replacement called... Way... Oops

Qwertious 7 hours ago | parent | next [-]

"The devs of x11" is a wide category, considering how many X11 devs weren't even born when X11 was first written. Plenty of X11 devs objected to Wayland and tried to patch X11, but when half the devs decide they want to write a replacement and put the original into maintenance-mode, there's not much you can do.

bigyabai 6 hours ago | parent [-]

> there's not much you can do.

You could fork it. X11 hasn't shipped a major release since 2005, the likelihood of a complete overhaul making it upstream was slim to none even in 2009. X11 developers were better-off focusing on stability, and the Wayland devs moved on. There was no conspiracy to kill either project.

ablob 34 minutes ago | parent [-]

Forking a project when the issue is that half of the staff left the project does nothing to alleviate the staffing issue, does it?

PunchyHamster an hour ago | parent | prev | next [-]

and failed to learn any lesson from X11

vidarh 7 hours ago | parent | prev [-]

Yeah, no, the X11 devs made pretty much all the wrong tradeoffs for me.

nixosbestos 7 hours ago | parent | next [-]

K bro. K.

bigyabai 6 hours ago | parent | prev [-]

I wonder why Valve disagrees.

yjftsjthsd-h 4 hours ago | parent [-]

Valve ships a Wayland compositor that just runs XWayland for apps and doesn't even expose the Wayland socket by default. I'm really not sure how we're supposed to count that.

mikkupikku 4 minutes ago | parent [-]

Valve being eminently pragmatic, as usual.