> A key question is why everyone is writing their own compositor, this is not about the protocol design, it's about the state of collaboration.
Dude, because that is how wayland is designed. X is a display server. Wayland is a protocol with implementation. If you want tiling, you have to roll your own, with ALL the protocols that are needed. It's up to clients to render. It was one of the fundamental critiques people had of the whole thing. 15 years in, and it's still the same. Need Vulkan rendering? See you in two years. And then every single WM has to implement it. Not even the basic premise of fractional scaling is solved properly, except in the one use case which is single monitor usage.
It's not about collaboration. wlroots was an attempt at having a standardized layer, and many protocols made it back into upstream actually. But even there, no two wlroots compositors are the same. We used to call these WMs, because the compositor layer could be separate on X. Anyway, bugs persist for years, some parts are never fixed, lots of basic features that existed in X for decades needed people to implement in their own compositor report back and then create a standardized protocol. So KDE has their own, gnome has their own, Hyprland recently rolled their own, etc.
And then there is of course gnome, which seems to want to break random basic functionality for no good reason(hello tray icons). Gnome of course didn't use to be like that.
But a plug, the absolute best wlroots based compositor I have used is mangowm[1][2]. You report a bug in the morning and in the afternoon dreammaomao has a solution for it. Of course I'm exaggerating a bit, but I think I've used pretty much every major Wayland compositor extensively so far.