ButtonMapping for a 5-button mouse

Phil Endecott spam_from_xorg at chezphil.org
Thu May 4 11:56:30 PDT 2006


Dear All,

I've just bought myself an Evoluent Vertical Mouse, and I'm trying to 
get it to work properly with X.  I'm using the Debian package of 6.9.0, 
i.e. xserver-xorg 6.9.0.dfsg.1-4.  I hope this is a good place to ask; 
if not, can you suggest a suitable forum?

This is a USB mouse with three normal buttons, a wheel which is between 
the left and middle buttons, and a fourth button under the thumb.  By 
default, according to xev, the buttons are as follows:

1: left button
2: pressing the wheel
3: middle button
4 & 5: turning the wheel
8: right button
9: thumb button

I'd like to have the following allocation:

1: left button
2: middle button
3: right button
Plus whatever is needed for wheel rotation, presumably 4 and 5.
Pressing the wheel could also act as button 2.
I'm not sure yet about the thumb button, but duplicating the left button 
might be as good a choice as anything.

I think that the key to this must be the ButtonMapping option.  I have 
tried various things and I can reliably change the behaviour of the 
lower-numbered buttons.  But as soon as I have any ButtonMapping option 
present, buttons 8 and 9 are completely disabled (according to xev). 
Even this:

	Option "ButtonMapping" "1 2 3 4 5 6 7 8 9"

Here I'm asking it for a 1-to-1 mapping, but buttons 8 and 9 now report 
nothing in xev.

Here are some clues, in case they help:

- At first I tried 'Protocol USB' (as suggested by man 4x mouse), but 
got an 'unknown protocol' error (sorry, lost the details); I'm now using 
Auto.

- By default, it decided that the mouse had 7 buttons.  This is sort-of 
true, since 6 and 7 are missing.  I have tried with 'Option Buttons 9' 
and it still seems to fail.

Here is an extract from my xorg.conf as it stands at present:

Section "InputDevice"
	Identifier	"Evoluent Vertical Mouse"
	Driver		"mouse"
	Option		"CorePointer"
	Option		"Device"		"/dev/input/mouse0"
	Option		"Protocol"		"Auto"
	Option		"Emulate3Buttons"	"false"
	Option		"Buttons"		"9"
	Option		"ZAxisMapping"		"4 5"
	Option		"ButtonMapping"		"1 2 3 4 5 6 7 8 9"
EndSection

and here is what I get in the log:

(**) Evoluent Vertical Mouse: Device: "/dev/input/mouse0"
(**) Evoluent Vertical Mouse: Protocol: "Auto"
(**) Option "CorePointer"
(**) Evoluent Vertical Mouse: Core Pointer
(**) Option "Device" "/dev/input/mouse0"
(**) Option "Buttons" "9"
(**) Option "Emulate3Buttons" "false"
(**) Option "ZAxisMapping" "4 5"
(**) Evoluent Vertical Mouse: ZAxisMapping: buttons 4 and 5
(**) Option "ButtonMapping" "1 2 3 4 5 6 7 8 9"
(**) Evoluent Vertical Mouse: Buttons: 9
(II) XINPUT: Adding extended input device "Evoluent Vertical Mouse" 
(type: MOUSE)
(II) XINPUT: Adding extended input device "Generic Keyboard" (type: 
KEYBOARD)
(--) Evoluent Vertical Mouse: PnP-detected protocol: "ExplorerPS/2"
(II) Evoluent Vertical Mouse: ps2EnableDataReporting: succeeded


Can anyone suggest anything?

Many thanks,

--Phil.




More information about the xorg mailing list