Bug 400069

Summary: Touchpad scroll direction does not persist after sleep (libinput on X11)
Product: [Applications] systemsettings Reporter: alvindotd
Component: kcm_touchpadAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: normal CC: alvindotd, kde, nate, t.soernes
Priority: NOR Keywords: usability
Version: 5.17.5   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description alvindotd 2018-10-20 16:53:25 UTC
SUMMARY
Touchpad scroll direction not persistent after sleep when using libinput drivers on X11

STEPS TO REPRODUCE
1. Ensure laptop uses libinput drivers for the touchpad
2. Navigate to System Settings -> Input Devices -> Touchpad -> Scrolling
3. Check "Vertical" under "Reverse Scrolling"
4. Apply settings
5. Put laptop in sleep mode
6. Resume from sleep

OBSERVED RESULT
After initial application, the scrolling direction is reversed, as expected. After resuming from sleep, the scrolling direction reverts to the original, and the checkbox mentioned above becomes unchecked. Re-checking it does not trigger the "Apply" button to become clickable. It must be unchecked again (now the "Apply" button triggers), applied, and then re-checked and reapplied to re-enable reverse scrolling.
However, the setting does persist between reboots, logouts, and shutdowns.

EXPECTED RESULT
The scroll direction reverses and persists after sleep.

SOFTWARE VERSIONS
(available in About System)
KDE Plasma Version: 5.13.5
KDE Frameworks Version: 5.50.0
Qt Version: 5.11.1
Distro: Kubuntu 18.10, up-to-date as of 10/20/2018

ADDITIONAL INFORMATION
Not tested on Wayland.
This was also observed on Opensuse Tumbleweed (as of ~September 20, Plasma 5.13).
It also seems to occur on newer versions of Fedora according to a Reddit report.
Comment 1 t.soernes 2018-10-20 17:21:44 UTC
+1 Fedora 28 X11
Comment 2 David Edmundson 2018-10-20 21:29:54 UTC
Please dump output of 


xinput list-props $device

where $device is from xinput list

before and after suspend
Comment 3 alvindotd 2018-10-20 21:33:00 UTC
Before:
Device 'SynPS/2 Synaptics TouchPad':
        Device Enabled (148):   1
        Coordinate Transformation Matrix (150): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Tapping Enabled (287): 1
        libinput Tapping Enabled Default (288): 0
        libinput Tapping Drag Enabled (289):    1
        libinput Tapping Drag Enabled Default (290):    1
        libinput Tapping Drag Lock Enabled (291):       0
        libinput Tapping Drag Lock Enabled Default (292):       0
        libinput Tapping Button Mapping Enabled (293):  1, 0
        libinput Tapping Button Mapping Default (294):  1, 0
        libinput Natural Scrolling Enabled (295):       1
        libinput Natural Scrolling Enabled Default (296):       0
        libinput Disable While Typing Enabled (297):    1
        libinput Disable While Typing Enabled Default (298):    1
        libinput Scroll Methods Available (299):        1, 1, 0
        libinput Scroll Method Enabled (300):   1, 0, 0
        libinput Scroll Method Enabled Default (301):   1, 0, 0
        libinput Click Methods Available (302): 1, 1
        libinput Click Method Enabled (303):    1, 0
        libinput Click Method Enabled Default (304):    1, 0
        libinput Middle Emulation Enabled (305):        1
        libinput Middle Emulation Enabled Default (306):        0
        libinput Accel Speed (307):     0.110000
        libinput Accel Speed Default (308):     0.000000
        libinput Left Handed Enabled (309):     0
        libinput Left Handed Enabled Default (310):     0
        libinput Send Events Modes Available (268):     1, 1
        libinput Send Events Mode Enabled (269):        0, 0
        libinput Send Events Mode Enabled Default (270):        0, 0
        Device Node (271):      "/dev/input/event7"
        Device Product ID (272):        2, 7
        libinput Drag Lock Buttons (311):       <no items>
        libinput Horizontal Scroll Enabled (312):       1

And after:
Device 'SynPS/2 Synaptics TouchPad':
        Device Enabled (148):   1
        Coordinate Transformation Matrix (150): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Tapping Enabled (287): 1
        libinput Tapping Enabled Default (288): 0
        libinput Tapping Drag Enabled (289):    1
        libinput Tapping Drag Enabled Default (290):    1
        libinput Tapping Drag Lock Enabled (291):       0
        libinput Tapping Drag Lock Enabled Default (292):       0
        libinput Tapping Button Mapping Enabled (293):  1, 0
        libinput Tapping Button Mapping Default (294):  1, 0
        libinput Natural Scrolling Enabled (295):       0
        libinput Natural Scrolling Enabled Default (296):       0
        libinput Disable While Typing Enabled (297):    1
        libinput Disable While Typing Enabled Default (298):    1
        libinput Scroll Methods Available (299):        1, 1, 0
        libinput Scroll Method Enabled (300):   1, 0, 0
        libinput Scroll Method Enabled Default (301):   1, 0, 0
        libinput Click Methods Available (302): 1, 1
        libinput Click Method Enabled (303):    1, 0
        libinput Click Method Enabled Default (304):    1, 0
        libinput Middle Emulation Enabled (305):        1
        libinput Middle Emulation Enabled Default (306):        0
        libinput Accel Speed (307):     0.110000
        libinput Accel Speed Default (308):     0.000000
        libinput Left Handed Enabled (309):     0
        libinput Left Handed Enabled Default (310):     0
        libinput Send Events Modes Available (268):     1, 1
        libinput Send Events Mode Enabled (269):        0, 0
        libinput Send Events Mode Enabled Default (270):        0, 0
        Device Node (271):      "/dev/input/event7"
        Device Product ID (272):        2, 7
        libinput Drag Lock Buttons (311):       <no items>
        libinput Horizontal Scroll Enabled (312):       1
Comment 4 alvindotd 2018-10-20 21:33:42 UTC
So far I have resorted to running "xinput set-prop "SynPS/2 Synaptics TouchPad" "libinput Natural Scrolling Enabled" 1" after every wake from sleep.
Comment 5 Nate Graham 2018-10-20 21:37:37 UTC
Already fixed in 5.14.

*** This bug has been marked as a duplicate of bug 395722 ***