Bug 1476586 - Mouse left to right inversion not working after upgrading from Fedora 24 to Fedora 26
Mouse left to right inversion not working after upgrading from Fedora 24 to F...
Status: NEW
Product: Fedora
Classification: Fedora
Component: cinnamon-settings-daemon (Show other bugs)
26
x86_64 Linux
unspecified Severity medium
: ---
: ---
Assigned To: Alternative GTK desktop environments
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-07-30 09:36 EDT by yousifjkadom@yahoo.com
Modified: 2017-11-09 18:45 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description yousifjkadom@yahoo.com 2017-07-30 09:36:37 EDT
Description of problem:

I'm left-handed user & already activated left handed user mouse support on Fedora 24. It was very O.K & effecting both mouse & touchpad (double touch & single touch).

After upgrade, left hand user mouse support NOT EFFECTIVE AT ALL NEITHER ON MOUSE NOR ON TOUCHPAD !!!!

Now mouse clicks are of right handed user & double touch of touch pad work as right click while single touch of touch pad works as left click (please not that both double touch & three touch are disabled by default from mouse setting). This position never altered by activating or deactivating of left mouse setting !!!


Additional info:

1) This happen only after upgrade from Fedora 24 to Fedora 26 (this mean only happen when upgrade to Cinnamon 3.4.4. Issue was not existing before upgrading to Cinnamon version 3.4.4. Mouse inversion option was very O.K on Fedora 24).

2) I selected "mousetweaks" just to post this bug. I'm not sure about it. Cinnamon is a fork of GNOME but is this mean that "mousetweaks" is abnormal component or not, I'm not sure. Please correct to me.

3) Is it bug related to Cinnamon or to Fedora ?
Comment 1 yousifjkadom@yahoo.com 2017-08-02 06:47:42 EDT
Sorry, I forget to give data on my hardware system:

Lenovo ThinkPad e550 with Intel core i7 5500 CPU @ 2.40 GH X 2, RAM = 8 GB, HHD = 1 TB, Hybrid VGA (Intel Corporation HD Graphic 5500 + Radeon R7 M265 2GB)
Reply With Quote

Any further data you need ?
Comment 2 Shing-Shong Shei 2017-08-02 13:37:19 EDT
This happens when upgrading from RHEL 7.3 to 7.4, too. 

gnome-control-center mouse

and click on either Left or Right does not have any effect.
Comment 3 leigh scott 2017-08-07 19:29:14 EDT
(In reply to yousifjkadom@yahoo.com from comment #0)
> Description of problem:
> 
> I'm left-handed user & already activated left handed user mouse support on
> Fedora 24. It was very O.K & effecting both mouse & touchpad (double touch &
> single touch).
> 
> After upgrade, left hand user mouse support NOT EFFECTIVE AT ALL NEITHER ON
> MOUSE NOR ON TOUCHPAD !!!!
> 
> Now mouse clicks are of right handed user & double touch of touch pad work
> as right click while single touch of touch pad works as left click (please
> not that both double touch & three touch are disabled by default from mouse
> setting). This position never altered by activating or deactivating of left
> mouse setting !!!
> 
> 
> Additional info:
> 
> 1) This happen only after upgrade from Fedora 24 to Fedora 26 (this mean
> only happen when upgrade to Cinnamon 3.4.4. Issue was not existing before
> upgrading to Cinnamon version 3.4.4. Mouse inversion option was very O.K on
> Fedora 24).
> 
> 2) I selected "mousetweaks" just to post this bug. I'm not sure about it.
> Cinnamon is a fork of GNOME but is this mean that "mousetweaks" is abnormal
> component or not, I'm not sure. Please correct to me.
> 
> 3) Is it bug related to Cinnamon or to Fedora ?

Cinnamon doesn't require the use of mousetweaks, I doubt it has any affect on cinnamon-settings-daemon as cinnamon uses different schemas.

cinnamon-settings mouse tab has an option to enable it.


cinnamon-settings mouse


I have tested it and it works fine
Comment 4 Shing-Shong Shei 2017-09-03 15:02:17 EDT
The old faithful way does the trick for me:

xmodmap -e "pointer = 3 2 1 4 5"

This essentially swaps the left/right buttons (1 and 3).
Comment 5 yousifjkadom@yahoo.com 2017-09-08 11:44:38 EDT
@Shing-Shong Shei

Dear can you explain more about command xmodmap -e "pointer = 3 2 1 4 5"

1) You said left/right buttons (1 & 3). O.K this mean that to reverse to right handed we need to run xmodmap -e "pointer = 1 2 3 4 5" Isn't it ?

2) what 2, 4, & 5 mean ?

@leigh scot

What I have to do so as to supply you with helpful information ? Also, is this bug related to Fedora or to Cinnamon DE ? If it it related to Cinnamon DE, please inform me so as to file a bug report on their site.

Best.
Comment 6 Shing-Shong Shei 2017-09-08 12:00:31 EDT
Hi Leigh,

xmodmap is an utility for modifying keymaps and pointer button mappings in X. If you just run xmodmap, you will see the key binding (and their corresponding keycode). "xmodmap -pp" will show the "print pointer map" as shown bellow:

$ xmodmap -pp
There are 20 pointer buttons defined.

    Physical        Button
     Button          Code
        1              3
        2              2
        3              1
        4              4
        5              5
...

Usually all you care are the first three which usually correspond to left/middle/right button. (Mice on PC used to have three buttons. But now the middle one is replaced by wheel now.) So as you can see in my output, I have already swapped physical button 1 and 3 (on the left column) and the result is shown on the right column. You don't need to worry about 4 or 5 which usually correspond to the additional buttons on some mice (such as side buttons for go forward or backward, say, in gaming).

Also I notice that this change is not permanent; i.e., when you log out and back in, you need to run it again.

Hope this helps.
Comment 7 Peter Hutterer 2017-11-07 00:28:16 EST
if you're under X, please run xinput list-props <device name> where the device name is from xinput list. Check for the libinput Left Handed Enabled property and whether it is set for the device. If not, the issue is in Cinnamon.

If it is set, please run sudo libinput debug-events --enable-left-handed and then click on the mouse - what's the output of that?
Comment 8 yousifjkadom@yahoo.com 2017-11-07 06:18:28 EST
Hi. I'm not understand what you mean by "if you're under X". But I run: 

xinput list

& it's output is the following:

⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint TouchPad        	id=11	[slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS DualPoint Stick           	id=12	[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)]
    ↳ Integrated Camera: Integrated C         	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=13	[slave  keyboard (3)]

Please what I have to select from them ? Can you give me command:

xinput list-props <device name>

exactly how I have to write it ? I mean what I have exactly to put instead of <device name> ??
Comment 9 yousifjkadom@yahoo.com 2017-11-07 06:40:53 EST
Sorry I remove "need info" lebel accidentally & can not return it again.
Comment 10 yousifjkadom@yahoo.com 2017-11-07 07:45:25 EST
Hi. I run command "xinput list-props divicename for all of mouse + touchpad elements. One of them "AlpsPS/2 ALPS DualPoint TouchPad" has Left hand support enabled (=1), while "AlpsPS/2 ALPS DualPoint Stick" has it disabled (=0) !

Please examine output & give me your next instruction: run "sudo libinput debug-events --enable-left-handed" or not.

Output:

xinput list-props 'Virtual core pointer'
Device 'Virtual core pointer':
	Device Enabled (143):	1
	Coordinate Transformation Matrix (145):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000

--------------

xinput list-props 'Virtual core XTEST pointer'
Device 'Virtual core XTEST pointer':
	Device Enabled (143):	1
	Coordinate Transformation Matrix (145):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	XTEST Device (262):	1

-------------

xinput list-props 'AlpsPS/2 ALPS DualPoint TouchPad'
Device 'AlpsPS/2 ALPS DualPoint TouchPad':
	Device Enabled (143):	1
	Coordinate Transformation Matrix (145):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (278):	1
	libinput Tapping Enabled Default (279):	0
	libinput Tapping Drag Enabled (280):	1
	libinput Tapping Drag Enabled Default (281):	1
	libinput Tapping Drag Lock Enabled (282):	0
	libinput Tapping Drag Lock Enabled Default (283):	0
	libinput Tapping Button Mapping Enabled (284):	1, 0
	libinput Tapping Button Mapping Default (285):	1, 0
	libinput Natural Scrolling Enabled (286):	1
	libinput Natural Scrolling Enabled Default (287):	0
	libinput Left Handed Enabled (288):	1
	libinput Left Handed Enabled Default (289):	0
	libinput Accel Speed (290):	0.000000
	libinput Accel Speed Default (291):	0.000000
	libinput Scroll Methods Available (292):	1, 1, 0
	libinput Scroll Method Enabled (293):	1, 0, 0
	libinput Scroll Method Enabled Default (294):	1, 0, 0
	libinput Click Methods Available (295):	1, 1
	libinput Click Method Enabled (296):	1, 0
	libinput Click Method Enabled Default (297):	1, 0
	libinput Middle Emulation Enabled (298):	0
	libinput Middle Emulation Enabled Default (299):	0
	libinput Send Events Modes Available (263):	1, 1
	libinput Send Events Mode Enabled (264):	0, 0
	libinput Send Events Mode Enabled Default (265):	0, 0
	libinput Disable While Typing Enabled (300):	1
	libinput Disable While Typing Enabled Default (301):	1
	Device Node (266):	"/dev/input/event4"
	Device Product ID (267):	2, 8
	libinput Drag Lock Buttons (302):	<no items>
	libinput Horizontal Scroll Enabled (303):	0

-------------------

xinput list-props 'AlpsPS/2 ALPS DualPoint Stick'
Device 'AlpsPS/2 ALPS DualPoint Stick':
	Device Enabled (143):	1
	Coordinate Transformation Matrix (145):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (286):	0
	libinput Natural Scrolling Enabled Default (287):	0
	libinput Left Handed Enabled (288):	0
	libinput Left Handed Enabled Default (289):	0
	libinput Accel Speed (290):	0.000000
	libinput Accel Speed Default (291):	0.000000
	libinput Accel Profiles Available (304):	1, 1
	libinput Accel Profile Enabled (305):	1, 0
	libinput Accel Profile Enabled Default (306):	1, 0
	libinput Scroll Methods Available (292):	0, 0, 1
	libinput Scroll Method Enabled (293):	0, 0, 1
	libinput Scroll Method Enabled Default (294):	0, 0, 1
	libinput Button Scrolling Button (307):	2
	libinput Button Scrolling Button Default (308):	2
	libinput Middle Emulation Enabled (298):	0
	libinput Middle Emulation Enabled Default (299):	0
	libinput Send Events Modes Available (263):	1, 0
	libinput Send Events Mode Enabled (264):	0, 0
	libinput Send Events Mode Enabled Default (265):	0, 0
	Device Node (266):	"/dev/input/event3"
	Device Product ID (267):	2, 8
	libinput Drag Lock Buttons (302):	<no items>
	libinput Horizontal Scroll Enabled (303):	1

---------------------

Waiting your kind response.
Comment 11 Peter Hutterer 2017-11-07 17:33:53 EST
The touchpad:
	libinput Left Handed Enabled (288):	1

The pointing stick:
	libinput Left Handed Enabled (288):	0

This indicates that only the touchpad is switched to left-handed mode, so the software buttons on the touchpad (bottom left/right corners of the touchpad) should be switched. Is that correct?
See also https://wayland.freedesktop.org/libinput/doc/latest/clickpad_softbuttons.html

The physical buttons above the touchpad are wired to the pointing stick (the red thing between the g/h keys) and that one is still in right-handed mode.

Please run "sudo libinput debug-events --enable-left-handed" to check what buttons you see when clicking. This enables left-handed mode on all devices. The tool has a man page if you're unclear about the usage.
Comment 12 yousifjkadom@yahoo.com 2017-11-08 13:15:43 EST
(In reply to Peter Hutterer from comment #11)
> The touchpad:
> 	libinput Left Handed Enabled (288):	1
> 
> The pointing stick:
> 	libinput Left Handed Enabled (288):	0
> 
> This indicates that only the touchpad is switched to left-handed mode, so
> the software buttons on the touchpad (bottom left/right corners of the
> touchpad) should be switched. Is that correct?
> See also
> https://wayland.freedesktop.org/libinput/doc/latest/clickpad_softbuttons.html
> 
> The physical buttons above the touchpad are wired to the pointing stick (the
> red thing between the g/h keys) and that one is still in right-handed mode.
> 
> Please run "sudo libinput debug-events --enable-left-handed" to check what
> buttons you see when clicking. This enables left-handed mode on all devices.
> The tool has a man page if you're unclear about the usage.

Hi. 1st of all, I would like to apologize about my private e-mail that I sent you. I sent you that private e-mail because I confused your last repley in bug number 103598 that I created in Freedesktop.org bug tracker ! I confused your replay as if it were about this bug 1476586 ! Sorry !

Let we complete discussion:

I run "sudo libinput debug-events --enable-left-handed"

But no correction happened !!! Only I see codes when I clicked left/right mouse bottom but no activation of left hand support ! You said "This enables left-handed mode on all devices" but no enabling happened !

I read man page but did not find something of help - please correct to me.
Comment 13 yousifjkadom@yahoo.com 2017-11-08 13:28:49 EST
I forgot to mention that when I run:

sudo libinput debug-events --enable-left-handed

then pressed bottom on my left side code appeared in terminal was RIGHT, while when I pressed bottom on my right hand then code appeared in terminal contain LEFT.

This mean that inversion should be activated: left hand became active. But in fact it is still right hand & left hand still NOT active !!

What is this ? Where is the defect ?
Comment 14 Peter Hutterer 2017-11-08 18:40:36 EST
I'm struggling to parse the above two messsages, sorry. You run sudo libinput debug-events --enable-left-handed and the buttons are swapped correctly in the terminal output? Note that this tool has *no* effect on the graphical environment, only the terminal output matters here. It's a debugging tool only.

Which buttons are we talking about here anyway? The software buttons on the bottom of the touchpad or the physical buttons above the touchpad?
Comment 15 yousifjkadom@yahoo.com 2017-11-08 23:51:17 EST
(In reply to Peter Hutterer from comment #14)
> I'm struggling to parse the above two messsages, sorry. You run sudo
> libinput debug-events --enable-left-handed and the buttons are swapped
> correctly in the terminal output? Note that this tool has *no* effect on the
> graphical environment, only the terminal output matters here. It's a
> debugging tool only.
> 
> Which buttons are we talking about here anyway? The software buttons on the
> bottom of the touchpad or the physical buttons above the touchpad?

1) yes, the buttons are swapped correctly in the terminal output. Click physically right assigned left in terminal, while click physically left assigned right in terminal.

2) I'm talking about the physical buttons above the touchpad.
Comment 16 Peter Hutterer 2017-11-09 00:31:48 EST
punting back to cinnamon. libinput works as expected and the xinput property output shows that the property is never set for the trackpoint device, only for the touchpad device. So libinput, as requested, only sets the touchpad to left-handed.
Comment 17 leigh scott 2017-11-09 04:11:21 EST
(In reply to Peter Hutterer from comment #16)
> punting back to cinnamon. libinput works as expected and the xinput property
> output shows that the property is never set for the trackpoint device, only
> for the touchpad device. So libinput, as requested, only sets the touchpad
> to left-handed.

Thank you for establishing it's a trackpoint device issue, I wouldn't have ever got it from the reporters description.

any clues :-)

https://github.com/linuxmint/cinnamon-settings-daemon/blob/master/plugins/mouse/csd-mouse-manager.c#L527
Comment 18 Peter Hutterer 2017-11-09 18:45:56 EST
I don't see anything that sticks out so now I'm wondering if it's some typo or some other cornercase falling through. Probably best to liberally sprinkle printfs over the codebase and providing a scratch build to test it.

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