On start kcm touchpad sets some wrong setting which leads to scrolling problems. Default parameters value: MaxTapMove = 234 VertScrollDelta = 106 HorizScrollDelta = 106 CircScrollDelta = 0.1 Set on start: MaxTapMove = 20 VertScrollDelta = 10 HorizScrollDelta = 10 CircScrollDelta = 6 That parameters leads to very strange touchpad scroll (very big scroll values, hangs of input after using touchpad scroll). I think values MaxTapMove, VertScrollDelta, HorizScrollDelta should be multiplied by some coefficient (10?) of relation between UI units and device one, e.g. when I set VertScrollDelta = 9.8mm in kcm_touchpad I've got same 10 from synclient. And/or upper limit should be changed. For CircScrollDelta I can't set default 0.1 value. Reproducible: Always Steps to Reproduce: 1. Use synaptic touchpad. 2. Start KDE Plasma 5. 3. synclient -l > kde_params.txt 4. Log off/in to other DE/WM (IceWM, LXQt) 5. synclient -l > def_params.txt 6. Compare. Actual Results: UI units (mm) are just written to touchpad settings. Default touchpad values coudn't be set using UI. Plasma 5 touchpad settings leads to input problems (several scrolls make system unresponsible to input). Expected Results: Correct UI mm to device units coversion and/or upper limit correction. openSUSE Leap 42.1, x86_64, Plasma 5 (RPMs from git using KDE:Unstable:Frameworks).
Confirmed here on gentoo, seen it since the last plasma update. Didn't update or change anything on the synaptics or Xorg side, so quite definitely plasma. Plasma 5.5.95, synaptics 1.8.3, Qt 5.5.1
Can you post the output of 'xinput list-props <touchpad id>'? touchpad id can be found by running just 'xinput'.
*** Bug 360099 has been marked as a duplicate of this bug. ***
Wrong touchpad settings: Device 'SynPS/2 Synaptics TouchPad': Device Enabled (142): 1 Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (274): 1 Device Accel Constant Deceleration (275): 2.500000 Device Accel Adaptive Deceleration (276): 1.000000 Device Accel Velocity Scaling (277): 12.500000 Synaptics Edges (299): 1766, 5388, 1637, 4463 Synaptics Finger (300): 25, 30, 0 Synaptics Tap Time (301): 180 Synaptics Tap Move (302): 20 Synaptics Tap Durations (303): 180, 100, 100 Synaptics ClickPad (304): 0 Synaptics Middle Button Timeout (305): 75 Synaptics Two-Finger Pressure (306): 282 Synaptics Two-Finger Width (307): 7 Synaptics Scrolling Distance (308): 10, 10 Synaptics Edge Scrolling (309): 1, 0, 0 Synaptics Two-Finger Scrolling (310): 1, 0 Synaptics Move Speed (311): 1.000000, 1.750000, 0.037460, 0.000000 Synaptics Button Scrolling (312): 1, 1 Synaptics Button Scrolling Repeat (313): 1, 1 Synaptics Button Scrolling Time (314): 100 Synaptics Off (315): 2 Synaptics Locked Drags (316): 0 Synaptics Locked Drags Timeout (317): 5000 Synaptics Tap Action (318): 0, 0, 0, 0, 1, 2, 3 Synaptics Click Action (319): 1, 1, 1 Synaptics Circular Scrolling (320): 0 Synaptics Circular Scrolling Distance (321): 1.000000 Synaptics Circular Scrolling Trigger (322): 0 Synaptics Circular Pad (323): 0 Synaptics Palm Detection (324): 0 Synaptics Palm Dimensions (325): 10, 200 Synaptics Coasting Speed (326): 20.000000, 50.000000 Synaptics Pressure Motion (327): 30, 160 Synaptics Pressure Motion Factor (328): 1.000000, 1.000000 Synaptics Grab Event Device (329): 0 Synaptics Gestures (330): 1 Synaptics Capabilities (331): 1, 0, 1, 1, 1, 1, 1 Synaptics Pad Resolution (332): 98, 55 Synaptics Area (333): 0, 0, 0, 0 Synaptics Noise Cancellation (334): 26, 26 Device Product ID (263): 2, 7 Device Node (264): "/dev/input/event1" When correct settings are applied: Device 'SynPS/2 Synaptics TouchPad': Device Enabled (142): 1 Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (274): 1 Device Accel Constant Deceleration (275): 2.500000 Device Accel Adaptive Deceleration (276): 1.000000 Device Accel Velocity Scaling (277): 12.500000 Synaptics Edges (299): 1766, 5388, 1637, 4463 Synaptics Finger (300): 25, 30, 0 Synaptics Tap Time (301): 180 Synaptics Tap Move (302): 234 Synaptics Tap Durations (303): 180, 100, 100 Synaptics ClickPad (304): 0 Synaptics Middle Button Timeout (305): 75 Synaptics Two-Finger Pressure (306): 282 Synaptics Two-Finger Width (307): 7 Synaptics Scrolling Distance (308): 106, 106 Synaptics Edge Scrolling (309): 1, 0, 0 Synaptics Two-Finger Scrolling (310): 1, 0 Synaptics Move Speed (311): 1.000000, 1.750000, 0.037460, 0.000000 Synaptics Button Scrolling (312): 1, 1 Synaptics Button Scrolling Repeat (313): 1, 1 Synaptics Button Scrolling Time (314): 100 Synaptics Off (315): 2 Synaptics Locked Drags (316): 0 Synaptics Locked Drags Timeout (317): 5000 Synaptics Tap Action (318): 0, 0, 0, 0, 1, 2, 3 Synaptics Click Action (319): 1, 1, 1 Synaptics Circular Scrolling (320): 0 Synaptics Circular Scrolling Distance (321): 0.100000 Synaptics Circular Scrolling Trigger (322): 0 Synaptics Circular Pad (323): 0 Synaptics Palm Detection (324): 0 Synaptics Palm Dimensions (325): 10, 200 Synaptics Coasting Speed (326): 20.000000, 50.000000 Synaptics Pressure Motion (327): 30, 160 Synaptics Pressure Motion Factor (328): 1.000000, 1.000000 Synaptics Grab Event Device (329): 0 Synaptics Gestures (330): 1 Synaptics Capabilities (331): 1, 0, 1, 1, 1, 1, 1 Synaptics Pad Resolution (332): 98, 55 Synaptics Area (333): 0, 0, 0, 0 Synaptics Noise Cancellation (334): 26, 26 Device Product ID (263): 2, 7 Device Node (264): "/dev/input/event1"
Wrong settings: Device 'SynPS/2 Synaptics TouchPad': Device Enabled (150): 1 Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (276): 1 Device Accel Constant Deceleration (277): 2.500000 Device Accel Adaptive Deceleration (278): 1.000000 Device Accel Velocity Scaling (279): 12.500000 Synaptics Edges (280): 1751, 5191, 1624, 4282 Synaptics Finger (281): 25, 30, 0 Synaptics Tap Time (282): 180 Synaptics Tap Move (283): 20 Synaptics Tap Durations (284): 180, 100, 100 Synaptics ClickPad (285): 0 Synaptics Middle Button Timeout (286): 75 Synaptics Two-Finger Pressure (287): 282 Synaptics Two-Finger Width (288): 7 Synaptics Scrolling Distance (289): 10, 10 Synaptics Edge Scrolling (290): 1, 1, 0 Synaptics Two-Finger Scrolling (291): 1, 1 Synaptics Move Speed (292): 0.250000, 0.420000, 0.001000, 0.000000 Synaptics Off (293): 2 Synaptics Locked Drags (294): 0 Synaptics Locked Drags Timeout (295): 5000 Synaptics Tap Action (296): 0, 0, 0, 0, 1, 2, 3 Synaptics Click Action (297): 1, 1, 1 Synaptics Circular Scrolling (298): 0 Synaptics Circular Scrolling Distance (299): 0.100000 Synaptics Circular Scrolling Trigger (300): 0 Synaptics Circular Pad (301): 0 Synaptics Palm Detection (302): 1 Synaptics Palm Dimensions (303): 5, 200 Synaptics Coasting Speed (304): 0.000000, 50.000000 Synaptics Pressure Motion (305): 30, 160 Synaptics Pressure Motion Factor (306): 1.000000, 1.000000 Synaptics Grab Event Device (307): 0 Synaptics Gestures (308): 1 Synaptics Capabilities (309): 1, 0, 1, 1, 1, 1, 1 Synaptics Pad Resolution (310): 85, 60 Synaptics Area (311): 0, 0, 0, 0 Synaptics Noise Cancellation (312): 25, 25 Device Product ID (271): 2, 7 Device Node (272): "/dev/input/event5" Correct settings (manually): Device 'SynPS/2 Synaptics TouchPad': Device Enabled (150): 1 Coordinate Transformation Matrix (152): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (276): 1 Device Accel Constant Deceleration (277): 2.500000 Device Accel Adaptive Deceleration (278): 1.000000 Device Accel Velocity Scaling (279): 12.500000 Synaptics Edges (280): 1751, 5191, 1624, 4282 Synaptics Finger (281): 25, 30, 0 Synaptics Tap Time (282): 180 Synaptics Tap Move (283): 20 Synaptics Tap Durations (284): 180, 100, 100 Synaptics ClickPad (285): 0 Synaptics Middle Button Timeout (286): 75 Synaptics Two-Finger Pressure (287): 282 Synaptics Two-Finger Width (288): 7 Synaptics Scrolling Distance (289): 120, 120 Synaptics Edge Scrolling (290): 1, 1, 0 Synaptics Two-Finger Scrolling (291): 1, 1 Synaptics Move Speed (292): 0.250000, 0.420000, 0.001000, 0.000000 Synaptics Off (293): 2 Synaptics Locked Drags (294): 0 Synaptics Locked Drags Timeout (295): 5000 Synaptics Tap Action (296): 0, 0, 0, 0, 1, 2, 3 Synaptics Click Action (297): 1, 1, 1 Synaptics Circular Scrolling (298): 0 Synaptics Circular Scrolling Distance (299): 0.100000 Synaptics Circular Scrolling Trigger (300): 0 Synaptics Circular Pad (301): 0 Synaptics Palm Detection (302): 1 Synaptics Palm Dimensions (303): 5, 200 Synaptics Coasting Speed (304): 0.000000, 50.000000 Synaptics Pressure Motion (305): 30, 160 Synaptics Pressure Motion Factor (306): 1.000000, 1.000000 Synaptics Grab Event Device (307): 0 Synaptics Gestures (308): 1 Synaptics Capabilities (309): 1, 0, 1, 1, 1, 1, 1 Synaptics Pad Resolution (310): 85, 60 Synaptics Area (311): 0, 0, 0, 0 Synaptics Noise Cancellation (312): 25, 25 Device Product ID (271): 2, 7 Device Node (272): "/dev/input/event5"
(In reply to Mykola Krachkovsky from comment #0) > Actual Results: > UI units (mm) are just written to touchpad settings. Default touchpad values > coudn't be set using UI. Are you unable to set the scrolling distance parameters in UI? Do you also have libinput driver (xorg-x11-drv-libinput or equivalent) installed?
I'm able to change values, but Q[Double]SpinBox limits don't allow me to enter standard touchpad value, like 106 for VertScrollDelta (allowed maximum for Scrolling Distance Vertical is 10) and digits after numeric dot are lost. At the same time Circular Scrolling Angle allows only integral values, so default value 0.1 is impossible to be set. I have no libinput driver for xorg.
Created attachment 97717 [details] Allow large scroll delta Disclaimer: I don't fully understand why the issue manifested recently (it could be the recent refactoring for hotplug support but not sure). Could you try the attached patch and see if it helps? It should let you configure the scroll delta values - I chose upper limit of 500, which is arbitrary. I'm quite vary of including this patch in 5.6 as it is quite late in the release cycle. Please test and report if it helps.
Created attachment 97719 [details] Allow large scroll delta Please use this version which has fix for maximum finger movement also.
Confirmed also here on 5.5.95 Archlinux. using libinput fixes the scrolling issue, but then almost every configuration option is greyed out in kcm-touchpad. I'm sorry, I can not test the patch as this is 5.5.95 from archlinux kde-unstable repository, so it is already compiled :(
(In reply to Rajeesh K V from comment #8) > Created attachment 97717 [details] > Allow large scroll delta > > Disclaimer: I don't fully understand why the issue manifested recently (it > could be the recent refactoring for hotplug support but not sure). > Could you try the attached patch and see if it helps? It should let you > configure the scroll delta values - I chose upper limit of 500, which is > arbitrary. I'm quite vary of including this patch in 5.6 as it is quite late > in the release cycle. > Please test and report if it helps. I haven't tested that patch yet, but I've compared old git clone (January clone) with new one and I think I found problem. In file kcms/touchpad/src/backends/x11/synapticstouchpad.h class SynapticsTouchpad redefines (line 34) fields: QStringList m_scaleByResX, m_scaleByResY, m_toRadians; from parent class XlibTouchpad (file kcms/touchpad/src/backends/x11/xlibtouchpad.h, line 79). So usage that fields in files synapticstouchpad.cpp (adding data) and xlibtouchpad.cpp (reading data) works with different variables. And XlibTouchpad::getPropertyScale returns default 1.0 instead of correct value.
Created attachment 97739 [details] Remove redefinition line from subclass This looks like works for me. Initial settings aren't corrupted. But KCM works not ok (I'm not sure it connected to this patch, because I've pulled updates from git).
(In reply to Mykola Krachkovsky from comment #11) > In file kcms/touchpad/src/backends/x11/synapticstouchpad.h class > SynapticsTouchpad redefines (line 34) fields: > QStringList m_scaleByResX, m_scaleByResY, m_toRadians; > from parent class XlibTouchpad (file > kcms/touchpad/src/backends/x11/xlibtouchpad.h, line 79). > So usage that fields in files synapticstouchpad.cpp (adding data) and > xlibtouchpad.cpp (reading data) works with different variables. And > XlibTouchpad::getPropertyScale returns default 1.0 instead of correct value. Indeed, that would explain the problem. There was a similar bug but that was fixed. Can you raise a review request for this patch or shall I do it for you? (In reply to Mykola Krachkovsky from comment #11) > But KCM works not ok What do you mean by KCM doesn't work?
(In reply to Rajeesh K V from comment #13) > (In reply to Mykola Krachkovsky from comment #11) > > > In file kcms/touchpad/src/backends/x11/synapticstouchpad.h class > > SynapticsTouchpad redefines (line 34) fields: > > QStringList m_scaleByResX, m_scaleByResY, m_toRadians; > > from parent class XlibTouchpad (file > > kcms/touchpad/src/backends/x11/xlibtouchpad.h, line 79). > > So usage that fields in files synapticstouchpad.cpp (adding data) and > > xlibtouchpad.cpp (reading data) works with different variables. And > > XlibTouchpad::getPropertyScale returns default 1.0 instead of correct value. > > Indeed, that would explain the problem. There was a similar bug but that was > fixed. Can you raise a review request for this patch or shall I do it for > you? > I don't know what I should do. > (In reply to Mykola Krachkovsky from comment #11) > > But KCM works not ok > What do you mean by KCM doesn't work? It looks like VertScrollDelta and HorizScrollDelta are written to ~/.config/touchpadrc but aren't actually set to device. But MaxTapMove, CircScrollDelta works "ok". There is also "Active settings don't match saved settings. You currently see saved settings." message when I press "Show active settings" I got 10mm for vertical and 0.1mm for horizontal.
(In reply to Mykola Krachkovsky from comment #14) > (In reply to Rajeesh K V from comment #13) > > (In reply to Mykola Krachkovsky from comment #11) > > > > > In file kcms/touchpad/src/backends/x11/synapticstouchpad.h class > > > SynapticsTouchpad redefines (line 34) fields: > > > QStringList m_scaleByResX, m_scaleByResY, m_toRadians; > > > from parent class XlibTouchpad (file > > > kcms/touchpad/src/backends/x11/xlibtouchpad.h, line 79). > > > So usage that fields in files synapticstouchpad.cpp (adding data) and > > > xlibtouchpad.cpp (reading data) works with different variables. And > > > XlibTouchpad::getPropertyScale returns default 1.0 instead of correct value. > > > > Indeed, that would explain the problem. There was a similar bug but that was > > fixed. Can you raise a review request for this patch or shall I do it for > > you? > > > > I don't know what I should do. Okay, I'll take care of it. > > > > (In reply to Mykola Krachkovsky from comment #11) > > > But KCM works not ok > > What do you mean by KCM doesn't work? > > It looks like VertScrollDelta and HorizScrollDelta are written to > ~/.config/touchpadrc but aren't actually set to device. But MaxTapMove, > CircScrollDelta works "ok". > There is also "Active settings don't match saved settings. You currently see > saved settings." message when I press "Show active settings" I got 10mm for > vertical and 0.1mm for horizontal. This requires my patch to work as well. Scroll delta maximum is hard coded to 10 in the kcfg file. I'll fold both into single patch and upstream.
Created attachment 97749 [details] Synaptic driver fix and max scroll delta change Here's the new patch. Please test and share feedback?
(In reply to Rajeesh K V from comment #16) > Created attachment 97749 [details] > Synaptic driver fix and max scroll delta change > > Here's the new patch. Please test and share feedback? It works for me. Actually, only first part is really needed to fix, after that, synaptic value 106 maps to 1.1mm (vert) and 1.9 mm (horiz), so limit for 10mm is not too strict, but driver maximum (1000) maps to about 17-18mm, so it's better to rise limits.
Created attachment 97799 [details] Synaptic driver fix and max scroll delta change Hello, here is another patch with slightly different technical approach. Could you test this one instead and report if it works?
Git commit 86b59198f1c60236034567dc804b578376f8d06c by Rajeesh K V. Committed on 09/03/2016 at 19:29. Pushed by knambiar into branch 'Plasma/5.6'. Touchpad KCM: Fix synaptics driver issues Fixes couple of issues: 1. Remove spurious members of SynapticsTouchpad class from parent class XlibTouchpad; fixing wrong scroll delta values. 2. Enlarge vertical,horizontal&circular scroll delta and maxtapmove allowing value more than 100. The max value supported by driver is 1000 REVIEW: 127306 M +15 -0 kcms/touchpad/src/backends/x11/synapticstouchpad.cpp M +3 -1 kcms/touchpad/src/backends/x11/synapticstouchpad.h M +1 -10 kcms/touchpad/src/backends/x11/xlibtouchpad.cpp M +2 -4 kcms/touchpad/src/backends/x11/xlibtouchpad.h M +3 -3 kcms/touchpad/src/kcm/touchpad.kcfg M +13 -1 kcms/touchpad/src/kcm/ui/scroll.ui M +3 -0 kcms/touchpad/src/kcm/ui/tap.ui http://commits.kde.org/plasma-desktop/86b59198f1c60236034567dc804b578376f8d06c
(In reply to Rajeesh K V from comment #18) > Created attachment 97799 [details] > Synaptic driver fix and max scroll delta change > > Hello, here is another patch with slightly different technical approach. > Could you test this one instead and report if it works? Works fine. This solution looks better, thanks!
*** Bug 360108 has been marked as a duplicate of this bug. ***