You are not logged in.
The issue: Using `libinput`, enabling natural scrolling for my touchpad has the unwanted side effect of also enabling reverse scrolling for my mouse.
I'm using the Awesome window manager. Some other details:
$ uname -srm
Linux 5.6.10-arch1-1 x86_64$ xinput
Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Wireless Mouse PID:4022 id=11 [slave pointer (2)]
⎜ ↳ Logitech Wireless Keyboard PID:4023 id=12 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=22 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=23 [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)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Lid Switch id=9 [slave keyboard (3)]
↳ Sleep Button id=10 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=13 [slave keyboard (3)]
↳ HDA Intel PCH Mic id=14 [slave keyboard (3)]
↳ HDA Intel PCH Headphone id=15 [slave keyboard (3)]
↳ HDA Intel PCH HDMI/DP,pcm=3 id=16 [slave keyboard (3)]
↳ HDA Intel PCH HDMI/DP,pcm=7 id=17 [slave keyboard (3)]
↳ HDA Intel PCH HDMI/DP,pcm=8 id=18 [slave keyboard (3)]
↳ HDA Intel PCH HDMI/DP,pcm=9 id=19 [slave keyboard (3)]
↳ HDA Intel PCH HDMI/DP,pcm=10 id=20 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=21 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=24 [slave keyboard (3)]
↳ Logitech Wireless Keyboard PID:4023 id=25 [slave keyboard (3)]$ cat /etc/X11/xorg.conf.d/30-touchpad.conf
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
Driver "libinput"
Option "NaturalScrolling" "true"
EndSection$ libinput --version
1.15.5Last edited by jlindsay (2020-05-08 08:55:38)
Offline
Contrary to popular belief the Identifier option is not used to identify a device but to identify the set of rules for xorg should apply (as in it's a xorg internal identifier not related to your real devices). The config as posted has the only "rule" that the driver libinput should enable NaturalScrolling, which will hence apply to all devices handled by the libinput driver, ergo your touchpad and your mouse.
If you want to tune this more finegrainedly, you can add MatchProduct and/or MatchVendor with the relevant product Ids, or more generally MatchIsTouchpad "on" to ensure only your touchpad is touched (heh). So what you want to set is
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad" #You could also call that "mycooltouchpadrules" it will only matter if the same identifier is used to change configuration again in another xorg snippet.
MatchIsTouchpad "on"
Driver "libinput"
Option "NaturalScrolling" "true"
EndSection
technically it would be "more proper" to use MatchDriver "libinput" instead of manually specifying the driver so that you don't specifically set the driver and use a post 40 suffix like 41-touchpad.conf so that the /usr/share/X11/40-libinput.conf is logically parsed beforehand and is the one setting the driver. But that's splitting hairs at this point and there should not be a functional difference in the end.
Last edited by V1del (2020-05-07 13:46:35)
Offline
Thanks @V1del, that worked!
This is what I have:
$ cat /etc/X11/xorg.conf.d/30-touchpad.conf
Section "InputClass"
Identifier "touchpad"
MatchIsTouchpad "true"
MatchDriver "libinput"
Option "NaturalScrolling" "true"
EndSectionI found a lot of good information in the docs for xorg.conf (rather than the libinput docs), if anyone else has this issue.
Offline