Fedora Account System
Red Hat Associate
Red Hat Customer
After installing Fedora 26 on my laptop and configuring /etc/X11/xorg.conf.d/30-touchpad.conf with the following contents: Section "InputClass" Identifier "system-touchpad" Driver "libinput" MatchIsTouchpad "on" Option "Tapping" "on" Option "ScrollMethod" "edge" Option "HorizontalScrolling" "on" EndSection Horizontal edge scrolling doesn’t work. The weird thing is that it worked fine in Fedora 25 (after fixing bug #1422221). libinput-list-devices gives the following info: Device: SynPS/2 Synaptics TouchPad Kernel: /dev/input/event4 Group: 8 Seat: seat0, default Size: 61x28mm Capabilities: pointer Tap-to-click: disabled Tap-and-drag: enabled Tap drag lock: disabled Left-handed: disabled Nat.scrolling: disabled Middle emulation: n/a Calibration: n/a Scroll methods: *two-finger edge Click methods: none Disable-w-typing: enabled Accel profiles: none Rotation: n/a How can I make that horizontal edge scrolling works again? Many thanks for yoru help, Pablo
are you on wayland or xorg? run xinput list-props "SynPS/2 Synaptics TouchPad" and paste the output here, that should tell you if something else (e.g. gnome) disables horizontal scrolling (though I can't find a gsettings key for it). if it can't find that device, do xinput list, if you find xwayland-pointers, then you're on wayland. you can easily verify whether libinput is working if you run sudo libinput debug-events --set-scroll-method=edge and then scroll, if you get POINTER_AXIS events, libinput works. if libinput works but it doesn't work in the app and you're on wayland, then the issue is somewhere either in mutter or the toolkit (gtk?)
I don’t know whether I’m on Wayland. I use LXDE as desktop environment, but no idea if it runs on Wayland. From your suggestion, I assume no Wayland runs here: $ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Video Bus id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ Dell WMI hotkeys id=9 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)] Here you have the list: $ xinput list-props "SynPS/2 Synaptics TouchPad" Device 'SynPS/2 Synaptics TouchPad': Device Enabled (145): 1 Coordinate Transformation Matrix (147): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 libinput Tapping Enabled (284): 1 libinput Tapping Enabled Default (285): 0 libinput Tapping Drag Enabled (286): 1 libinput Tapping Drag Enabled Default (287): 1 libinput Tapping Drag Lock Enabled (288): 0 libinput Tapping Drag Lock Enabled Default (289): 0 libinput Tapping Button Mapping Enabled (290): 1, 0 libinput Tapping Button Mapping Default (291): 1, 0 libinput Natural Scrolling Enabled (292): 0 libinput Natural Scrolling Enabled Default (293): 0 libinput Left Handed Enabled (294): 0 libinput Left Handed Enabled Default (295): 0 libinput Accel Speed (296): 0.000000 libinput Accel Speed Default (297): 0.000000 libinput Scroll Methods Available (298): 1, 1, 0 libinput Scroll Method Enabled (299): 0, 1, 0 libinput Scroll Method Enabled Default (300): 1, 1, 0 libinput Send Events Modes Available (269): 1, 1 libinput Send Events Mode Enabled (270): 0, 0 libinput Send Events Mode Enabled Default (271): 0, 0 libinput Disable While Typing Enabled (301): 1 libinput Disable While Typing Enabled Default (302): 1 Device Node (272): "/dev/input/event4" Device Product ID (273): 2, 7 libinput Drag Lock Buttons (303): <no items> libinput Horizontal Scroll Enabled (304): 1 With "libinput debug-events --set-scroll-method=edge", I get POINTER_MOTION events for horizontal scrolling. I only get POINTER_AXIS events for vertical scrolling.
Peter, I forgot to mention. two-finger horizontal scrolling works fine. The edge method seems to be the problematic one. Just in case it helps to solve the issue. BTW, I have just checked the touchpad measures with libinput-list-devices: Device: SynPS/2 Synaptics TouchPad Kernel: /dev/input/event4 Group: 8 Seat: seat0, default Size: 61x28mm Capabilities: pointer Tap-to-click: disabled Tap-and-drag: enabled Tap drag lock: disabled Left-handed: disabled Nat.scrolling: disabled Middle emulation: n/a Calibration: n/a Scroll methods: *two-finger edge Click methods: none Disable-w-typing: enabled Accel profiles: none Rotation: n/a I just measured the touchpad and measures in millimeters are 73x43. The rule is not very good (it might be 72x42). But the size from libinput-list-devices is wrong. It might be that this is the cause for the horizontal scrolling not working. (Sorry, but I remembered that I hadn’t provided the actual touchpad measures before.)
oh, right. in that case it's the device giving us the wrong edge values, so you're likely scrolling in an area that libinput considers somewhere else. Run the touchpad-edge-detector tool please and paste the output here.
I hope the info is accurate enough: touchpad-edge-detector 72x42 /dev/input/event4 Touchpad SynPS/2 Synaptics TouchPad on /dev/input/event4 Move one finger around the touchpad to detect the actual edges Kernel says: x [1472..5472], y [1408..4448] Touchpad sends: x [1008..5793], y [687..5176] \^C Touchpad size as listed by the kernel: 60x28mm User-specified touchpad size: 72x42mm Calculated ranges: 4785/4489 Suggested udev rule: # <Laptop model description goes here> evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvnDellInc.:bvrA17:bd06/13/2007:svnDellInc.:pnMM061:pvr:rvnDellInc.:rn:rvr:cvnDellInc.:ct8:cvr:* EVDEV_ABS_00=1008:5793:66 EVDEV_ABS_01=687:5176:107
whoah, out by more than a cm, no wonder this doesn't work. Put this into /etc/udev/hwdb.d/99-touchpad-override.hwdb evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnDellInc.:pnMM061:* EVDEV_ABS_00=1008:5793:66 EVDEV_ABS_01=687:5176:107 Then run sudo udevadm hwdb --update and reboot. Should magically work ;) Check with evemu-describe afterwards whether the new axis ranges are applied. https://wayland.freedesktop.org/libinput/doc/latest/udev_config.html#hwdb has more details
It works fine now, after applying the configuration you suggested: evmenu-describe gives the following info: # EVEMU 1.3 # Kernel: 4.14.18-200.fc26.i686 # DMI: dmi:bvnDellInc.:bvrA17:bd06/13/2007:svnDellInc.:pnMM061:pvr:rvnDellInc.:rn:rvr:cvnDellInc.:ct8:cvr: # Input device name: "SynPS/2 Synaptics TouchPad" # Input device ID: bus 0x11 vendor 0x02 product 0x07 version 0x1b1 # Size in mm: 72x41 # Supported events: # Event type 0 (EV_SYN) # Event code 0 (SYN_REPORT) # Event code 1 (SYN_CONFIG) # Event code 2 (SYN_MT_REPORT) # Event code 3 (SYN_DROPPED) # Event code 4 ((null)) # Event code 5 ((null)) # Event code 6 ((null)) # Event code 7 ((null)) # Event code 8 ((null)) # Event code 9 ((null)) # Event code 10 ((null)) # Event code 11 ((null)) # Event code 12 ((null)) # Event code 13 ((null)) # Event code 14 ((null)) # Event code 15 (SYN_MAX) # Event type 1 (EV_KEY) # Event code 272 (BTN_LEFT) # Event code 273 (BTN_RIGHT) # Event code 325 (BTN_TOOL_FINGER) # Event code 330 (BTN_TOUCH) # Event code 333 (BTN_TOOL_DOUBLETAP) # Event code 334 (BTN_TOOL_TRIPLETAP) # Event type 3 (EV_ABS) # Event code 0 (ABS_X) # Value 4923 # Min 1008 # Max 5793 # Fuzz 0 # Flat 0 # Resolution 66 # Event code 1 (ABS_Y) # Value 3016 # Min 687 # Max 5176 # Fuzz 0 # Flat 0 # Resolution 107 # Event code 24 (ABS_PRESSURE) # Value 0 # Min 0 # Max 255 # Fuzz 0 # Flat 0 # Resolution 0 # Event code 28 (ABS_TOOL_WIDTH) # Value 0 # Min 0 # Max 15 # Fuzz 0 # Flat 0 # Resolution 0 # Properties: # Property type 0 (INPUT_PROP_POINTER) N: SynPS/2 Synaptics TouchPad I: 0011 0002 0007 01b1 P: 01 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 03 00 00 00 00 00 B: 01 20 64 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 11 00 00 00 00 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 14 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 1008 5793 0 0 66 A: 01 687 5176 0 0 107 A: 18 0 255 0 0 0 A: 1c 0 15 0 0 0 And libinput-list-devices: Device: SynPS/2 Synaptics TouchPad Kernel: /dev/input/event4 Group: 8 Seat: seat0, default Size: 72x42mm Capabilities: pointer Tap-to-click: disabled Tap-and-drag: enabled Tap drag lock: disabled Left-handed: disabled Nat.scrolling: disabled Middle emulation: n/a Calibration: n/a Scroll methods: *two-finger edge Click methods: none Disable-w-typing: enabled Accel profiles: none Rotation: n/a I wonder whether it is relevant that evemenu-describe gives size as 72x41 and libinput-list-devices gives it as 72x42. Many thanks for your help.
very strange, not sure where that comes from. The code seems to do the right thing... either way, not something to worry about here. PR submitted to systemd, please leave your local configuration in place until the systemd release ends up in fedora. https://github.com/systemd/systemd/pull/8226