Button scrolling not working in gnome 3.34 on Fedora 31
Summary
I use a Logitech Trackman Marble mouse and I am trying to enable button scrolling so that I can click and hold a button, then use the trackball to scroll. The description of the bug that I have provided below was created by following information provided in [1] and [2]. In fact, this appears to be a regression of the bug fixed at [1] based on the commit by Peter Hutterer.
Any thoughts on this? Your help would be greatly appreciated! I'd be happy to provide more info, test, and hack code if needed.
Steps to reproduce
- Check to make sure the scroll button emulation key is available in gsettings:
gsettings get org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button
- Set the scroll button emulation property to use buttons 8 (BTN_SIDE, for right handed use) or 9 (BTN_EXTRA, for left handed use).
gsettings set org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 9
- Test on any web page or eog image and find that the default forward/back mapping of the device is still active.
Further diagnosis:
- Run libinput and verify that when the scroll method is set to button and the scrolling is tested that it works:
$ libinput debug-events --set-scroll-method=button --set-scroll-button=BTN_EXTRA --verbose
event2 - btnscroll: down
event2 - debounce state: DEBOUNCE_STATE_IS_UP → DEBOUNCE_EVENT_PRESS → DEBOUNCE_STATE_IS_DOWN_WAITING
event2 - debounce state: DEBOUNCE_STATE_IS_DOWN_WAITING → DEBOUNCE_EVENT_TIMEOUT → DEBOUNCE_STATE_IS_DOWN
-event2 POINTER_AXIS +2.202s vert 1.00/0* horiz 0.00/0 (continuous)
event2 POINTER_AXIS +2.242s vert 1.00/0* horiz 0.00/0 (continuous)
event2 POINTER_AXIS +2.258s vert 1.00/0* horiz 0.00/0 (continuous)
event2 POINTER_AXIS +2.298s vert 1.00/0* horiz 0.00/0 (continuous)
event2 POINTER_AXIS +2.378s vert 1.00/0* horiz 0.00/0 (continuous)
event2 POINTER_AXIS +2.418s vert 1.00/0* horiz 0.00/0 (continuous)
event2 - middlebutton state: MIDDLEBUTTON_IDLE → MIDDLEBUTTON_EVENT_OTHER → MIDDLEBUTTON_IDLE, rc 0
event2 - middlebutton state: MIDDLEBUTTON_IDLE → MIDDLEBUTTON_EVENT_ALL_UP → MIDDLEBUTTON_IDLE, rc 1
event2 - btnscroll: up
event2 - debounce state: DEBOUNCE_STATE_IS_DOWN → DEBOUNCE_EVENT_RELEASE → DEBOUNCE_STATE_IS_UP_DETECTING_SPURIOUS
- Since libinput has a set scroll method property and Gnome Settings and Gnome Tweaks do not show this property, see if they are available in gsettings by listing settings recursively and searching for "scroll":
org.gnome.Epiphany.web enable-smooth-scrolling true
org.gnome.evolution.calendar month-scroll-by-week true
org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 9
org.gnome.eog.view scroll-wheel-zoom true
org.gnome.desktop.peripherals.touchpad edge-scrolling-enabled false
org.gnome.desktop.peripherals.touchpad two-finger-scrolling-enabled true
org.gnome.desktop.peripherals.touchpad natural-scroll true
org.gnome.eog.ui scroll-buttons true
org.gnome.desktop.a11y.magnifier scroll-at-edges false
org.gnome.desktop.interface overlay-scrolling true
org.gnome.desktop.peripherals.mouse natural-scroll false
Based on this, it would appear that Gnome does not actually support scroll button emulation, although libinput does.
Additional diagnostic output
uname
Linux localhost.localdomain 5.6.19-200.fc31.x86_64 #1 SMP Wed Jun 17 16:54:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
evemu-describe
# EVEMU 1.3
# Kernel: 5.6.19-200.fc31.x86_64
# DMI: dmi:bvnAwardSoftwareInternational,Inc.:bvrF9:bd10/22/2012:svnGigabyteTechnologyCo.,Ltd.:pnGA-990FXA-UD3:pvr:rvnGigabyteTechnologyCo.,Ltd.:rnGA-990FXA-UD3:rvrx.x:cvnGigabyteTechnologyCo.,Ltd.:ct3:cvr:
# Input device name: "Logitech USB Trackball"
# Input device ID: bus 0x03 vendor 0x46d product 0xc408 version 0x110
# 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 274 (BTN_MIDDLE)
# Event code 275 (BTN_SIDE)
# Event code 276 (BTN_EXTRA)
# Event type 2 (EV_REL)
# Event code 0 (REL_X)
# Event code 1 (REL_Y)
# Event type 4 (EV_MSC)
# Event code 4 (MSC_SCAN)
# Properties:
N: Logitech USB Trackball
I: 0003 046d c408 0110
P: 00 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 1f 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: 01 00 00 00 00 00 00 00 00
B: 02 03 00 00 00 00 00 00 00
B: 03 00 00 00 00 00 00 00 00
B: 04 10 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
udevadm
P: /devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.0/0003:046D:C408.0002/input/input4/event2
N: input/event2
L: 0
S: input/by-path/pci-0000:00:16.0-usb-0:1:1.0-event-mouse
S: input/by-id/usb-Logitech_USB_Trackball-event-mouse
E: DEVPATH=/devices/pci0000:00/0000:00:16.0/usb7/7-1/7-1:1.0/0003:046D:C408.0002/input/input4/event2
E: DEVNAME=/dev/input/event2
E: MAJOR=13
E: MINOR=66
E: SUBSYSTEM=input
E: USEC_INITIALIZED=25052652
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: ID_MODEL=USB_Trackball
E: ID_MODEL_ENC=USB\x20Trackball
E: ID_MODEL_ID=c408
E: ID_REVISION=1400
E: ID_SERIAL=Logitech_USB_Trackball
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:16.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_16_0-usb-0_1_1_0
E: ID_INPUT_TRACKBALL=1
E: LIBINPUT_DEVICE_GROUP=3/46d/c408:usb-0000:00:16.0-1
E: DEVLINKS=/dev/input/by-path/pci-0000:00:16.0-usb-0:1:1.0-event-mouse /dev/input/by-id/usb-Logitech_USB_Trackball-event-mouse
libinput list-devices
Device: Logitech USB Trackball
Kernel: /dev/input/event2
Group: 4
Seat: seat0, default
Capabilities: pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: n/a
Calibration: n/a
Scroll methods: button
Click methods: none
Disable-w-typing: n/a
Accel profiles: flat *adaptive
Rotation: 0.0