Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1553081
Summary: | Logitech Marble Mouse: No button swap for left handed use | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | eagleton <eagleton> |
Component: | xorg-x11-drv-libinput | Assignee: | Peter Hutterer <peter.hutterer> |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 27 | CC: | alexl, brickviking, control-center-maint, dchen, eagleton, fmuellner, hdegoede, john.j5live, mclasen, mkasik, ofourdan, peter.hutterer, rhughes, rstrode, sandmann, tiagomatos |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | xorg-x11-drv-libinput-0.27.1-2.fc27 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-05-10 19:15:09 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
eagleton
2018-03-08 09:21:57 UTC
what's the output of libinput list-devices for that device? Device: Logitech USB Trackball Kernel: /dev/input/event3 Group: 6 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 > Left-handed: disabled
This means that libinput provides the left-handed configuration setting on this device and it's currently disabled. if the option wasn't there, it'd read as "n/a". Next test would be:
sudo libinput debug-events --enable-left-handed
and then press the left button, if you see a POINTER_BUTTON event with BTN_RIGHT, then libinput is working as expected and the issue is in the higher levels of the stack, either control-center or mutter.
What's the output of:
gsettings list-recursively | grep left-handed
Also "it's not possible" as in nothing changes? or is there no button to switch it?
Yes, I see the POINTER_BUTTON event with BTN_RIGHT: event3 POINTER_BUTTON +56.92s BTN_RIGHT (273) pressed, seat count: 1 event3 POINTER_BUTTON +57.02s BTN_RIGHT (273) released, seat count: 0 gsettings list-recursively | grep left-handed org.gnome.desktop.peripherals.mouse left-handed false org.gnome.desktop.peripherals.touchpad left-handed 'mouse' org.gnome.desktop.peripherals.touchpad left-handed 'mouse' org.gnome.desktop.peripherals.tablet left-handed false org.gnome.desktop.peripherals.mouse left-handed false In control-center, the option to switch buttons is there, but nothing changes when I click on it. Changing this to control-center, the gsettings key should change on option change. please also try this for effect: gsettings set org.gnome.desktop.peripherals.mouse left-handed true does it change the device? If so, the bug is just in c-c, otherwise there's a mutter/gnome-shell bug too. This gives no error, but does not change the button setting. Upgraded to Fedora 27 (from 17!), most stuff went fine, but mouse button settings won't invert from gnome-control-center, only from running xmodmap -e "pointer = 3 2 1". Gnome-control-center is being run on an Xorg server, not Wayland. An associated bug for xinput set-button-map "Logitech Performance MX" "3 2 1 4 5 6 ... 24" results in a get-button-map of "3 2 3 4 5 6 7 ... 24", I probably need to report this separately against whatever package provides xinput. gsettings shows "org.gnome.desktop.peripherals.mouse left-handed false" but inverting it with "gsettings set org.desktop.peripherals.mouse left-handed true" doesn't change the actual mouse button mapping, only what the setting says. The mouse still act as a right-handed mouse. libinput debug-events --enable-left-handed shows the correct inversion, though again, this doesn't apply to the GUI. My libinput shows this from the list-devices command: Device: Logitech Performance MX Kernel: /dev/input/event4 Group: 3 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: disabled Calibration: n/a Scroll methods: button Click methods: none Disable-w-typing: n/a Accel profiles: flat *adaptive Rotation: n/a The left-handed setting doesn't get toggled when the above gsettings set command gets run. Any further requests for information about this rather weird bug? Thanks. xinput watch-props "<device name>" - does that show the left-handed property being toggled? Run xinput list to get the device name. No, nothing changes when I run xinput watch-props and toggle the Left-Handed setting in control-center. I've also found that I can't toggle the left-handed setting with xinput, as xinput doesn't show that in list-props <devname>. Anything else I can do aside from hacking stuff into /etc? I'm really trying to avoid using /etc files if I can avoid that. Uhm, if the property isn't set that would indicate that left-handed isn't available in libinput. Does the libinput-list-devices output show it as n/a? Device: Logitech USB Trackball Kernel: /dev/input/event3 Group: 6 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 This is in Fedora 27. right, this was fixed upstream and I thought I had pushed it to F27, will do so ASAP. For reference: https://bugs.freedesktop.org/show_bug.cgi?id=105667 xorg-x11-drv-libinput-0.27.1-2.fc27 has been submitted as an update to Fedora 27. https://bodhi.fedoraproject.org/updates/FEDORA-2018-52f4abbfed You guys and ladies aren't going to like this much. Here's what I typed on my computer: xinput set-prop 8 --type=int --format=8 "libinput Left Handed Enabled" 1 This pointed to my Performance MX. That resulted in a value that could be changed in watch-props when I toggled the buttons in control-center or with gsettings set, but didn't do anything for me in the gui, buttons were still mapped the same way. Sigh. Anything else? Or do I now need to wait for a libinput package update? Thanks for the help, by the way. (Regards, BrickViking, a.k.a. DrSmokey) In addition, the package referred to (xorg-x11-drv-libinput), I don't have that installed. Should I install that package and reboot, to solve the problem I have? Sorry if I seem new to this - I am. It's been quite some time since I've had much to do with Fedora. xorg-x11-drv-libinput-0.27.1-2.fc27 has been pushed to the Fedora 27 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-52f4abbfed > xinput set-prop 8 --type=int --format=8 "libinput Left Handed Enabled" 1 When you specify --type and --format, you *create* the property if it doesn't exist yet. But the driver doesn't know about it then, so the property is just eye candy. However, if the property so created changes when you toggle the gsettings key, that means we've definitely ruled out gnome as the culprit and are now sure that it's xorg-x11-drv-libinput. Except ... > I don't have that installed Which means you're still on evdev + synaptics and gnome dropped support for that 2 or so years ago. That'd be why the toggle doesn't do anything. I take it xinput list-props shows properties prefixed with Evdev? If so, you can choose to either install the xorg libinput driver, or you have to set left-handed-ness in the xorg.conf file, GNOME doesn't provide this anymore Release: ======== I installed xorg-x11-drv-libinput-0.26.0-1.fc27 from the normal repo (not the testing one) and that cured my mousebutton mapping problem, as the above comment (17) mentions. xinput list-props "<devname>" then shows a "libinput Left Handed Enabled" for each mouse. Changing that setting with xinput works for each individual mouse I have plugged in. It also shows a "libinput Left Handed Enabled Default" for each mouse, I haven't tried toggling this. Opening up Control Center and toggling the Left Handed setting toggles all mice plugged into the computer, as expected. Testing: ======== I removed 0.26.0, then installed 0.27.1-2, it seems to work fine so far. Plugging in a second mouse, I can toggle the left handed setting for each mouse manually with xinput set-prop "<devname>". There appears to be no difference in behaviour between the two package versions for the testing I've done so far. Conclusion: =========== My bug probably showed up because I did not have xorg-x11-drv-libinput of ANY version installed. Installing it has cured my personal problem. Cheers, and sorry for having wasted any time. Thanks for the help. xorg-x11-drv-libinput-0.27.1-2.fc27 has been pushed to the Fedora 27 stable repository. If problems still persist, please make note of it in this bug report. Still no left-handed support for me, now on Fedora 28: libinput-list-devices: Device: Logitech USB Trackball Kernel: /dev/input/event3 Group: 6 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 > Left-handed: disabled
That means it's available but disabled by default, which is the expected behaviour. What does xinput list-props say for the device when you enable left-handed?
It's the same no matter what I choose in gnome-control-center: xinput list-props "Logitech USB Trackball" Device 'Logitech USB Trackball': Device Enabled (134): 1 Coordinate Transformation Matrix (136): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (268): 0 Device Accel Constant Deceleration (269): 1.000000 Device Accel Adaptive Deceleration (270): 1.000000 Device Accel Velocity Scaling (271): 10.000000 Device Product ID (261): 1133, 50184 Device Node (260): "/dev/input/event3" Evdev Axis Inversion (277): 0, 0 Evdev Axes Swap (279): 0 Axis Labels (280): "Rel X" (144), "Rel Y" (145) Button Labels (281): "Button Left" (137), "Button Middle" (138), "Button Right" (139), "Button Wheel Up" (140), "Button Wheel Down" (141), "Button Horiz Wheel Left" (142), "Button Horiz Wheel Right" (143), "Button Side" (262), "Button Extra" (263) Evdev Scrolling Distance (282): 0, 0, 0 Evdev Middle Button Emulation (283): 1 Evdev Middle Button Timeout (284): 50 Evdev Middle Button Button (285): 2 Evdev Third Button Emulation (286): 0 Evdev Third Button Emulation Timeout (287): 1000 Evdev Third Button Emulation Button (288): 3 Evdev Third Button Emulation Threshold (289): 20 Evdev Wheel Emulation (290): 0 Evdev Wheel Emulation Axes (291): 0, 0, 4, 5 Evdev Wheel Emulation Inertia (292): 10 Evdev Wheel Emulation Timeout (293): 200 Evdev Wheel Emulation Button (294): 4 Evdev Drag Lock Buttons (295): 0 You're using the evdev driver, gnome dropped support for that one 2 years ago (or something like that). So that toggle simply goes nowhere, gnome expects the xorg-11-drv-libinput driver to be in use. Question is why are you using the evdev driver? Ouch - I think I needed that a few years ago with xorg, but it was never disabled when Wayland came. How do I do that? Just installing the xorg-x11-drv-libinput driver will override evdev by default. Otherwise go searching for config files in /etc/X11/xorg.conf.d, anything that has a Driver "evdev" line in it will assign the evdev driver. Also, fwiw, you're not on Wayland, otherwise you'd only see devices like "xwayland-pointer" in xinput list. You're right, for some reason I had not realized I wasn't on Wayland. After switching to Wayland vs. gdm, everything works as expected. Sorry! |