Bug 1105311 - SynPS/2 Synaptics TouchPad ingore configuration
Summary: SynPS/2 Synaptics TouchPad ingore configuration
Status: RESOLVED INVALID
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: X.Org (show other bugs)
Version: Leap 15.0
Hardware: x86-64 SUSE Other
: P5 - None : Minor (vote)
Target Milestone: ---
Assignee: E-mail List
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-20 08:44 UTC by Dr. Werner Fink
Modified: 2018-08-21 08:04 UTC (History)
1 user (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
/etc/X11/xorg.conf.d/99-local.conf (3.17 KB, text/plain)
2018-08-20 16:47 UTC, Dr. Werner Fink
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dr. Werner Fink 2018-08-20 08:44:33 UTC
I've this touchpad and physical mouse buttons as well therefore I use in my personal /etc/X11/xorg.conf.d/99-local.conf

 Section "InputDevice"
     Identifier     "Touchpad"
     Driver         "synaptics"
     Option         "Device" "/dev/input/event1"
     Option         "TapButton1" "0"
     Option         "TapButton2" "0"
     Option         "TapButton3" "0"
     Option         "VertTwoFingerScroll" "on"
     Option         "HorizTwoFingerScroll" "on"
 EndSection

this is first accepted

 [    10.964] (II) Using input driver 'synaptics' for 'Touchpad'
 [    10.965] (**) Touchpad: always reports core events
 [    10.965] (**) Option "Device" "/dev/input/event1"
 [    11.020] (--) synaptics: Touchpad: x-axis range 1268 - 5674 (res 45)
 [    11.020] (--) synaptics: Touchpad: y-axis range 1096 - 4758 (res 69)
 [    11.020] (--) synaptics: Touchpad: pressure range 0 - 255
 [    11.020] (--) synaptics: Touchpad: finger width range 0 - 15
 [    11.020] (--) synaptics: Touchpad: buttons: left right double triple
 [    11.020] (--) synaptics: Touchpad: Vendor 0x2 Product 0x7
 [    11.020] (**) Option "VertTwoFingerScroll" "on"
 [    11.020] (**) Option "HorizTwoFingerScroll" "on"
 [    11.020] (**) Option "TapButton1" "0"
 [    11.020] (**) Option "TapButton2" "0"
 [    11.020] (**) Option "TapButton3" "0"
 [    11.020] (--) synaptics: Touchpad: touchpad found
 [    11.021] (**) Touchpad: always reports core events
 [    11.068] (II) XINPUT: Adding extended input device "Touchpad" (type: TOUCHPAD, id 6)
 [    11.068] (**) synaptics: Touchpad: (accel) MinSpeed is now constant deceleration 2.5
 [    11.068] (**) synaptics: Touchpad: (accel) MaxSpeed is now 1.75
 [    11.068] (**) synaptics: Touchpad: (accel) AccelFactor is now 0.035
 [    11.069] (**) Touchpad: (accel) keeping acceleration scheme 1
 [    11.069] (**) Touchpad: (accel) acceleration profile 1
 [    11.069] (**) Touchpad: (accel) acceleration factor: 2.000
 [    11.069] (**) Touchpad: (accel) acceleration threshold: 4
 [    11.069] (--) synaptics: Touchpad: touchpad found

but then overwritten:

 [    11.327] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event1)
 [    11.327] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
 [    11.327] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"
 [    11.327] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "libinput touchpad catchall"
 [    11.327] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"
 [    11.327] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "Default clickpad buttons"
 [    11.327] (II) Using input driver 'synaptics' for 'SynPS/2 Synaptics TouchPad'
 [    11.327] (**) SynPS/2 Synaptics TouchPad: always reports core events
 [    11.327] (**) Option "Device" "/dev/input/event1"
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1268 - 5674 (res 45)
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1096 - 4758 (res 69)
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: buttons: left right double triple
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: Vendor 0x2 Product 0x7
 [    11.356] (**) Option "HorizEdgeScroll" "off"
 [    11.356] (**) Option "TapButton1" "1"
 [    11.356] (**) Option "TapButton2" "3"
 [    11.356] (**) Option "TapButton3" "2"
 [    11.356] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
 [    11.357] (**) SynPS/2 Synaptics TouchPad: always reports core events
 [    11.372] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio2/input/input6/event1"
 [    11.372] (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD, id 14)
 [    11.372] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MinSpeed is now constant deceleration 2.5
 [    11.372] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MaxSpeed is now 1.75
 [    11.372] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) AccelFactor is now 0.035
 [    11.373] (**) SynPS/2 Synaptics TouchPad: (accel) keeping acceleration scheme 1
 [    11.373] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration profile 1
 [    11.373] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
 [    11.373] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
 [    11.373] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
 [    11.374] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)
 [    11.374] (**) SynPS/2 Synaptics TouchPad: Ignoring device from InputClass "touchpad ignore duplicates"
Comment 1 Stefan Dirsch 2018-08-20 09:28:36 UTC
I guess this is the desktop, which is doing this. This smells (again/still) like GNOME. :-( So question is. Are you using GNOME? Does it occur also with different desktops like xfce, twm, etc. ? JFYI, since sle15/Leap 15 libinput is our default driver for touchpads. We still ship synaptics though.
Comment 2 Stefan Dirsch 2018-08-20 09:42:28 UTC
Oh. No. Sorry. This appears to be our system configuration.

/etc/X11/xorg.conf.d/70-synaptics.conf

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# 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*"
        Option  "HorizEdgeScroll" "off"
# enable tap-to-click as default (bnc#722457)
        Option "TapButton1" "1"
        Option "TapButton3" "2"
        Option "TapButton2" "3"
EndSection

But I would have expected that your config file options would have overwritten the system ones, not the other way round. Hmm ...
Comment 3 Michal Srb 2018-08-20 10:10:18 UTC
I suspect that InputClass sections have priority over InputDevice, but I am not completely sure. See 8736d112af. As user I would expect the opposite.

When I try to reproduce it, the InputDevice section is completely ignored. Do you have any other modifications in /etc/X11/xorg.conf.d or /etc/X11/xorg.conf? Also please attach complete X log.
Comment 4 Dr. Werner Fink 2018-08-20 16:46:47 UTC
Indeed the InputClass does override InputDevice. Meanwhile I've copied and modified to my needs the InputClass from /etc/X11/xorg.conf.d/70-synaptics.conf and indeed this works now.  No more ghost button events anymore due smoothly touches to start e.g. scroll down.  Maybe the order should be changed /first scanning InputClass(es) with detection code and afterwards the InputDevice(es)) or the behaviour might be documented in the manual page xorg.conf :)

(In reply to Michal Srb from comment #3)
> I suspect that InputClass sections have priority over InputDevice, but I am
> not completely sure. See 8736d112af. As user I would expect the opposite.
> 
> When I try to reproduce it, the InputDevice section is completely ignored.
> Do you have any other modifications in /etc/X11/xorg.conf.d or
> /etc/X11/xorg.conf? Also please attach complete X log.

On my 99-local.conf with the described InputClass
Comment 5 Dr. Werner Fink 2018-08-20 16:47:52 UTC
Created attachment 780207 [details]
/etc/X11/xorg.conf.d/99-local.conf
Comment 6 Michal Srb 2018-08-21 07:51:34 UTC
I was able to reproduce it now. I was missing reference in ServerLayout or AutoServerLayout option before... I check the code deeper and can confirm that the current behavior is intentional.

The idea is:
* X server gets a list of input devices from InputDevice sections and (if enabled) from udev/hal/etc...
* Then all InputClass sections are applied on top of it.

So InputDevice is primarily meant for device discovery if udev/hal/... is disabled or does not work for some reason. InputClass should be used for custom configuration. It is fine to create InputClass that matches just a single specific device. InputClass sections are applied in order they appear in the configuration files, so you can overwrite the defaults provided by the xf86-input-synaptics package if you place your InputClass later (like the 99-local.conf file).

Closing as INVALID. I will submit patch to xorg.conf manual page to explicitly mention that InputDevice options are overwritten by InputClass.
Comment 7 Michal Srb 2018-08-21 08:04:08 UTC
Patch for man page:
https://lists.x.org/archives/xorg-devel/2018-August/057441.html