This is a page to remind me about how to configure Linux and X for this input device, which despite the name is actually a trackball.
Firstly, you need a version of the Linux kernel which supports the
input core and which puts PS/2 mice through the input core. It also
needs to be new enough to have the patch for Expert Mouse support
in psmouse-base.c. That probably means later 2.4.x kernels or a 2.6.x
kernel. Use cat -A /dev/input/mice to check that this is
all working and that all four buttons and the scroll wheel generate
different byte sequences. (If your Expert Mouse is USB then /dev/input/mice
should still work, I think.)
A suitable XF86Config-4 or xorg.conf rune is:
Section "InputDevice"
Identifier "Generic Mouse"
Driver "mouse"
Option "SendCoreEvents" "true"
Option "Device" "/dev/input/mice"
# /dev/input/mice can emulate plain PS2, ImPS/2 and ExplorerPS/2;
# only this one supports more than 3 buttons + scrollwheel:
Option "Protocol" "ExplorerPS/2"
# scroll wheel
Option "ZAxisMapping" "4 5"
# four real buttons and the scroll wheel:
Option "Buttons" "6"
# This bit's optional; it configures button 4 as a sort of 'lock'
# button, so instead of holding down one of the other buttons you
# first press button four then click the other button:
Option "DragLockButtons" "6"
EndSection
NB: this assumes that you have a plain Expert Mouse with four buttons and
a scroll wheel. Some models might have more buttons (or just be gratuitously
different), in which case the fourth
button might not be logical button 6 -- I've had a report of it appearing as 8.
Some experimentation with xev may be required.
The ExpertMouse has four hardware buttons and a scroll wheel. X has a concept of the physical button and the logical button. The physical buttons are numbered 1,2,3,4 in the order bottom-left, top-left, bottom-right, top-right. The logical buttons are numbered starting from 1, and they include the scroll wheel as a pair of fake buttons. The above setup makes the physical and logical buttons 1 to 3 correspond; then logical buttons 4 and 5 are the scroll wheel, and finally physical button 4 is logical button 6. Notice that DragLockButtons takes a logical button number.
If you want to have the buttons do different things, then probably the easiest thing is to add a ButtonMapping line to this Section. For example:
Option "ButtonMapping" "6 3 1 2"
will make bottom-right be left-click, top-right middle-click, top-left right-click
and bottom-left DragLock. ButtonMap takes a list of logical buttons; so the first
number is what bottom-left ought to do (here 6, which we have set up to DragLock),
the second is top-left (here logical button 3, right-click), and so on.