The issue isn’t just that the features had to be reimplemented, but that they were not part of Wayland to begin with. Wayland does only do the most basic stuff and leaves everything else to the compositor (aka Gnome or KDE). That means every compositor will implement their own hacky version of the missing functionality and it takes ages until that gets unified again, so that apps can actually use that functionality.
Wayland is a classic case of an underspecified software project, they do a thing and they might even do it well, but what they are doing is only a fraction of what is actually needed for it to work properly in the real world. That’s why we are 15 years later and the new “simpler” Wayland is still not ready.
Wayland does only do the most basic stuff and leaves everything else to the compositor (aka Gnome or KDE). That means every compositor will implement their own hacky version of the missing functionality and it takes ages until that gets unified again, so that apps can actually use that functionality.
Would this functionality be mostly the same? Could they get together to make a shared libcompositor that implements the bulk of the functionality? Or is it so tied to specifics of the desktop environment that there’s little commonality. In which case, Wayland not doing it would be the right call.
I think wlroots is the standardized thing. Many WMs use it but desktops need to switch over to it afaik. I think KDE talked about doing this for plasma.
I am unsure what wlroots really is and maybe its not a libcompositor you were talking about but similar.
This is exactly what it is.
It seems very well specified to me, just developers have leaned on X’s insecurity for years to let them just reach across application boundaries freely. That’s addressed by Wayland, but it’s obviously a breaking change that requires new ways of transferring information between apps with oversight from the system, instead of X where all apps could just freely spy on each other. Things breaking and being complex to reimplement is the cost of doing it right.
With X, any program can capture the entire screen. The Wayland protocol does not allow this, so each DE must implement it separately. You’re using KDE’s screenshot feature, not Wayland’s, and other screenshot tools may not work if they don’t support KDE’s custom protocol for screen capture.
Most applications get their Wayland support from the toolkit they are written in. Qt ( KDE ) and GTK ( GNOME ) apps are going to work in any Wayland compositor.
Some applications do “desktop” related things like try to take screenshots to set global hot keys. Wayland, strictly speaking, does not allow this. This becomes the job of the “compositor” ( Window Manager ) and so, if an application wants to do those things, it has to know how to talk to the compositor.
Increasingly, the desktop environments and compositors are aligning on how to surface some of these capabilities to applications in a common way.
You will have to use a KDE compatible screenshot tool.
Does it suck? KDE also has screenshotting implemented. It makes sense that your window manager should manage your windows, which includes being in charge of what can see what. Letting any app screenshot your entire monitor is not secure.
Only those that must interact with non-standard Wayland protocols, such as screen capture tools (like OBS), clipboard managers, WM utilities like xdotool… Other programs such as email clients or text editors are unaffected.
However, this is a non-issue as far as most users are concerned. There are only a handful of implementations (basically, GNOME, KDE, and wlroots which is used by most Wayland WMs) and most modern programs which require specific support to work are all compatible.
You do realize you’re allowed to still use X11, right?
I’m on Wayland, KDE plasma with Fedora 39. I take screenshots all the time.
I understand what you mean now. You have to wait for the software developer to update the tool you use for compatibility with Wayland. Will it run under xwayland?
You said “I learn” twice in a sentence that demonstrates what you do not know. Impressive.