HAL configuration for Kingsis Peripherals Evoluent VerticalMouse 3
To configure my Kingsis Peripherals Evoluent VerticalMouse 3, I've added the following fdi (HAL configuration info) to /etc/hal/fdi/policy/evoluent-verticalmouse3.fdi:
XML:
<?xml version="1.0" encoding="ISO-8859-1"?> | |
<deviceinfo version="0.2"> | |
<device> | |
<match key="info.capabilities" contains="input.mouse"> | |
<match key="input.product" string="Kingsis Peripherals Evoluent VerticalMouse 3"> | |
<merge key="input.x11_driver" type="string">evdev</merge> | |
<merge key="input.x11_options.Emulate3Buttons" type="string">no</merge> | |
<merge key="input.x11_options.EmulateWheelButton" type="string">0</merge> | |
<merge key="input.x11_options.ZAxisMapping" type="string">4 5</merge> | |
<merge key="input.x11_options.ButtonMapping" type="string">1 2 2 4 5 6 7 3 8</merge> | |
</match> | |
</match> | |
</device> | |
</deviceinfo> |
The most important part (for me) here is ButtonMapping: by default only the wheelbutton triggers middle click, but since it's rather hard to press (and I use it often for pasting), I've mapped it to the middle button on the right side, too.
Also, the thumb button becomes "Back" (in browsers) and the lowest button on the right triggers the context menu.
Update: This was meant to included in Ubuntu Karmic (see bug 451729), but then got removed again (not everybody liked it).
Update^2: for udev (which is used solely since Ubuntu Lucid), I've transformed it into the following file (which you can store as /etc/udev/rules.d/90-local-xorg.rules):
Code:
ACTION!="add|change", GOTO="xorg_local_end" | |
KERNEL!="event*", GOTO="xorg_local_end" | |
| |
ENV{ID_INPUT_MOUSE}!="1", GOTO="xorg_local_end" | |
ENV{ID_MODEL}!="Evoluent_VerticalMouse_3", GOTO="xorg_local_end" | |
| |
ENV{x11_options.Emulate3Buttons}="no" | |
ENV{x11_options.EmulateWheelButton}="0" | |
ENV{x11_options.ZAxisMapping}="4 5" | |
ENV{x11_options.ButtonMapping}="1 2 2 4 5 6 7 3 8" | |
| |
LABEL="xorg_local_end" |
(see also https://wiki.kubuntu.org/X/InputConfiguration for more information)
Update^3: This is bugged in Ubuntu Lucid.
19 comments
@Yann: yes, it's worth it - I own it for some years already.@ednong: glaube so um die 80€ waren es.
@Bryce: Thanks for pointing me in the right direction, I've filed bug 451729 about it.
@ender7: there are methods to start the hal demon in debugging mode, so it prints out its events. Also, you should try simplifying the rules, until they match (maybe you are using a product name that does not match exactly). If so, I'm using one of their keyboards right now, and it's great.
I have different priorities in mice(rarely used by me) and I've pre-ordered a WarMouse Meta.
Siehe auch: https://bugs.launchpad.net/ubuntu/+source/udev/+bug/567068
@Andreas: Du hast Recht, es funktioniert nicht mehr (seit kurz vor dem Release IIRC). Habe mich bisher nicht auf die Suche nach der Ursache gemacht.Danke für den Link zum Bug, das wird es wohl sein.
ENV{input.x11_options.ConstantDeceleration}="true"
ENV{x11_options.EmulateWheel}="False"
ENV{x11_options.Emulate3Buttons}="False"
The part I don't understand is how did you get this:
ENV{ID_MODEL}!="Evoluent_VerticalMouse_3"
?
Where did you get this name? And why are you using "_" sign instead of space?
@cryinthedarkness: I think I've got the name via "lshal -m" (monitors HAL device list) or something similar (e.g. running hald with debug/verbose output from a terminal).Well, when the device is plugged and you know what you are looking for (vendor name etc), "lshal" alone might help already.
Apart from that, I've just updated the post: Andreas had informed me (and I have noticed it myself before), that it does not work in Lucid anymore. See bug 567068.
This doesn't show name, however this does:
lshal | grep Razer
info.product = 'Razer Razer 1600dpi 3 button optical mouse' (string)
input.product = 'Razer Razer 1600dpi 3 button optical mouse' (string)
info.vendor = 'Razer USA, Ltd' (string)
usb_device.vendor = 'Razer USA, Ltd' (string)
Now - the interesting part is that I already tried it in file /etc/udev/rules.d/90-local-xorg.rules like this:
ENV{ID_MODEL}!="Razer Razer 1600dpi 3 button optical mouse"
Right now my .rules file is however formatted in the following way:
ACTION=="add|change", ENV{ID_INPUT_MOUSE}=="?*", ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0003", ENV{input.x11_options.ConstantDeceleration}="true", ENV{x11_options.EmulateWheel}="False", ENV{x11_options.Emulate3Buttons}="False"
- of course it's absolutely ignored either way
Also - I can confirm that creating /etc/X11/xorg.conf.d/your.conf like it's done in Fedora 13 will loose all the input (no mouse, no keyboard - only magic SysRq keys work)
And like suggested in that bug report - I got everything except ConstantDeceleration "5" working by adding the following section into xorg.conf:
Section "InputClass"
Identifier "emulate3buttonsfalse"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "Emulate3Buttons" "false"
Option "ConstantDeceleration" "5"
Option "VelocityScale" "2"
Option "EmulateWheel" "false"
EndSection
From Xorg.0.log I can see that only EmulateWheel and Emulate3Buttons is recognized, acceleration settings are ignored:
(**) Option "Emulate3Buttons" "false"
(II) Razer Razer 1600dpi 3 button optical mouse: Forcing middle mouse button emulation off.
(**) Option "EmulateWheel" "false"
Do you know why that might be so? Can you maybe test option ConstantDeceleration on your computer? I don't get it. In Fedora 13 adding this option to cusom udev rule will be seen and used by xserver.
I don't know (and do not care to test, sorry).Maybe using Fedora is a suitable workaround then? ;)
Currently I'm using "xinput set-button-map ..." which is annoying as I have to work out which ID the mouse is every time I unplug it.
BTW, to those asking, the Evoluent is a superb mouse.
#! /bin/bash
#mousebuttons.sh
mouseid=$(xinput --list --short |grep Evoluent |cut -d = -f 2 |cut -f 1)
xinput --set-button-map $mouseid 1 2 2 4 5 6 7 3
# end script
# xinput set-button-map "Kingsis Peripherals Evoluent VerticalMouse 3 " 1 2 2 4 5 6 7 3 8
(Notice the space at the end of the name -- that is significant)
@Boo: I recommend upgrading/installing the latest Ubuntu release (which is Oneiric currently).Apart from that it's difficult to remotely debug this via blog comments; you are better of reporting a bug in Launchpad (use "ubuntu-bug" from a terminal) and/or asking in an Ubuntu forum for help.

