2

I just got a Kensigton Slimblade Trackball and I'm trying to configure it. I'm adapting it from my old Logitech Marble configuration.

I want the configuration to be:

  • Left-Bottom: Left click
  • Left-Top: Backward
  • Right-Top: Right click and ball scroll lock
  • Right-Bottom: Middle click

The configuration I could set until now is:

  • Left-Bottom: Left click
  • Left-Top: Middle click
  • Right-Top: Right click and ball scroll lock
  • Right-Bottom: Backward

This is my configuration script:

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 1   

xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 2 8 4 5 6 7 

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

Before running this script, xev reports button numbers as:

Left-Bottom: 1, Left-Top: 2, Right-Top: 8, Right-Botom: 3

After running this script:

Left-Bottom: 1, Left-Top: 2, Right-Top: 8, Right-Botom: 8

So AFAIK, xinput set-button-map changes button order. In this page, I learned that the 2nd value corresponds to the middle mouse button, and the 8th to the Thumb1 (normally related to backward function). So I thought I should just use number 3 as the 2nd element and 2 as the 8th element like this:

xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 3 8 4 5 6 7 2

but now the top-left button has right-click function and left-bottom is disabled. xev now reports

Left-Bottom: 1, Left-Top: 3, Right-Top: 2, Right-Botom: 8. 

Anyone knows how I set the configuration as I intend ? I'm using Ubuntu 16.04. Thanks.

1

A few minutes after I post the question I found the answer. Here goes in case anyone needs it (configuration for Mint 18/Ubuntu 16.04):

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 0
7 8 9 
xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 8 2 4 5 6 7 3 2
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

Edit

After upgrading for Mint 19 (at home) and Ubuntu 18.04 (at office) I found the configuration above doesn't work. 18.04 uses a different library for these kind of devices (libinput) and even if I reinstalled Evdev some options don't work. After a painful search I found the solution. Create a a file with .conf extension in /usr/share/X11/xorg.conf.d/ folder. In my case I named it 10-slimblade.conf. Put this configuration inside the file:

Section "InputClass"
        Identifier "Kensington Kensington Slimblade Trackball"
        MatchProduct "Kensington Kensington Slimblade Trackball"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "ButtonMapping" "1 8 2 4 5 6 7 3 2"
        Option "ScrollButton" "8"
        Option "ScrollMethod" "button"
        Option "MiddleEmulation" "on"
EndSection

Restart session, and that's it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.