Everybody uses at least one input device when dealing with a computer. And hopefully, this input device “just” works. However, when dealing with the brand-new latest laptop model, it’s common enough that the input devices are not working, or are not working as expected by the users. The reasons are manifold: OEMs want to have more power efficient laptops and are generally refusing to use well-tested PS/2 ball mice from 15 years ago. So they are introducing new touchpads using weird communication protocols. Or they simply want to introduce brand new types of interaction with their laptops (think the latest Macbook Pro and their function bar, but Lenovo had something equivalent 3 years ago on their X1 Carbon). Alongside new devices came the development of Wayland. The end result is that the input stack has evolved a lot in the past few years, and it’s a good thing to give an update of it.

In this talk, we will present what work has been conducted throughout the whole input stack, from the kernel to toolkits (with an emphasize on the kernel). We will explain the choices we made, and why the plans don’t always work. After an overview of the full input stack in current distributions, we will outline the development efforts to support the various device types (mice, touchpads, touchscreens, etc.). Of course, we will tell you the most crusty problems we had to face because who doesn’t like a nice anecdote about hardware oddities.

We hope to make a pleasant talk where no requirements is necessary. We also hope attendees will learn how the input stack is structured. And of course, we hope the attendees will have a more compassionate eye regarding their preferred mouse, touchpad, keyboard or any other device, thinking of the dedication we put in to make their life easier (one can always hope).

Benjamin Tissoire, Red Hat

[slideshare id=80558571&doc=kr-2017-171007142613&w=650&h=500]