I'm currently in the process of rewriting the core #wlmirror code, at least the Wayland protocol parts.

Adding a new protocol to wl-mirror and wiring it up was previously 6 changes in 3 different files, 2 of those changes were multi-line boilerplate.

This is now reduced to 3 changes in 3 files, each single-line changes (adding the protocol to CMake, adding the struct member, and adding an entry in a constant global array).

The design goal is making things less coupled and harder to screw up.

One direct benefit this will bring is it will fix the early crash in Gnome because of globals appearing in a different order. Gnome will still exit because of missing protocols (main branch) or show a black screen (xdg-portal branch), but that will be the next priority after that.