Add the XWAYLAND extension
This extension exists to serve one purpose: reliably identifying Xwayland. Previous attempts at doing so included querying root window properties, output names or input device names. All these attempts are somewhat unreliable. Instead, let's use an extension - where that extension is present we have an Xwayland server.
Clients should never need to do anything but check whether the extension exists through XQueryExtension or search through XListExtensions.
This extension provides a single QueryVersion request only, and that is only to provide future compatibility if we ever need anything other than "this extension exists" functionality.
Note: I've decided to add this as proper extension to xorgproto after all, for two reasons:
- this way it's "official" and the (sparse) documentation is in the same place as everything else
- I somewhat needed to implement parts of the client bits anyway to test the server implementation
- long-term, the benefits of having this in the same places as everything else outweigh the short-term disadvantage of added inertia. The protocol is simply enough that it can be copy/pasted into the server where a backport is required.
Implementations:
- xserver: xorg/xserver!954 (merged)
- xcbproto: xcbproto!34 (closed)
- libxcb: xorg/lib/libxcb!33 (closed)
- xiswayland: xorg/app/xisxwayland!7 (commits)
- mesa: mesa/mesa!17790 (merged)
- xinput: xorg/app/xinput!9 (merged)
And for testing the server: xisxwayland custom throwaway implementation: xorg/app/xisxwayland!6 (closed)