Bug 245948 - x11/plasma5-plasma-desktop: turn SYNAPTICS off by default
Summary: x11/plasma5-plasma-desktop: turn SYNAPTICS off by default
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-26 20:55 UTC by Edward Tomasz Napierala
Modified: 2020-06-03 18:46 UTC (History)
4 users (show)

See Also:
tcberner: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Edward Tomasz Napierala freebsd_committer freebsd_triage 2020-04-26 20:55:05 UTC
At least on my Thinkpad X220 running 13-CURRENT, having xf86-input-synaptics breaks touchpad: it doesn't work at all, and when you work around it by using moused and setting kern.evdev.rcpt_mask=3, it still breaks the touchpad properties dialog in System Settings.

Without xf86-input-synaptics installed, everything works properly using libinput.  Please don't pull in xf86-input-synaptics as dependency.
Comment 1 Tobias C. Berner freebsd_committer freebsd_triage 2020-04-27 14:46:01 UTC
Moin moin 

I think Niclas, you had the same issue, right?


I will look into this.


mfg Tobias
Comment 2 Niclas Zeising freebsd_committer freebsd_triage 2020-04-27 15:42:50 UTC
(In reply to Tobias C. Berner from comment #1)
Yes, we talked about it on IRC at some point.  On FreeBSD 12 and later, the KDE distribution should probably not carry xf86-input-synaptics.
Comment 3 Tobias C. Berner freebsd_committer freebsd_triage 2020-04-27 16:00:56 UTC
(In reply to Niclas Zeising from comment #2)

Thanks for clarifying. I'm not quite sure, why Linux (e.g. arch) [1] can depend on it though.

Also synaptic-libraries are a requirement for the KCM to be built. [2]



[1] https://www.archlinux.org/packages/extra/x86_64/xf86-input-synaptics/
[2] https://github.com/KDE/plasma-desktop/blob/master/CMakeLists.txt#L132
Comment 4 Vladimir Kondratyev freebsd_committer freebsd_triage 2020-04-27 23:46:36 UTC
(In reply to Tobias C. Berner from comment #3)

> Also synaptic-libraries are a requirement for the KCM to be built. [2]

Is it build- or run- time dependency?

Similar things in xfce-settings just enable support for xorg's properties used by driver but do not link xfce4-mouse-settings with driver binary so configurator still can be used standalone.
Comment 5 Andriy Gapon freebsd_committer freebsd_triage 2020-04-28 07:54:14 UTC
I just want to say that it feel strange that plasma-desktop has a direct dependency on xf86-input-synaptics, an xorg's driver.
And yes, it caused problems for me as well.  I had to explicitly specify libinput driver in xorg.conf.
Comment 6 Edward Tomasz Napierala freebsd_committer freebsd_triage 2020-04-28 12:23:36 UTC
I've tried the fix committed by wulf@ (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=245966), and I must say, it works even better.  Compared to what I've proposed (removing the xf86-input-synaptics dependency), his solution not only makes the touchpad works, but also enables quite a bit more settings in the KDE System Settings dialog - I can enable palm detection and tune a dozen of other parameters.

So, I'd say we should leave it as it is now - the fix is committed and it seems to work even better than plain xf86-input-libinput.

Or perhaps we should move it, as dependency, from plasma5-plasma-desktop to xorg-minimal, or wherever the xf86-input-libinput is pulled in?
Comment 7 Niclas Zeising freebsd_committer freebsd_triage 2020-04-28 13:16:30 UTC
(In reply to Edward Tomasz Napierala from comment #6)

xf86-input-libinput is installed by xorg-drivers.  This is supposed to be minimal, so I won't change the defaults to include xf86-input-synaptics in the default settings.
Comment 8 Edward Tomasz Napierala freebsd_committer freebsd_triage 2020-04-28 14:13:09 UTC
Ok, in this case I'd say it's best to leave it as it is - at least with KDE the xf86-input-synaptics provides better user experience than xf86-input-libinput.
Comment 9 Tobias C. Berner freebsd_committer freebsd_triage 2020-04-28 15:21:29 UTC
(In reply to Edward Tomasz Napierala from comment #6)
Awesome!
Comment 10 Edward Tomasz Napierala freebsd_committer freebsd_triage 2020-05-01 12:29:23 UTC
Fixed in a better way in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=245966.
Comment 11 Andriy Gapon freebsd_committer freebsd_triage 2020-05-02 18:20:49 UTC
Just in case, I must add that not having synaptics and having synaptics with evdev support are not equivalent if one wants to customize any touchpad behavior.

As an example, here is what I have in /usr/local/etc/X11/xorg.conf.d/90-touchpad.conf:
Section "InputClass"                                                                                                                                                                                                                  
        Identifier      "Motile touchpad"                                                                                                                                                                                             
        MatchDriver     "libinput"                                                                                                                                                                                                    
        MatchIsTouchpad "on"                                                                                                                                                                                                          
        MatchProduct    "UNIW0001"                                                                                                                                                                                                    
                                                                                                                                                                                                                                      
        Option          "Tapping" "on"                                                                                                                                                                                                
        Option          "TappingDrag" "on"                                                                                                                                                                                            
        Option          "TappingDragLock" "on"                                                                                                                                                                                        
        Option          "ClickMethod" "clickfinger"                                                                                                                                                                                   
        Option          "ScrollMethod" "twofinger"                                                                                                                                                                                    
        Option          "NaturalScrolling" "off"                                                                                                                                                                                      
        Option          "DisableWhileTyping" "on"                                                                                                                                                                                     
EndSection                                                                                                                                                                                                                            
                                                                                                                                                                                                                                      
Section "InputClass"                                                                                                                                                                                                                  
        Identifier      "Motile touchpad, synaptics"                                                                                                                                                                                  
        MatchDriver     "synaptics"                                                                                                                                                                                                   
        MatchIsTouchpad "on"                                                                                                                                                                                                          
        MatchProduct    "UNIW0001"                                                                                                                                                                                                    
                                                                                                                                                                                                                                      
        Option          "TapButton1" "1"                                                                                                                                                                                              
        Option          "TapButton2" "3"                                                                                                                                                                                              
        Option          "TapButton2" "2"                                                                                                                                                                                              
        Option          "CornerCoasting" "on"                                                                                                                                                                                         
        Option          "HorizTwoFingerScroll" "on"                                                                                                                                                                                   
        Option          "LockedDrags" "on"                                                                                                                                                                                            
        Option          "LockedDragTimeout" "300"                                                                                                                                                                                     
        Option          "PalmDetect" "on"                                                                                                                                                                                             
EndSection

The first section has effect if there is no synaptics driver installed / loaded.
The second section had effect in the other case.
They configure roughly the same behavior for a specific touchpad but using different options.
Comment 12 Gleb Popov freebsd_committer freebsd_triage 2020-06-03 18:46:15 UTC
In my case, the touchpad was recognized as two devices for some reason. Both of them have XIButtonClass for some reason. This confuses Plasma Touchpad KCM and it didn't allow me to set behavior for two-finger taps.

After some digging, I worked it around with following line in 40-libinput.conf file:

Option "TappingButtonMap" "lmr"