libinput pointer precision at different sensitivity levels

Peter Hutterer peter.hutterer at
Thu Aug 2 07:14:44 UTC 2018

On Thu, Aug 02, 2018 at 08:20:38AM +0200, Josh Simmons wrote:
> On Thu, Aug 2, 2018 at 7:49 AM, Peter Hutterer <peter.hutterer at> wrote:
> >
> > and since devices don't give you anything < 1 unit delta, subpixel isn't
> > really a thing unless you lower the speed setting.
> >
> So perhaps I'm missing something, but the raw events as reported by
> libinput debug-events do in fact have sub-unit precision?
>      event8   POINTER_MOTION    +7.14s   0.00/ -0.94
>      event8   POINTER_MOTION    +7.20s   0.94/  0.00
>      event8   POINTER_MOTION    +7.21s   0.57/  0.00
>      event8   POINTER_MOTION    +7.21s   0.67/  0.00
>      event8   POINTER_MOTION    +7.22s   0.74/  0.00
>      event8   POINTER_MOTION    +7.34s   0.00/ -0.64

did you run this with --set-profile=flat? this tool is a completely separate
context, it won't see what config options you have applied in X or Wayland.
> But I'm not really sure where the accumulation into singular device
> units is coming from? Because it doesn't seem like it _should_ be
> necessary - my mouse is capable of reporting at a much higher
> resolution than integer device coordinates - regardless of the
> sensitivity. At least it seems it should be that way?

nah, not without scaling. The device always reports in integers only, but
those integers have a physical reference point - the resolution of the
device in DPI. Of course the device won't tell us that (unless you know the
magic protocol, if it has one). So regardless of the resolution you set, the
minimum movement is always 1/1. Just happens that the physical distance you
need to move is less.


More information about the wayland-devel mailing list