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 - Logitech Marble Mouse: No button swap for left handed use
Summary: Logitech Marble Mouse: No button swap for left handed use
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: xorg-x11-drv-libinput
Version: 27
Hardware: Unspecified
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: Peter Hutterer
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-03-08 09:21 UTC by eagleton
Modified: 2018-06-08 15:33 UTC (History)
16 users (show)

Fixed In Version: xorg-x11-drv-libinput-0.27.1-2.fc27
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-05-10 19:15:09 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description eagleton 2018-03-08 09:21:57 UTC
Description of problem:

In gnome-control-center, it is not possible to switch the primary button for above trackball.

Comment 1 Peter Hutterer 2018-03-09 04:17:30 UTC
what's the output of libinput list-devices for that device?

Comment 2 eagleton 2018-03-09 09:55:49 UTC
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

Comment 3 Peter Hutterer 2018-03-09 11:03:33 UTC
> 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?

Comment 4 eagleton 2018-03-09 11:09:12 UTC
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.

Comment 5 Peter Hutterer 2018-03-09 11:24:44 UTC
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.

Comment 6 eagleton 2018-03-09 11:27:10 UTC
This gives no error, but does not change the button setting.

Comment 7 brickviking 2018-05-03 06:18:36 UTC
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.

Comment 8 Peter Hutterer 2018-05-03 06:24:20 UTC
xinput watch-props "<device name>" - does that show the left-handed property being toggled? Run xinput list to get the device name.

Comment 9 brickviking 2018-05-03 08:18:13 UTC
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.

Comment 10 Peter Hutterer 2018-05-03 09:19:59 UTC
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?

Comment 11 eagleton 2018-05-03 09:24:10 UTC
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.

Comment 12 Peter Hutterer 2018-05-03 09:28:01 UTC
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

Comment 13 Fedora Update System 2018-05-03 09:44:49 UTC
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

Comment 14 brickviking 2018-05-03 09:51:35 UTC
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)

Comment 15 brickviking 2018-05-03 09:58:07 UTC
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.

Comment 16 Fedora Update System 2018-05-03 19:32:03 UTC
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

Comment 17 Peter Hutterer 2018-05-03 22:29:04 UTC
> 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

Comment 18 brickviking 2018-05-03 23:31:06 UTC
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.

Comment 19 Fedora Update System 2018-05-10 19:15:09 UTC
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.

Comment 20 eagleton 2018-05-11 15:30:42 UTC
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

Comment 21 Peter Hutterer 2018-05-14 00:17:36 UTC
> 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?

Comment 22 eagleton 2018-06-01 21:07:25 UTC
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

Comment 23 Peter Hutterer 2018-06-03 23:48:01 UTC
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?

Comment 24 eagleton 2018-06-07 18:52:37 UTC
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?

Comment 25 Peter Hutterer 2018-06-07 23:30:30 UTC
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.

Comment 26 eagleton 2018-06-08 15:33:59 UTC
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!


Note You need to log in before you can comment on or make changes to this bug.