59 comments

[ 2.9 ms ] story [ 62.5 ms ] thread
> The compositor will get disabled … if the client runs a fullscreen application and disabled vsync in the application.

This is interesting to me, why would vsync being enabled mean that the desktop compositor needs to stick around for a full screen app?

This is a really really bad name. There's already a Phoenix that is well known in tech. https://phoenixframework.org/

OP if you're the author I suggest you rename to avoid confusion. Don't name it Rails either haha!

Are different DPIs for different monitors supported too?
Complements XLibre[0], an active fork of the X11 server from Xorg.

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

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.

First my mind went to Phoenix (elixir framework), then to X (twitter) before it clicked what this was actually about. Some very overloaded names
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.
Phoenix was also the name of Mozilla's browser before they changed it to Firefox
I'm hoping they go with phoenix11 #seewhatididthere
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.
If I could give a comment HN Gold, it would be this comment. 3 times.
We get the window management APIs back perhaps, unlike the eternally broken Wayland ecosystem.
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?

A lot of people would have preferred this to Wayland if it had come much earlier.

If it also runs Wayland apps, many may prefer it actually.

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

(comment deleted)
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.
Is it written in C? If it is and you open-sourced it, someone might port it to Plan 9.
What I meant by this is, if we had a decent X on Plan 9, we would actually use it, because right now remoting into other systems is just VNC...
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.
> Wayland is still quite a way behind Windows and macOS in terms of what productivity users need

What'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.
I disagree. The choices in the Linux ecosystem lead to unnecessary fragmentation and development/packaging nightmares.

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.

Why would a new rewrite be better preservation strategy than a full refactor and refresh of existing stable and working codebase?
It's christmas and not april fools!
But this is a treat, not a silly joke!
(comment deleted)
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.

Phoenix is the name of my hometown, btw.

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.
I finally caved and switched to Wayland 6 months ago or so. Things just work so much more smoothly.
So this can be an interesting option for XWayland?
No active development in the last 4 months?
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.
So … does xterm work? emacs? xfig? ghostview? xload? xev? oclock? xmodmap? xpilot?
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).
Nice! We do need more X servers, since Wayland refuses to incorporate essential protocol elements due to religion.
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...

Seems interesting that they're not using the XML protocol specs for code gen, the way the Xorg server does.