Software based presentation remote [or need an interface to talk uinput]

I am working on a presentation remote app as part of the deskconn project. A daemon would run on the desktop and the Android device on the local network would be able to send key events (pageup, pagedown, esc, etc), practically allowing my phone to control a Libreoffice Impress slideshow.

I could use a X11 specific functionality (maybe steal some code from autopilot) that would work, but it won’t work under wayland.

Since sending key events is a very sensitive issue in terms of software security, I believe it may make sense to create a snapd interface that allows only a limited set of key events to be forwarded or add a layer like the GPIO interface does i.e. allowing only specific keys requested (and justified) by a requesting app. Not really sure if that is possible with the uinput API as of today or if snapd would need to develop something homebrewed.

cc @jdstrand @zyga

Writing a longer line to bump.