Computers 'n Stuff: Logitech MX1000 USB mouse configuration / setup for X11 in OpenSuse 10.2 linux

I here share the resolutions for my Linux problems so they might safe somebody some time.

Friday, June 01, 2007 parmanent link to this post

Logitech MX1000 USB mouse configuration / setup for X11 in OpenSuse 10.2 linux

The MX1000 Lasermouse is supported pretty well by OpenSuse. It was just a little hard to find out what you need. Here I write how I did the setup of the MX1000

To support all mouse buttons of a modern USB mouse like the Logitech MX1000 lasermouse in X11 I use the evdev driver. This driver is compiled into X11 by Suse linux so you just need to activate that driver. To do this I first modified the /etc/X11/xorg.conf now it looks like:

Section "InputDevice"
Identifier "Mouse0"
Driver "evdev"
Option "evBits" "+1-2"
Option "keyBits" "~272-287"
Option "relBits" "~0-2 ~6 ~8"
Option "Pass" "3"

The options are stolen from the man page of evdev and are said to work for virtually any mouse. forget all about these mapping and ZAxixMapping Options, they are not supported by evdev, Check the manpage. In some forums you can read to use Options protocoll evdev. But this is obsolete and only used for older veresions of evdev. However, the identifier Mouse0 is crucial I guess, since with another identifier like mouse[0] the xserver refused to start. My explaination is that is has to match the entry in /dev/input/mouse0. This entry (node) done by udev. The configuratin is probalbly done at installation of Suse. Sombody wrote that Suse 10.2 does not support evdev any more. I think this is not true. You don't need to load it as a kernel module. evdev is compiled into the Xorg server.

I use lomoco, to control the feaures of the MX1000 lasermouse. lomoco is installed per default, it can be used to incerase the resolution from 400dpi (default) to 800 dpi:
# lomoco -8
and to turn on/off smart scrolling

# lomoco --sms
# lomoco --no-sms
in Suse linux /etc/sysconfig/logitech_mouse holds the configruation file of the lomoco config scrip that is executed on detection of a logitech mouse to configure smart scrolling and resolution of Logitech mice at startup.

What happens when you hit a mouse key depends on the xevent that is triggered and translated by the application into action. The xev command can be used to decipher the events triggerd by the mouse buttons. these xevents are generated by the mouse depending on sms or no-sms (use
# xev
in a console to test):

button event with smart scroll event without smart scroll
left 1 1
wheel pressed 2 2
right 3 3
wheel up 4 4
wheel down 5 5
wheel tilt right 6 14
wheel tilt right release 14 n/a
wheel tilt left 7 13
wheel tilt right release 13 n/a
thujb back 8 8
thumb front 9 9
app change 10 10
smart scroll up 4(as long as hold down) 11
smart scroll up release 11 n/a
smart scroll down 5(as long as hold down) 12
smart scroll down release 12 n/a

this is a list of x events triggerd by the mousbuttens in different modes of the logitech mouse.
Intersitng to note that although the MX1000 is a 12 button mouse (10 button + two for the wheel) the mouse can generate 14 events. So actually these Options Buttons 12 you can find in many forums are probably wrong anyway.

Xmodmap is used to remap the events of the mouse to other events. This technique comes in handy when an application has a hard wired reaction to a mouse event, but you want to trigger that event by another moue button. So what xomodmap does is to translate one event to another and sends that event to the application instead of the original. For example you could use xmodmap to map the thumbbuttons 8 and 9 on xevents 7 and 8 by
# xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16 17 18 19 20"
In this row the position of the digit is the value of original x event and the value is the new xevent that will be sent in case that event is trigged, in this matter
(digit at position 6 has the value 8) event 6 (tilt mouse wheel with smart scroll enableled) will be mapped to event 8 (thumb button) . Event 8 (thumb button) is now tranlated ot event 6 (tilt mouse wheel)
This above mapping is interesting since firefox can be configured to do horizontal scrolling or to scroll
forward and backward history on events 6 and 7 depending on the about:config settings when you don't need horizontal scrolling a lot. . This is the default setting (type about:config in the adress field of firefox to check, I used Firefox 2.0 here) which does history scrolling on events 6 and 7 , that are usually the events triggered by the horizontal mouse wheel in X11.
mousewheel.horizscroll.withnokey.action Standart Integer 2
mousewheel.horizscroll.withnokey.sysnumlines Standard boolean false
of course you can also do horziontal scrolling now with the thumb buttons if you like but you have to change Integer to 1 and boolean to true.

Other customizations of mouse xeve
nts that x applications do not recoginze by default can be done by imwheel or xbindkeys in combinatin with xvkdb or xbindkeys in combination with xmacroplay

imwheel : imwheel will directly translate mouse events to (virual) keystrokes (or xevents) that are sent to and recognized by the application. e.g. alt + left will scroll one item back in history of firefox and you can configure imwheel to sent this keystrokes to the application when the thumb buttons are pressed which are not recognized by default. The advantage of imwheels is that it can be configured to send different keystrokes when a different application is used and that it doesen't need helper applications.

xbindkeys: xbindkeys is usually used to execute applications when a key or a combination of keys is pressed.
This is usually referred to as keyboard shortcuts. The advantage over imwheels is that it is highly configurable. You can use chord keys with the mouse and you can change the keybindings on the fly. With the mouse it can be used to execute an application that itself sends (virtual) keystrokes (or xevents) to an application similar to imwheel. Applications that are capable of sending virual keystrokes would be xvkdb and xmacroplay. I prefer to use xmacroplay since it is lightwight, quicker and causes less overhead when mouseevents are triggered in rapid fashion.

Related Posts:

MX1000 Lasermouse

Usefule mouse setup links
linklinst of Lots of linux mouse setup guides:

Labels: , , , , , ,


Blogger William said...

I just want to say that you are my friggin' hero!

I found 3 different "how-to's" on how to configured the MX1000 mouse, all of which were different and all of which only got me partially to where I wanted to be. This guide got all my buttons working AND explained why it was right and the other's were wrong.

I can now use the application switcher (button 10) to invoke the "Scale" function of compiz-fusion. Thanks!

Saturday, March 08, 2008 7:02:00 AM

Anonymous Anonymous said...

Hi William,

I am happy to hear that this bit of information was helpful for you. :D


Vee Lee

Friday, April 04, 2008 4:36:00 AM

Anonymous Anonymous said...

Quote: "I am happy to hear that this bit of information was helpful for you. :D"

This wasn't just a "bit of information"! This is brilliant! I gonna buy one of these TODAY! Thanks for doing this! (for al the work AND sharing your knowledge) I'm so happy about getting a cool new mouse!

I hate people who don't comment!

Tuesday, May 06, 2008 2:46:00 PM

Blogger sunshine said...

All growth is a leap in the dark.
cheap jerseys

cheap nfl elite jerseys sale

Wednesday, August 27, 2014 2:55:00 AM


Post a Comment

Links to this post:

Create a Link

<< Home