Notes about open source software, computers, other stuff.

Linux, the Logitech Trackman Marble and emulating a scroll wheel

At work I recently came across a trackball. It was about to be thrown away and since I’d never really used one I decided to take it home and try it out. It’s a Logitech Trackman Marble, still for sale on Logitech’s website.

The trackball features four buttons: two large ones for left and right-clicking and to smaller ones that work as back and forward buttons in Firefox, for example.

After plugging it into my PC it was instantly recognised by X (I’m using Ubuntu 10.04). There’s no middle mouse button, but that can be emulated by clicking the left and right mouse buttons at the same time (something I’ve been use to on older laptops, and, well, even from the time that some of the mouses I owned only had two buttons). However, I did miss my scroll wheel. A quick search on the Internet brought me to Rob Meerman’s website where he explains a lot about the Trackman and how it works in X. He even has a special section on Ubuntu 10.04. In short it comes down to these commands:

xinput set-int-prop "Logitech USB Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Logitech USB Trackball" "Evdev Wheel Emulation" 8 1

Unfortunately the changes made by these commands are not persistent across reboots. I’ll try to fix that later.

EDIT: To add middle mouse button emulation and horizontal scrolling (thanks to rejistania below) run:

xinput set-int-prop "Logitech USB Trackball" "Evdev Middle Button Emulation" 8 1
xinput set-prop "Logitech USB Trackball" "Evdev Wheel Emulation Axes" 6 7 4 5


Regarding the use of a trackball compared to an ordinary mouse my experiences so far have been very positive. It didn’t take me a lot of time to get used to it. Also precision placement of the pointer doesn’t seem to be more difficult that with a regular mouse. So for now my wireless Logitech mouse can take a holiday :-). The nicest think about the trackball is the fact that you don’t have to move the whole device. So it’s less ‘weight lifting’. Also, the fact that the ball (in combination with the small button) is the scroll wheel, makes for a relatively heavy wheel without much friction, so scrolling large distances can simply be done by giving the ball a good spin. Nice!

Related Images:


  1. rejistania

    Thanks! This was very helpful to me! BTW: to have horizontal scrolling, you need to add an additional line:

    xinput set-int-prop “Logitech USB Trackball” “Evdev Wheel Emulation Button” 8 8
    xinput set-int-prop “Logitech USB Trackball” “Evdev Wheel Emulation” 8 1

  2. rejistania

    Sorry! far too late, I mean

    xinput set-prop “Logitech USB Trackball” “Evdev Wheel Emulation Axes” 6 7 4 5

  3. LCK

    Thanks for your contribution rejistania! I hadn’t looked into horizontal scrolling yet, but your line works perfectly.

  4. Jake

    Could you please post a link tot he original article? Thanks.

    • LCK

      I added the link I originally used (due to a typo is wasn’t visible before), but the site doesn’t seem to exist any more.

      • Farid

        on the boxNo, it does not. It is usually very hard to put two figrens and leave them at exactly the same time. If one does not do so that way, for example by putting a finger first, then the other, the driver moves the pointer and then scrolls by the amount of separation between figrens, all of this without moving any of them!This makes this feature completely unusable. I have tried to fix it, but I failed, I still don’t understand the synaptics.c code correctly. I managed to get it slightly better few years ago, but it was not robust enough to publish it, and I have lost the modifications :(.This is annoying as well as when using two and three figrens to press a button, either by tapping or clicking, because every time you put more than one finger, the cursor moves and the viewport scrolls, so you can never hit the correct link or button or menu or whatever.OSX gets it right, as well as acceleration, which has not been working for me since a recent git (I have read something about it in the commits but I don’t understand how is supposed to work now). – The cursor should not move when there is more than one finger (including three figrens). – It should only scroll when exactly two figrens are moved, not when two figrens are just 2c.

  5. Ale


Leave a Reply

Your email address will not be published. Required fields are marked *

© 2024 Lennart's weblog

Theme by Anders NorénUp ↑