Microsoft Intellimouse Explorer under Linux

29 April 2004

I am not a big fan of Microsoft, but I will admit that they sometimes manage to produce (or at least brand) some nice hardware. The IntelliMouse Explorer comes with four buttons and a wheel, and its possible to use all of these under Linux.

I'm going to assume that you have all the required software already installed, if you get "command not found" at any time, you should seek out and install the softwere (which can probably be found on your distro's install disks.


First you need to configure X to see the mouse and all its buttons. The following is taken from my /etc/X11/XF86Config-4 file.

Section "InputDevice"
         # Make sure you use the identifier specified in the
         # ServerLayout section.
         Identifier  "IntelliMouse"
         Driver      "mouse"
         Option      "Protocol" "ExplorerPS/2"
         # Change the device to point to the correct location!
         # I use the USB connection under devfs
         Option      "Device" "/dev/usbmouse"
         Option      "Buttons" "7"
         Option      "ZAxisMapping" "6 7"

There are 7 buttons becuase the wheel counts as 3 (up, down, and click).


Run xmodmap -e "pointer = 1 2 3 6 7 4 5". This has to be done everytime you login. I have the command in my ~/.xinitrc, but where you put it depends on your configuration. KDE users should look at ~/.kde/Autostart.

You can test to see if the extra buttons are seen by X with "xev" (place the pointer in the square and click the buttons to see the events).


Next the mouse clicks have to be translated in to something the applications can understand. This is done by imwheel, which will let you specify keyboard commands for each click. We will configure it to send keyboard shortcuts for back and forwards to all applications. You can specify different combinations, either for all apps or for specific ones.

Create .imwheelrc in your home directory with the following:

 None, Up, Alt_L|Left
 None, Down, Alt_L|Right

Next start imwheel with imwheel -k -b "67". This also has to be done every time, so I have the command in ~/.xinitrc.