If you're using the libinput driver then you should still be able to turn on natural scrolling for a mouse with a scroll wheel.
E.g. I just plugged in my mouse, which shows up as the "Lenovo USB Optical Mouse" in xinput:
Code:
$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ PixArt Lenovo USB Optical Mouse id=10 [slave pointer (2)]
⎜ ↳ DLL0704:01 06CB:76AE Mouse id=12 [slave pointer (2)]
⎜ ↳ DLL0704:01 06CB:76AE Touchpad id=13 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=17 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Integrated_Webcam_HD: Integrate id=11 [slave keyboard (3)]
↳ Intel HID events id=14 [slave keyboard (3)]
↳ Dell WMI hotkeys id=15 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
I'm using the 40-libinput.conf config so that libinput is used as the driver. I see this when I list the available properties of the mouse with xinput:
Code:
$ xinput list-props 10
Device 'PixArt Lenovo USB Optical Mouse':
Device Enabled (185): 1
Coordinate Transformation Matrix (187): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (315): 1
libinput Natural Scrolling Enabled Default (316): 0
libinput Scroll Methods Available (317): 0, 0, 1
libinput Scroll Method Enabled (318): 0, 0, 0
libinput Scroll Method Enabled Default (319): 0, 0, 0
libinput Button Scrolling Button (320): 2
libinput Button Scrolling Button Default (321): 2
libinput Button Scrolling Button Lock Enabled (322): 0
libinput Button Scrolling Button Lock Enabled Default (323): 0
libinput Middle Emulation Enabled (324): 0
libinput Middle Emulation Enabled Default (325): 0
libinput Rotation Angle (298): 0.000000
libinput Rotation Angle Default (299): 0.000000
libinput Accel Speed (326): 0.000000
libinput Accel Speed Default (327): 0.000000
libinput Accel Profiles Available (328): 1, 1, 1
libinput Accel Profile Enabled (329): 1, 0, 0
libinput Accel Profile Enabled Default (330): 1, 0, 0
libinput Accel Custom Fallback Points (331): <no items>
libinput Accel Custom Fallback Step (332): 0.000000
libinput Accel Custom Motion Points (333): <no items>
libinput Accel Custom Motion Step (334): 0.000000
libinput Accel Custom Scroll Points (335): <no items>
libinput Accel Custom Scroll Step (336): 0.000000
libinput Left Handed Enabled (337): 0
libinput Left Handed Enabled Default (338): 0
libinput Send Events Modes Available (300): 1, 0
libinput Send Events Mode Enabled (301): 0, 0
libinput Send Events Mode Enabled Default (302): 0, 0
Device Node (303): "/dev/input/event16"
Device Product ID (304): 6127, 24717
libinput Drag Lock Buttons (339): <no items>
libinput Horizontal Scroll Enabled (340): 1
libinput Scrolling Pixel Distance (341): 15
libinput Scrolling Pixel Distance Default (342): 15
libinput High Resolution Wheel Scroll Enabled (343): 1
You can see libinput providing the properties, and that natural scrolling is enabled (i.e. the scroll wheel is reversed).
This is enabled via my /etc/X11/xorg.conf.d/40-libinput.conf file:
Code:
$ cat /etc/X11/xorg.conf.d/40-libinput.conf
# Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
# Identifier "something or other"
# MatchDriver "libinput"
#
# MatchIsTouchpad "on"
# ... other Match directives ...
# Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.
Section "InputClass"
Identifier "libinput pointer catchall"
MatchIsPointer "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "NaturalScrolling" "true"
EndSection
Section "InputClass"
Identifier "libinput keyboard catchall"
MatchIsKeyboard "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "NaturalScrolling" "true"
Option "Tapping" "on"
EndSection
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
Section "InputClass"
Identifier "libinput tablet catchall"
MatchIsTablet "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
I'm not sure what else to say about it. If you're using libinput as the driver for the mouse, you should be able to set natural scrolling via an xorg conf file.