Use “natural scrolling” on your Raspberry Pi

By default, Raspberry Pi OS will set your mouse’s scroll direction to “reverse scrolling”, a legacy gesture that’s been around since the invention of the mouse. But all the touch-based devices we’ve interacted with for nearly two decades have reminded us of how natural it is to tap-and-drag on a screen just as we would in the real world, and that “natural” scroll direction has become popular on other devices with mice and/or touchpads. Macs have shipped with natural scrolling since way back.

Here’s how to bring that natural scrolling to your mouse in the latest versions of Raspberry Pi, both 32-bit and 64-bit.


Bullseye uses the Linux Kernel version 6.1.

Execute the following in your terminal, and the natural scrolling will be enabled immediately:

gsettings set org.gnome.desktop.peripherals.mouse natural-scroll true


Bullseye uses the Linux Kernel version 5.10.

Execute the following in your terminal, which will open the 40-libinput.conf file in nano:

cd /usr/share/X11/xorg.conf.d
sudo nano 40-libinput.conf

Then, add to following line to the end of the first Section “InputClass”. The new line to add is highlighted below:

Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "NaturalScrolling" "true"

And that’s it! Two ways to enable natural mouse or touchpad scrolling in Raspberry Pi OS … now you can move on to more important things 🙂