Code: Select all
init=/sbin/openrc-init
-systemd -logind -elogind seatdI am NaN! I am a man!

AFAIK, with wayland, compositors are forced to implement everything.Zucca wrote:More choices, more fragmentation.happosai wrote:leads to unnecessary fragmenation, broken behaviour
Or would you prefer us all running systemd + GNOME?
Good points.stefan11111 wrote:Compare this to libc's.
We use a libc because we don't want to implement everything ourselves.
As such, we don't have to write thousands of qsort implementations, or strcpy implementations.
Doing things like this means that application devs don't have to worry about writing things like printf,
and library devs work on a single library, where improvements help everyone who uses that library.
We still don't lose any choice this way.
There are lots of libc implementations, with glibc and musl being the most popular.
And there is nothing stopping people from doing everything themselves.
gcc has the -nostdlib and -ffreestanding flags for this purpose.
Code: Select all
init=/sbin/openrc-init
-systemd -logind -elogind seatdI am NaN! I am a man!

Not sure why you would have problems.Zucca wrote:As for compositor and vsync, dunno. I'm about to dig into some interesting adventures... I have 2x 4k displays. Other is 60Hz and the other is 144Hz. I expect problems.
Good news! I am not bullshitting "us and myself". I am using dual screen setups and I am using them with Wayland and was using them with X11 (Sway and i3). I never needed a "primary screen". I like to have the first workspace on the left screen, but the left screen is not more "primary" than the right screen.happosai wrote:Stop bullshitting us and yourself. Dual screen setups and more are common place in office environments and as well other places since at least 2 decades.sMueggli wrote:Is that the issue? Or does the Wayland protocol have no support for a primary screen, because it is simply not needed? And if you need a "primary screen", wouldn't it be the job of the compositor to "know" the "rank" of a screen?happosai wrote:The issue is that the core Wayland protocol has no support for a primary screen.
Yes and this setup works entirely without "needing a primary screen". I am not sure, if "Discord" is wayland-native, but if it is there is nowadays no problem to open "Discord" on the screen where you want to have it open. It is not the job of the "Discord" app to know about "primary or tertiary screen". The app opens with the given resolution at runtime. It is possible that the compositor or X11 has a concept of "primary screen". No need for a Wayland protocol.happosai wrote:Also having more screens in place is quite common for gaming setups, where one screen with lower resolution runs Discord and the other the game.
When I open an application I want it to be started on the screen, that I am actually using. I do certainly not want to open the app "somewhere else" (known as "primary screen").happosai wrote:Being able to define a primary screen and having working that flawlessly is crucial for many, and common practice nowadays.
One of Wayland's selling points is being able to handle multiple screen setups better than X11 does. So they say.
For how many Wayland compositors do you give support?happosai wrote:But it fails to deliver on that simple task, so this is a clear shortcoming by the protocols. Having the compositor figuring that out is just plain bad, because when every compositor needs to figure this out on its own it leads to unnecessary fragmenation, broken behaviour between them and a support nightmare.
If the app is badly written and depends on compositor internals. Apps should not care about how the compositors are doing their work.stefan11111 wrote:AFAIK, with wayland, compositors are forced to implement everything.
This means that an app that works on one wayland compositor might not work on another one.
And forcing compositors to implement nothing themselves means that it will be way harder to get things wrong?stefan11111 wrote:Forcing compositors to implement everything themselves means that it will be way easier to get things wrong.
Let's assume they are able to make Plasma faster. And let's further assume that Plasma was four times slower than another Wayland compositor. In summa Plasma would be only twice as slow compared to the other compositor. And yes, only Plasma users benefit.stefan11111 wrote:Say the kde wayland devs make a patch that doubles the performance of the drm driver.
Then only they benefit from that.
Yes, also in reality you cannot simply use a random patch that fixes a java.lang.NullPointerException for your own Java code that throws a java.lang.NullPointerException.stefan11111 wrote:Other compositors might try to port the kde patch to their compositor, but that can be very cumbersome,
especially if the patch depends heavily on kde libs.


Wayland has the core protocol, that all wayland compositors have to implement, and optional protocols that compositors do not need to implement.sMueggli wrote:If the app is badly written and depends on compositor internals. Apps should not care about how the compositors are doing their work.stefan11111 wrote:AFAIK, with wayland, compositors are forced to implement everything.
This means that an app that works on one wayland compositor might not work on another one.
Yes, if the display server implementation is separate from the window manager, like it is on X, then the X clients cannot get it wrong (because they don't write it).And forcing compositors to implement nothing themselves means that it will be way harder to get things wrong?stefan11111 wrote:Forcing compositors to implement everything themselves means that it will be way easier to get things wrong.
In that case, kde wouldn't have been four times slower that everyone else, because it would use the same code that everyone else uses.Let's assume they are able to make Plasma faster. And let's further assume that Plasma was four times slower than another Wayland compositor. In summa Plasma would be only twice as slow compared to the other compositor. And yes, only Plasma users benefit.stefan11111 wrote:Say the kde wayland devs make a patch that doubles the performance of the drm driver.
Then only they benefit from that.
I don't see what that has to do with anything.Yes, also in reality you cannot simply use a random patch that fixes a java.lang.NullPointerException for your own Java code that throws a java.lang.NullPointerException.stefan11111 wrote:Other compositors might try to port the kde patch to their compositor, but that can be very cumbersome,
especially if the patch depends heavily on kde libs.
So you say it yourself. Wayland has core protocols and the app should just implement the core protocols.stefan11111 wrote:Wayland has the core protocol, that all wayland compositors have to implement, and optional protocols that compositors do not need to implement.sMueggli wrote:If the app is badly written and depends on compositor internals. Apps should not care about how the compositors are doing their work.stefan11111 wrote:AFAIK, with wayland, compositors are forced to implement everything.
This means that an app that works on one wayland compositor might not work on another one.
There are also some unofficial protocols that are specific to a compositor, not part of any wayland standard.
As such, there are 10 different ways of doing one thing, and each compositor only supports some of them, or none at all.
On X11 this isn't a problem, no window manager has to implement the RENDER extension, it just gets it for free if the X server supports it.
Isn't one of the Xorg server problems that, although "a lot of eyes" are checking the code, the maintenance is very, very hard? X11 is a mixture of old code, broken code design and a lot of workarounds, that are unfortunately widely used. I dare to say it is easier to maintain and develop a Wayland compositor with a lot less eyes than the Xorg server code with a lot more eyes.stefan11111 wrote:Yes, if the display server implementation is separate from the window manager, like it is on X, then the X clients cannot get it wrong (because they don't write it).And forcing compositors to implement nothing themselves means that it will be way harder to get things wrong?stefan11111 wrote:Forcing compositors to implement everything themselves means that it will be way easier to get things wrong.
The display server code is then written by people that only write display server code, and they can focus only on the display server part, and not on the window manager part.
As such, the display server code has more eyes on it, because everyone is using the same code.
If KDE improves shared code that everyone else uses, than the performance gain is also for everyone else, or not? I mean machine code is either executed or not. If machine code is executed, the speed usually does not vary (with the same conditions). If the machine code is not executed with other compositors, then the code is not used by everyone.stefan11111 wrote:In that case, kde wouldn't have been four times slower that everyone else, because it would use the same code that everyone else uses.Let's assume they are able to make Plasma faster. And let's further assume that Plasma was four times slower than another Wayland compositor. In summa Plasma would be only twice as slow compared to the other compositor. And yes, only Plasma users benefit.stefan11111 wrote:Say the kde wayland devs make a patch that doubles the performance of the drm driver.
Then only they benefit from that.
I just wanted to say that "magic patches" do not exist. If KDE has some elegant way to solve a technical problem with a patch, the dev needs to abstract that patch anyway and can or cannot apply a similar implementation. But it is also common that developers try to do cumbersome things.stefan11111 wrote:I don't see what that has to do with anything.Yes, also in reality you cannot simply use a random patch that fixes a java.lang.NullPointerException for your own Java code that throws a java.lang.NullPointerException.stefan11111 wrote:Other compositors might try to port the kde patch to their compositor, but that can be very cumbersome,
especially if the patch depends heavily on kde libs.
Right... So if SDL3 (with its shiny-new wayland-native renderer) wants to go fullscreen on the user's primary monitor (and provide that facility to applications using its libraries), it needs to:sMueggli wrote:[
If the app devs choose to implement optional protocols they should also implement fallbacks. The app should work nevertheless.
If the app devs choose to implement unofficial protocols they should also implement fallbacks. Or they should not expect that the app is running "everywhere".

If I'm writing a program with screen capture support, I need to use the multiple wayland extensions that add support for this.sMueggli wrote:So you say it yourself. Wayland has core protocols and the app should just implement the core protocols.stefan11111 wrote: Wayland has the core protocol, that all wayland compositors have to implement, and optional protocols that compositors do not need to implement.
There are also some unofficial protocols that are specific to a compositor, not part of any wayland standard.
As such, there are 10 different ways of doing one thing, and each compositor only supports some of them, or none at all.
On X11 this isn't a problem, no window manager has to implement the RENDER extension, it just gets it for free if the X server supports it.
If the app devs choose to implement optional protocols they should also implement fallbacks. The app should work nevertheless.
If the app devs choose to implement unofficial protocols they should also implement fallbacks. Or they should not expect that the app is running "everywhere".
X11 maintenance isn't very hard. People have been working on X servers for 40 years, and we still do that today.Isn't one of the Xorg server problems that, although "a lot of eyes" are checking the code, the maintenance is very, very hard? X11 is a mixture of old code, broken code design and a lot of workarounds, that are unfortunately widely used. I dare to say it is easier to maintain and develop a Wayland compositor with a lot less eyes than the Xorg server code with a lot more eyes.stefan11111 wrote: Yes, if the display server implementation is separate from the window manager, like it is on X, then the X clients cannot get it wrong (because they don't write it).
The display server code is then written by people that only write display server code, and they can focus only on the display server part, and not on the window manager part.
As such, the display server code has more eyes on it, because everyone is using the same code.
And yes, there are things that work on X11 (because of a broken design and/or a workaround) that are not that easy to get it to work in a Wayland compositor.
The amount of Xorg code used depends on all the X clients you use, not just the window manager.I would also like to see what percentage of code is used by the Xorg server in combination with i3 and what percentage of code is actually used by Sway code in combination with wlroots.
The closer this number is to 1, the better. And I have a feeling that this number is much smaller in the X11 variant (but that's just a feeling).
If X11 kde devs find out that there is a way for the RENDER extension to work, while making less matrix multiplications, then all X11 users benefit.If KDE improves shared code that everyone else uses, than the performance gain is also for everyone else, or not? I mean machine code is either executed or not. If machine code is executed, the speed usually does not vary (with the same conditions). If the machine code is not executed with other compositors, then the code is not used by everyone.
On X11, there is no need for that, the patch would get used by all other X users.I just wanted to say that "magic patches" do not exist. If KDE has some elegant way to solve a technical problem with a patch, the dev needs to abstract that patch anyway and can or cannot apply a similar implementation. But it is also common that developers try to do cumbersome things.

I'm glad my ebuilds work for you.steve_v wrote: On a more positive note, @stefan11111 your Xlibre ebuilds are working swimmingly over here. I was writing my own, but you beat me to it.![]()

I don't like such sentences in our forum ... let people discuss pros and cons of whatever because it's here in the chat.Anon-E-moose wrote:[...] But your bitching and whining about what you consider flaws in the design of wayland
on this forum won't make a bit of difference, other than annoy those around you. [...]
If screen capturing is not part of the core protocols, than it cannot be done with the core protocols. As far as I know screen capturing is currently in the staging phase.stefan11111 wrote:If I'm writing a program with screen capture support, I need to use the multiple wayland extensions that add support for this.
If those are missing, screen capture doesn't work, it can't be done with just the core protocols.
Let's assume Hyprland is an environment that wants to have global shortcuts (I assume that a window manager may or may not want to have global shortcuts). And Hyprland obviously has a protocol for doing that. Why do you think that this is wrong? Why should Hyprland rely on a probably insecure (but working) solution like X11 shortcut handling? The goal of Wayland is not to be X12 (or X11++), but to take the knowledge and create a better (but different) approach to fill the screens.stefan11111 wrote:If I want to have global shortcuts, I have to use compositor-specific protocols like https://github.com/hyprwm/hyprland-prot ... uts-v1.xml
Yes, on X11 a lot of things just work, be it for legit use cases be it for attackers. And exactly that is also one of the main reasons why an alternative to X11 is needed.stefan11111 wrote:On X11, these things just work, regardless of if I'm using dwm or kde.
You say X11 maintenance is not hard (I think the Xorg maintainers are looking for more helping hands). But developers like Kristian Høgsberg (DRI2 in X11) have another opinion on that.X11 maintenance isn't very hard. People have been working on X servers for 40 years, and we still do that today.Isn't one of the Xorg server problems that, although "a lot of eyes" are checking the code, the maintenance is very, very hard? X11 is a mixture of old code, broken code design and a lot of workarounds, that are unfortunately widely used. I dare to say it is easier to maintain and develop a Wayland compositor with a lot less eyes than the Xorg server code with a lot more eyes.stefan11111 wrote: Yes, if the display server implementation is separate from the window manager, like it is on X, then the X clients cannot get it wrong (because they don't write it).
The display server code is then written by people that only write display server code, and they can focus only on the display server part, and not on the window manager part.
As such, the display server code has more eyes on it, because everyone is using the same code.
And yes, there are things that work on X11 (because of a broken design and/or a workaround) that are not that easy to get it to work in a Wayland compositor.
Look at Xlibre, work is being done there.
It's just that the Xorg maintainers decided to keep it more stable and not merge patches,
but there is nothing that would make X server maintenance very hard.
Also, for some reason, there are patches from 2-3 years ago that were applied just to Xwayland, for problems that are also in Xorg.
In other words: It is impossible to know which code of X11 is used and which not. So whenever you install an X11-based app you have to hope that the Xorg server contains the needed code. And a lot of unused code is installed.stefan11111 wrote:The amount of Xorg code used depends on all the X clients you use, not just the window manager.I would also like to see what percentage of code is used by the Xorg server in combination with i3 and what percentage of code is actually used by Sway code in combination with wlroots.
The closer this number is to 1, the better. And I have a feeling that this number is much smaller in the X11 variant (but that's just a feeling).
If all you do is use i3, then not a lot of Xorg code is used.
If, while using i3, you also open a browser, a game, a video, etc, more Xorg code will be used.

I keep hoping for intelligent commentary on things like wayland, etc, but I keep being disappointed, terribly disappointed.pietinger wrote:If you don't want to read the "whining", I recommend avoiding this thread. Your post is even more off-topic than the others
I understand your disappointment, but as long as two (or more) users are having a decent and (relatively) on-topic conversation, I see no reason for moderation to stop it.Anon-E-moose wrote:I keep hoping for intelligent commentary on things like wayland, etc, but I keep being disappointed, terribly disappointed. [...]
I think the point here is that screen capture is considered a "useful feature" that ought to be well supported, and so it is frustrating that there is no standardized protocol for doing it. Yes, doing it securely is a good thing, and yes, compositors should be free to apply policy-based decisions to captures, such as deny-all, capture only "approved" windows, or capture the whole screen. However, since it is not a standard protocol, there can exist otherwise featureful compositors that cannot do any form of screen capture at all.sMueggli wrote:If screen capturing is not part of the core protocols, than it cannot be done with the core protocols. As far as I know screen capturing is currently in the staging phase.stefan11111 wrote:If I'm writing a program with screen capture support, I need to use the multiple wayland extensions that add support for this.
If those are missing, screen capture doesn't work, it can't be done with just the core protocols.
The screen is managed by the Wayland compositor. So it sounds reasonable that the compositor is also handling screen capturing. And there is a thing called "security". It might be a good idea that not every application is able to capture the screen also from other applications. If you know a protocol that is secure and usable for all Wayland compositors, please share it.
If all environments used standard protocols for all the "obviously useful features", then a capturing application could use a single standardized protocol and do its job well on all environments. This does not mean all environments need to provide all obviously useful features, only that the features they choose to provide should be accessible in a standard way. We have plenty of evidence on the X11 side that some people like minimal environments that lack "obviously useful" features, so I'm not going to argue that all compositors should be held to some minimum standard on what features are offered.sMueggli wrote:If your goal is to have one application that can "screen capture everywhere", then I wish you good luck. If I were to start with a "screen capturing" app (and I try to have security in mind from the beginning) I would start with an app that works on my daily used compositor. And only when I have a stable and working version I would think about a more general approach ("premature optimisation is the root of all evil").
Do one thing and do it well. Do not try to do well on all kind of environments.
It is not wrong that Hyprland has a protocol for it. It is wrong that Hyprland needs a custom protocol for it. It would be better if there were a standard protocol so that every compositor that wanted to allow global shortcuts could do so, and the applications registering the shortcut did not need to know or care with which compositor they were communicating. We do not need to require that every compositor support global shortcuts, but we should strive for the situation that every compositor that does want to allow global shortcuts will use the same API for accepting them.sMueggli wrote:Let's assume Hyprland is an environment that wants to have global shortcuts (I assume that a window manager may or may not want to have global shortcuts). And Hyprland obviously has a protocol for doing that. Why do you think that this is wrong? Why should Hyprland rely on a probably insecure (but working) solution like X11 shortcut handling? The goal of Wayland is not to be X12 (or X11++), but to take the knowledge and create a better (but different) approach to fill the screens.stefan11111 wrote:If I want to have global shortcuts, I have to use compositor-specific protocols like https://github.com/hyprwm/hyprland-prot ... uts-v1.xml

Ignoring for the moment whether hyprland works well with others, other compositors can always grab hypr's protocol and use it.It is not wrong that Hyprland has a protocol for it. It is wrong that Hyprland needs a custom protocol for it. It would be better if there were a standard protocol
Yeah, I switched over to those around the first release. I'm referring to them as "yours" on account of the commit history.stefan11111 wrote:.
Are you using the ones from https://github.com/X11Libre/ports-gentoo ?
Well, I guess after these 17 years we have indeed reached peak "security"... I mean If it doesn't exist, it must be pretty difficult to exploit, right?sMueggli wrote:security security security
Indeed. Careful consideration is one thing, shuffling-off due to old-age before we get anywhere near feature-parity is entirely another.Anon-E-moose wrote:painfully slow

From your post, I get that, it your opinion, things need to be the way they are because of security.sMueggli wrote: Yes, on X11 a lot of things just work, be it for legit use cases be it for attackers. And exactly that is also one of the main reasons why an alternative to X11 is needed.

This is a direct attack on me.Anon-E-moose wrote:One more time
Use whatever you want, X, wayland, frame buffer, arcan. xlibre. No one is stopping you from using any or none of these.
Complain all you want about the design of software that you don't even use, but that is uber-pathetic, just sayin'
If you were really serious you would put on your developer shoes and hat and start working on wayland.
Instead I see far too many, sit around while others do the work, on their time, hoping they put in features that "you just can't live without"
self-entitlement seems to be one of those up and coming diseases that are running rampant
https://www.youtube.com/watch?v=Mre-bXXVo18
The moderation is very careful when it comes to forums such as “Programming” or “Desktop Environments”. In “Chat” we are a bit more “lenient”. Also, we try to help and not punish (you probably remember your frequent USE="-*" and I advised you to create a thread in “Documentation”). I don't mean to reply in place of @Anon-E-moose, but I didn't see his post as a direct attack on you so much as a general complaint about repetition; and yes I've already stopped it and I get the impression all users in this thread have a desire to talk about Wayland in a factual way again. You have now replied to @Anon-E-moose and I think that settles it. We are all human and not perfect.stefan11111 wrote:[...] Again, I ask moderation to be more careful about comments such as the one I quoted above. [...]

Indeed, pietinger. I didn't respond since there is no sense in trying to rebut someone looking to be offended.pietinger wrote: I don't mean to reply in place of @Anon-E-moose, but I didn't see his post as a direct attack on you so much as a general complaint about repetition;