Bug 370202

Summary: Disabled "natural" scrolling doesn't take effect until laptop is suspended
Product: [Applications] systemsettings Reporter: andydecleyre
Component: kcm_touchpadAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: normal CC: andydecleyre, nate
Priority: NOR    
Version: 5.17.5   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description andydecleyre 2016-10-06 16:39:31 UTC
Component is probably kcm_touchpad, though I don't see that as an option.

I filed a bug for libinput's X wrapper with freedesktop, which led me to believe the bug is really here, in systemsettings. https://bugs.freedesktop.org/show_bug.cgi?id=98099

Here is the content from that report:

I'm using

- Arch Linux
- plasma-desktop 5.7.5
- libinput 1.5.0
- xf86-input-libinput 0.20.0

While I have "natural" scrolling disabled in systemsettings, that doesn't take effect unless and until I suspend and subsequently resume the laptop. This is reproduced on every boot, and then breaks again whenever I switch to a non-X TTY and back again.

I started recording with evemu, switched to a TTY and back, and then scrolled (thus triggering the reverts-to-natural-scrolling bug) but no events were recorded:

# EVEMU 1.3
# Kernel: 4.7.6-1-ARCH
# DMI: dmi:bvnHP:bvrN82Ver.01.07:bd04/27/2016:svnHP:pnHPZBookStudioG3:pvr:rvnHP:rn80D4:rvrKBCVersion11.60:cvnHP:ct10:cvr:
# Input device name: "AlpsPS/2 ALPS GlidePoint"
# Input device ID: bus 0x11 vendor 0x02 product 0x08 version 0x700
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 328 (BTN_TOOL_QUINTTAP)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#     Event code 335 (BTN_TOOL_QUADTAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value   1129
#       Min        0
#       Max     4095
#       Fuzz       0
#       Flat       0
#       Resolution 48
#     Event code 1 (ABS_Y)
#       Value   1134
#       Min        0
#       Max     2047
#       Fuzz       0
#       Flat       0
#       Resolution 37
#     Event code 47 (ABS_MT_SLOT)
#       Value      1
#       Min        0
#       Max        3
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min        0
#       Max     4095
#       Fuzz       0
#       Flat       0
#       Resolution 48
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min        0
#       Max     2047
#       Fuzz       0
#       Flat       0
#       Resolution 37
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
#   Property  type 2 (INPUT_PROP_BUTTONPAD)
N: AlpsPS/2 ALPS GlidePoint
I: 0011 0002 0008 0700
P: 05 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 01 00 00 00 00 00
B: 01 20 e5 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 00 00 80 60 02
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 4095 0 0 48
A: 01 0 2047 0 0 37
A: 2f 0 3 0 0 0
A: 35 0 4095 0 0 48
A: 36 0 2047 0 0 37
A: 39 0 65535 0 0 0
################################
#      Waiting for events      #
################################

Here are the device settings (they do not change between the working and broken states):

Device 'AlpsPS/2 ALPS GlidePoint':
        Device Enabled (138):   1
        Coordinate Transformation Matrix (140): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Tapping Enabled (292): 1
        libinput Tapping Enabled Default (293): 0
        libinput Tapping Drag Enabled (294):    1
        libinput Tapping Drag Enabled Default (295):    1
        libinput Tapping Drag Lock Enabled (296):       0
        libinput Tapping Drag Lock Enabled Default (297):       0
        libinput Tapping Button Mapping Enabled (298):  1, 0
        libinput Tapping Button Mapping Default (299):  1, 0
        libinput Accel Speed (275):     0.000000
        libinput Accel Speed Default (276):     0.000000
        libinput Natural Scrolling Enabled (280):       0
        libinput Natural Scrolling Enabled Default (281):       0
        libinput Send Events Modes Available (259):     1, 1
        libinput Send Events Mode Enabled (260):        0, 0
        libinput Send Events Mode Enabled Default (261):        0, 0
        libinput Left Handed Enabled (282):     0
        libinput Left Handed Enabled Default (283):     0
        libinput Scroll Methods Available (284):        1, 1, 0
        libinput Scroll Method Enabled (285):   1, 0, 0
        libinput Scroll Method Enabled Default (286):   1, 0, 0
        libinput Click Methods Available (300): 1, 1
        libinput Click Method Enabled (301):    1, 0
        libinput Click Method Enabled Default (302):    1, 0
        libinput Middle Emulation Enabled (289):        0
        libinput Middle Emulation Enabled Default (290):        0
        libinput Disable While Typing Enabled (303):    1
        libinput Disable While Typing Enabled Default (304):    1
        Device Node (262):      "/dev/input/event5"
        Device Product ID (263):        2, 8
        libinput Drag Lock Buttons (291):       <no items>
        libinput Horizontal Scroll Enabled (264):       1

The laptop is an HP Zbook Studio G3 (dmi stuff included in evemu output).

Toggling with 

xinput set-prop 'AlpsPS/2 ALPS GlidePoint' 'libinput Natural Scrolling Enabled' 1
and
xinput set-prop 'AlpsPS/2 ALPS GlidePoint' 'libinput Natural Scrolling Enabled' 0

does work reliably. So it seems that the problem is somewhere in the plasma project / systemsettings.

Reproducible: Always

Steps to Reproduce:
1. Boot
2. Confirm in systemsettings that "Reverse Scrolling" checkboxes are unchecked in both the Touchpad and the Mouse systemsettings modules
3. Confirm that behaviorally, scrolling is reversed, until a suspend+wake operation

Actual Results:  
Scrolling is always reversed on boot, and when switching to a non-X TTY and back. Scrolling is un-reversed upon suspending and waking.

Expected Results:  
Scrolling is never reversed, in accordance with the checkboxes in systemsettings.
Comment 1 andydecleyre 2016-10-06 19:12:12 UTC
I just upgraded to plasma 5.8, other versions remain the same. Now those xinput toggling commands have no effect. Is the bug bounced back here?
Comment 2 andydecleyre 2016-10-06 19:12:40 UTC
I mean "there," not "here."
Comment 3 andydecleyre 2016-10-06 19:24:13 UTC
Ah, correction: Those commands _do_ work, but only after doing the suspend-wake dance.
Comment 4 Nate Graham 2018-12-09 17:08:38 UTC

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