Logitech Marble Mouse

The Logitech Marble Mouse is a pointing device with four buttons and a trackball. It is also known as the Trackman Marble. The Marble Mouse is symmetrical, making it well-suited for use with either hand. Picture. Out-of-the box it doesn't scroll, but you can configure it to enable this.

Basic function

When no additional configuration is specified, buttons are mapped to these functions:

ID

Hardware Action

Result

1

Large button left

normal click

2

Both large buttons

middle-click †

3

Large button right

right-click

4

(not a button)

-

5

(not a button)

-

6

(not a button)

-

7

(not a button)

-

8

Small button left

browser back

9

Small button right

browser forward

Notes:

∙ Both large buttons pressed simultaneously creates a middle-click.
∙ † The simultaneous click is enabled by a configuration directive. It requires Emulate3buttons.
∙ Terms middle-click and wheel-click are used interchangeably in this document.
∙ Alternate-click may be used instead of right-click. Typically, this pops up a context menu.
∙ The result shown above occurs when no modifier key is pressed.
∙ A different result may occur when a modifier key such as Ctrl is held while a button is clicked.

ID

Hardware Action

Result

4

Roll ball down

move cursor down

5

Roll ball up

move cursor up

6

Roll ball left

move cursor left

7

Roll ball right

move cursor right

Notes:

∙ Cursor motion occurs when no modifier is used.
∙ A modifier used in conjunction with rolling motion may create an alternate result.
∙ "Modifier" refers to a key (such as Ctrl) or button (as in mouse button) being held while the trackball is rolled.

Using the trackball in "wheel mode" can require some unusual gestures on the user's part. Using a wheel mouse, for example, you can resize the display font in your web browser using the Ctrl + wheel_roll gesture. With the trackball, this operation becomes Ctrl + hold_button + ball_roll.

One obvious reason to assign different button actions is to accommodate left-handed placement:

# This line switches the left and right large buttons, and nothing else. For left-handed user.
Option "ButtonMapping" "3 2 1 4 5 6 7 8 9"

Another reason to reassign is when you don't like the "normal" assignments — especially the small buttons.

The line below changes the button 2 action to browser forward. Parameter two (both-large-button click) is given value 9 for browser forward. The line below also reassigns both small buttons. We want them to emit middle-click. (Either button may be clicked separately.) Parameters eight and nine are given values of 2 for middle-click.

Parameters are positioned in numeric order. Parameters you might modify are 1, 2, 3, 8, and 9. Parameters 4, 5, 6, and 7 should be left alone; they correspond to trackball movements.

"Both-large-button" combination-click

As stated, button 2 is a simultaneous press of the two large buttons.

Experimentation shows, in the absence of a configuration directive, this action produces an indeterminate result. It appears to issue some command, but the result is inconsistent with my expectation of middle-click. Further, the result seems dependent on whichever object is foremost. It is inconsistent regardless. You need to enable the combination-click:

# Emulate3Buttons refers to the act of pressing buttons #1 and #4 # simultaneously to emulate a middle-click or wheel click.

Option "Emulate3Buttons" "true"

This is sufficient to enable the default mapping of button 2, which is wheel-click. See minimal configuration.

Scroll modifier

One huge limitation for the Marble Mouse is the lack of a scroll wheel or scroll ring. This limitation is overcome by assigning a scroll modifier: a mouse button which allows the trackball to perform scrolling. When the scroll modifier is held, the trackball scrolls.

The default scroll setting uses the small button for scrolling — that's good, — but that same button also has a default "click" action that results in browser back. A better choice is middle-click. Middle-click corresponds to what you'd expect from years of wheel mouse usage.

Putting complaints aside (these are addressed by reassigning small buttons), you specify a button to be the scroll modifier:

Option "EmulateWheel" "true"
Option "EmulateWheelButton" "8"
# Button 8 is the small button on the left side, which works well for right-handed users.
# Button 9 is the small button on the right side, which works well for left-handed users.
# Button 2 cannot be assigned as the scroll modifier AKA "EmulateWheelButton".

Disable horizontal scrolling

A particular configuration line enables horizontal scrolling. You disable horizontal scrolling by commenting that line out.

I use both scrolling directions, but some may find this restriction helpful. You cannot disable vertical scrolling in a similar fashion — not that you'd want to, anyway.

Right-side or left-side

Previous sections explain how to modify your configuration file for either left or right placement.

• On occasion, you may wish to switch between left-handed and right-handed usage.

• I do this when I feel the early signs of repetitive strain injury.

To switch to the opposite placement, I manually edit my configuration file and restart the X server. Comments in the file remind me which lines to change. You could devise a script to make switching more automatic, if you wanted to.

Other desktop environments may have widgets to simplify — or complicate, depending how you view it — switching between right and left. With Ubuntu 10.10, for example, you need only mark a box in the mouse control panel to effect a button switch.

(I must change my configuration file to get the proper scroll modifier assignment, however. Ubuntu also seems to ignore large button assignments in the configuration file.)

Xorg input hotplugging

Two expositions help you configure a trackball with buttons for click, middle-click, right-click, and scrolling. The first exposition uses Xorg Input Hotplugging; the second does not. Edit them to suit your preferences.

The "Auto" option for "Protocol" works fine, too.
Of course you can use the name you prefer as the Identifier, as long as it's the same you use as InputDevice in the Section "ServerLayout" .

Sample configuration

The sample configuration modifies and extends the basic function of the Marble Mouse.

In this example, either of the two small buttons may be clicked to send a wheel-click. Wheel-click means the same as "middle-click" here. In addition, one of the small buttons provides scrolling in conjunction with the trackball. Note that only one small button has the ability for scrolling, although both small buttons are able to wheel-click.

Finally, clicking both large buttons simultaneously sends the browser back event. There is no button to send browser forward.

ID

Hardware Action

Result (this configuration)

New assignment

1

Large button left

normal click

1

2

Both large buttons

browser back

8

3

Large button right

right-click

3

8

Small button left †

wheel-click

2

9

Small button right ‡

wheel-click

2

Notes:

∙ Both large buttons pressed simultaneously results in browser back.
∙ Either small button, when clicked, results in middle-click.
∙ † This small button allows trackball scrolling when held down. It is the scroll modifier.
∙ ‡ This button can be mapped for scrolling function instead. This button works
better for left-side placement because it lies near the thumb of one's left-hand.
Only one button can be assigned as the scroll modifier as far as I know.

Restarting X

Changes made to Template:Filename do not take effect until the X session is restarted. To restart the X session, logout from your window manager and log back in.

Users of other Linux distributions may find the configuration file in another location. Ubuntu 10.10 uses Template:Filename.

Minimal configuration

At times it can be useful to start with the absolute minimum and build from there. This is one facet of The Arch Way. In this spirit, I decided to see how few lines I might use to create a usable Marble Mouse configuration.

You can omit all configuration lines and the Marble Mouse is still usable for basic pointing and clicking. However, it won't be able to scroll. Further, the "both-large-button" simultaneous click produces indeterminate results — experimentation shows this.

Given that you're satisfied with default button settings and you wish only to enable scrolling and the "both-large-button" click, you need these lines. The following lines are appended to Template:Filename.

Additional tweaks

Console (gpm)

This lets you use the large left button for selecting text and the right button to extend the selection. The small left button acts as a middle-click; it pastes the selection.

Chromium browser

By default, this browser does not utilize middle-click or wheel-click for page scrolling (automatic or otherwise). You must enable the scroll modifier for your Marble Mouse (of course), and also install a Chromium extension before using the trackball for scrolling web pages.

A browser extension named AutoScroll corrects the browser deficiency. (This extension is helpful for any Linux user with a wheel mouse.) Be sure to install AutoScroll; the similarly-named Auto Scroll implements a different feature.