Skip to content

Instantly share code, notes, and snippets.

@eli9000
Last active August 15, 2024 00:10
Show Gist options
  • Save eli9000/ac3356bb2d40183be1a425805e3b7641 to your computer and use it in GitHub Desktop.
Save eli9000/ac3356bb2d40183be1a425805e3b7641 to your computer and use it in GitHub Desktop.
Change your Raspberry Pi scrolling to Natural Scrolling - NEW Bookworm hack!

Bookworm OS (Debian 12)

While this method is indeed a bit hacky, it does work! Perhaps in due course wayfire will make this a bit more straight forward...

🚨 🚨 For some reason wayfire will (occasionally) add back in the <min>0.0</min> line and will also remove the <max>1.0</max> (see Step 2. If you notice natural scroll not working, this is most likely the cause. Just repeat this step and sudo reboot... hey I said it was hacky 🤷🏻‍♂️

Step 1

vi ~/.config/wayfire.ini

After the [input] section add mouse_scroll_speed=-1.0 (negative 1)

bookworm-wayfire-ini

Step 2

sudo vi /usr/share/wayfire/metadata/input.xml

Delete line 112 <min>0.0</min> from the mouse_scroll_speed section

bookworm-input-xml

Step 3

Restart Pi and enjoy that natrually scrolling goodness!


VNC Viewer Issue

I've observed that while connected via VNC Viewer, the scroll direction is reversed... again. I haven't figured out how to resolve this minor annoyance, but when I do I'll update the gist. I'm guessing there is an option somewhere in the Expert tab when viewing the connection properties. If YOU know of a fix, please enlighten me 😁

Bullseye OS (Debian 11)

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

Thanks @makouski for this 🙌🏻

Older OS (Debian 10 or below?)

Via the Terminal, type

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

Add to following line to the BOTTOM of the FIRST Section "InputClass"

Option "NaturalScrolling" "true"

Here is a visual representation

Nice work braaaaah

Once you're finished, write to the file and then exit.

Restart your Pi

Enjoy that natural scrolling goodness!

Cheers

@imabuddha
Copy link

Works great, thanks! 🙇

@ikjl
Copy link

ikjl commented Apr 6, 2021

Thank you. The screen shot helped me.

Copy link

ghost commented Apr 21, 2021

Thanks a lot, works great.

@frenchfaso
Copy link

Seems not to work anymore with the latest Raspberry Pi OS (bullseye)

@FancyChancie
Copy link

Thank you so much @eli9000, my frustration level has lowered... "not all zeros wear capes."

@frenchfaso, this worked just fine for me using bullseye.

@makouski
Copy link

makouski commented Mar 6, 2022

@frenchfaso, I have the same problem: updating 40-libinput.conf did not work in bullseye but it did work in buster.
this is how I enabled natural scrolling in bullseye:
gsettings set org.gnome.desktop.peripherals.mouse natural-scroll true

@arseniyturin
Copy link

@makouski Thank you good sir! It worked

@max-aigner
Copy link

@makouski thanks for posting, worked for me in bullseye as well

@tjf9000
Copy link

tjf9000 commented Mar 19, 2023

@makouski Thank you! Worked for me in Bullseye, no reboot necessary.

@bzareba
Copy link

bzareba commented Apr 2, 2023

@eli9000 Hi, maybe it's worth to update doc with the script for Bullseye given by @frenchfaso ? This is the first google result for raspberry pi natural scrolling :)

@frenchfaso, I have the same problem: updating 40-libinput.conf did not work in bullseye but it did work in buster. this is how I enabled natural scrolling in bullseye: gsettings set org.gnome.desktop.peripherals.mouse natural-scroll true

@eli9000
Copy link
Author

eli9000 commented Apr 11, 2023

@bzareba good idea, I will do so!

@eli9000
Copy link
Author

eli9000 commented Feb 22, 2024

Updated added for Bookworm (Debian 12) 🥳

See bookworm.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment