LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices



Reply
 
Search this Thread
Old 10-23-2007, 01:29 PM   #1
werner1975
Member
 
Registered: Jun 2007
Posts: 43

Rep: Reputation: 15
Question Using all buttons of my trackball


I have a Kensington Turbo Mouse Pro with 10 additional buttons (6 shortcuts on to + 4 large buttons in a circle)

http://web.mit.edu/atic/www/images/mice/turbo.jpg

How could I assign special behaviors to these buttons? Especially for the 4 buttons, I'd like to keep click and right-click as usual, but for the two other buttons, I'd like one to act as "double-click" and the other one as "Ctrl-Q". Any idea how I could do that?
Thanks,
 
Old 10-23-2007, 02:24 PM   #2
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Debian sid + kde 3.5 & 4.4
Posts: 6,823

Rep: Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950
Sorry to say, but we're pretty much out of luck. It's possible to get all four main buttons to work, but the 6 multimedia buttons are basically dead (well actually, the first two buttons work now, but they only send the same events as two of the other buttons). I've been waiting years for someone to get around to writing in support for them, but I guess it's just too uncommon of a product for anyone to bother writing a decent driver. I even wrote the company about it a couple of years ago and got nothing but a noncommittal "we have no plans at this time" in answer.

And last I saw, it looks like the pro series has been discontinued, so there's even less likelihood in the future. Frustrating really, because they were really convenient back when I was using Windows.

The only time I came across anything that had even a remote possibility was a patch someone posted in a newsgroup for an old 2.4 era mouse driver that added key call events for the buttons, which could then be mapped to keysyms. But I can't believe that it would still work now.

*Edit: It seems that by using the ExplorerPS/2 protocol in xorg.conf, you can get the two extra main buttons to register as buttons "8" and "9", and media buttons 1 and 2 also register as "2" and "8". Everything else is dead. Pehaps there are other ways to configure it, but I haven't found them.

Last edited by David the H.; 10-23-2007 at 02:45 PM.
 
Old 10-23-2007, 02:58 PM   #3
werner1975
Member
 
Registered: Jun 2007
Posts: 43

Original Poster
Rep: Reputation: 15
Thanks. I was actually thinking more about a simple GUI utility that lits when you click a button, and then in front of the light you have a drop-down menu to choose what behavior you want associated to this click. Does such utility exist?
 
Old 10-23-2007, 04:24 PM   #4
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Debian sid + kde 3.5 & 4.4
Posts: 6,823

Rep: Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950
No, not that I know of, though it might depend on the desktop environment you're using. KDE doesn't seem to have anything useful at least. Seriously, mouse button and keyboard mapping on Linux still leaves a lot to be desired. It's mostly cryptic xmodmap commands and such right now, and I just can't get my mind around how it's all supposed to work. I still haven't even figured out how to get the extra working buttons to map to anything useful myself.

One interesting note though. Your post motivated me into doing another search, and I found this newsgroup post, where the writer claims that the extra buttons have recently started sending useful keypresses. But his configuration didn't work at all for me. Perhaps he's just confused about the first two buttons sort-of working or something. Seems strange though. Since he's able to modify his window manager to handle the buttons, they must be working for him. So perhaps there's hope after all. I'll have to keep digging.
 
Old 10-27-2007, 04:17 PM   #5
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Debian sid + kde 3.5 & 4.4
Posts: 6,823

Rep: Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950
I've had some time now to play with it now, and it does indeed seem that it's possible to get all the buttons working on the Kensington Pro series. But it's not necessarily easy.

Apparently sometime in the last year or so the evdev driver has finally included full support for all the buttons. So all you have to do to enable them is to change the mouse driver entry in your /etc/X11/xorg.conf to use it instead of the regular mouse driver directly. Indeed, since the evdev driver is basically a plug&play mouse and keyboard driver virtualizer, all most people need are three entries, everything else is automatic:

Code:
Section "InputDevice"
     Identifier     "Mouse0"
     Driver         "evdev"
     Option         "Device"     "/dev/input/event1"
EndSection
Note that the Identifier entry must match the one found in the ServerLayout section. And the Device entry must use the same 'event' device found in the 'Handlers' line of your mouse entry in 'cat /proc/bus/input/devices'. In most cases it should be event1.

After restarting your xserver you should be able to run 'xmodmap -pp' and get the following lines:

Code:
$ xmodmap -pp
There are 13 pointer buttons defined.

Physical  Button
Button     Code
  1         1
  2         2
  3         7
  4         4
  5         5
  6         6
  7         3
  8         8
  9         9
  10        10
  11        11
  12        12
  13        13
And you should be now getting active button actions from xev as well.

****HOWEVER*****

At least for me with my Expert Mouse Pro, not all is working as it should. xev does show outputs for all 13 buttons, but 'xmodmap -pp' only gives me 9 buttons. I don't know yet if this affects the ability to use them. But even worse for me is that for some reason, the buttons become completely unmappable. I'm left-handed so I need to be able to swap buttons 1 and 3, but none of the traditional ways to switch the buttons around seem to be working. When I try it with xmodmap, for example, it says it has reversed the buttons, and 'xmodmap -pp' shows them as reversed, but the system itself still uses them in the original order. The KDE mouse settings don't have any effect either. So it looks like I'm personally still stuck with a crippled trackball. Grr.

I suspect this has something to do with my particular model though, and that other, newer versions probably work better. So if you decide to try it, I'd like to know how it turns out.


So, if you can get the thing working, then all you need to do after that is apply some useful functions to the buttons. I still haven't gotten around to configuring this yet, but it seems that xbindkeys is the foundation; you use it to map buttons and keypresses to shell commands. Probably the main action you want to set up is to tell xvkbd to send a keyboard combination (crtl+shift+F12, for example) whenever you click, which can then be used for keyboard shortcuts, or with the kde input action daemon, or such. But there are many other possibilities.

Indeed, the more I think about it, the more powerful this seems. It may be harder to configure than Kensington's MouseWorks configurator, sure, but you can also do about 10 times as much with it. xbindkeys will let you set up almost any combination of buttons and keys, [[even things like mouse chords for the left two or right two buttons together, or media buttons 1+2]] (Edit: it looks like I was wrong. You can set up multiple key combos with xbindkey, or key+mouse button combos, but it doesn't look like it will let you set up multiple button combos alone. Does anyone know any way to do this?). And with a little scripting knowledge you can set these combinations to do just about ANYTHING. The only limit is your imagination, really.

Now if they'll only fix that mapping problem....

Last edited by David the H.; 10-27-2007 at 05:05 PM.
 
Old 10-28-2007, 06:13 AM   #6
werner1975
Member
 
Registered: Jun 2007
Posts: 43

Original Poster
Rep: Reputation: 15
Thanks, I'm gonna try it today. The most important thing to me is assinging "double-click" to the upper-right button when I single-click, how could I do it? Thanks,
 
Old 10-28-2007, 10:02 AM   #7
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Debian sid + kde 3.5 & 4.4
Posts: 6,823

Rep: Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950
To simulate button presses, use xmacroplay. Assuming physical button number 7, for example, create the following rule in your ~/.xbindkeysrc:

Code:
"echo ButtonRelease 7 ButtonPress 1 ButtonRelease 1 ButtonPress 1 ButtonRelease 1 | xmacroplay -d 0 :0.0"
b:7
Assuming your display is :0
That should make the button always send a simulated double-click of the first button. It took me a long time to figure out that I needed to release button 7 first though. I haven't been able to find any good documentation for xmacro anywhere.

[[Edit: There's a double-click script available here that's probably better than the above, as well as some other useful example scripts.]]

When I get my final key configuration set up, I'm probably going to throw the actual actions into some bash scripts, one for each button. That way I can use 'case' commands to set up different actions for different programs. I don't know how much extra delay it might entail yet though.

I also found a nice useful program that works well with xbindkeys: Apwal. You can use it to give you a selection of icon launchers right at your mouse cursor. Check it out.

Finally, I have an open question for the board. Apparently, you can compile xbindkeys with guile support. I want to know what this is good for and what I can do with it. Could I use it to set up button chords, like I originally wanted?

Last edited by David the H.; 10-28-2007 at 10:29 AM.
 
Old 10-28-2007, 01:42 PM   #8
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Debian sid + kde 3.5 & 4.4
Posts: 6,823

Rep: Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950
Ho, we're in luck! It turns out that the Debian version of xbindkeys already supports guile. I just had to install the libraries for it. And after reading the sample config script and playing around with it a bit, it is indeed possible to set up mouse button chords. The syntax is more difficult than the straight xbindkeysrc, and you need a small subscript function included in the config before it will work, but fortunately that's already included in the sample file. In any case, it's doable.

I am having some problems with it though. First, it's not sensitive enough. I can set it up so that two buttons in tandem will run a command, but it's only able to detect the proper sequence about 1/10 of the time. It needs to be modified so that it can read the click sequences more clearly.

Second, it's useless when used on buttons 1-5 (without modifiers), which already have default actions built into them. The script as provided blocks the default action. I need some way to let it pass the original action through when one button is clicked alone, and only activate a command when multiple commands are pressed.

Since this is a programming-related question, I'm going to start a thread in the programming forum and see if I can get some help there. Then I'll post/link to whatever answers I get back here.

Edit: The thread I started is here.

Last edited by David the H.; 10-28-2007 at 02:18 PM.
 
Old 11-20-2007, 08:09 AM   #9
pbrochard
LQ Newbie
 
Registered: Nov 2007
Posts: 1

Rep: Reputation: 0
Quote:
Originally Posted by David the H. View Post
Finally, I have an open question for the board. Apparently, you can compile xbindkeys with guile support. I want to know what this is good for and what I can do with it. Could I use it to set up button chords, like I originally wanted?
Hi, the guile/scheme configuration file enable a full access to the xbindkeys internal. A grabbed key can start a shell command or run a scheme function. This enable to do more powerful things inside xbindkeys without the need of an external shell script (like double click, timed double click , keys combinations, add/remove keys on the fly, create new functions to factor keys definitions...).
This let you extend xbindkeys the way you want.
 
Old 11-21-2007, 10:12 AM   #10
David the H.
Bash Guru
 
Registered: Jun 2004
Location: Osaka, Japan
Distribution: Debian sid + kde 3.5 & 4.4
Posts: 6,823

Rep: Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950Reputation: 1950
Thank you. But I had already figured that out. I can see that it allows for a much more flexible configuration. I think I could get it to do just about anything if I just knew how to configure it correctly.

But that's the problem. guile configuration is really a kind of scripting, and I just don't understand enough about the syntax to get it to do what I want. See my last post above for what I'm hoping to do, and the problems I'm having. I'd really appreciate any help I could get here.
 
Old 01-03-2008, 12:21 PM   #11
KohlInGA
LQ Newbie
 
Registered: Nov 2005
Location: Stone Mountain, GA
Distribution: SuSE
Posts: 28

Rep: Reputation: 15
How to Use The Buttons of Your Trackball in Linux

There's a very good how-to program the 4 buttons on the sides of roller. You can find it here:
How to Use the Buttons of Your Trackball in Linux

I'm having difficulties getting things to work as described but you'll probably have no problems. I wouldn't be surprised if there's a way to combine the two solutions.

Cheers!

Last edited by KohlInGA; 01-09-2008 at 07:33 AM.
 
Old 01-04-2008, 04:37 AM   #12
calande
Member
 
Registered: Oct 2005
Distribution: Urubu
Posts: 159

Rep: Reputation: 15
Oh, the URL is http://linux-trackball.dreamhosters.com
 
Old 01-05-2008, 07:03 AM   #13
KohlInGA
LQ Newbie
 
Registered: Nov 2005
Location: Stone Mountain, GA
Distribution: SuSE
Posts: 28

Rep: Reputation: 15
Quote:
Originally Posted by calande View Post
How right you are sir. Dunno why my link doesn't work (scratches head)

I'm having trouble understanding how xmacro is supposed to work. The archive doesn't contain a INSTALL file but the files xmacrorec and xmacroplay are already present. I've tried copying those 2 files to /usr/bin but %xev | grep command doesn't create the event testing window as it should. Instead, bash returns "command not found" and I haven't been able to figure out why. I believe if I can get over this hurdle I might actually be able to program the buttons on my trackball to work the way I'd like.

Last edited by KohlInGA; 01-05-2008 at 07:06 AM.
 
Old 01-06-2008, 10:13 AM   #14
calande
Member
 
Registered: Oct 2005
Distribution: Urubu
Posts: 159

Rep: Reputation: 15
Strange, I just downloaded the tarball from Sourceforge and I don't see these files, I only see source files with a Makefile. What you have to do is run:

Code:
%./configure
#make install
Then you'll see xmacrorec and xmacroplay in the directory. Copy them into /usr/bin/, but apparently you've done all that already.

When you type just:

Code:
%xev
%xmacrorec
‰xmacroplay
Does it still report "Command not found"? For which of them?

You could run:

Code:
%whereis xev
To find out where xev is located.
 
Old 01-07-2008, 09:26 AM   #15
KohlInGA
LQ Newbie
 
Registered: Nov 2005
Location: Stone Mountain, GA
Distribution: SuSE
Posts: 28

Rep: Reputation: 15
Quote:
Originally Posted by calande View Post
What you have to do is run:

Code:
%./configure
#make install
Thanks calande for taking the time to help with my situation.

I've tried the above command both as user and su. Both times bash returns: xmacro-0.4.5> make install
make: *** No rule to make target `install'. Stop.


Quote:
When you type just:
Code:
%xev
%xmacrorec
‰xmacroplay
Does it still report "Command not found"? For which of them?
All above commands results with
xmacro-0.4.5> %xev
bash: fg: %xev: no such job

(I only posted the %xev result, xmacroplay and xmacroplay, all three have the same results.)

Quote:
You could run:
Code:
%whereis xev
To find out where xev is located.
xev does exist:
whereis xev
xev: /usr/bin/xev /usr/bin/X11/xev /usr/share/man/man1/xev.1x.gz


Thanks again.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Using the extra buttons on a Microsoft Optical Trackball HappyTux Debian 10 04-10-2012 03:42 PM
Mouse back and forward buttons are interpreted as buttons 2 and 3 (MX610) jot-87 Linux - Hardware 1 08-06-2007 12:12 PM
Trackball explorer buttons not being recognized.. ArcLinux Linux - Desktop 0 07-18-2007 09:05 PM
Extra buttons on MS Trackball Explorer shea1roh Linux - Hardware 2 07-28-2005 10:02 PM
keyboard/trackball combo -> no mouse buttons Achmed20 Linux - Hardware 1 02-21-2003 03:44 AM


All times are GMT -5. The time now is 12:10 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration