I have a Logitech trackball which I love. I bought it when my wrists started hurting after hours of long Photoshop sessions. The switch to the trackball fixed all that. It allows me to hold my hand in the perfect position and it's great for most browsing with one exception:
It lacks a middle-click wheel.
This presents a bigger problem than it seems, as design seems to be removing the scroll bars at the edges of windows in favor of small slits. So to get around this you can emulate a scroll wheel or use the middle click to activate a scroll motion on various programs. Logitech has a utility that sets this up in Windows but in Ubuntu you have a better (if more hard-work required) option. The Ubuntu option is better because unlike in Windows you can emulate the wheel with the track-ball by holding down a button. This is the option I like to use.
In Ubuntu you write a configuration file to set up the trackball to work the way you want it. I have to re-create this configuration file every-time I upgrade Ubuntu, so I made a Ruby script that will do this for me.
I haven't figured out a way to get a Ruby script to function with root privileges yet. But here is the script I use and it works well using sudo and it prompts you for the password when needed.
[BTW Ubuntu turns 7 years old, today! Which means I've been using it for 6... wow, time flies!]
[Edit: I've added the file to my Github page for easier downloading. March 5, 2012]
#!/usr/bin/env ruby
#Creates a variable text with the content of the configuration file
text = <<ENDofTEXT
SSection "InputClass"
Identifier "Marble Mouse"
MatchProduct "Logitech USB Trackball"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "8"
Option "YAxisMapping" "4 5"
Option "XAxisMapping" "6 7"
Option "Emulate3Buttons" "true"
EndSection
ENDofTEXT
#finds where the directory for the file is
zombie = `locate xorg.conf.d | grep d$`
zombie.chomp!
#writes the file to the temp directory
f = File.new("/tmp/50-marblemouse.conf", "w")
f.puts text
f.close
#copies the file to the correct directory (unless it exists already) using sudo privileges.
puts `sudo cp /tmp/50-marblemouse.conf #{zombie}/50-marblemouse.conf` unless FileTest.exists?(zombie + "/50-marblemouse.conf")
It lacks a middle-click wheel.
This presents a bigger problem than it seems, as design seems to be removing the scroll bars at the edges of windows in favor of small slits. So to get around this you can emulate a scroll wheel or use the middle click to activate a scroll motion on various programs. Logitech has a utility that sets this up in Windows but in Ubuntu you have a better (if more hard-work required) option. The Ubuntu option is better because unlike in Windows you can emulate the wheel with the track-ball by holding down a button. This is the option I like to use.
In Ubuntu you write a configuration file to set up the trackball to work the way you want it. I have to re-create this configuration file every-time I upgrade Ubuntu, so I made a Ruby script that will do this for me.
I haven't figured out a way to get a Ruby script to function with root privileges yet. But here is the script I use and it works well using sudo and it prompts you for the password when needed.
[BTW Ubuntu turns 7 years old, today! Which means I've been using it for 6... wow, time flies!]
[Edit: I've added the file to my Github page for easier downloading. March 5, 2012]
#!/usr/bin/env ruby
#Creates a variable text with the content of the configuration file
text = <<ENDofTEXT
SSection "InputClass"
Identifier "Marble Mouse"
MatchProduct "Logitech USB Trackball"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "8"
Option "YAxisMapping" "4 5"
Option "XAxisMapping" "6 7"
Option "Emulate3Buttons" "true"
EndSection
ENDofTEXT
#finds where the directory for the file is
zombie = `locate xorg.conf.d | grep d$`
zombie.chomp!
#writes the file to the temp directory
f = File.new("/tmp/50-marblemouse.conf", "w")
f.puts text
f.close
#copies the file to the correct directory (unless it exists already) using sudo privileges.
puts `sudo cp /tmp/50-marblemouse.conf #{zombie}/50-marblemouse.conf` unless FileTest.exists?(zombie + "/50-marblemouse.conf")
thanks for sharing this, I was having the same problem
ReplyDeleteThis is excellent, thanks, though doesn't seem to quite have the desired config in the latest ubuntu? The two small buttons on the mouse now do navigate forwards and backwards (NB: I have used the latest file provided on your githhub account and tried two of the three configs there (the first too). Any help appreciated!
ReplyDeleteSorry was just being dim - hadn't restarted. Thanks!
ReplyDelete