libinput returns multiple keyboards that do not generate events

Jasper St. Pierre jstpierre at
Thu Jul 17 05:20:42 PDT 2014

Why do you need to know which one is the "real" keyboard? Just listen to
events from all of them. On my laptop, I also have six keyboards. They are:

    Power Button
    Video Bus
    Sleep Button
    Integrated Camera
    AT Translated Set 2 keyboard (this is the actual "keyboard" keyboard)
    ThinkPad Extra Buttons

All of these are real keyboard devices that will send keyboard events if
you try hard enough. If you get multiple keyboard devices on the same seat,
you should treat all of them as equally valid and group them together into
one virtual keyboard. Same thing with pointer devices.

On Thu, Jul 17, 2014 at 8:16 AM, Stefanos A. <stapostol at> wrote:

> I have come across a strange issue while implementing a libinput backend
> for OpenTK <>. When testing on my laptop,
> libinput detects six keyboard devices. Out of these, only the last one
> actually sends keyboard events - the rest remain idle no matter which
> button I press on the keyboard.
> This is with libinput 0.2.0 with linux 3.15.5 running on Arch 64bit. The
> hardware is a 15'' rMBP (version 10.1, let me know if you need any system
> logs.)
> Is this result expected? Is there a way to detect the capabilities of each
> keyboard or otherwise distinguish which devices are "real" keyboards? Right
> now I am working around by waiting for an actual input event before
> recognizing a device as a keyboard, but this is rather hacky / racey.
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the wayland-devel mailing list