I have an observation about #wayland that may or may not have merit, which is this: changing the running compositor is hard. If you make a mistake and cause the thing to fall over you lose your session. You could run a second compositor displaying to an embedded window, or something, but that's a faff (doubly so if you have a DE that doesn't allow >1 login at once) when you want to debug something with all the windows you regularly use.

The thought which is floating around in my head is: how about a multiprocess compositor? The clients connect to a compositor which renders them in some place or other according to its scene graph, then you have one or more scene graph controllers which receive messages from input devices and send updates to the scene graph. If a controller crashes, the scene graph is intact and the clients are still connected to it - you just have to start another controller and carry on.

self reply

I had forgotten I've been here before, in another persona : https://mastodon.social/web/statuses/100923786938182681

(The Emacs model of configuring/introspecting the running process from within the running process is exactly what I want, just in case that wasn't clear. See also the "sawfish" X11 WM, which I used for many years until I got a laptop with a HiDPI display)