Subject: Trackpads
To: None <tech-kern@netbsd.org>
From: Michael Lorenz <macallan@netbsd.org>
List: tech-kern
Date: 01/15/2007 16:06:46
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

I had a discussion with uwe about abstracting trackpad-specific 
functionality a while ago ( Synaptics in his case, Apple in mine ) 
which didn't lead to anything definite. A while ago I added some code 
to the ADB mouse driver to translate tapping the pad into mouse clicks 
and to turn this translation on and off I added a sysctl as a quick fix 
since this behaviour annoyed a few people.
Now this raises a couple questions:
- - should this be handled by something like wsconsctl? But since 
wsconsctl works on mux devices there might be more than one pointing 
device ( like a pad and a mouse which would be rather common on laptops 
). Whatever we pick, all trackpads should use the same interface here, 
be it a sysctl or something else.
- - should the translation code be abstracted? Not that it's overly 
complicated though but we might want more stuff like tapping the upper 
right corner -> right mouse button. For this we'd need an abstraction 
of trackpad events, problem here is that not all pads provide absolute 
coordinates ( or rather - we don't always know how to get absolute 
coordinates )
So we might end up with:
synaptics* at usb?
adbpad* at adb?
fancypad* at trackpaddev?
and probably wsmouse* at fancypad?
... which might be a little convoluted.

 From an ADB pad we can get:
- - relative movement
- - button events ( as in real buttons )
- - finger up / finger down
- - in some cases absolute coordinates

Any thoughts?

have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iQEVAwUBRavs5spnzkX8Yg2nAQIiJQf/Xdf6qRbVrmUuu1c84IAS1DuUarFeVqZN
TglAnN22IzMsZ0M8riV3+LCob7QSBqPwTd1hImW9poUC3r3Uv8Jpcyohmlj36zEq
BkyYsvFkB9GiMwf2lUfTEJARjkAcQSWBRgqRlX+7oQk6J3CzNPRMThZE3bBw2vvU
UVi8rLnSNScD1JquGOUWKTRy59DajCc8alBqqVGmh8TKkUdCRKL7sevOmK3EK2DI
pB7yZucdH0YNV1KAg+U8omSk6wZ3dANp9Y4CA4pdypRJ2xN9nMqkpMvCV1uB6LRl
j/GF+5kFrbHd94BywtjJGG0k3vwO9iA2Z2qpkZwKAXZepCNBonuMhQ==
=1W0k
-----END PGP SIGNATURE-----