Cordless Trackman Marble FX on Ubuntu Jaunty
My all-time-favorite mouse trackball is the Logitech Trackman Marble FX (Cordless). Logitech stopped making those a couple of years ago, but I’ve bought 5 of them and since the first one still works fine I’ll probably be using this model until USB is replaced with a new kind of port;)
The Trackman FX has 4 buttons and no dedicated scrollwheel. Before Ubuntu Jaunty (9.04) I was able to configure the buttons from /etc/X11/xorg.conf, but I upgraded from Ubuntu Hedgy (8.04) to Ubuntu Intrepid (8.10) all the way to Ubuntu Jaunty (9.04) and Ubuntu dropped the mouse-configuration from xorg.conf in favour of the HAL-device-manager.
My xorg.conf setup for the Trackman FX looked like this:
Section "InputDevice"
Identifier "TFX"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Name" "TrackMan Marble FX"
Option "Vendor" "Logitech"
Option "Protocol" "ExplorerPS/2"
Option "Buttons" "9"
Option "Emulate3Buttons" "true"
Option "EmulateWheel" "1"
Option "EmulateWheelButton" "8"
Option "YAxisMapping" "4 5"
Option "XAxisMapping" "6 7"
EndSection
Using this configuration the upper-left button was assigned as scroll-switch; if I’d keep the button pressed and use the trackball I could scroll. The left-middle button was used as “normal” left-mouse-button, and the lower-left button used as back-button for Firefox and Nautilus.
However; xorg.conf configuration didn’t work anymore in Jaunty; HAL took over, but how to configure the Trackman FX from HAL? After several searches in Google I came across this bugreport in Launchpad. According to the posts I’d had to create the file /etc/hal/fdi/policy/mouse-wheel.fdi and enter the following :
<deviceinfo version="0.2">
<device>
<match key="info.product" string="Logitech USB Receiver">
<merge key="input.x11_options.Buttons" type="string">9</merge>
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelTimeout" type="string">300</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">8</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>
</device>
</deviceinfo>
After a reboot (which isn’t neccesary; unplugging it and plug it in again is enough) the Trackman didn’t do what I wanted it to do. After some digging I suddenly realized the Trackman I used was cordless, and the model in mouse-wheel.fdi was defined as Logitech USB Trackball, the wired model. It seemed HAL didn’t match the info.product-string with the cordless Trackman, so I needed to find out what would match my Trackman. This was quite easy; from a terminal type:
sudo hal-device|less
You’ll get a list of all devices in HAL, press slash (/) and enter Logitech to search for any device from Logitech and you’ll run into “info.product = ‘Logitech USB Receiver’ (string)”. The Cordless Trackman FX apparently had the product-id : “Logitech USB Receiver”, so I changed the line match key=”info.product” in mouse-wheel.fdi to this product-id. Unplugged the Trackman, plugged it in again and hurray!!! Scrolling worked!
If you have a Trackman Marble FX Cordless, all you have to do is create /etc/hal/fdi/policy/mouse-wheel.fdi and enter/copy-paste:
<deviceinfo version="0.2">
<device>
<match key="info.product" string="Logitech USB Receiver">
<merge key="input.x11_options.Buttons" type="string">9</merge>
<merge key="input.x11_options.EmulateWheel" type="string">true</merge>
<merge key="input.x11_options.EmulateWheelTimeout" type="string">300</merge>
<merge key="input.x11_options.ButtonMapping" type="string">1 8 3 4 5 6 7 2 9</merge>
<merge key="input.x11_options.EmulateWheelButton" type="string">8</merge>
<merge key="input.x11_options.XAxisMapping" type="string">6 7</merge>
<merge key="input.x11_options.YAxisMapping" type="string">4 5</merge>
<merge key="input.x11_options.Emulate3Buttons" type="string">true</merge>
</match>
</device>
</deviceinfo>
Unplug the Trackman (or the Receiver), plug it in again and you should be ready!
Small update:
The outer left button didn’t act as third-mouse-button, as I was used to. Using the method above it will be used as back-button. If you’d like it to be used as third-mouse-button, remove the line :
<merge key="input.x11_options.ButtonMapping" type="string">1 8 3 4 5 6 7 2 9</merge>



Looking all over the place to buy one of those, mine doesn’t work anymore and wished I bought 5 of them myself
Can I buy one from you ?
Greetings Luc
luc@mook-dekker.nl
Thank you! Worked like a charm!
Thank you for the input! I have been looking for this. Unfortunately it does not work
acts as a back button in my browser and does not scroll at all. It does not scroll in any other application neither….. I checked the Output of my hal-device and it prints out the ‘Logitech USB Receiver’. And the command ‘xec’ does confirm that the button Nr 8 is the correct one….
on my ubuntu (karmic koala). The Button that should be emulating the wheel (Button Nr
Any suggestion?
I would hate to buy an other trackball as this ones is my favourite…..
@martin
I don’t have Karmic Koala yet, maybe something changed (though not very likely). You could try to change some obvious settings (like changing the button-order) to make sure the file mouse-wheel.fdi is loaded. Did you check the logs/dmesg? And have you removed the old settings from xorg.conf (I did, maybe that could help).
IMHO there’s no real replacement for this trackball; buying a new one isn’t a real solution
Thanks for the info, it worked great with my Logitech Trackman Marble. I just wanted to remove the behaviour with Back+Forward on browser, and have middle-button as one of the buttons (I have 2 additional buttons on my Trackman).
I have karmic koala. So @martin, the method works, you just probably have to play a little with the button order. Hope you succeed.
I can confirm this also works on Ubuntu 9.10 Karmic Koala. Just installed Karmic on my laptop and the trick worked just the same