This tutorial shows how to disable your mouse forward/backward buttons in Ubuntu. Though the title said for Ubuntu 24.04, this tutorial should also work in most modern Linux, such as Debian, Fedora, and Arch.
Many mouses today have extra buttons on the side, allowing to navigate forward and back when working with web browsers, file explorers, etc applications.
If you don’t like the side-buttons, like me, then you can disable them in Linux.
Without using third-party apps (e.g., input-remapper), here I’m going to show you how to do the job by creating an udev rule that works in most Linux on both Xorg and Wayland sessions.
Step 1: Find out scancodes of the Mouse buttons
When you press a button on mouse, it sends a scancode to the computer. Then, your system maps the scancode to a virtual keycode. By re-mapping the scancode
to reserved
, it will be ignored when you press on it.
1. First, press Ctrl+Alt+T
to open up a terminal window. When it opens, run command:
evtest
If command not found, run sudo apt install evtest
to install. And in the terminal output, it will print all the available input devices.
In my case, it’s a wireless keyboard connected through an USB receiver. As the screenshot below shows, it should be either /dev/input/event6
or /dev/input/event8
. Type either number 6 or 8 (you need to replace it accordingly), then continue.
2. After typing the correct device event number and hitting Enter, it should print corresponding outputs in terminal window, when you moving and/or pressing buttons on the mouse.
Now, you need to press the side-buttons, and remember the value number (scancode) in terminal output.
In my case, when I clicked on forward button, it output scancode 90005 and keycode BTN_EXTRA. And, it output 90004 and BTN_SIDE when backward button clicked.
Step 2: Get the ID of your mouse
After finding out the scancodes of side-buttons, you also need to find out the ID of the mouse, so you can tell Linux kernel which device to configure when writing the udev rule.
This can be done by running a single command below in terminal:
cat /sys/class/input/event6/device/modalias
Here you need to replace “event6” in command with yours device event number, according to evtest
command in Step 1.
In the output, you need to copy the input:b****v****p****e**** (input:b0003v089Dp062Fe0111
in my case). And,
input
is the Kernel subsystem name.b0003
means bus ID 0003.v089Dp062Fe0111
are the 4-digit hex vender, product, and version ID.
Step 3: Create & Edit udev rule
Now, in a terminal window, run command to create and open a custom udev rule:
sudo gnome-text-editor /etc/udev/hwdb.d/71-mouse-local.hwdb
Depends on your desktop environment, replace gnome-text-editor
with gedit
for 22.04 and earlier, mousepad
for XFCE, pluma
for MATE, or nano
command line text editor that works in most desktops.
When file opens, add the lines below and edit accordingly:
evdev:input:b0003v089Dp062Fe0111* KEYBOARD_KEY_90005=reserved KEYBOARD_KEY_90004=reserved
Here, you need to:
- replace
90005
and90004
according to Step 1. - replace
input:b0003v089Dp062Fe0111
according to Step 2.
NOTE: there’s an asterisk * at the end of first line. For nano text editor, press Ctrl+S to save and Ctrl+X to exit.
Tips: for mouse works in both wireless and wired modes, each mode may have its own product ID. Meaning, you may have to do the steps above twice! And, the udev rule will look like:
evdev:input:b0003v25A7pFA7Ce0110* KEYBOARD_KEY_90005=reserved KEYBOARD_KEY_90004=reserved evdev:input:b0003v25A7pFA7Be0110* KEYBOARD_KEY_90005=reserved KEYBOARD_KEY_90004=reserved
Step 4: Apply Change
After saved the udev config file, you can either restart computer, or run the 2 commands below one by one to apply change:
- First, update the binary hardware database
sudo systemd-hwdb update
- Then apply the change.
sudo udevadm trigger /dev/input/event*
You may skip
/dev/input/event*
in last command,sudo udevadm trigger
also works.
Undo – Re-enable side-buttons
To undo the changes above, just delete the udev config file via the command below, and restart computer:
sudo rm /etc/udev/hwdb.d/71-mouse-local.hwdb
If you don’t want to restart, then, re-edit the config file and replace reserved according to Step 1, one with BTN_EXTRA, and another with BTN_SIDE. Finally, re-run the 2 commands in Step 4 to apply.