Home > linux, ubuntu > Cordless Trackman Marble FX on Ubuntu Jaunty

Cordless Trackman Marble FX on Ubuntu Jaunty

June 28th, 2009
Trackman Marble FX Cordless

Trackman Marble FX Cordless

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>
Share this post:
  • Twitter
  • Facebook
  • Digg
  • del.icio.us
  • FriendFeed
  • Technorati
  • Google Bookmarks
  • PDF
  • Print
  • NuJIJ
  • Ping.fm
  • StumbleUpon
  • Symbaloo
  • Hyves

buTTon linux, ubuntu , , , , , , , ,

  1. Luc
    August 13th, 2009 at 12:00 | #1

    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

  2. October 12th, 2009 at 10:30 | #2

    Thank you! Worked like a charm!

  3. November 29th, 2009 at 21:36 | #3

    Thank you for the input! I have been looking for this. Unfortunately it does not work
    on my ubuntu (karmic koala). The Button that should be emulating the wheel (Button Nr 8) 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….

    Any suggestion?

    I would hate to buy an other trackball as this ones is my favourite…..

  4. November 30th, 2009 at 08:43 | #4

    @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 ;)

  5. Bogdan
    January 16th, 2010 at 18:18 | #5

    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.

  6. February 7th, 2010 at 11:39 | #6

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

  1. September 28th, 2009 at 18:57 | #1

Onze tip:SCDB.info – de meest actuele flitspalen in Europa voor uw GPS!