After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 764257 - Can't disable touchpad in 3.20
Can't disable touchpad in 3.20
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: Mouse
3.20.x
Other Linux
: Normal normal
: ---
Assigned To: Control-Center Maintainers
Control-Center Maintainers
: 764819 764826 764997 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2016-03-27 11:55 UTC by rasmus
Modified: 2016-04-13 17:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
screenshot (7.18 KB, image/png)
2016-03-27 12:51 UTC, Felipe Borges
  Details
screenshot of rasmus' settings (40.72 KB, image/png)
2016-03-27 12:59 UTC, rasmus
  Details
mouse: Fix initial widget visibility (1.38 KB, patch)
2016-04-04 18:13 UTC, Rui Matos
committed Details | Review
mouse: Drop unused synaptics capabilities check (5.49 KB, patch)
2016-04-04 18:13 UTC, Rui Matos
none Details | Review
mouse: Consolidate touchpad section visibility code (2.60 KB, patch)
2016-04-04 18:14 UTC, Rui Matos
committed Details | Review
mouse: Detect and warn if we're running on the synaptics driver (4.46 KB, patch)
2016-04-04 18:16 UTC, Rui Matos
none Details | Review
mouse: Drop unused synaptics capabilities check (2.71 KB, patch)
2016-04-05 15:56 UTC, Rui Matos
committed Details | Review
mouse: Rename touchpad capabilities check API (3.51 KB, patch)
2016-04-05 15:56 UTC, Rui Matos
committed Details | Review
mouse: Use Gdk instead of Xlib for touchpad capabilities check (4.99 KB, patch)
2016-04-05 15:56 UTC, Rui Matos
committed Details | Review
mouse: Detect and warn if we're running on the synaptics driver (4.14 KB, patch)
2016-04-05 15:57 UTC, Rui Matos
committed Details | Review

Description rasmus 2016-03-27 11:55:06 UTC
Hi,

The option specifying that the touchpad should be disabled is no longer respected in Gnome 3.20 on my laptop.  I try to disable the trackpad via gnome-control-center.  It used to be able to disable the trackpad in v3.18.

I have tested with a newly created account as well as my standard account.

My hardware is a Thinkpad W530 with a trackpoint and a touchpad.  My distro is  Archlinux and I guess there's a chance that it's a bug in how they build Gnome...

I don't know if I can provide more useful information.  Running gnome-control-center from the terminal didn't reveal anything useful.

Thanks,
Comment 1 Felipe Borges 2016-03-27 12:51:58 UTC
Created attachment 324834 [details]
screenshot

Doesn't the first switch (shown in the screenshot attached) work for you?
Comment 2 rasmus 2016-03-27 12:59:44 UTC
Created attachment 324835 [details]
screenshot of rasmus' settings

No, but I would want it to work.  
That was the intended signal of the bug report.
Comment 3 Jeff Bai 2016-03-28 00:39:37 UTC
Same here with AOSC OS. We build our GNOME packages from source just like Arch. Build configuration can be obtained here:

https://github.com/AOSC-Dev/aosc-os-abbs/tree/staging/extra-gnome/gnome-control-center

Just built it this afternoon (here in MDT). Find it annoying as well (ThinkPad user who never uses touchpad).
Comment 4 Rui Matos 2016-04-01 17:44:50 UTC
Is this an X or wayland session? Please paste the output of running "sudo libinput-list-devices" and if this is an X session paste the output of running "xinput" as well.
Comment 5 Jeff Bai 2016-04-01 20:26:55 UTC
(In reply to Rui Matos from comment #4)
> Is this an X or wayland session? Please paste the output of running "sudo
> libinput-list-devices" and if this is an X session paste the output of
> running "xinput" as well.

This is an X11 GNOME session.

jeffbai [ ~ ] $ sudo libinput-list-devices
[sudo] jeffbai 的密码:
Device:           Power Button
Kernel:           /dev/input/event2
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           Video Bus
Kernel:           /dev/input/event4
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           Sleep Button
Kernel:           /dev/input/event1
Group:            3
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           Integrated Camera
Kernel:           /dev/input/event16
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event3
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event14
Group:            6
Seat:             seat0, default
Size:             84.53x50.77mm
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:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none

Device:           TPPS/2 IBM TrackPoint
Kernel:           /dev/input/event15
Group:            7
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

Device:           ThinkPad Extra Buttons
Kernel:           /dev/input/event5
Group:            8
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a

And xinput as follows...

jeffbai [ ~ ] $ LANG=C xinput
⎡ 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)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	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)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=13	[slave  keyboard (3)]

The X11 server is using xf86-input-libinput at the moment, FYI.
Comment 6 Jeff Bai 2016-04-01 20:28:51 UTC
P.S.

xorg-server version 1.18.1
libinput version 1.2.2
xf86-input-libinput version 0.17.0
Comment 7 Jeff Bai 2016-04-01 20:46:31 UTC
So it seems like xf86-input-synaptics is causing the issue here, removing that package solved my issue. xf86-input-synaptics includes a xorg.conf.d configuration file as follows.

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
        MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
        Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
EndSection

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

Is there anything that's potentially problematic in here? Well, this portion maybe?

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
Comment 8 Rui Matos 2016-04-02 15:15:12 UTC
Yeah, we don't support synaptics anymore. Unsure what/if we could do better to communicate this to end users?
Comment 9 Jeff Bai 2016-04-02 15:20:23 UTC
(In reply to Rui Matos from comment #8)
> Yeah, we don't support synaptics anymore. Unsure what/if we could do better
> to communicate this to end users?

Keep in mind though, the same configuration did not lead to the issue described in this bug. It's fine if you say "synaptics xf86 input driver will no longer be supported by GNOME", Fedora, as we speak, is using the same configuration.

What if a Fedora user installs xf86-input-synaptics (or whatever package name they use)? I don't think throwing a "tough luck" will be enough. In addition to that, synaptics xf86 driver is far from being deprecated at this point.

Can someone point out the commit that caused this issue?
Comment 10 Rui Matos 2016-04-02 15:42:07 UTC
(In reply to Jeff Bai from comment #9)
> Keep in mind though, the same configuration did not lead to the issue
> described in this bug.

I don't follow. What do you mean exactly?
Comment 11 Jeff Bai 2016-04-02 15:43:26 UTC
(In reply to Rui Matos from comment #10)
> (In reply to Jeff Bai from comment #9)
> > Keep in mind though, the same configuration did not lead to the issue
> > described in this bug.
> 
> I don't follow. What do you mean exactly?

Given the same configuration (with xf86-input-synaptics installed), 3.18 did not has this issue.
Comment 12 Rui Matos 2016-04-02 15:53:45 UTC
(In reply to Jeff Bai from comment #11)
> Given the same configuration (with xf86-input-synaptics installed), 3.18 did
> not has this issue.

Right, because support for detecting and configuring input devices driven by the synaptics X driver was removed during development for 3.20 . It was removed because the synaptics X driver isn't developed anymore. libinput has essentially replaced it upstream.

The question now is if and what should we do to make users who upgrade their systems and where their distro doesn't take care of that issue, aware of this.
Comment 13 Rui Matos 2016-04-04 18:13:46 UTC
Created attachment 325370 [details] [review]
mouse: Fix initial widget visibility

We're showing all widgets on panel start up instead of selectively
hiding non-relevant widgets since the gtk_widget_show_all() on the
stack after creating the panel widget and adding it to the stack
overrides the visibility decisions done while constructing the panel.
Comment 14 Rui Matos 2016-04-04 18:13:55 UTC
Created attachment 325371 [details] [review]
mouse: Drop unused synaptics capabilities check

We don't support synaptics anymore so checking for this is useless.
Comment 15 Rui Matos 2016-04-04 18:14:03 UTC
Created attachment 325372 [details] [review]
mouse: Consolidate touchpad section visibility code

Do it all in a single place. No functional changes.
Comment 16 Rui Matos 2016-04-04 18:16:12 UTC
Created attachment 325374 [details] [review]
mouse: Detect and warn if we're running on the synaptics driver

Since we don't support the synaptics driver anymore we shouldn't show
the touchpad section in that case. In addition, emit a warning so that
this system mis-configuration is easier to diagnose.

--

Couldn't come up with a way to display this on the UI that wouldn't
suck so I just made it hide the touchpad section and emit a
warning. At least this way we don't need to break UI freeze on the
stable branch and still get something on we can look for in
logs. Comments welcome
Comment 17 Bastien Nocera 2016-04-05 10:22:35 UTC
Review of attachment 325370 [details] [review]:

Looks fine.
Comment 18 Bastien Nocera 2016-04-05 10:24:12 UTC
Review of attachment 325371 [details] [review]:

Would be nice if you could change the function name separately from removing the synaptics-specific code. Otherwise looks good.
Comment 19 Bastien Nocera 2016-04-05 10:25:12 UTC
Review of attachment 325372 [details] [review]:

Sure.
Comment 20 Bastien Nocera 2016-04-05 10:27:06 UTC
Review of attachment 325374 [details] [review]:

::: panels/mouse/cc-mouse-caps-helper.c
@@ +123,3 @@
+
+                gdk_error_trap_push ();
+                XDevice *device = XOpenDevice (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),

Please, no XOpenDevice. Use XIGetProperty() instead.

@@ +130,3 @@
+                gdk_error_trap_push ();
+
+                /* xorg-x11-drv-libinput */

Hmm?
Comment 21 Rui Matos 2016-04-05 15:56:13 UTC
Created attachment 325443 [details] [review]
mouse: Drop unused synaptics capabilities check

We don't support synaptics anymore so checking for this is useless.
Comment 22 Rui Matos 2016-04-05 15:56:22 UTC
Created attachment 325444 [details] [review]
mouse: Rename touchpad capabilities check API

It's not about synaptics anymore.
Comment 23 Rui Matos 2016-04-05 15:56:33 UTC
Created attachment 325445 [details] [review]
mouse: Use Gdk instead of Xlib for touchpad capabilities check

Just use X API where needed.
Comment 24 Rui Matos 2016-04-05 15:57:30 UTC
Created attachment 325446 [details] [review]
mouse: Detect and warn if we're running on the synaptics driver

Since we don't support the synaptics driver anymore we shouldn't show
the touchpad section in that case. In addition, emit a warning so that
this system mis-configuration is easier to diagnose.
Comment 25 Bastien Nocera 2016-04-05 16:50:28 UTC
Review of attachment 325443 [details] [review]:

Yep.
Comment 26 Bastien Nocera 2016-04-05 16:51:26 UTC
Review of attachment 325444 [details] [review]:

Looks good.
Comment 27 Bastien Nocera 2016-04-05 16:52:51 UTC
Review of attachment 325445 [details] [review]:

Looks good.
Comment 28 Bastien Nocera 2016-04-05 16:53:19 UTC
Review of attachment 325446 [details] [review]:

Sure.
Comment 29 Rui Matos 2016-04-05 19:26:34 UTC
28c54f3..ce48b5c  gnome-3-20 -> gnome-3-20
73dcc0f..a7da5a2  master -> master

Attachment 325370 [details] pushed as d325240 - mouse: Fix initial widget visibility
Attachment 325372 [details] pushed as 0bc4b21 - mouse: Consolidate touchpad section visibility code
Attachment 325443 [details] pushed as 6a86c7e - mouse: Drop unused synaptics capabilities check
Attachment 325444 [details] pushed as 8f7e99a - mouse: Rename touchpad capabilities check API
Attachment 325445 [details] pushed as 727d228 - mouse: Use Gdk instead of Xlib for touchpad capabilities check
Attachment 325446 [details] pushed as a7da5a2 - mouse: Detect and warn if we're running on the synaptics driver
Comment 30 Bastien Nocera 2016-04-09 17:09:19 UTC
*** Bug 764819 has been marked as a duplicate of this bug. ***
Comment 31 Bastien Nocera 2016-04-09 22:12:57 UTC
*** Bug 764826 has been marked as a duplicate of this bug. ***
Comment 32 Bastien Nocera 2016-04-13 17:01:21 UTC
*** Bug 764997 has been marked as a duplicate of this bug. ***