New protocol for testing use cases
Since I couldn't find an existing issue, I'm taking the liberty to create this as a follow-up from the wayland workshop at XDC 2024, where improved testing support on wayland was discussed. It would be good to collect some initial set of requirements and start experimenting, perhaps using a new experimental protocol that can be iterated on.
Some key items I remember that were mentioned in the workshop:
- Being able to have hooks that would allow tests to perform certain tasks like injecting input events, controlling windows etc.
- Facilitate testing of applications, compositor implementations as well as low-level graphics stack uniformly across multiple compositors.
- Authentication mechanism to selectively allow tests to perform those actions.
Please add anything I missed.
A list of possible high level requirements that I can think of:
- Injecting mouse move and mouse click events
- Injecting keyboard events
- Moving/resizing windows
- Minimizing/maximizing windows
- Tiling windows
- Focusing/Un-focusing windows
- Changing display resolution and scale factor
For reference, I'm including a few downstream protocols:
- https://source.chromium.org/chromium/chromium/src/+/main:third_party/wayland-protocols/unstable/ui-controls/ui-controls-unstable-v1.xml
- https://invent.kde.org/libraries/plasma-wayland-protocols/-/blob/master/src/protocols/fake-input.xml
- https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/blob/master/unstable/wlr-virtual-pointer-unstable-v1.xml