Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I am using a Logitech Anywhere Mouse MX on my Ubuntu. Mouse works well, but I can't assign the actions to the extra buttons available on it. What I miss the most is the "back" and "forward" actions assigned to the scroll wheel tilt left and right.

How can I activate these features?

share|improve this question
add comment

5 Answers 5

up vote 2 down vote accepted

I use xbindkeys in combination with xdotool.

Create a .xbindkeysrc file in your home directory. It must contain:

# Mapping BACK to mousewheel left on old Logitech
"xdotool key Alt_L+Left"
m:0x0 + b:6

# Mapping FORWARD to mousewheel right on old Logitech
"xdotool key Alt_L+Right"
m:0x0 + b:7

However with VMware you don't have to do anything else except adding

mouse.vusb.enable = "TRUE"

to the .vmx file in your host system. It's what VMware opens every time you start your guest system.

share|improve this answer
    
Thanks. I will test the vmx line next time I restart the system (doesn't happen too often). –  ysap Mar 25 '13 at 14:34
    
Just tried the vmx file hack - and it doesn't seem to work. What I see is that when I do a restart, VMware erases the line I just added, as if it has a default file template that is being reset every time you start the machine. –  ysap Apr 4 '13 at 9:57
    
ok, it looks like I had to go all the way and shut down the machine, rather than just restart. Now the settings is preserved. Unfortunately, working remotely right now, the mouse wheel seem ineffective (same on the host machine). I'll check again when at the remote site and report the results. –  ysap Apr 4 '13 at 10:08
    
Oh yeah - just checked, and it works! –  ysap Apr 4 '13 at 13:19
add comment

I have this same mouse, and I wanted to bind the two buttons on the side of the mouse to forward and back. Here is how I solved this:

1) Use the utility "xev" to determine what numbers the buttons you are wanting to remap correspond to. You may have to install this package using

sudo apt-get install xev  

Once xev is installed type "xev" into a terminal, and an X window that is white with a black box will pop up. Moving your mouse into that window will begin registering events to the terminal. Reading the output of that carefully will tell you the numbers of your mouse buttons. On my mouse, the left and right tilt map to buttons 6 and 7 respectively.

2) Now we are going to use the utility "xbindkeys" to remap the mouse buttons to key presses. If you don't already have this installed you may have to install it with

sudo apt-get install xbindkeys

3) Create a file in your home directory called ".xbindkeysrc". This is what xbindkeys will read to see what you are remapping. The contents of my .xbindkeysrc file are:

 "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]""
   m:0x0 + b:8

 "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Right]""
  m:0x0 + b:9

So this tells my computer to send the keyboard button presses "Alt+Left" or "Alt+Right" to the system using the virtual keyboard (xvkbd) whenever button 8 on mouse 0 is pressed or button 9 on mouse 0 is pressed respectively. These keys correspond to the the forward and back keys in most applications. This will work, for example, in Nautilus, chrome/

share|improve this answer
    
Thanks. Running the xev utility I do see lots of info, however, although the scroll up and down functions are mapped to keys 4 and 5, I do not get any event when I tilt the scroll wheel, nor when I click the two side buttons. Any ideas why? –  ysap Feb 3 '12 at 19:04
    
It's possible that for some reason your system doesn't recognize the signals sent from the mouse. If this is the case, you should see error codes either in /var/log/messages or in dmesg. Read more about this problem and how to fix it at this url jveweb.net/en/archives/2011/01/… If that is not the problem, we will have to look into it more. –  jarvisschultz Feb 5 '12 at 17:58
    
ok, I looked at the dmesg log. it is a pretty long list of messages. What exactly should I be looking for? –  ysap Feb 6 '12 at 4:54
    
BTW, I did not mention it in the question but it may help - I am using Ubuntu as a guest OS on VMware Player on Windows 7. From my experience with a few devices, the emulation is pretty good, do Ubuntu should definitely see all messages sent by the mouse. –  ysap Feb 6 '12 at 4:56
    
look at the link I posted previously to see what you should be looking for in dmesg. You could try piping the dmesg output to grep with something like dmesg | grep key, or you could monitor the /var/log/messages with tail -f /var/log/messages I'm not sure if the Windows/ virtual machine setup you've got going is causing problems. It's certainly possible –  jarvisschultz Feb 7 '12 at 16:24
show 3 more comments

Here is what I did. No sudo commands or new packages necessary:

  • I tested my buttons with xev --> all buttons correspond to a certain value, which means they are recognized by the system
  • inspect devices with xinput list --> the mouse is listed with ID 9 in my case
  • xinput list-props 9 shows current mapping and especially tells about button labels --> seems like foreward / backward corresponds to button 8 and 9 which I do not have (wheel tilt is 6 and 7 and mapped to horizontal scrolling)
  • remapping bindings via xmodmap as interpreted by X is most convenient solution for me. First five buttons should not be changed (left right middle click and scolling up and down), but those reporting as button 6 & 7 should navigate foreward / backward
  • executing xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7 10 11 12 13 14 15 16" in a terminal swaps buttons 6 and 7 with 8 and 9 (virtually)
  • if this mapping does not work for you restore defaults with xmodmap -e "pointer = default" and try a different mapping
  • Now I have the button swap command in my Startup Applications to be executed after login
  • it also seems possible according to man xmodmap to store this command in a file called ~/.xmodmaprc or append the instruction to ~/.bashrc

Worked for me. Hope this helps.

share|improve this answer
    
+1: This xmodmap approach worked immediately for me, but... is it possible to modify mapping for a specific mouse? –  MestreLion Sep 19 '13 at 12:40
add comment

This is what worked for me:

1) Install xbindkeys

sudo apt-get install xbindkeys

2) Install xautomation

sudo apt-get install xautomation

3) Create a file .xbindkeysrc in your home directory with this inside:

# History Back & Forward
"xte 'keydown Alt_L' 'key Left' 'keyup Alt_L' "
  b:6
"xte 'keydown Alt_L' 'key Right' 'keyup Alt_L' "
  b:7

4) Go to Startup Applications and add program with xbindkeys command.

5) Log out & log in

Source: Ubuntu Forums

share|improve this answer
    
Thanks, B-Scan. I assume you meant the file to be put in my home directory. I placed it there and added a xbindkeys entry to Startup Apps, logged out and in and... it does not work :-( –  ysap Oct 25 '12 at 23:02
    
Yes, home directory. Now I saw that you are using VMware. Maybe could be related to this? –  B-Scan Oct 26 '12 at 13:47
add comment

Easystroke is, well easy to configure.

sudo apt-get install easystroke
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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