Kensington Slimblade Button Mapping in Ubuntu

In an earlier post I talked about my wonderful Kensington Slimblade. In that post, I mentioned that I remapped one of the buttons to let me use the ball as a form of free scrolling.  What you may not know is that I am a Linux enthusiast, and right now the distro I am playing with is Ubuntu – though oftentimes I can be found using Arch or Antergos.

My Trackball, the Kensington Slimblade
My Trackball, the Kensington Slimblade

When I got my new slimblade trackball all hooked up, the first thing I looked for was for a way to remap the buttons. Usually this is done in a config file in Linux, but I was finding nothing on how to do so with the Slimblade. The only configuration guide I could fine was for the Logicteck Marble.

I managed to modify the config for the Logicteck Marble so that it works for the Slimblade. I am sharing it here so that anyone who needs it in the future can find this guide.

The first thing you need to do is to find where your distro stores the input device config file. In Ubuntu, it can be found here:


Just open up that file as root or fakeroot with your favorite editor. In Ubuntu, you can type in:

sudo nano /usr/share/X11/xorg.conf.d/10-evdev.conf

Scroll to the bottom of the text file and paste this config file. Feel free to experiment with the different button layouts!

# - - - Kensington Slimblade Settings - - -
# The Kensington Slimblade buttons are mapped [A-D] from left to right:
# A (large); B (small) | C (small); D (large).
# Preferred options for right-handed usage:
# A = normal click [1]
# B = middle-click [2]
# C = middle-click [2]
# D = right-click [3]
# Hold button B while rolling trackball to emulate wheel-scrolling.
# Preferred options for left-handed usage:
# A = right-click [3]
# B = middle-click [2]
# C = middle-click [2]
# D = normal click [1]
# Hold button C while rolling trackball to emulate wheel-scrolling.

Section “InputClass”
Identifier “Kensington Slimblade Trackball”
MatchProduct “Kensington Slimblade Trackball”
MatchIsPointer “on”
MatchDevicePath “/dev/input/event*”
Driver “evdev”

# Physical button #s: A b D – – – – B C
# Option “ButtonMapping” “1 8 3 4 5 6 7 2 2” right-hand placement
# Option “ButtonMapping” “3 8 1 4 5 6 7 2 2” left-hand placement
# b = A & D
Option “ButtonMapping” “1 8 3 4 5 6 7 2 2”

# EmulateWheel: Use trackball as mouse wheel
# Factory Default: 8; Use 9 for right side small button
Option “EmulateWheel” “true”
Option “EmulateWheelButton” “8”

# EmulateWheelInertia: How far (in pixels) the pointer must move to
# generate button press/release events in wheel emulation mode.
# Factory Default: 50
Option “EmulateWheelInertia” “10”

# Axis Mapping: Enable vertical [ZAxis] and horizontal [XAxis] scrolling
Option “ZAxisMapping” “4 5”
# Option “XAxisMapping” “6 7”

# Emulate3Buttons: Required to interpret simultaneous press of two large
# buttons, A & D, as a seperate command, b.
# Factory Default: true
Option “Emulate3Buttons” “true”

Once you have it in, save the file, log out, and log back in and the newly mapped buttons should work!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s