Enable Natural Scrolling in LabWC (Wayland) on Debian Trixie

Because I personally had this problem, I suspect many users moving to Debian Trixie with the LabWC Wayland window manager might discover that the system offers no GUI option to enable Natural Scrolling (also called reverse scrolling).

This guide provides the correct steps (if your system is the same standard one I used 2025.11.27) to enable natural scrolling under LabWC.


Why Natural Scrolling Doesn't Appear in libinput

Under Wayland, libinput only exposes the raw hardware defaults. Compositors (LabWC, GNOME, Sway, etc.) apply transformations after libinput processes input. Thus:

This behavior is normal and expected.


Step 1 - Verify You Are Running LabWC on Wayland

Check that your session type is Wayland:

echo $XDG_SESSION_TYPE

And check your desktop environment / compositor:

echo $XDG_CURRENT_DESKTOP
ps -e | grep -E 'labwc|wlroots'

If you get something like:

labwc:wlroots

then you are indeed on LabWC.


Step 2 - Verify Your LabWC Version

LabWC version 0.9+ supports natural scrolling via the <libinput> configuration block.

labwc -v

Example:

labwc 0.9.2 (+xwayland +nls +rsvg +libsfdo)

This version supports naturalScroll.


Step 3 - Create Your LabWC Configuration File

Create the config directory (if it does not exist):

mkdir -p ~/.config/labwc

(Optionally it is possible to copy the system template which contains a whole lot of stuff that I did not see in the rc.xml file that I had):

cp /etc/xdg/labwc/rc.xml ~/.config/labwc/ 2>/dev/null

Step 4 - Add the Natural Scroll Configuration

Edit rc.xml:

nano ~/.config/labwc/rc.xml

Insert the following minimal working configuration:

<?xml version="1.0" encoding="UTF-8"?>
<labwc_config>
  <libinput>
    <device category="default">
      <naturalScroll>yes</naturalScroll>
    </device>
  </libinput>
</labwc_config>

This applies natural scrolling to all pointer devices.


Step 5 - Reload LabWC Configuration

Reload (no need to log out):

labwc --reconfigure

If your setup lacks the option, logging out and back in will also apply it.


Step 6 - Verify That It Works

This is the tricky part:

Example:

libinput list-devices | grep -i 'Nat.scrolling'
Nat.scrolling: disabled

This is normal. The compositor applies natural scrolling after libinput processes raw events.


Optional: Confirm Raw Events

You can inspect raw device events:

sudo libinput debug-events

This shows unmodified wheel deltas before LabWC reverses them. It's useful only for debugging, not for confirming natural scroll.


Conclusion

Natural scrolling under LabWC is controlled entirely by the compositor, not libinput. Even though libinput reports "disabled," your scroll direction is changed correctly if the compositor config is applied. The XML snippet above is the official, correct method (according to ChatGPT!) for enabling natural scrolling in LabWC.

This guide should help anyone running Debian, Arch, Void, Gentoo, or any Linux distro using LabWC + Wayland.