[ANNOUNCE] predictable pointer acceleration
Daniel Stone
daniel at fooishbar.org
Thu Aug 14 06:35:13 PDT 2008
Hi,
On Thu, Aug 14, 2008 at 02:22:45PM +0200, Simon Thum wrote:
> predictable pointer acceleration in X has arrived. Enjoy!
Awesome! Thanks. :)
> 'Predictable' refers to one's ability to tell where the pointer will
> move - even in the presence of acceleration. That wasn't really given
> before.
>
> The main features:
> * user-selectable profiles control pointer acceleration
> * adaptive and constant deceleration
> * acceleration becomes predictable
> * no overshoot when X blocks for a short time
>
> To sum it up, it's all about useability and adaptability to a wide range
> of relative pointing devices.
>
> I would like to propose it for inclusion in X server 1.6. If no-one
> objects, I'll add it on the wiki.
If it's fine with Peter, it's definitely fine with me.
> * By default, the benefits fall short of what's possible. Therefore
> I propose changing the acceleration defaults so polynomial acceleration
> comes to effect, with adaptive deceleration = 2. The first patch does
> that. Everyone on git master can test-drive the effect using 'xset m 2
> 0' and setting adaptive deceleration (see the snippet below or in the
> wiki). Drawback: It's not too useable for people who switched back to
> the lightweight scheme.
Meh. I'd suggest just making these the default when they merge. If
they're good, they're good; if they're not, they're not. No use keeping
the default as something we know to be suboptimal.
> * I introduced a 'Driver API', which lets a device driver speak up
> on some acceleration and scaling related issues. E.g. it could suppress
> acceleration since it does its own, or provide some information to
> improve results. The wiki has more details. The second attachment
> contains my proof-of-concept. So driver people: Is it reasonable? Would
> you use it?
Hmm, I don't know of anyone doing their own acceleration in the driver:
that sounds a bit insane. The only ones I really know of are tablets,
which are absolute and thus unaccelerated anyway, so I don't really see
why.
> * The information maintained to make this possible, i.e. sub-pixel
> position and velocity, is of some use further down the chain. For
> example, sub-pixel movement might be interesting in scroll bars, or a
> widget might suppress extensive gfx effects if the velocity of the
> pointer indicates that it's a spurious hit only. This would require
> an input event rework and more or less dropping the lightweight scheme.
Hmmmm. I guess for relative devices, you could substitute the valuator
data: synthesize fake x/y axes with scaling. We could also define one
axis to be used as velocity.
> * The code could further improve blocking cases using better
> timestamps, such as evdev delivers. However, they can't be passed to DIX
> at the moment. Moreover, Tiago's input thread could have a practically
> equivalent effect. This would be strictly optional anyway since most
> sources don't do timestamps. Opinions?
Yeah, I've been meaning to add timestamp support at one point, since we
also need it to do sensible key repeating.
Cheers,
Daniel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.x.org/archives/xorg/attachments/20080814/fdfe4e20/attachment.pgp>
More information about the xorg
mailing list