XLibre is a joke. They're making changes for the sake of changes: for example, commit aefde9 strips out vendoring in an ad-hoc, incomplete fashion (introducing a minor spacing bug in the process); and commit aafd986 replaces `int` with `unsigned int` (instead of `size_t`), failing to properly fix the bug that the compiler warnings identified (albeit, also removing an unrelated C footgun along the way, so this does look like a bug fix). The main author has a history of cowboy commits: 533c45e (which made it into mainline Xorg before he got kicked out) straight-up prevents hw/xfree86/os-support/bsd/arm_video.c from compiling, so it's clear there's no actual testing taking place.
I doubt the XLibre authors understand the X security model, either – they never do, in forks like this – and they've alienated most of the security researchers who might otherwise clean up after them.
Phoenix and Wayback are much more interesting projects, in my book. Wayback's designed to actually work, and I expect it to be production-ready much sooner; but I expect Phoenix to be the more technically interesting project, since it's deliberately breaking from the X11 spec.
Programmers aren't good at checking if the name is taken. We've done this particular one before. Phoenix (Firefox) had to change names because of Phoenix Technologies, then again because of the Borland Firebird Database.
If you are not going to implement X11 drawing ops and XRender (which I, and many others, still use heavily), what's even the point? Any 'modern' program that only does client-side rendering already supports Wayland. AFAIK GTK 3 doesn't even support DRI on X11 unless you somehow trick it into using the abandoned OpenGL Cairo backend, but that's not modern enough apparently.
Pretty interesting approach to make an X server that is essentially "Wayland-like" (merging display server/compositor by default, isolated apps by default, no remoting of GLX, dropping legacy protocol features to the point of breaking compat with the core protocol, etc.). Not sure who this is for, but by itself it looks like a fairly reasonable set of choices.
> by itself it looks like a fairly reasonable set of choices.
I have not tried this myself, so I can not speak from experience,
but if they have removed features that people used, then they are
in a similar situation as wayland. So I don't see what the difference
then would be. Perhaps your analysis was also incomplete?
Tangentially related... Is it just me, but is Wayland still lagging behind X11?
From things like window placement, night light, etc. Things seem to work just out of the box in X11, and there are always issues in Wayland.
(For me this is specifically on Fedora, and I always switch back to X11 from Wayland.)
Funny, the other day I started writing an X server of my own. While I appreciate and welcome this work, I still use and write software that makes use of old X draw calls, which I intended to incorporate into my server, unlike the author of this work. So I'm glad to see my efforts have not been made largely redundant!
I'd at least consider moving older draw calls into an xlib replacement. Not all of them are suitable for that, but e.g. sufficient font handling to beat Xorgs server side handling requires the Render extension plus ca. 1500 lines of C for a basic TrueType renderer, or half that in a higher level language, or just use FreeType which is a dependency for most X clients anyway.
This is a great project! I like and use Wayland but the portal protocols and extension mechanism does leave a lot to be desired. Wayland is still quite a way behind Windows and macOS in terms of what productivity users need
An X11 rewrite with some security baked in is an awesome approach. Will be watching!
I don't really understand what is supposedly missing in Wayland for productivity users? At work I have been using gnome with the wayland backend for years at this point and I can't really figure out anything that's missing.
Multiple screens support is listed as non-goal. Would that prevent its usage with window managers which support virtiaul desktops? I am i3 user and it is a critical feature for me.
As others have already mentioned, the continuous multi-monitor(Xinerama) was an afterthought. A good news is that, by design, it’s actually pretty easy to add in the later steps.
This is the kind of initiative I’d prefer to see from X preservationists. Great job, I hope it succeeds. I prefer Wayland, but there’s still a place in the world for X; it just needs new dev teams to shoulder the burden.
As the application author you can set the release mode in the build script so that the release flag looks like `zig build --release` instead, and the user doesn't choose the optimization mode.
As a user you can pass `--release` to `zig build` to request release mode. If the application doesn't want to pick for you, you'll get an error and then you can pick for yourself.
In this case, it looks like the author of Phoenix wants to choose ReleaseSafe as the official release mode of the application.
Bit of an observation, but I've noticed that there's been quite a few pragmatic projects started in Zig. Bun vs Deno comes to mind (one focused on DX, the other on security), and now this vs Wayland. Not to say that designing something properly is wrong, just that it tends to throw away a lot of important interoperability.
Cool project I guess, don't see the point but technically interesting. Will be cool to have another modern display protocol/server. I personally would have rewritten Wlroots in Zig or something, but I guess this is more interesting.
I have no idea how well this one works, but I am all up for
more projects that can compete against the singularization
that corporations currently try (see paid developers for
wayland, GNOME and now also KDE). I wonder how much money
would be needed to make the xorg server adapt to the modern
era; I don't even know the featureset that is missing for
this either. But I also know that wayland, after 20 years
(!!!), will never cover those requests users had over tohse
20 years, simply because it tries to cater to a narrow
specification wanted by corporations rather than the people -
so much is now clear (wayland protocol was released in
2008, so it is soon 20 years actually; in a few days we
have 2026, so it will be 18 years).
The name Phoenix is overused. There is an Elixir framework called Phoenix. I think I also heard of other projects with that same name before.
It's a bit like the name 'Apollo'; besides the moon landing project, I know like 2 dev projects called that and also there is a sales SaaS platform with that name.
Surely people should run a search first before choosing a name...
Same author behind https://git.dec05eba.com/gpu-screen-recorder/about/ , the best screen recorder for wayland imo (I had tried other alternatives but none of them helped in recording at 4k 60fps, this worked out of the box).
59 comments
[ 2.9 ms ] story [ 62.5 ms ] threadThis is interesting to me, why would vsync being enabled mean that the desktop compositor needs to stick around for a full screen app?
OP if you're the author I suggest you rename to avoid confusion. Don't name it Rails either haha!
XLibre is trying to advance the existing implementation which Xorg abandoned, whereas Phoenix is writing a new, compatible server from scratch.
0. https://github.com/X11Libre/xserver
I doubt the XLibre authors understand the X security model, either – they never do, in forks like this – and they've alienated most of the security researchers who might otherwise clean up after them.
Phoenix and Wayback are much more interesting projects, in my book. Wayback's designed to actually work, and I expect it to be production-ready much sooner; but I expect Phoenix to be the more technically interesting project, since it's deliberately breaking from the X11 spec.
I have not tried this myself, so I can not speak from experience, but if they have removed features that people used, then they are in a similar situation as wayland. So I don't see what the difference then would be. Perhaps your analysis was also incomplete?
If it also runs Wayland apps, many may prefer it actually.
(For me this is specifically on Fedora, and I always switch back to X11 from Wayland.)
An X11 rewrite with some security baked in is an awesome approach. Will be watching!
What's missing?
https://github.com/marler8997/zigx
https://www.youtube.com/watch?v=aPWFLkHRIAQ
Compared to libX11, it avoids dynamic dependencies, uses less memory, and provides better error messages.
I say let X11 die, bury it, and never let it rise again.
Then we can all focus on making just one display server as good as possible.
As a user you can pass `--release` to `zig build` to request release mode. If the application doesn't want to pick for you, you'll get an error and then you can pick for yourself.
In this case, it looks like the author of Phoenix wants to choose ReleaseSafe as the official release mode of the application.
Phoenix is the name of my hometown, btw.
It's a bit like the name 'Apollo'; besides the moon landing project, I know like 2 dev projects called that and also there is a sales SaaS platform with that name.
Surely people should run a search first before choosing a name...