Subject: Re: Two mouses
To: J Chapman Flack <flack@cs.purdue.edu>
From: Richard Rauch <rkr@olib.org>
List: port-i386
Date: 03/01/2005 14:16:36
To slightly elaborate:

The X message system does not have any explicit place for wheels.
XFree86 has used a hack of mapping wheel events to buttons.  4 and 5
are commonly picked because "most" people have no more than 3 real
buttons.

If you have 5 buttons (e.g., as a trackball in my possession), for
example, you have a choice: Put the wheel events on still-higher buttons
or move the *real* buttons 4 & 5 up to some other number (say 6 & 7).
I'm not sure what happens if you have a mouse with two wheels.  I've
also seen mice with mini-trackballs on top.

Some applications have hard-coded assumptions, as indicated previously,
about the buttons that correspond to the wheel.  xterm defaults to
assuming 4 & 5, but can be told otherwise.

I don't know if XFree86 or X.Org can (or will) extend the message
classifications to include a wheel event.  But a separate message
class really belongs in there.  (MS, who I believe invented the
wheel, appears to include a wheel-resolution indicator of some sort
in their window-system events for wheels.  They have also produced
a bunch of new mice with *no* tactile clicks (smooth rollers).
I have never used one of those, much less hooked one up to an
XFree86 box; I'm curious if they report much finer ticks...)

(I *do* know that there is something up to around a 50% variation
in the "coarseness" of ticks between some mice that I have, so that
a stroke of a finger on one wheel produces more ticks than a stroke
of the same finger on another wheel.)


As for why the mouse should fail to wake up a sleeping system, is
this the X server blanking the screen, or is it the laptop's own
sleep mode?  If the latter, there may be a BIOS option that relates
to this.  Maybe there needs to be some way for the USB driver in
NetBSD to nudge the power management to wake up?  (Hm.  You could run
/dev/mouse through a filter that passes everything but which uses
some kind of "wakeup" command for every event received...)

Just some ideas.  (^&

-- 
  "I probably don't know what I'm talking about."  http://www.olib.org/~rkr/