[ltp] Smooth trackpoint acceleration

Guarded Identity linux-thinkpad@linux-thinkpad.org
Mon, 5 Jun 2006 08:48:26 -0500


On Monday 05 June 2006 6:41 am, Richard Neill rn214-at-hermes.cam.ac.uk |
LinuxThinkpad| wrote:
> Guarded Identity wrote:
> > I was wondering if anyone has found a solution for smoother acceleration
> > of the trackpoint device.  It seems to me that the best way to fix this
> > problem is to develop a kernel patch for the psmouse/trackpoint driver. 
> > Then smooth acceleration can be controlled by SysFS.  If this could be
> > done, then acceleration could just be turned off in xset.
>
> What you wanted was to configure the gain of the hardware itself! Much
> nicer than low-gain + scrolling.
> The old way was called tp4d; the new way is a kernel driver, as of
> k.2.6.14: thinkwiki.org/wiki/How_to_configure_the_TrackPoint
>

Sorry, I was afraid it might be difficult for me to express myself clearly.  
What I really meant to say is that I think Steven Evanchik's kernel patch in 
2.6.14 can be even smoother... more responsive.  The algorithm tp-scroll uses 
is an exponential acceleration.  (actually, I'm pretty sure Evanchik's driver 
doesn't even have acceleration, just speed; acceleration is handled by xset).  

I imagine that the Thinkpad community in general has gotten used to using the 
device with what's available.  I just realized now that it's possible to make 
this device even more accurate than it is now.  I think exponential or 
polynomial acceleration is a good start.  

Ideally, I was thinking the acceleration should be in the psmouse/trackpoint 
driver itself, but after a little digging around this morning, I found a 
patch for X.org 
(http://www.rzuser.uni-heidelberg.de/~ahartme2/xorg-pointer-accel.diff).  I'm 
not sure I want to start messing around with customized packages of X.org, 
though.  Kernel packages seem more simple and also appropriate, although it 
makes sense to be to have pointers configurable in both X and the kernel 
drivers eventually.

It's not that I want to just brutally emulate what Windows and Macs do; I just 
want to have a pointer device that's responsive and accurate.  Pointers in 
Linux are quite literally like riding 2-speed bicycles.  I'm hoping for 
something with more of a continuous range of speeds, controlled by a sensible 
formula.  It's just amazing how much more comfortable the user experience can 
be with a nice pointing device.  On the flip side, I do have a lot of console 
applications that are largely driven with keystrokes, and my window manager 
is practically all managed with hotkeys.  However, there's always GUIs that 
are really designed for mice, and I can't get away from all of them.

So some people in here might just say, "sounds like you're sure of what you 
want; go off and code it."  I'm beginning to feel that way too.  Just wanted 
to see if anyone's already dealt with this issue before, or is interested in 
what I'm proposing.  Also, I looked the psmouse/trackpoint kernel code 
briefly, and I really haven't mapped it out completely.  Also, I'm new to 
kernel development, so I'm not sure I'd be using all the right calls and 
macros, but I'm sure I can wing it.

- Sukant