Getting Wayland Input handling ready

I noticed an article on Phoronix today about libinput which made me think I should post a little Wayland update again. So Libinput is developed by Peter Hutterer who is part of the Graphics team here at Red Hat, and our resident input expert. He is developing libinput as part of our work to get Fedora Wayland ready.

That said input is a complex area and if we do end up not having a Wayland option with feature parity with the X.org option in Fedora 21, then not having gotten input sorted in time is the most likely scenario. That said we are still charging ahead with the goal of getting things ready for Fedora 21, but in our last status meeting we did flag input as our biggest risk. Luckily Peter is not alone in his efforts on libinput, there are a healthy amount of community contributions and at Red Hat we have recently had Hans de Goede join Peter on input. So we are doing our utmost to make sure the pieces fall into place.

Our minimum todo list for input that will enable Wayland to be on parity with X for at least 90% of our users is as follows:

keyboard works as-is

mouse supports left/right-handed button mapping

mouse/touchpad middle mouse button emulation

touchpad scrolling and tapping

touchpad software-emulated buttons work on clickpads

touchpad disable-while-typing

But there are of course other items on here too, like Wacom tablet support, which is of interest to a much smaller segment of our users, but still important to get done. We might have to push some of these more niche items onto the F22 timescale.

Also if anyone is wondering about game pads and such, we don’t have any concrete plans around them currently in the context of Wayland, as when we spoke to Valve and the SDL team they currently access game controllers directly through the kernel interfaces, and preferred to keep doing that. So we decided not to try to second guess them on this considering they been doing game development for years and we haven’t :)

Gamepads/joysticks/etc. support is something I’ve been wondering about for a while. Besides normal gamepads and playstation controllers (ex: DDR mats) through USB adapters, there’s also the Valve gamepad and devices such as the Occulus Rift… all of those would be nice to be configurable from gnome-control-center, are there any plans for this?

I don’t like the idea of depending on a proprietary app (like Steam) to control them.

I suppose this is something you folks are discussing with Valve (if not you probably should :)

Thank you for publishing this update. It is indeed good to know that Peter is not doing all the work alone (and I know that it really helps if a software architect can discuss things with others), and that there is a checklist-style (i.e. objective and verifiable) definition what it means for Wayland input to be ready for Fedora 21. What’s missing in the post is a fallback plan for the case if the input solution does not become ready soon enough.

Handling of gamepad, joystick, etc configuration is not left to Steam but instead to the individual games. Considering the buttons and such will do different things in every game having centralized configuration for this doesn’t seem like it would be a good idea.

Multitouch support is not that great as it is, so it is hard to regress on it ;) that said we hired Carlos Garnocho recently who got improving our touch support as part of his job description. Also most of the fixes needed in this area is not really on the X or Wayland level.

But it’s up to the widget toolkits to actually expose the features to the user since it will not be possible to modify input behavior using xorg.conf/xorg.conf.d right? How will users that don’t use a desktop environment be able to configure their mouse/trackpad/keyboard/other input device?

[WORDPRESS HASHCASH] The poster sent us ‘0 which is not a hashcash value.

It will be up to the configuration system of the compositor you use how it stores these settings. So for GNOME/Mutter that will be gsettings. For Weston I think it is a textfile you could edit and for other compositors they will choose their own thing. So hopefully there will be a compositor option available which stores its setting in a way you prefer.