Input and output control protocols for the headless backend
I believe that the headless backend would have much more value if it exposed external interfaces for
- dynamically creating, configuring, and removing heads, and
- dynamically creating, configuring, and removing
The weston-test plugin already has a rudimentary Wayland interface for input device control, but it is completely ad hoc and organic. I envision something that would be well structured and more or less match the libweston backend API and the
wl_seat family of Wayland interfaces.
Controlling heads would allow automated testing of monitor hotplug, and controlling input devices would allow automated testing of input device hotplug and synthetic input events. These would be useful in testing not only the Weston frontend and libweston core behaviour, but it would also create a nice test bed for application testing. Especially the synthetic input events should be a great help for automating application UI testing without involving uinput.
The natural choice would be to write these interfaces as Wayland protocol extensions implemented directly in the headless backend.
This idea is continuation from using GL-renderer with the headless backend, allowing headless hardware-accelerated graphics, which is already implemented.