Integration of libpointing with Xorg

Peter Hutterer peter.hutterer at who-t.net
Tue Aug 29 06:19:57 UTC 2017


On Mon, Aug 28, 2017 at 09:32:47PM -0600, Tim Stowell wrote:
> Thanks for the information Peter, this is really helpful.
> 
> I can understand how it would be simpler to just use the magic numbers in
> libinput's code. I was only wanting to use libpointing because it's the
> only implementation of the Windows transfer function that I could find, but
> if it's not too hard to replicate do you forsee any chance of incorporating
> these other transfer functions in libinput at some point?

I'm flat out with a lot of other issues and working on pointer acceleration
is one of the most frustrating things I have encountered with libinput.
Plenty of people complain, requests for testing are mostly met with crickets
and when not it's mostly a "I don't like it" with very little to go on.

Putting a "windows function" into libinput is a nonstarter because there's
(iirc) very little research showing that the windows function is actually
superior. And I'm still not convinced that switchable acceleration functions
are really worth their cost (this does not include custom functions for
devices that require it).

> I'm not familiar enough with libinput to know, but maybe it already
> provides transfer functions similar to Windows? Thanks.

have a look at filter.c. Right now, libinput is a mix of 'worked for me'
magic and what the xserver used to do. But libinput also uses different
acceleration methods for mice, touchpads and trackpoints. So the answer is
'maybe but probably not'. If you want to wade into that though, src/filter.c
is the starting point.

Cheers,
   Peter

> On Mon, Aug 28, 2017 at 8:14 PM, Peter Hutterer <peter.hutterer at who-t.net>
> wrote:
> 
> > On Mon, Aug 28, 2017 at 10:21:55AM +0300, Pekka Paalanen wrote:
> > > On Sat, 26 Aug 2017 18:02:52 -0600
> > > Tim Stowell <stowellt at gmail.com> wrote:
> > >
> > > > Hello all,
> > > >
> > > > I had several questions:
> > > >
> > > >    1. Does anyone know if there has been an effort to integrate
> > > >    https://github.com/INRIA/libpointing with Xorg?
> > > >    2. If not, how would I go about attempting this integration?
> > Libpointing
> > > >    basically outputs x and y displacements based on selected transfer
> > > >    functions. I would need to find out where Xorg currently handles
> > mouse
> > > >    input and sets the cursor position so I could somehow intercept it
> > and
> > > >    modify those coordinates.
> > > >
> > > > I would appreciate any pointers in the right directions, such as which
> > > > file(s) in the Xorg codebase handlle mouse movement events and actually
> > > > move the cursor? Thanks.
> > >
> > > Hi,
> > >
> > > what is the advantage of libpointing you are seeking over, say, libinput?
> > > https://www.freedesktop.org/wiki/Software/libinput/
> > >
> > > I had a quick glance over the libpointing README and wiki and but did
> > > not quite understand the project's benefits.
> >
> > it's a research project to analyze and experiment with pointer acceleration
> > (pointer transfer) functions. From my POV it may be interesting to use it
> > to
> > gather data about acceleration function but I don't think using libpointing
> > directly for something as (technically) simple as a pointer acceleration
> > function gives us a lot of benefits. Much easier to take the magic numbers
> > and copy them across into libinput's implementation.
> >
> > Cheers,
> >    Peter
> >


More information about the xorg-devel mailing list