Disabling middle mouse button

Execute those commands:

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

Explanation (kindly donated by @Yehosef):

The first number is the identifier of the pointer (you'll often only have one, in this case there were two, 9 and 10).

The next numbers are what you do with the first, second, and third (ie, left, middle, right) mouse buttons. 1 0 3 tells it that the left button should do a left click (action 1), the middle button should do nothing, and the right button should do a right click (action 3). If you want to make the middle button also do a left click you could use 1 1 3. If you wanted to switch the right and left actions you could use 3 0 1. See https://wiki.ubuntu.com/X/Config/Input for more info.


Following instructions are based on info at Ubuntu Wiki (Scroll down to title "Example: Disabling middle-mouse button paste on a scrollwheel mouse").

First, determine id of the pointer by listing input devices:

xinput list | grep 'id='

And look for the line that contains name of your pointer, there also should be id of the device, right after "id=". For example, id of this device is 10:

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

Next, get current button map of that device (I'll be using id of my device, which is 10):

xinput get-button-map 10

Output:

1 2 3 4 5 6 7 8 9

This is mapping of pointer buttons to actions, where number represents action code, and position - button.

We're interested in second map - number 2 corresponds to action "Middle Button Click" and the position of it - to actual middle button.

To disable middle button triggering any action, I'd use command xinput set-button-map with id of the device and updated map (new action code is 0 - no action). No need to put whole map - map till interested button suffice (the rest just won't be updated):

 xinput set-button-map 10 1 0

That's it.


This is what I do on Ubuntu 20.04 (uses Wayland by default) to disable my middle button or remap my middle button.

To find my device id:

$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:17                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:17              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-touch:17                         id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xwayland-keyboard:17                      id=8    [slave  keyboard (3)]

I had to do a couple test before I found the right id. For me, it was 6.

To see current button map:

$ xinput get-button-map 6
1 2 3 4 5 6 7 8 9 10 

To disable middle button:

$ xinput set-button-map 6 1 0 3 4 5 6 7 8 9 10

To remap middle button to left click:

$ xinput set-button-map 6 1 1 3 4 5 6 7 8 9 10

In order to run at startup, create a file and make sure it's executable (chmod a+x):

#!/bin/bash
xinput set-button-map 6 1 1 3 4 5 6 7 8 9 10

Ubuntu and other GNOME based distributions come with an application simply called “Startup Applications”. It can be used for managing apps and scripts that run on a fresh system reboot or login. So just do a search for it, open it and add the file you just created.

Tags:

Mouse