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 version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
    <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>

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):


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.ZAxisMapping}="4 5"
ENV{x11_options.ButtonMapping}="1 2 2 4 5 6 7 3 8"

(see also https://wiki.kubuntu.org/X/InputConfiguration for more information)

Update^3: This is bugged in Ubuntu Lucid.


Comment from: Yann [Visitor]
YannHello, how is that mouse, is it really worth it? I've been thinking of buying it but I'm not sure....
10/14/09 @ 03:21
Comment from: mela1 [Visitor]
mela1The Vertical Mouse is great for me; I have three, and all are operating very well. The VM is especially important to folks that suffer arm pain because of the awkward bone position while mousing. Without the VM, I would lose about one-half of my computer day.
10/14/09 @ 16:41
Comment from: ednong [Visitor]
ednongGott, was für eine Monstermaus. Und die ist ihr Geld - wieviel eigentlich? - wert? Ich stelle mir das etwas unförmig vor, wenn ich da mit der Mouse übers Pad kreise.
10/14/09 @ 22:38
Comment from: Bryce Harrington [Visitor]
Bryce HarringtonIf you think these settings would be beneficial for all users of this particular hardware, please file a bug against the xserver-xorg-input-evdev package attaching this fdi file as a patch so we can give it consideration for officially incorporating it into Ubuntu.
10/15/09 @ 00:33
Comment from: Daniel [Member] Email
@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.

10/15/09 @ 01:08
Comment from: ender7 [Visitor]
ender7had no fdi file for the mouse so I created one, but it’s just not being read by hal, and I’m unable to change any of my button configurations (running karmic). I've tried unplugging the mouse and plugging back in, I've tried logging out and it, I've tried rebooting. Just doesn't seem to do it. Any thoughts?
11/28/09 @ 02:47
Comment from: Daniel [Member] Email
@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).
01/24/10 @ 02:07
Comment from: TheGZeus [Visitor]
TheGZeusis Kingsis the over-seas name for Kinesis?
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.
01/24/10 @ 04:14
Comment from: Andreas Raster [Visitor]
Andreas RasterBist du dir sicher das deine config für Lucid funtioniert? Ich probiere gerade meine Marble Mouse unter Lucid zu konfigurieren und es passiert einfach gar nix. Anscheinend kommt udev nicht mit dem punkt in x11_options.* zurecht.

Siehe auch: https://bugs.launchpad.net/ubuntu/+source/udev/+bug/567068
05/18/10 @ 19:48
Comment from: Daniel [Member] Email
@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.
05/19/10 @ 09:01
Comment from: cryinthedarkness [Visitor]
cryinthedarknessI've been doing now ten-fifteen reboots and wasted over an hour trying to add these three options:


The part I don't understand is how did you get this:



Where did you get this name? And why are you using "_" sign instead of space?
05/20/10 @ 21:13
Comment from: Daniel [Member] Email
@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.
05/21/10 @ 19:37
Comment from: cryinthedarkness [Visitor]
cryinthedarkness>I think I've got the name via "lshal -m"

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"

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.
05/21/10 @ 20:38
Comment from: Daniel [Member] Email
I don't know (and do not care to test, sorry).

Maybe using Fedora is a suitable workaround then? ;)
05/21/10 @ 22:08
Comment from: Terence Eden [Visitor] Email
Terence EdenIs there *any* way of getting this working in Lucid?

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.
08/05/10 @ 17:56
Comment from: nealbirch [Visitor]
nealbirchI use a script that reads something like this:

#! /bin/bash
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
04/14/11 @ 06:36
Comment from: Charles Burns [Visitor]
Charles BurnsTerence, in addition to nealbirch's suggestion, you can use the devices name rather than its ID. That doesn't change. For example:

# 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)
05/09/11 @ 18:58
Comment from: Boo [Visitor]
BooI have the precedent mouse model, ie evoluent verticalmouse 2. It stopped working when i upgraded to ubuntu natty 64 bits. Any insight ? Thx
03/15/12 @ 14:05
Comment from: Daniel [Member] Email
@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.
03/17/12 @ 15:45

Leave a comment

Your email address will not be revealed on this site.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)
You can just use your OpenID to provide your name, e-mail and url.