Updated: I had some problems with this in Ubuntu 8.04 so I wrote a simpler explanation with 1 tweak that works for me again: Logitech MX1000 Mouse on Ubuntu 8.04 Linux (Hardy Heron)
So my current project is to get all (or at least the forward and back) buttons working on my Logitech MX1000 Wireless Mouse on my home system. The vanilla install of Gutsy Gibson sets up the mouse so that it works (scroll wheel too) but just only as much as any other basic scroll mouse.
So before starting on this, the mouse is currently configured (in /etc/X11/xorg.conf) like so:
Section "InputDevice"I've found many different tutorials on how to do this. Many of them involve finding and setting up the physical location of the mouse and then using
Identifier "Configured Mouse"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
xvkbdto map things. If you want to see those for any reason, they were here, here and here (the last link was done on Ubuntu 5.04). They all have 1 thing in common though which is they all use evdev, the generic Linux input driver instead of the very limited ImPS/2 protocol.
The final tutorial I found turned out the be the simplest. Enabling all of the functions on your Logitech MX1000 mouse
First, I installed a few packages by running:
sudo apt-get install xvkbd xbindkeys xmacro
xvkbdis a virtual keyboard program for X
xbindkeysis a program that allows you to launch shell commands with your keyboard or your mouse under X
xmacrois for recording and replaying keyboard and mouse events X
Next, In my xorg.conf I commented out (use the # to comment lines out) the default
InputDevicesection and created a new one like so:
Section "InputDevice"Then in the
Identifier "Logitech MX1000"
Option "Name" "Logitech USB Receiver"
Option "HWHEELRelativeAxisButtons" "7 6"
ServerLayoutsection I commented out the line
Inputdevice "Configured Mouse"and added the line
Inputdevice "Logitech MX1000" "CorePointer". (4/26/08 - Hardy Update, Don't include the "CorePointer" part of this line.) The Identifier in the InputDevice section needs to match the InputDevice name in the ServerLayout section so I assume if I had just named this new one "Configured Mouse" I would not have needed to change the ServerLayout section except to add it was the CorePointer.
Also, the other important thing is the Name in the InputDevice section. That must match (CASE SENSITIVE) the name of your mouse. From other examples I think it is always "Logitech USB Receiver" for the MX1000 but just to be safe, run this command
cat /proc/bus/input/devicesand look for your mouse. Mine looks like this:
I: Bus=0003 Vendor=046d Product=c50e Version=2500So after doing all that, I restarted X with the good old Ctrl-Alt-Backspace and my forward and back buttons work. I honestly don't know if that made all the other buttons work though as I don't use them so I am not even sure what they do in Windows. You can also change some settings in Firefox so that the Forward and Back buttons scroll horizontally instead but since my whole reason for doing this was to get the Forward and Back buttons to work as Forward and Back buttons, I find that stupid. I use Forward and Back so much more than I would ever need to scroll horizontally!
N: Name="Logitech USB Receiver"
H: Handlers=kbd mouse1 event3
B: KEY=1f0000 0 100 38 c0000000 c0000 0 0 0