Tech Over Tea - He's Building A New Modern X11 Server In 2026 | dec05eba
Episode Date: January 30, 2026Today we have the developer of both GPU Screen Recorder as well as the upcoming Phoenix X11 server, a new X11 server that isn't built off of a fork of Xorg and aims to add a lot more functionality====...======Support The Channel==========► Patreon: https://www.patreon.com/brodierobertson► Paypal: https://www.paypal.me/BrodieRobertsonVideo► Amazon USA: https://amzn.to/3d5gykF► Other Methods: https://cointr.ee/brodierobertson==========Guest Links==========Phoenix Repo: https://git.dec05eba.com/phoenix/about/Website: https://dec05eba.com/GPU Screen Recorder Flathub: https://flathub.org/en/apps/com.dec05eba.gpu_screen_recorder==========Support The Show==========► Patreon: https://www.patreon.com/brodierobertson► Paypal: https://www.paypal.me/BrodieRobertsonVideo► Amazon USA: https://amzn.to/3d5gykF► Other Methods: https://cointr.ee/brodierobertson=========Video Platforms==========🎥 YouTube: https://www.youtube.com/channel/UCBq5p-xOla8xhnrbhu8AIAg=========Audio Release=========🎵 RSS: https://anchor.fm/s/149fd51c/podcast/rss🎵 Apple Podcast:https://podcasts.apple.com/us/podcast/tech-over-tea/id1501727953🎵 Spotify: https://open.spotify.com/show/3IfFpfzlLo7OPsEnl4gbdM🎵 Google Podcast: https://www.google.com/podcasts?feed=aHR0cHM6Ly9hbmNob3IuZm0vcy8xNDlmZDUxYy9wb2RjYXN0L3Jzcw==🎵 Anchor: https://anchor.fm/tech-over-tea==========Social Media==========🎤 Discord:https://discord.gg/PkMRVn9🐦 Twitter: https://twitter.com/TechOverTeaShow📷 Instagram: https://www.instagram.com/techovertea/🌐 Mastodon:https://mastodon.social/web/accounts/1093345==========Credits==========🎨 Channel Art:All my art has was created by Supercozmanhttps://twitter.com/Supercozmanhttps://www.instagram.com/supercozman_draws/DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase we may receive a small commission or other compensation.
Transcript
Discussion (0)
Good morning, good day, and good evening.
I'm as well as your host, Brodie Robertson.
This is actually the first episode I'm recording of 2026, so there is that.
But that doesn't really matter.
So today, we have the developer of a project known as GPU Scream Recorder on, which you've
probably heard of before.
But we'll talk about that maybe a bit later.
The main thing that we are here for today is a new X-11 server being developed, known as
Phoenix. So how about you introduce yourself and just
we'll go from there? Yeah, so I'm the developer
of GPS screen recorder and now Phoenix. And
the name I go by online is
it's not pronounceable but you can call me Deco Zeba.
Okay, I saw the name, I was like, I assume it's just one of those names
where you just want to make sure it's, because you don't, we don't
want to show your face and all that, so it's just like a name to have.
And it's not going to be taken anywhere.
Yeah.
So,
yeah, I'll also
made some other software, but
it's mostly GPU screen quarter that I'm
known for.
So I guess we'll just get
right into it then.
Why? Why are you
making an X-11 server?
I know that's really broad and we can branch out a lot
from there, but just at like a
high level, why start the project?
Right, so in almost all of the project that I've made, I've had issues with Wayland
because of restrictions.
And the reasons are not technical, but because of the decisions that they have made to
design the way like compositors for their own, they only, they mostly only think about their own
applications and the style of applications that would fit their desktop and not the general
applications that might need to do something unusual.
Often the case, for example, if you make some application that looks like an application
that was on Windows, that won't really work that well on Wayland.
So I tried to make my own.
Will you go on any further?
Yeah, for example, in GPS screen recorder, it's the,
It's time to look like NVIDIA shadow play, and it's a full-screen overlay.
It's transparent.
And for example, in the Wayland Protocol, it says that a full-screen transparent overlay,
so I'm not allowed.
The background has to be black.
So I don't want a black background for the window.
I want to see what's behind it.
Right.
You want it to be like Shadow Play.
You want it to appear over the game.
I actually have another similar idea to this, which doesn't work properly.
on Wayland.
I don't know if you've ever played Path of Exile,
but for that, there is a really common tool that people run
called Awakened POE Trade,
which is a trading overlay,
which tells you the prices of items and things like that.
On X-11, works great.
On Wayland, thankfully, they have a fallback
where it can run the overlay as a web browser window,
so it's just in the window to the side,
but the overlay part of it just doesn't function at all, like, at all.
Yeah, so for example, in GPS screen recording case, it runs as an X-11 window on the Wayland.
And it happens to work in some composters, but it's not really specified how X-11 windows should behave.
So it works on KD and Gnome, but not on Cosmic, for example.
Right.
And Cosmiss is not doing it wrong, just that it's not, it's undefining the protocols, but it should we do X11 windows.
so it doesn't work properly.
And there are also other issues with,
if you want me to mention all of the issues,
but there are too many.
We have plenty of time.
Yeah, so if you want to display the next 11 Windows,
specifically, full screen on one monitor,
it doesn't really work that properly on Wayland.
I've seen these examples.
For example, if you try to run a D-Mew or application like that on Wayland,
it won't display properly.
So I do a really bad, ugly hack on Wayland
when I try to display it on the focus window monitor.
Like I use instead of, because I need to know the cursor position
to know which monitor is focused.
So I don't use Wayland for that.
Instead, I look at the Linux DRM API.
Now look where the cursor plane is, like the graphics,
where it's displayed.
And you don't need root access to do that,
which is funny.
So you can get the first position on Wayland
without any root access,
but the Wayland Protocol doesn't give you access to that.
I did, wait, I had no idea that was a thing.
Okay, that seems like a obvious oversight.
Yeah, but it doesn't work in all cases.
for example, if before some months ago or early in that,
for example, in KD, when you enable the VRR,
it disabled the hardware and cursor plane.
So it draws the cursor directly on the monitoring instead.
So you can get the position then.
So in that case, I had to do another hack where, like I create the next 11 window.
That's not full screen.
In that case, it will, most cases on Wayland,
composites on the perfect monitor.
So I just freight it quickly and then get the position of the window to know where the focus monitor is.
Right. Right.
Yes, and then there are also other things I need to do in my application.
For example, I need to get the focus window to put the recorded video in a folder with the name of the game.
So you can automatically sort the games that you record.
And that's not possible, as you know, on Wayland.
So I need to use the instead of X-11 to do that.
And hopefully the focus window is in X-11 window.
That works right now because Proton runs as in X-11 mode.
But if it's...
Yeah, I'm going to say that that's a toggle that you can now enable.
Yeah.
So that will be a problem in the feature.
But you can do that on Wayland in not only.
There is a protocol for that, but it's only implemented for real routes and
Hypland and some others.
That's usually the case.
And also one thing in my application that I want to do is, like on Wayla,
you can display a full screen overlay and like a specific position,
things like that, but it doesn't work and done.
And the same for my notif.
that I have I custom notifications because one thing about this is a bit troubling
when you're tight to record with the desktop portal is when you're recording it's
enables notifications usually on some wayland composters so instead in my own solution I have my own
notifications that that always display and I want them to show a specific position but
But Gnome doesn't want you to make custom notifications.
So they don't allow you to put the window wherever you want.
So you're basically in a position where you have these hacks in places where you can have them.
But the experience for a user is going to be different on each of these different compositor bases.
Yeah, so I end up using X-11 in all cases because of that, and then that works better.
So I'm forced to do that to do that.
Yeah, and there's a major issue is even if it could work on Wayland, all of this,
I can't still use it because right now when Proton runs in X-11 mode,
one issue is that if you run a false-spring game and then open another,
window like an overlay on top of that is we minimize the game so yeah so I so I need
to do a hack another hack for that I need to I can't move the focus to the
overlay window instead I have to grab the keyboard you know in X7 you can grab the
keyboard so other windows don't get to focus and then create an overlay
override window so it doesn't get the focus the window the window
but it still has input to the window.
So it has like fake focus.
Yeah, so and that doesn't work correctly with Wayland
because you can't grab the keyboard on Wayland even in X11 mode.
So it works if the focus window is an X11 window.
So I have to test the take if the focus window is an X11 windows on Wayland.
Wayland. And you can't really do that either. So I had to do other hacks for that.
So, okay. If you're on, let's just say KDE, because I'm sure the experience are going to be a mess across
everything. If you're on KDE and you're using GPU screen recorder, is the experience going to be
on par with the X-11, like if you're running on X-11? Or is there still some stuff where even with
all of your hacks, it doesn't work correctly?
For a lot of users, it seems to work as expected on X-11 as well.
Okay.
In the same way that you would expect.
But some features might not work if you use them.
So if you don't use all features, then it will work.
Right, because when I was talking about Phoenix in my video,
I mentioned that you were saying that, like, GPU stream recorder doesn't work properly on Whalen.
And I had a bunch of comments, people.
saying, no, it works just fine on Wayland. It works perfectly on Wayland.
Right. So I guess with all your hacks you have got it to a point where even though it's a mess, like, it works well enough for some people.
Yeah, but they haven't seen the bug reports that I yet, so...
I see. I see.
Yeah, like almost all of them are related to Wayland, so...
Mm-hmm, mm-hmm.
So just for your own sanity is part of the reason why you want to make your own X-11 server.
Yeah, and there was all other issues like this is an issue on both X-11 and Wayland.
But when I'm recording the screen, I don't want, I want to hide the notification that is shown,
but it shows up in the recording.
But that's really not possible on Wayland and X-11 right now if you don't record it.
Windows instead. So as an alternative paper, I have, so you can show the recording status as a
LED net notification on your keyboard, like the scroll up lead. And you can't change this product lead
on Wayland as far as I know. So instead I have, I bypassed the Wayland Compostor and use root
access to change the lead on the keyboard. And that has issues as well. So on X11, I could easily
easily changed it, but it doesn't work on a wayland even with the X-Wailand mode.
So the obvious question that I'm sure you've probably got is,
why not build a Wayland compositor that basically just branches off in a direction that has
everything you need? So realistically, it wouldn't be Wayland. It would be very custom,
but it would have everything you wanted. Right, because in the Wayland, the user experience
it's tied to the compositor in practice.
Like, if you run,
if you want to use my compositor,
you can't use KD,
the KD or Gnome or whatever you like to use.
So that's the issue.
In the case of Cosmic,
you actually can swap out the compositor,
like that window management component.
Most of those now you can't, though.
Gnome, you definitely can't.
KDE, no, you can't.
no you can't but Cosmic you can
it's just not documented
I believe
I believe Victoria Brackenfield did a talk
a few maybe like a year or so back
demonstrating using Cosmic's
like desktop environment
with like Sway as the compositor
and various other things
right
right it's not an issue really
and it's not technically an issue
but because of the way Wayland is designed
well and composites compositors don't end up doing that so
right right
and especially if you're on something like a sway or a hyperland
there's no component to swap out there
so that experience just wouldn't be possible
with this custom thing you make
yeah right
so
I guess the question then becomes
why
build your own thing
instead of taking
what exists with X-Og
and then changing it
into what you want.
Right, so I did
some work in X Libre.
I'm not really
I wasn't interested in XOG server
because I think
it seemed like they have
passed up the development
on that.
Yeah, so I want
so I did get involved a little bit
in X Libre, but the issue was that
they were more focused on
refactors,
and that cost also bugs and things like that.
So like almost all of my committee in X-LIP,
there was bug fixing.
So it seems like it wasn't moving forward to making changes.
Yeah.
So I want to try something new and an experiment.
And also because of there is a large issue in the X-ROS server,
and that's that they handle all of the protocols manually.
like they parse them a protocol code manually and things like that.
So that's a large issue.
So you need to do all of that from scratch to do it properly.
So that's one of the first things I did in Phoenix to parse the protocol automatically.
So Exxel kind of has like a lot of baggage with it where to really start making a lot of changes to it,
you would need to do a lot of additional work
to sort of get it in that direction.
And there's a lot of code there to sift through
to know what is actually wrong.
Yeah, that's correct.
Okay, so I guess then
that sort of takes us into Phoenix itself then.
I'm sure it's going to come up at some point,
but the first question I do want to ask is
why decide to go with Zig?
Because, you know, you could have gone with C,
you could have done Rust like everyone else is doing.
Why Zieg?
Right, so I actually like C,
but I've been invested in Zieg for quite a while now
since very early days,
and I just wanted to try something new
because Phoenix was first also
mostly an experiment to do something.
you. And there are also some features in sync that would allow me to make it better,
like the memory handling plot and automatically being more secure,
like, array out of bounce index checks. And also it also allows me to do that,
the automatically parsing of the protocol directly in the language at compile time
instead of, like, for example, in Wayland and X11, you have in
in x11 we had xcb xcb proto handling these parts of xmlifies and generate cc code from that
the same way in wayland and i didn't want to do that i wanted to have it directly in the language
just compile it not without any x-saps and also that ends up being much simpler it's like
300 lines of code you set of thousands of lines of code in like in x11 wayland
okay so had you tried
any prior, like you said you've been involved in Zieg for a while now.
I assume you have some other, if not important,
just random little projects you've made here and there with Zieg.
I haven't made very large projects,
but I have made some, yeah.
So this wasn't like the first thing you were jumping into with Zieg?
Yeah, it's not the first.
Okay.
I have spoken to some people where it's like,
Like, ah, so I picked up this language and I'm going to write a kernel.
Like, good luck.
You're going to rewrite a lot of the early code, but good luck.
I hope it goes well for you.
And also, sing is not a complicated language.
So, like, even if you, whenever you use it, you can very easily know how to use it
if you have used some other languages.
So it's not an issue, really.
I've never actually tried Zig myself.
what is the actual like
what is I guess
the common selling point for it
I know what the common selling points is
but the reason I use it many
but for example
it can directly include see headers
many modern languages can't do that
and the way it handles errors
is very good
is one of the best language to do that
in my opinion
And also the way you handle memory, even though it's manual, you have all the nice things like the fair, echo the fair, and things like that.
And also the compile time is very nice.
Like you don't have another language to do compile time.
Instead, it's the same language.
It's just runs the compile time instead.
But there are many features of it.
It's just nice.
But the point is that it's not two different from C.
and I like C
There are some things I don't like in C
so it improves on top of that
What is GPU screen recorder written in?
It's C and C++
Okay, okay
So that's
Would you say C is the language you have the most experience in?
No, it's actually C++
Okay
I guess then why not go C++ with the project?
I don't like C++
even
Fair enough
Even though I've used, I've been using it like for like 13 years or something.
And also it's professionally, I don't like it.
I don't think it's a good language.
I think that's the case for most C++ developers.
They don't use it because they like it, but because the other alternativeos are not as great, maybe.
Okay.
Fair enough.
Fair enough.
I know at least one C++ dev that likes it, but I'll make sure to send
that specific section to him
to see what he has to say.
Did he mean a back to trick?
Yes, that's the way.
Okay, you knew exactly what I was talking about.
Look, I don't know if he'll...
Half the time I don't know if he's being serious
or if what he's saying is a joke.
So look, maybe he actually hates C++,
but he certainly...
I think he likes it.
I think he likes it.
Yeah.
Okay, so we have the language
and I guess where do you even start building an X-11 server?
Like, what is the first thing you do?
At least, what was the first thing that you did?
And even maybe before that, like, what was the prep you did to sort of even know where to begin?
Right, so I've been, I had some knowledge before a bit of it about the protocol.
I only did the basic things like connection and authentication and that.
But also when I worked on X Libyan, I looked at XO code before.
I read the protocol and things like that I saw that.
But then I also just looked at the X for Phoenix.
I looked at the X11 protocol documentation.
In there it explains everything.
At least for a core protocol, it explains how everything is
set up and things like that. And also I had to compare it to XEB code and XR code, but usually if you look at
the X11 protocol, it's pretty easy to see. And also you can use a program called X11 trace.
When you run an X11 program with that, it will print out the protocol messages. It sends. So you can see
from that you can learn.
Okay. So where did you begin?
Like, what was your first goal when you started developing the project?
I didn't have an end goal or so in mind, but I just wanted to first get it to display graphics on the window to see first if it was even possible to realistically get it into work.
I always want to see how complicated it was
but then I saw that it's not really that complicated
and yeah to make it work
it's just implementing the protocols
one by one until it works
where is it right now
like what sort of state is it in?
Yeah so it can display some basic applications
and also it can display my own application
another application I have not the GPS screen recorder
So it's missing some input handling and some events and stuff like that.
But like if I add that, then my own application should just work.
So for some applications, they don't really need that much.
They just need to display graphics like using OpenGEL.
They don't even need all rendering things.
And then you just need input and then they work.
So some applications just are simple.
But then there are other ones that need to some older rendering stuff
and some X-11 rendering stuff.
And right now, right now I'm trying to get super tucks to run.
And it is STL2.
So if I get that works, then SL2 applications will work at least.
But here, there are quite a bit to implement.
But yeah, I don't see anything hindering it.
So it's relatively straightforward.
Did you expect it to be so straightforward?
I didn't even think about that.
I just went in and then tried to get the basic things to just play too.
That was the step to see if it was a single.
And then after that I saw that it was simple.
At this stage, how long have you been working on the project for?
Right, so I started on when I was on Rikki.
but in active development is around maybe two months.
Okay.
When you, like, how much has been done in that last two months?
Was it at the point where I was rendering basic applications before then?
Or is that a really recent thing?
Right.
Like when it costs all of this attention, at that point,
point, it can only render the open the DLX Gears app demo, if you know what it is.
Yeah.
And then after that, there's forged so it can render my own applications.
So, like, in just a few days, it was able to display a real application.
So obviously, being out of display, like, basic stuff is cool and all.
But the point where it would be actually usable is when you can go and display,
an entire desktop.
Let's say like a XFC, for example.
How much would need to be in place to make that possible?
So, for example, yeah, if you want to display XFC,
you need to GT applications, and you need the, like, the render extensions,
things like that.
So that's a bit related to what I'm working now.
That's a bit little bit more work.
So if I get, at first I would try to get DVM for example to run because that's what I'm running.
Getting DVM to run is not that hard.
But if you get one, get XFCA, that's a bit harder because even though if I implement everything,
I need to see if everything behaves as expected with a more complicated desktop.
Right.
But it's not that difficult.
It's just how much time I have to focus on this.
My understanding with X-Og is over the years, a lot of, like, subtle changes had been made, like, from the Destim environments.
So I don't know if you're going to run into a point where there's things that exist in X-Sorg that are technically off-spec.
I haven't seen that issue yet, but I have seen, for example, bugs in X-Lib, because it expects Xorg.
Not on a protocol level, but for example, optional data that is supposed to optional.
It expects it to be there, otherwise it crashes.
Right.
Yeah, but in that case, it's not because it expects exactly to XOR, but it expects
like
they thought to be there
that they hadn't
implemented yet at that point
yeah so I might need
implement a bit more than
just basic things to get to work
because of things like that
that was bad.
Now
X hasn't been around for a long time
84
something like that
that sounds about right
over that time
there's been a lot of
a lot of
things, I would say a lot of things
add into X-11
and whilst
most people nowadays
using X-Og in a relatively simple
way, relatively
standard hardware,
my understanding is also a lot of
a lot of things that are supported
by X-Og that nobody
is reasonably using
now.
Yeah, that's right.
So,
like for example, in my own application,
and that I run with Phoenix.
It just only uses a tiny fraction of the protocol.
And that's the case for most applications.
So like if you try to get my games to run, it will be the easiest part
because they don't really use a lot of the protocol.
They usually just want to get the buffer and then display it on the screen and get the input.
So getting games to run will be the first part it will be able to do.
And then, as you said, there are a lot of things that people don't use.
And right now, I'm just implementing extensions of the X11 protocol as I see them.
So, yes, the way I'm implementing, if they set, I don't just start from this first thing and then go down and implement everything.
I just run real applications and then see what they need, then implement those things.
Mm-hmm, mm-hmm, mm-hmm.
So you didn't really have a idea of where to start.
You wanted to just base it off of, hey, I can trace what protocols are being used.
Let's just follow an application and see exactly what that needs.
And then if you don't run into any applications that need something, that can sort of be left somewhere down the line.
Yeah, correct.
Okay, that actually makes sense as a way to sort of guide your direction because
there are these, there are a couple of other X-11 implementations out there,
but the idea of building an X-11 server hasn't been that common of a thing.
There's, um, X-11 minimum, no, I don't remember what it's cool.
There's definitely a few other servers out there.
But the point of trying to get out there is there is there's not a ton of
other examples of sort of how to approach building an X-11 server. You have X-Lorg, which has
tons and tons of stuff in it, but not necessarily everything in that is actually required
for, you know, real applications now, or even possibly real applications ever. Yeah. So,
I think it's much easier than people think, um, at least the core part. Like,
For example, the extensions, not everything is properly documented.
Like it mentions which things are part of the API,
but it doesn't mention how the messages are supposed to look like.
So you have to look at it sometimes you have to look at the X-A-B-X-Ml files instead,
and maybe sometimes in the XR code.
But that's one thing my project Phoenix will improve because it will generate
the protocol from the
parse
so it will always have all of the
implementations, I mean all
protocols documented
so it would be a little bit
easier for others to
get into that.
One thing I'm
kind of curious about is how does
I guess how does
an X server work
if that makes sense?
Like
if I'm trying to run an application
what is the X server actually doing?
Right, so when a client connects to X11,
that's the first thing they do.
They connect to the X11 and then after that,
they want to display a graphics inside a window usually.
And they do that by like, for example,
if they do use OpenGL, the OpenGL creates a buffer,
the GPU drive,
we just that. Then he asks the X11 server to import that. So yeah, the shared file descriptor to the server. And then the
it imports that with OpenGL. And then the driver will ask you to display that and it will display that.
So the communication to the X11 server is not just in the application, but also in the driver. So the drive,
because on Linux, there is no way to, there is no standard way to like share the graphics state that we did display server. Instead, there's a Wayland Way and then there's an X-11 way.
So yeah, it uses a DRE3 extension to that. And then also you want to do things like when the Windows focus, you want to get input then instead of always getting input. And that it does that by sending events to their clients when they're going to.
you move the cursor, for example, and press buttons.
But that's just, yeah, that's the basic thing to set up.
You have the applications.
There are other things that you can do, like, around that, but those are the important parts.
Right.
Okay.
One question I do have to ask about is hardware support.
Like, how was it being handled in X-Og?
And I guess how do you make sure that hardware is actually?
actually going to work with this thing?
Right.
So Linux has a, it has standard for that
the driver's use right now, the Linux DRM API.
And then you have also the Mesa KPM to create the buffers.
And the modern hardware supports that Intel,
AMD and Nvidia.
And Vedia had issues with that before because they want to push EGL streams.
So that's cost some issues in ways.
custom is just in Wayland as you know and but modern Nvidia's but there's yeah there's also
the issue that all the Nvidia drivers which are tied to older and Nvidia GPUs as well because
they can't update to newer drivers so they can't really use that so that's how old are we talking here
I don't know exactly with this but I think it's
Yeah, the 10-meadri version is for, is it 490 or 475?
Yeah, it's earlier than 900 series at least, I think.
Latest supported, you can use 490 would be
last support 900
like 800 series something like that
yeah I think that's correct
so relatively old cards at this point
yeah exactly
there were some way like compost that used EGL stream
before but I believe they're all moved onto MesaGBM
But I want to try to support those old Nvidia GPUs as well, but I don't know if EGL streams works as expected since Wayland Compostel just moved on.
So I assume maybe there was some issues or not.
I don't know.
So I would have to try that.
But yeah, one of the main reasons that I can't support all the Nvidia GPUs is because they're tied to the X-11, I mean X-R-Server, because they use the direct API.
that exposed from the Xero server is not part of the X11 protocol and they are proprietary the drivers so yeah yeah so it just like isn't impossible it's not possible to do that if I if I instead I could support if I like copy the XServe code and then did that but then it would be X4 server right so right and um I again at what point does it
real, like, this is a problem that exists with, what do you call it, the Red Hat's new
Nvidia driver, Nova, that's it.
If you're going to be building a new project, you have to pick a cutoff point for what you're
going to support.
And it sounds like you have a reasonable point where it gets considerably harder to
make that hardware supported.
so unless you wanted to start doing, you know, API reverse engineering to make that happen
or just copy the X-Or code, it seems like a logical stopping point to say,
okay, we're going to support everything after that, which supports the new modern thing.
Right, right.
So, yeah, I put that limitation not because, like, because I wanted to, because, but because
it would be otherwise impossible to do it.
Yeah, so on the AMD and Intel side,
it works with much older hardware,
so at least for that it's good.
So one of the nice things
that I think being open source,
people can actually go and support things
and fix things that they want to.
Invidia, we love Nvidia.
Great company.
At least in recent years,
they've been sort of coming around to doing things better, but it's a video, right?
Like, there's only so much you can do if they were never going to support the hardware properly on Linux anyway.
Yeah.
So, uh, wait, well, I forgot where I was going to go from there.
Um, so hardware support's not a concern.
I guess we can talk about what are the actual goals of the project?
Like, where do you, like, what do you, like, what do you, like, what do you?
want this to be.
Right. I just want to mention one more thing
about the hardware support.
Go ahead.
I will also be open to
accepting
full request to support
all the hardware as a
as a back. Because in the
Phoenix stroke, it's
abstract the invitation.
So I have a like a backend interface
and there you can add more drivers and
input and graphic and stuff like that.
So I will support also
all the hardware is somebody
wants me to and they
provide the code. Right.
So I'm just, I'm open to more
implementations. Right. So it's
not a, it's not a project
we won't do that.
It's I have other things
that are more important right now.
Yeah.
So what's what's what I'm saying?
Other question?
I was just saying what are the
goals, the overall goals
of the project? Like long term, when things
are in a good
and, you know, useful, functional state,
what do you want to actually do?
Right, so I want to, well, first I want to be able to run it on my own system
instead of Xero server.
That's the main thing.
And then after I make it work like an X or so we can display,
we desktop environment and things like that.
I want to add support for all these nicer things like HDR
and the making a bit of different.
more secure or private can you say maybe like having the not being able to listen to all
keyboard inputs and having a prompt when you try to record the screen and things like that so
and those are the easier part actually to do so just when I think get everything else in place than
I can add that okay actually do want to I do want to go into that because that is one of those
things that I think
in my video I said that
you're sort of taking what has been
learnt from
the improvements in Wayland
but also learning from
I honestly in many ways
I would call them failures
of solutions
they came up with problems that existed
but the solutions
they haven't
they've caused some issues under themselves
right now there are issues with
um
uh
unattended screen recording, for example.
This is something that Nvidia brought up in a recent talk.
Then we have the issue of global shortcuts,
which is a whole big mess with portals,
which every desktop implements the frontend differently for,
and basically no application support
because it requires a whole redesign of how they're handling shortcuts.
And it's a whole big miss.
The only one that I think actually has it in a good state is KDE.
Hyperland, you've got to, like, modify the conferring
fig file to implement any shortcuts for an application.
And Ganoom, I, what, they don't even have the front end, I think, is what, what,
it, what said in that, that, in the blog post.
So, I guess, which one do you want to approach first?
We can talk about HDR, or we can talk about the sort of a better ways to handle these,
these security problems.
Right, so actually, Gnome has support for that.
Oh, it has it now?
Yeah, but there were some issues when I used it at least.
Okay.
Yeah, there are issues in almost all of them.
So anyway, so yeah, let's talk about the security part.
Okay.
Like for example, global shortcuts.
Like one of the one easy thing you can just do is, like KD does.
There is an option to allow X11 applications to get input if they
have it depressed the modified keys so for example control shift and all things like that and so
that will pretty good prevent the key loggers because they won't get any for example if malicious
software ran on the computer it won't get really any important information then so that's just one
easy solution can you can do that in extra server as well if you just modify to do that simple thing
But then I also want to show like I want to be able to show a prompt for example.
If an application wants to get global hotkeys, it will show a prompt to the users to accept it.
So it just doesn't do that in the background.
But also I want to change some other things like I don't think the application
will be able to listen to input without like grabbing it.
So you can't just listen to it.
They have to be the owner of the keys that they get.
Because yeah, for example, like right now
in X11 application, you can listen to the input.
But then when you try to write in another application,
it will just work at the key logger will be there silently.
You won't even notice it.
But if it had to grab the keys that they want to listen to,
it won't be able to grab all the keys.
It will only be able to grab the keys specifically
that you want to hit input for.
And also, if you had to click on them,
then you will see that it wouldn't write anything
to that application that you're writing into.
So you want to make it so that,
if I'm understanding correctly,
that applications will request the keys
they want to listen to,
but they can't,
if they do that,
then they can't just take everything.
That makes sense.
Oh, yeah.
And right now on Xorg,
you can just write a,
Python script that says listen to keyboard and then just log everything.
Right. Yeah. And showing the prompt is a nice part of that. But prompt are maybe not
always useful because often people just flick, except they don't really read. On Windows, you have
like admin prompts that appear and people just like, oh, something wants to run, click it,
whatever happens, who cares?
Yeah, so that's one reason.
Because of Windows, a lot of those prompts show up,
and they're not really useful information in there.
So people always kick next, next day, don't read.
And I blame Windows for that.
So maybe if it wasn't because of Windows,
then maybe people would read it a little bit more.
So do you have some ideas on how you would present that?
right now is it just more of a matter of I want to get it in a state where I can do this and then
I'll think about how to properly present it later. I have thought about that. So one thing is
that you have to make the prompt like not every application should be able to handle the prompts.
So you need a special ways to do that. So one of the thing I thought about is when you run the
Phoenix you can pass an application and then it will run the application and then it will
have a secure communication between them so then for example you have a disk
environment you'll be able to run another application that handles the prompts for that
so every after desktop environment will be able to have its own prompt for example if you
want to display it in a way that fits to a desktop environment yeah that will handle
it so it will be a communication between
that application and X-D-Penics.
So let's say I'm running, I'm a developer of an application that has global shortcuts.
Would, with the idea you're suggesting here, would that developer need to do anything on
their end, or would the global shortcut solution you have in Phoenix just work, regardless of
what the individual developer does?
it will just work and that's one reason why um like they to push to wayland uh although some people
maybe say it was because security and things like that that's really not the reason why people
push to wheyland uh there was like one thing they wanted to do is every frame should be perfect
that matter that they have and it's not really because of security because of
the security, you can put that on top of the X-Pers server.
It's really that hard to do if they really wanted to.
But I think there was a certain interest in the X-11,
so that's really the reason why, in my opinion.
What is your thought with everything?
Every frame is perfect.
Do you want to have some level of that with Phoenix?
Like where do you sort of stand with that?
Right.
So I think from users perspective, I think one reason.
Before we do that, just for anyone who's unaware,
what is it, what is meant by every frame is perfect?
We probably should explain that.
Right.
So on the X or so you have had the issue where theory that you have,
even though maybe some solution to run a composite.
It doesn't always work, for example, if you have multiple monitors, some case and things like that.
And so they wanted to fix that in the wayland to have every frame should be perfect.
And also, it has slower compositor latency compared to X11, at least, compared to the normal composites.
And so they wanted to fix that to make it sure that it always looks perfect.
Yeah, so if I go back to...
Yeah, you asked if I want to do that in...
in Phoenix, right?
Yeah.
I think one of the reasons that people voluntarily changed the Wayland was because of tearing.
That was one reason.
And I want to at least split without any tearing by default.
And actually, one thing in the XR survey that they have done is to enable tearing by default.
They did like three years ago, but they never pushed that to a release.
So even though they fixed that long ago,
they know the distra has that.
Right.
Okay.
Because yeah, I know there was a setting you could change with Xorg that,
at least on AMD and Intel GPUs would disable the tearing.
I don't know if it worked with the video, you know, video.
Yeah.
Okay, it does work with Nvidia and you need to use Nvidia settings.
Right, okay.
Yeah, so yeah, also one reason that I want to make Phoenix and I want to move away from having that Nvidia specific driver for that.
So all of the improvements that do will also be improvements on Nvidia side.
And also there are things like bugs in the Nvidia X11 code because it proprietary, you can't fix it like.
it's related to V-sync and to have every frame perfect.
You can't really do that on NVIDAX-11 because of their bugs in the code.
So I know that MPV has issues with that.
So they disable that code for NVIDIA.
Yeah, anyway, so if I go back to Phoenix, I wanted to, yeah, I want to have no tiering by default.
And I also want to do it better than what they have with even on XOR.
with the tier three option.
What is wrong with the tier free option?
Well, if I, for example, try to use it with compositor,
then it will be double composting and things like that.
Yeah, that's one issue with it.
But yeah, I also didn't want for in Phoenix.
I won't force it to run.
For example, if you tried to run a full screen,
game, then it should be disabled.
So that the, because if you have a full-screen game,
you don't need the compositor to do anything.
You can just run, the game can instead itself
to decide if it wants V-sync or not.
And that will display it because the way composters
remove tearing on X-11 is that they run its fault.
The composite is full-screen window that piece all of monitors.
And the reason it doesn't have tearing is because it runs in V-sync.
And so as long as you have a full screen window on X11, that I mean, by full screen I mean that it's full screen on all monitors.
So if you have multiple monitors that will not really full screen mode. If you have one monitor, that is full screen mode.
So in that case, you won't have any tearing if you're enabled V sync.
So in that case, in Phoenix, I have just disabled the Composter because the game itself will decide that
if the user wants to not have his informants.
One of the things I actually,
so before we go to that,
I guess
we sort of diverged off security stuff a bit ago
but I kind of want to jump back to that
because I just remembered something.
With the way you're thinking of handling the keyboard input,
so you mentioned the applications won't need to
like go and make any modifications for this,
my understanding for how this would, if I understand the idea you're saying here, is basically
you hook into the protocol that they would have already been using and then just add a prompt
in like in between it, I guess.
Right.
So actually, let's go to how XOR, because XOR server has tried to fix this issue.
they did it like
25 years ago
with XAs
and they did that
it was NSA
that implemented that
Oh yes yes
I have been told about this
okay
okay yes go on
sorry I'll see if I can find it
here we go
yeah so
they did that for
for use with C Linux
because with CLNix
you have the
like you have
every application has more permissions that you have on top of the usual Unix permissions.
With that, they have X-11 specific permissions for every window.
They have a nice DUI prompt that shows you can specify the permission for every window, things like that.
But the issue with that is that if an application doesn't have access to something, then it just crashed the application.
because with xlib by default it crashed application when it gets an error so unless the
application itself decides to disable that so one thing i wanted to do and also what xlibres
doing now with x-name space extension that they have is to instead of given error you just
show double data instead so you have like if if you try to get access to the root window
of the system and try to access keyboard for example it will instead get the
it will get fake data.
So it will seem like from its own perspective that it's reading input,
but it's not really just have access to the real data.
So when it tries to, so in Phoenix,
if the application will try to get global hotkeys,
it will get that fake data.
Then in the background, it may be showed the prompt.
Then when you accept that,
then it will get directed at the real data.
Right.
And this is the same thing you're thinking of doing with screen sharing.
as well, or screen recording.
Yeah, right.
Right.
Okay.
So, to the application, it thinks it is seeing either the keyboard, it thinks it's seeing
a window it's trying to capture, but it's not, it's something that sort of pretends to
be that.
It's not the actual thing until the user confirms they want to share it, and then the
information is passed through.
Right.
So by default, it will, like in a key logger, by default, instead of getting access to input when everything is focused,
it will only get input when its own window is focused until it accepted that prompt.
Then it gets access to everything.
One of the things you mentioned in the Read Me for Phoenix is,
improvements for modern technology.
And one of the things in here is
proper support for multiple monitors.
I think a lot of people don't realize
how, I guess,
in many ways, how much of a hack
the implementation of multi-monitor support is
and how many problems that actually causes.
Yeah, so in the XOR server,
it has a frame buffer
that expends all of the monitor
and it's this space set with the
it tries to display at the same time.
So it can cause some issues
if you have multiple monitors
with different refresh rate.
But yet there are also some
it's also the main issue really
with that is the way it handles composters
because the compositor extends
to all the monitors
and when it has to sink
it has to choose to which monitor it should be synced to.
So I believe by default
the way it works in AMD and Nvidia is that it looks at the center of the window to see which monitor should be focused, should be synced to.
But in actually the X11 protocol, you can decide to which monitor a window should be syncedo.
Just that compositors don't use that.
So actually somebody can make an X11 composite that works properly with multiple monitors, but nobody has really done that.
that. So one thing I want to do it in Phoenix is to make that work automatically, even if you
have a composite that's expense to all monitors. Because I want existing a compositor to work as well.
Just not the one that I will make. The things like PICOM and anything else people might want to be
using. Yeah. I guess you're not really, obviously, you're trying to just get like, basically,
application started, but how would you even approach the problem of HDR? And I guess why,
maybe it's a harder one to answer, why Xorg sort of never managed to do that.
Right. So there was a proposal by Nvidia quite long ago to add support for HDR in X-11,
but it didn't really go any further from that. So,
you can't really look at that and to see how this is on.
But there's one issue in the H7 protocol is that in the core protocol,
you could have support for 10-bit mode,
but then the Windows wouldn't have really alpha support, for example.
And it will be limited to 10-bit support,
so you can't have a 12-bit or a unit as well.
And also that costs some issues, for example, if you try to run,
you can run XR7 in 10-bit mode right now.
But if you try to do that, it's with some of
application on display properly, for example, and also steam, for example, if you just crash.
So one thing I believe I would need to do is instead of making it like part of the core protocol,
I would make it make it instead an extension that you have the application itself will have to
use directly instead of as magically getting HDR. It will have to opt into that.
So yeah, that's what that will be the way to print it
from applications to not be as expected.
And then on top of that, to make it work like, to make HR work,
it will be the same as in Wayland Compositor basically.
Because that, yeah, that's the same.
But this is something that you're probably not going to,
probably not going to touch on for quite a while.
Yeah, right. And also, maybe there won't be any X-11 application
that uses this protocol that I'm,
I'm doing. And to be, I don't really need to make a new protocol, because X11, it has,
it has, it has properties that you can set the windows.
And it can set any property on any window. So you can use that to, for example, set this
HG metadata, then the compositor would read that and that in this case, Phoenix would they also read that.
So I don't really need to make a new, uh,
protocol extension for that in X-11.
But maybe there won't be any new application that would use that.
But so one thing I want to do is support Wayland applications as well.
So like even if you ran, yeah, like you've tried to run a game and it used the
way a HR protocol in Wayland.
It should work in Phoenix as well.
That's one thing I want to support.
But yeah, HR and all of that, that's something I will support much later.
yeah for anyone who doesn't know there are projects as you mentioned in the the thing like uh 12 to 11 to run
wayland applications on an x11 server so you'd want this to be something like there's just a part of
phoenix so it it basically to the user would be as transparent as running a regular x11 application
yeah exactly uh actually i've used element to
12 to 11 before
and there was some
there was some bugs in then so I fixed them so
I have some knowledge of the code
and fixes like that so if I wanted
to I could just fork
12 to 11 and use that
I would have to look into which
solution I would use
right because
even though this does
exist this is something
that like X Libre is going to have to
sort of come to terms of eventually
even though a project like this
exist, it's not going to suddenly change the shift, or change the direction that Linux is moving.
Most of the major environments are moving towards Wayland.
So a lot of new applications are going to it over time be Wayland-only applications, or if
they're not Whalen-only, a lot of developers are going to focus on that side, and maybe
the X-11 version is just a inferior version of it at some point.
yeah and also in phoenix the goal is not really to make everybody use it i'm primarily primarily making
it for myself and people that also want to use x11 yeah because there are just some amputation
that won't really ever work properly in wayland so for those people they can use it as an alternative
and also as i said like wayland applications should be strong so in
that case, you won't be missing out on anything.
Yeah, I think having something,
like having an alternative exist is really cool.
Like, X-Og is going to continue doing the X-Og thing
because X-Waelan's part of that project as well,
but I don't see X-Og proper ever actually sort of getting
massive development again.
So having this sort of new approach where you're not tied to what existed with X-Og before
and trying to fix problems that exist with it?
Like, honestly, I just think it's cool.
I do just think this project is cool.
Yeah, also, yeah, so one reason is I try to avoid even part of that core protocol.
I won't implement them
So I've thought about that
Like
Since I don't implement
Part of the Core Protocol
It can't really be called an X11 server
So maybe I will call it something else
Maybe I will make
His own protocol
And just call it a subset of X11
Hmm
I think look at the end of the user
As long as they can run the things they want to run
And that's going to be a long time down
Actually how long do you think
sorry, I keep jumping around a lot
I do this sometimes
how long do you expect
it to take to get to a point
where you could go and daily drive it?
Obviously you're going to have problems to deal with
for a long time but you personally
for the stuff that you use
so
let's see
like if I focused on it 100%
it would only take a few months to do that
so you don't
be that long time. And also, like all of these attention to Phoenix, it got some of me
some attention from companies. So there's one company that you also know that I won't
mention now because I don't know if it's supposed to be private information. Fair enough.
But there's one company that wants me to make a display server for them. It's an open source
company as well. So like I could use Phoenix for that and then I will be paid to work on
Phoenix then it will be had proper support quickly and also HDR because it's something they
once. So it's not really decided yet if it would be Phoenix or something else because they
don't really need the they don't think most features like X-11 and Wayland stuff like they
just need very simple display server.
So yeah, I will see how to do, how I should do that with that.
But if I use Phoenix for that, then it would be very quickly work with,
with a proper real environment.
That's cool.
That actually is really cool.
Yeah.
So if I get a job, they also want me to move to USA and stuff like that.
So that's good.
Is that something you're interested in doing?
Yeah
I mean
Sorry, I thought we DC'd for a moment
We good?
Yeah
Okay, okay
I think you got out for a moment
So
I guess if somebody wanted to like help out with the project
What would you suggest that they
What would you suggest that they do
Would it be just to find an application
And see what protocols it uses
And just go from there?
Or do you have another idea?
Right.
So right now, I don't accept contributions.
Okay.
Because I want to make it, there are some things I need to set up it,
like some basic things that are missing that I want to set up first.
And then I will mainly code that I'll accept first because it won't be that useful to test application
because I know that application won't run.
So there will be a lot of application at one point.
So, but I have already got a pull request, even though I closed it.
But yeah, it was a bit.
But I think I'll get at least, I'll try to focus on getting DVM to run,
after I get applications run.
And hopefully that that should be not that long to do.
So after I get that, then maybe people could try and run application and see which
one still working on that.
So with
X-Sorg kind of being
the X-11 server that people think of,
one of the things you did bring up
in the post was
a lot of issues
with X-Og
get treated as X-11
issues, and I've done this myself.
I was under the assumption
of things like HDR
were an unsolvable problem
with X-OG,
things like proper support
variable refresh rate,
you know fixing global shortcuts things like that
I guess
how
I don't know I'm trying to say here
but like
how do you try to
navigate these sort of problems
where people seem to
have this misunderstanding
of what
what X-11's limitations actually are
right so
that's actually one reason I want to make Phoenix
because although I was working on it, but then I see that people seem to misunderstand what
X-7 is, because they say, why would you want to do that when it has these issues?
But it doesn't have those issues because it just people think that because the only X-11 server
that they use is X-R, and Xorg has those issues. So they assume that that must be how it is in the protocol.
Like there are even some wayland compositors, developers, I think that is the case.
But when you clearly read the postcode, there aren't really that information.
It doesn't define how things should really work because right in the case of X-Lab, it's not even made just for Linux.
It's also made for Windows and everything.
All of that can work because everything is abstract how it works.
So you can run the XOXA right now on Windows and Mac as well.
And, yeah, so the issues with you have in the,
what people have is not in the X11 protocol.
And, yeah, that Phoenix will be one, just one proof of that that is not an issue in X11.
That sort of leads me into another thing I wanted to ask.
Why do you think there was this push towards Wayland?
Obviously, we talked about, like, the frame perfect stuff,
before, but a push towards Wayland, instead of building a new X-11 server that address the
problems people had with X-Og?
I think one reason is it's not fun to work on old technology.
Like, if you're not paid to work on something, you don't work to work on something that
is old.
That's usually the case.
People want to work on something that is, like, new and exciting.
Yeah, look at the web development space.
Yeah, but then I also think there is like,
like obviously there's some,
I think the red hat is what is more interested in Wayland and X-11.
And also the developers here, so everything is moving just a set place.
But yeah, I think the main reason is because X-11 is,
this looks like old and ugly.
Like I know that the protocol is not perfect.
There are some issues with it, but you can make it better.
It just doesn't look that interesting, like, it doesn't look new and shining.
On that, on that note, you said there are problems with X-11 protocols, like, what problems actually, like, what are actual real problems with X-11?
Right, so, like, in the, like, there are many about the, like, it's not really, uh,
One example is that is not the problem is like you have a lot of old things that in
protocol that you don't need in the new really need.
Like you have formed stuff that clients instead handle now with free type and stuff like that.
So like I try to make it easy and defined by not implementing them because applications
don't really use them anymore.
But then there are also there are some issues in the way the protocol is designed.
It's not designed they like consistently.
And yeah, for example, they didn't think about the size of things like some protocol
measures might be long, very long, and the protocol is not handled to design that.
So they put extension on top of that to have people handle that.
Right.
But in my case, I would be able to not deal with that.
I don't have to deal with that because the reason they added that was because they had the
rampering functions in the core protocol, like, granted a lot of
rectangle stuff like that and since i won't support that i won't really need support that part of the
extension as well so yes i think people should have long ago like make an x117 that is just a subset
of the protocol then you won't have to focus on the issues with it when you talk about
things that nobody uses anymore my favorite example that i love bringing me up
is the X-11 print server.
Yeah, even X-O-Sever removed that, like, in 2008 or something.
Yeah, obviously.
For anyone who doesn't know, it was a...
It's exactly what it sounds like.
You could output your X-11 server to non-display devices,
like a printer or a fax machine.
Yeah, so a lot of things in the back then,
like they didn't have a standard way to communicate.
between processes. So they try to put those in the X-11 protocol instead. So there are other
things that are doing that. Like the session handling stuff and things like that. That's not
part of the, if I remember, correct, it's not part of its protocol, but it still uses the
protocol like yeah, you still use X11 codes to do that because they want to
communicate between different applications.
So, I guess
What have we not talked about?
I actually don't know.
We're just talking about problems with X-11.
I did have somewhere I wanted to go from here
and now I've lost it once again.
Actually, I guess whilst I'm waiting for that, come back to me,
What is
I guess what are you currently working on
with Phoenix?
Yeah, so right now
I'm trying to get super taxed around
and
so I'm implementing
parts of that
right now I have to
well this is a bit like
maybe
hard to understand
but I try to render the render extension
of X-11
because it uses that
but I want to have to implement all of
it just implement all of things that it uses, that the SL2 uses.
Yeah, and once I get that to run, I believe pretty much all STL2 applications will run.
And also one thing that I haven't said before is like even if Phoenix doesn't turn into,
that you run there directly on your computer, you'll be able to run it as a window inside X-11.
So you're like it will work like games so basically.
Ah, right, right, right.
So in one way, that's useful a bit.
And also you were able to develop X11 application like composites and Windows Manches, things like that.
Because there is a similar application in the X-O-Serve code.
It called X-Nest, if I remember correctly.
And you can run nested the composite, I mean,
X-O-Sever inside the X-R-Server.
But it doesn't have, for example, hardware acceleration.
So maybe you can't test composto and think like that.
So when it comes to X-11 and Waylon, what do you, I guess, what do you see as the problem with the Wayland approach, with sort of how we've gotten into the state we're in.
And obviously things are in a, things have come around, things are in a good, like, the,
It's in a state where things are usable now,
but it's taken quite a while to get here.
And there's still a lot of oversights
that we're still trying to be ironed out.
Right, so the main issue with Wayland
isn't really technical.
It's, as I've written on my own website,
is that it's the difference in philosophy
between X-11 and Wayland.
Because on Wayland, they won't make application
specifically designed for their rail and compositor.
And they want to make, they decide the protocol to fit that.
Instead of making simple constructs that you have for applications to use that they use for a wide range of things.
Instead, design, this is how application should use it exactly and for nothing else.
And also because of that issue, that the issue that the
they want the protocol to fit exactly how it's working they work whale and compositor.
It caused some friction between the different whale and composters.
That's why they have a lot of discussion and every time they want to implement something new,
that they want to change it how their compositor work instead.
But on the X11 side, they don't do that instead of they say that,
we'll decide it and then desktop environments can use it.
But like I understand what,
Why Wayland went that way because because of the freedom in application in X11, it could cause some issues with how application behaved.
And also like I said before, like I mentioned GPU screen reporting, when you open the overlay, then it can make the window minimized that is behind it on X11.
Like the game, when it's running false screen mode.
And also there are some issues like when you change works.
and then go back to the other workspace that the game doesn't, like it doesn't have input or it's like it's like to get really small and things like that.
So I understand why Wayland decided the Wayland Composter should decide how Windows behave, not the Windows themselves.
But there are also applications like in GPU screen or recording, but it has to decide how it should display.
It has to override the behavior of the Wayland Composter to work properly.
Like in the case of the GPS screen recorder, it has to be an overlay because it's not that useful if you have to like pulse tab and then open the window, then do things.
You want to do that directly in the game.
Right.
One of the protocols that's been going on for a while, it's still going on, is like the whole Wayland positioning protocol, the window positioning protocol, where most of the discussion isn't about sort of the technical concerns.
of how this would be implemented.
A lot of it is whether or not this should be a thing that can be done.
It's something that exists on everything else,
but for some reason there's this discussion of,
do we even want this?
Yeah, so that's one issue that is,
actually, there is a protocol to do that,
like not exactly, exact positions,
but you can have relative to a screen.
edge except the window but that's not part of the Wayland protocol is part of the BLROT's extension to that
and VLROTS and KD implements but not Gron so the issue really is in genome they don't want to allow
applications to do things like that and there is a lot of cases in the like Wayland Composcer where
some things work on basically all other way like composites but not Gn.
Then people might tell me just ignore Gnome but
like half of all Linux users use to know, so I can't really do that.
Yeah, that's...
Like, I can tell people easily, like, just don't use it.
If you don't like the direction, things are going, just don't use that environment.
But if you're trying to develop something that people want to use, right?
Like, people are still using it.
So you kind of have to...
If you want to be able to have that access to that section of users, you kind of have to just deal with the fact that you are sort of limited by what one environment decides it wants to do.
Right. And this is also an issue because when we, when we're moving, like, we want some Windows users to switch Linux.
they won't be able to use their applications, but some of those applications can't be ported to Linux, especially now with Wayland, because this, like, if you ported Windows applications to Linux, you could run them with X-11 without the initials because it allows all the things. But some things of those things are not possible with Wayland, so it will make that part harder as well.
So what would, if you were, if you were the benevolent dictator of Wayland,
what would you change with the, I guess, protocol development strategy?
I would change the philosophy of it, but that's the issue that,
I don't think any of the Wayland Compostor develops are interested in that,
maybe Hyperland is because they usually implement everything, basically.
But I've changed the philosophy that instead that the application should have more power to things.
And instead of designing things, specifically how the wind and composites work, they should be more generalized.
So it works for more things.
Then there are also an issue like with screen reporting, for example, it's way too complicated.
And one reason for that is because they want to make it work with flat,
and also because both flatpack and the pipe wire,
the red has projects.
So I think there was maybe a little bit conflict of interest
when they did that.
So like in the desktop portal protocol,
the pipe wire is hard coded there.
So it has for pipe wire to make screen recording work on Linux
if you have a if you use the desktop portal.
So like right now, I believe they are trying
to make just a Wayland Composter, I mean, Wayland Protocol, where it will be able to record
screen without pipe wire. That will make it much simpler than it can skip thousands of
life code. And I'm not sure if all Wayland Compostors will implement that. So you won't
be able to use it even if they add it. Because why would you use that?
I believe that protocol was, came from the W.R. Root side, if I believe.
Yeah, and I believe
also Cosmic has implemented this
differently, but yeah, why would
you use that if you can use it as
important instead and support all
Wayland composters?
So maybe it won't even
really be that useful.
So that's an opposition
that we have on Wayland.
Yeah,
Weiland is, it's in this
weird state where
whilst you have
wide adoption
of a lot of protocols,
because there is this one entity
that decides it wants to be very
choosy about what it's going to implement,
you kind of create this,
how would you say it?
Like, I guess,
fracturing, I guess, is going to put it?
Yeah, so there's like a lot of,
duplicate the work if you really look at Wayland in the Wayland Compostors.
Maybe if they would have this designed
compositor that is more accessible that you can make your own desktop environment
on top of that, then it wouldn't have been an issue.
But I think a lot of work has been wasted, like,
maybe some people think it's complicated for me to make an X-11 server,
but I don't really think it's more complicated than making Wayland Composter.
if you try to make it work for a lot of applications.
There have been sort of early discussions
that got shot down relatively quickly
about building effectively
the Wayland Exorg server
where it's a basic composite that everyone builds off of
and a lot of the arguments basically boil down to
this is too complicated.
It would create a lot of
of complexity with environments wanting to add things into it, but at least, look, you are
early on in the project, so maybe something's going to change, at least from your perspective,
doing this, building something akin to an X-Horg, even though you are doing the X-11 again,
isn't an impossible endeavor.
Yeah.
Um, um, uh, uh, yeah.
So, as I said before,
It's not really that complicated, more complicated than making a real-land compostor, in my opinion, at least.
And part of that is that I'm not implementing the whole protocol.
Yeah.
Let's see, we covered that, covered that.
Actually, yeah, one thing that maybe some people might not be sure about is you say you're going to support multiple displays,
but not multiple X-11 screens.
And this is one of these weird X-11 terms
that I feel like some people probably are not aware of.
Right, so it's a bit confusing on X-11
because they have screens,
but they are not monitors.
There were monitors in the past
when you ran Cinerama, for example,
because you had one screen for every monitor.
But there was an issue with that,
like, you couldn't move one window,
to another monitor with that.
But now in X-Lev, we have a
RADRRR, the extension for that.
And that's the only thing I'm going to implement.
And also that's what desktop environment
and things like that use already now
and window management and things like that.
So they will work and nothing
will really break and
yeah, things will work as people expect.
And I would be able to remove a large part of that.
And I actually believe in the X12 proposal, if you have seen that.
Yes, yes, I have.
X12 proposal.
Let's see if we can find it.
What was it called?
12 Linux.
Ah, here we go away.
I made a video on this like five years ago.
Do I have a link to it in my description?
Yes, I do.
Okay.
Thank you, me from the podcast.
past. Okay, we found it.
I believe in that one,
it mentions that they want to support only
one screen, but then also make it
work with the X-11 protocol.
That's basically what I'm doing as well.
So I was taking us a bit
of inspiration from that as well.
So,
obviously you couldn't call it an X-12,
but you are, like,
it is
kind of, I've seen some people
kind of saying that
this is the X-12
that people wanted.
Yeah, it wouldn't be that because
in X-12 they want to
they won't support all of the things in all
the protocol as well. And
mine will be a subset
that type you can't really use. It won't
be X-12 even
you wouldn't be able to call it that.
X-11.5.
Yes, I thought about
the name if I were to make it in your
protocol, like
there is X-11.
server, there is also Y server.
So maybe I call set server.
That will fit sick.
Right.
For anyone who wasn't...
If I remember, isn't
X called X because it was a
port of
W from the Y operating
system? That sounds right.
It sounds stupid,
I'm pretty sure that's how the history
goes.
I don't remember
it.
Yeah, it was in
I don't remember
the letters,
but it was something
like that.
It was like
inspired by that.
They wanted to make some,
they wanted to make
a graphical server
for,
um,
for like general Unix.
Again,
I did a video on this like five years ago,
so I could probably go back
and reference my old video.
I don't,
I don't fully remember now.
Yeah,
there's a lot of history.
I don't remember all in tedious, but yeah.
So, I guess, what was I going to say?
God damn it, this is happening a lot today.
Jesus Christ, I keep forgetting what I'm going to say.
I only took like three weeks of doing podcast,
and it's already, I'm already an absolute mess.
Yup, yop.
But there I could mention, like, one of the issues
I had in another application that I worked on.
I wanted to embed a window inside another window.
Like I do that with a video player that have.
And you can't really do that in Wayland.
Instead, they want you to make your own compositor just for your own application.
So you'd write your entire Wayland Composture just embedded inside the window.
And I think that's a bad part because actually if you have a place separated in different its own processes,
they're isolated from each other and you can set the sandbox.
You can do Linux sandboxing to make it more secure.
So that's one security feature that Wayland developers, they don't want.
So I thought that must be weird because there is also like in the digital audio
workstations there is a standard plug-in interface that works that is cross-platform and one of them is to
embed a window inside the digital audio workstation and that doesn't work on Wayland and like there is a
very good reason to to work with that way because like if the if the application is selling
it is one version of QT but the plugin is another version of QT then they won't work together
So you have to have separate applications that you embed inside each other.
I remember the thing I was going to ask.
Maybe it's kind of hard to answer now because the project is still fairly early,
but how much of X-11 do you expect to not really need?
How much do you expect can just be left in X-Og to not be dealt with by you?
you. Right. So I won't really need any of the core protocol rendering stuff, just some basic
things like opening your fonts. Like for example in X11, you have the cursor is actually,
the default cursor, and it's like they are their fonts actually. But I won't need to really
need to real fonts to display graphics and things like that. So I'll, like, I will maybe need
half of the core protocol actually only.
And then some extensions I don't need to say either.
So, yeah, it's a relatively small part that I really need.
Like, I could invent those things, but I don't think I would really need them.
So you, at least right now, right, you might like run into things that need more than you actually expected.
Yeah, exactly.
but sometimes also
there might be
some applications that use a small thing, but they
they might not
do everything
a single thing with it because
there are some parts of the protocol that are
pretty complicated, like the keyboard
stuff, the keyboard extension
XKB, and
I won't really need to implement
all of that. Like
if I want to do that, that would be pretty complicated.
But there is a library called XDB common, then also within clusters and things like that uses.
And I will use that and implement the things that that can do, at least to stop with.
So you can use different keyboard layouts and other languages and things like that.
But they won't implement all of those things, at least not to stop it.
So how far back do you want to make sure is actually being supported?
to mean in the...
Like in terms of applications
if you wanted to run.
Right, so
every application
doesn't use the core protocol for rendering
so it will support
GTP2 applications at least
and from there.
And so it'll be like
almost
20
like 15 to 20 years
of applications with
like
yeah, so it won't really be
issue for like almost nobody will have issues maybe you've tried to run like cd like the old
desktop environments cdd yeah yeah they have the common desktop amount i believe that's the
name for it yes yes we actually had a new release not that long ago yeah 42 days ago
they had a new release somebody's still working on that thing
Yes, so I think it's his X motive for the applications, things like that.
So I don't think that will work, but maybe I could support that later on, like if I have time.
Like nothing in the description that I made for Phoenix is set in stone.
So if I have time, I would implement more things as well.
Right, right.
And again, once you said that you'd be willing to accept.
drivers. So I assume that if
people wanted to
you know, make
CDE work and you hadn't actually
done so yet, that would be
something you'd be open to as well.
Yes.
So in the description,
I just set realistic goals
for the projects.
And also I want to say
that when I wrote that on all
those things, I didn't
announce the project
to anybody but somebody else decided to take that and put it on hack news so that because i was
going to wait before like phil's first run real application stuff like that and then right so if you
have like a better first impression of it yeah exactly and also because uh i wanted to show that it
like like those things i mentioned before like um like people the issues with the x-lexlex
that people think are part of the X11 protocol.
I wanted to be able to show that directly
that they're not issues with the X11 protocol
and then have proof of that as well, not just writing.
Right, because right now it's just you kind of saying,
hey, I can do this, but you don't actually have the proof of it yet.
Yeah, exactly.
So I guess what was it like kind of just putting this project out there
and then it just getting a bunch of attention.
Because obviously this isn't the first project you've had
that's had a bunch of attention.
A lot of people know about GPU screen recorder,
but I assume that when people found out about that one,
it was already in a pretty good state.
Yeah, so in the case of GPS screen reporter,
it didn't actually get any attention for years.
And the application was already working,
but then I decided to post about it.
So I was there on to announce it.
to the White Republic.
I see.
Yeah, so in the case of Phoenix,
it was announced before it was ready.
So I didn't know why people would be so interested in it
because it was too early to announce.
Like, there are a lot of projects on the internet
that do interesting things, but early,
and they're not really worth talking about yet.
So I didn't know why they would post about that yet.
I think people are just kind of...
There's a group of people that are just very excited about X-11
because there is such a push to Wayland.
Anything that...
Anything that seems to show an interest in keeping X-11 around into the future,
just...
You know, it's just going to be interesting to some people.
Yeah, I guess maybe it's copium, hawkium.
Yeah, yeah.
Look, as much as I'm happy on Wayland, at this stage, even with all of the problems that do exist, my workflow is good.
I understand that there are people that have certain things where Wayland is just never going to, at least in the direction it's going, never going to handle everything they want.
I think people, especially with the fact that like the only other project realistically that was keeping me.
things going the Linux side was
X Libre and
you know as you said it's basically
just a lot of refact there's a lot of bug
fixes there's not been a ton
of sort of major
development work to it in
like taking it in a new direction
so seeing something where
it actually
is a
different approach
but keeping that X11
spirit there that X11 support there
I don't know I think
It's just something where it shows that there is still some interest in X-11.
Yeah, so there are many people that can use Wayland without an issue,
so they won't really have any reason to use Phoenix.
But I believe one of the, if not the main reason people use Weyland
is because of the tearing issues that they have.
So when they can see that it is fixed,
maybe they will be interest in trying Phoenix as well.
Now, I'll definitely be keeping an eye on the project.
I'm very curious to see,
I'm very curious to see how much of what you said can be done
can actually be done.
Maybe all of it.
Maybe, maybe you actually get all of it done
and Phoenix ends up being great,
but we don't have an example of it being,
of that actually happening.
So I'll be keeping a close eye on it to see sort of
where it ends up going.
And my suggestion,
you are, maybe you've already thought about this,
when you do get it into a state
where you consider it to actually be good,
I would do like another sort of soft relaunch
just so people kind of know
that it's now in a good state.
Right.
And also one other issue that people have
is multi-monitoring support with.
But that's one issue that,
like even if I implemented,
that and want to demo that it works.
It's like, how do you do that?
Like, you could record application,
but you want to be able to see that it works.
So they will have to try it themselves
to just really see that it works with multiple monitors, I think so.
That's will be interesting.
Yeah, that's kind of a hard one to demo, but,
I don't know, if it's in a state where it can actually be used by people,
that sort of makes that easy enough, I guess.
There's not really any...
If you provide a way for people to run it
and people know that it works,
then you've kind of done your part there.
Yeah.
And also, like, one reason I use SIG
is because it's really easy to build application with it.
Like, I will try to remove as many dependencies as I want as I can.
And so you can just run Siegbilt and try it out.
That's also one reason.
It will make it easy to people try and also develop it.
So I guess how long do you expect it to get to a point where it would be worth people trying it?
Because right now it's probably very, very limited.
would it be once you've at least got
a super tux cat working just so there's
something that's sort of
easily testable there?
Or like when would you want people to actually try it out?
Right.
So I believe most people would want to be able to run
the whole desktop environment inside it.
So I don't know if they're interested in trying it before that.
But maybe some people are and especially developers.
So when I get super...
Yeah, when I get supertucks running, then it will be more interesting.
Yeah, okay.
I think we've pretty much covered everything that I wanted to talk about.
Is there anything else that you feel like we probably should touch on?
No.
It's really interesting to see how it works with the job that I talked about.
if I were to use
Phoenix and build with Phoenix
then it will be
very quickly to get it to work
in a work sink that people could use
so I will see how that goes
yeah I wish you the best of luck with that
if that doesn't happen
how long the project ends up taking
I hope this isn't a project
that you work on for a couple of months
and then it ends up being abandoned.
I do hope this is a thing you stick with long term
and bring it into a good usable state,
but I understand that other things would possibly get in the way.
Yeah, and also I don't want people to just sit and expect it to come out any time.
Because right now I work on it when I have free time
and also work on all the project like the GPS screen recorder
and fixing bugs in that.
And also, I might not work on it every day.
So people should just wait until it comes out and then try it.
Like, don't expect too much, actually.
I guess that is kind of the problem with people knowing about it a little bit too early now.
Now it's like, oh, people are kind of expecting it.
People are sort of, hey, when is it going to be ready?
how far is it away, all this stuff.
Exactly.
That's why I was super happy about it.
But I guess since they got me this job,
that I'm really happy about it.
Yeah, yeah.
Well, hopefully, as I said, hopefully that goes well.
And yeah.
So if people want to, I guess,
if you want to get involved in GPU screen recorder,
because that one is the one that is all opened,
that people can get involved in right now.
Where can they go to for that?
So they go on my website,
GPS screen,
and there you can find GPU screening for them.
But if they just want to install the application,
they can do that on Flatup.
But yeah, I don't use websites like GitHub and GitHub and stuff like that.
So you can just contribute directly.
I accept patches by email instead like the Linux,
Fernel does.
Yeah, so you guess the development is similar to that.
I guess that does, that does filter around a lot of people who may not be very serious
about sort of helping out.
Yeah, yeah, that's like it's, it's almost a feature that I don't get to dump bug reports
and things like that.
It's instead people that are more serious about that.
then. Yeah.
Yeah.
So Phoenix is in the same location, but right now, as you said earlier,
you were not currently accepting call requests.
Yeah, that's great.
And also, yeah, I can say the name of the website.
It's not pronounceable, but you can put it in this description if you want.
Yeah, I will do that, yeah.
I guess with you working on it casually,
when would you expect,
when would you hope to get it to a point where you'd be
willing to accept our Quarquests from other people.
Yeah, so right now, there's one part that I need to do alone first,
because it would be a little bit of massive people if multiple people worked on that.
But after I'm done with that, then people could make full requests.
So if I work actively on that, then maybe one or two weeks,
then I will be able to open a full request.
Okay.
Well, as I said a couple of times already, I hope the project goes well.
I wish you the best of luck.
And yeah, hopefully it gets to a good state eventually.
And I will definitely be there when it does.
I'll definitely be checking it out and seeing sort of what can actually be done with this.
Yes.
Also, one thing I didn't mention is that right now,
I'm focused on AMD and Intel.
So actually, I don't think Phoenix right now even runs on Nvidia.
Just when he ran it nested on X-11, it expects a different.
It works a little bit different because he's running with the proprietary NVIDIA driver on X-11.
So yeah, at first I will only focus on AMD and Intel, so people know that.
Okay, okay, that makes sense.
Anything else you wanted to mention?
There's probably going to be something you think of as soon as you stop recording.
Yeah, yeah.
Yeah, right now there are not, I think I've said everything.
Like, there are some small things, but they're not that important.
No other links you want to direct people to?
No, just my website if they're interested in looking at that.
so yeah, that's it.
Okay.
It was a pleasure talking.
This was, even though it was a bit disconnected and rambly with whatever I was doing this time,
hopefully people got some value out of it.
I guess I'll do my outro and then we will sign off.
Yeah, it's actually been two hours.
I didn't expect that.
it's a lot of time.
Yeah, much thanks.
Yeah, no, thank you for coming doing this.
Okay, so my main channel is Brodie Robertson.
I do Linux videos there six-ish days a week.
Sometimes I stream as well.
Check that out and see what's going on.
There'll probably be another video about Phoenix.
I don't know, eventually.
When it gets to a good state.
I've got the gaming channel Brody on Games.
Right now I'm playing through DMC Devil May Cry
for some reason.
And I don't know, Silk Song.
That's the other one I'm playing right now.
Also, if you're watching the video version of this,
you can find the audio version of basically every podcast platform.
That is Tech Over T.
And the video is on YouTube, Tech Over T.
I'll give you the final word.
How do you want to sign us off?
I'm not having anything to say really, but...
No one ever does.
Yeah, thanks for having me on.
Absolutely pleasure.
Yeah.
Bye.
