30

I am left handed person.
Therefore I want to interchange the typical mouse buttons for right and left clicks.

I want to do this via terminal. May someone please suggest the command for it?

Is it possible to interchange these clicks at the login screen also? I am using Ubuntu 12.04.

26
xmodmap -e "pointer = 3 2 1"

in a terminal should work. If you want to run that command at the start of lightdm (the default login screen), you can edit /etc/lightdm/lightdm.conf like described here - use the xmodmap command instead of xbacklight in the script, of course.

  • 2
    this works for the present session.. how to make it permanent??? – Fookraa Jun 16 '12 at 18:33
  • 2
    It should be permanent if you put it in /etc/lightdm/lightdm.conf. If not, you can put it in Startup Applications or create a .desktop file in ~/.config/autostart from the terminal. – elmicha Jun 16 '12 at 19:45
  • I have no /etc/lightdm/lightdm.conf file. Is there somewhere template for it? – Mateusz Konieczny Aug 19 at 15:21
25

You can use also xinput to do this.

It will switch the buttons on one mouse only.

First use-

xinput list

To see where you mouse is will be somthing like

"USB Mouse"     id=12       [slave pointer]

So use the id number for the next command to switch the button assignment.

xinput set-button-map 12 3 2 1

So, you would switch out 12 with the id number of your mouse.

Source: 1

  • 2
    I find this useful because I often have two mice, left and right. This technique allows them to be set to be the mirror image of each other. – Rick-777 Jun 8 '15 at 9:13
  • And then you can make this permanent by creating a Xorg device configuration as explained here: linus.haxx.se/2013/03/07/mouse-button-mapping-in-xorg-conf – Apteryx Nov 19 '15 at 19:11
  • or just a startup script if you wish – Mateo Nov 19 '15 at 19:14
  • 2
    In case my pointer devices change IDs, I look up the ID as part of the command line: xinput set-button-map $(xinput list --id-only "Kensington Kensington Expert Mouse") 3 2 1 The string in quotes comes from "xinput list" above. – akom Apr 27 '17 at 20:04
  • This should be marked as answer rather than using xmodmap – ptgamr Feb 11 '18 at 21:41
7

xmodmap is the command to change the mouse button mapping:

xmodmap -e "pointer = 3 2 1"

will remap the first three buttoons, left, middle and right, to act like , right, middle and left - not actually changing the middle button mapping.

That applies the change to the current session - more precisely, to the current X display, for exanple :0.

To save the change persistent over sessions, put the mapping into the file

~/.Xmodmap

If it does not exist, create it, liketouch ~/.Xmodmap

Edit it to add the line

pointer = 3 2 1

If there already is a pointer line, it may have some function, of course; Instead of replacing it, better modify the first three values - keeping a comment with the old:

For example,

pointer = 1 2 3 4 5 16 17 8 9 10 11 12 13 14 15 6 7 18 19 20 21 22 23 24

becomes

!pointer = 1 2 3 4 5 16 17 8 9 10 11 12 13 14 15 6 7 18 19 20 21 22 23 24
pointer = 3 2 1 4 5 16 17 8 9 10 11 12 13 14 15 6 7 18 19 20 21 22 23 24


I'm used to ~/.Xmodmap allways just working; But see .Xmodmap works only when automatic login disabled? if it does not.

-1

Execute this code in command prompt, it will remove and reset Optical mouse and touchpad to default- left click is for clicking and right click is for options.

modprobe -r psmouse
modprobe psmouse proto=imps
-1

For Ubuntu ~12.04 and prior

#!/usr/local/bin/tcsh -fb

# switches between right and left mouse
set leftMouseHand = `gconftool-2 --get /desktop/gnome/peripherals/mouse/left_handed`
if ( "$leftMouseHand" == "false" ) then
    gconftool-2 --set /desktop/gnome/peripherals/mouse/left_handed true --type boolean
    gconftool-2 --set /desktop/gnome/peripherals/mouse/cursor_theme Oxygen_White_Big --type string
else
    gconftool-2 --set /desktop/gnome/peripherals/mouse/left_handed false --type boolean
    gconftool-2 --set /desktop/gnome/peripherals/mouse/cursor_theme Oxygen_White_Big --type string
endif

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.