Bug 350688 (libinput-mouse-kcm)

Summary: Mouse acceleration setting has no effect with libinput
Product: [Applications] systemsettings Reporter: André Martins <aanm90>
Component: kcm_mouseAssignee: Unassigned bugs mailing-list <unassigned-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: bhush94, bugs, bugseforuns, christian_haegele, dev, eneeen, kde, kde_bugs, kevin.kofler, kurmikon, linux, long, marcus, nate, nmnazar43, phaoost, pingbrooo, plasma-bugs, renanrischiotto1, simonandric5, subdiff, unassigned-bugs, xa.kasprzyk, yanp.bugz
Priority: VHI Keywords: usability
Version: 5.3.2   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Bug Depends on:    
Bug Blocks: 383379    

Description André Martins 2015-07-27 22:55:57 UTC
Description of problem:
Mouse acceleration doesn't seem change if I've set a different value under
xset m 1000/100 1
or even in kde mouse settings 

Always


Additional info:

I've a hi-dpi screen (MBP 15" with a 2880x1800 resolution) my mouse is a wireless external from Logitech 705m

Reproducible: Always
Comment 1 Kevin Kofler 2015-07-27 23:36:14 UTC
So to clarify, the issue here is that the KCM is using xset or something equivalent, which does not work with libinput. It needs to detect libinput and work with the "libinput Accel Speed" property in that case.
Comment 2 André Martins 2015-07-28 10:16:51 UTC
Btw,
$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ bcm5974                                   id=11   [slave  pointer  (2)]
⎜   ↳ Logitech M705                             id=12   [slave  pointer  (2)]
⎜   ↳ Logitech K360                             id=13   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Apple Inc. Apple Internal Keyboard / Trackpad     id=10   [slave  keyboard (3)]


$ xinput list-props 12
Device 'Logitech M705':
        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 Accel Speed (312):     0.000000
        libinput Accel Speed Default (313):     0.000000
        libinput Natural Scrolling Enabled (314):       0
        libinput Natural Scrolling Enabled Default (315):       0
        libinput Send Events Modes Available (258):     1, 0
        libinput Send Events Mode Enabled (259):        0, 0
        libinput Send Events Mode Enabled Default (260):        0, 0
        libinput Left Handed Enabled (316):     0
        libinput Left Handed Enabled Default (317):     0
        libinput Scroll Methods Available (318):        0, 0, 1
        libinput Scroll Method Enabled (319):   0, 0, 0
        libinput Scroll Method Enabled Default (320):   0, 0, 0
        libinput Button Scrolling Button (321): 2
        libinput Button Scrolling Button Default (322): 274
        libinput Middle Emulation Enabled (323):        0
        libinput Middle Emulation Enabled Default (324):        0
        Device Node (261):      "/dev/input/event7"
        Device Product ID (262):        1133, 4123
Comment 3 Jeff Long 2016-03-10 16:27:41 UTC
Can we get some movement on this bug?  Not having a decently working mouse really really sucks.
Comment 4 Christian Hägele 2016-06-08 17:28:05 UTC
I can confirm this problem and it is very annoying.
I'm using openSUSE Tumbleweed and the bug came in within the last 10 days.

> xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ROCCAT ROCCAT Savu                        id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=8    [slave  keyboard (3)]
    ↳ LITEON Technology USB Keyboard            id=9    [slave  keyboard (3)]
    ↳ ROCCAT ROCCAT Savu                        id=11   [slave  keyboard (3)]
    ↳ Creative Technology Ltd Sound Blaster Tactic(3D) Alpha    id=12   [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                        id=13   [slave  keyboard (3)]
    ↳ ROCCAT ROCCAT Savu                        id=14   [slave  keyboard (3)]

> xinput list-props 10
Device 'ROCCAT ROCCAT Savu':
        Device Enabled (146):   1
        Coordinate Transformation Matrix (148): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Accel Speed (285):     -0.500000
        libinput Accel Speed Default (286):     0.000000
        libinput Accel Profiles Available (287):        1, 1
        libinput Accel Profile Enabled (288):   1, 0
        libinput Accel Profile Enabled Default (289):   1, 0
        libinput Natural Scrolling Enabled (290):       0
        libinput Natural Scrolling Enabled Default (291):       0
        libinput Send Events Modes Available (269):     1, 0
        libinput Send Events Mode Enabled (270):        0, 0
        libinput Send Events Mode Enabled Default (271):        0, 0
        libinput Left Handed Enabled (292):     0
        libinput Left Handed Enabled Default (293):     0
        libinput Scroll Methods Available (294):        0, 0, 1
        libinput Scroll Method Enabled (295):   0, 0, 0
        libinput Scroll Method Enabled Default (296):   0, 0, 0
        libinput Button Scrolling Button (297): 2
        libinput Button Scrolling Button Default (298): 274
        libinput Middle Emulation Enabled (299):        0
        libinput Middle Emulation Enabled Default (300):        0
        Device Node (272):      "/dev/input/event7"
        Device Product ID (273):        7805, 11610
        libinput Drag Lock Buttons (301):       <no items>
        libinput Horizonal Scroll Enabled (274):        1

I can change the speed via 'xinput --set-prop 10 285 -0.5' as a workaround. Of course it would be better to change this setting via the GUI.
Comment 5 Christoph Feck 2016-07-18 21:05:17 UTC
*** Bug 365488 has been marked as a duplicate of this bug. ***
Comment 6 Christoph Feck 2016-07-18 21:07:19 UTC
*** Bug 348265 has been marked as a duplicate of this bug. ***
Comment 7 Renan Araujo Rischiotto 2016-07-19 15:21:58 UTC
Same problem here.
Comment 8 Bernd Steinhauser 2016-07-20 20:51:42 UTC
The kcm only supports evdev.

Now that libinput (and xf86-input-libinput) or getting pretty much standard, sooner or later support for this will be implemented, I guess.
Especially since libinput is now claimed as being complete (for the moment).
See bug 361151 as well.
Comment 9 Giusy Digital 2017-02-12 15:49:32 UTC
Acceleration works, but it can't be set below 0: https://bugs.kde.org/show_bug.cgi?id=350688
Comment 10 Martin Kimmerle 2017-07-10 16:22:24 UTC
*** This bug has been confirmed by popular vote. ***
Comment 11 Martin Kimmerle 2017-07-10 16:31:33 UTC
I had the same problem, I'm using KDE via Debian Stretch.
I was able to work around the problem as follows:

sudo apt-get install xserver-xorg-input-evdev
sudo ln -s /usr/share/X11/xorg.conf.d/10-evdev.conf /etc/X11/xorg.conf.d/10-evdev.conf
sudo shutdown -r now

Mouse acceleration is now working again for me. I found this solution here:
https://forum.manjaro.org/t/slow-mouse-kde-gui-settings-and-xset-m-have-no-effect/27165/2

(In reply to Christian Hägele from comment #4)
> I can change the speed via 'xinput --set-prop 10 285 -0.5' as a workaround.
> Of course it would be better to change this setting via the GUI.

This worked for me as well, but the range of "libinput Accel Speed" is limited to "1.0", which is 200%. In my case this wasn't enough.
Comment 12 Yevgeny Kosarzhevsky 2017-07-23 16:25:46 UTC
Hey,

I have the same problem in systemsettings version 5.8.7.
Acceleration settings have no effect
Comment 13 Christoph Feck 2017-08-10 15:57:28 UTC
*** Bug 379020 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2017-08-10 20:23:39 UTC
We're definitely aware that this is a problem. For greater visibility, I'm migrating duplicates over to https://bugs.kde.org/show_bug.cgi?id=383379, the more general "support Libinput" bug

*** This bug has been marked as a duplicate of bug 383379 ***
Comment 15 Nate Graham 2017-11-20 16:08:27 UTC
*** Bug 365488 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2017-11-20 16:11:11 UTC
*** Bug 379020 has been marked as a duplicate of this bug. ***
Comment 17 Nate Graham 2017-11-20 16:12:00 UTC
*** Bug 348265 has been marked as a duplicate of this bug. ***
Comment 18 Nate Graham 2017-11-20 16:12:16 UTC
*** Bug 383360 has been marked as a duplicate of this bug. ***
Comment 19 Nate Graham 2017-11-20 16:12:40 UTC
*** Bug 386157 has been marked as a duplicate of this bug. ***
Comment 20 Nate Graham 2017-11-20 16:15:09 UTC
*** Bug 361151 has been marked as a duplicate of this bug. ***
Comment 21 Nate Graham 2017-11-20 16:17:43 UTC
Libinput support for the mouse KCM is currently being worked on: https://phabricator.kde.org/D8168
Comment 22 Nate Graham 2018-02-22 14:25:04 UTC
*** Bug 390867 has been marked as a duplicate of this bug. ***
Comment 23 Nate Graham 2018-03-19 04:24:47 UTC
There's a patch for this!

https://phabricator.kde.org/D11469
Comment 24 Roman Gilg 2018-03-31 14:48:25 UTC
Git commit 6bb8cde96083f9bee6a20bbcffba7bd67c36c78b by Roman Gilg.
Committed on 31/03/2018 at 14:45.
Pushed by romangilg into branch 'master'.

[Mouse KCM] Add X11 libinput exclusive backend and UI

Summary:
This patch splits up the current X11 backend into one for systems with
installed X libinput driver and systems with only evdev driver.

The evdev backend is used together with the old QWidget based UI. The
libinput backend is based on the KWin Wayland one and controlled by a
very similar QML based UI. One difference is that values are always
propagated to all pointer like devices and can not be set for
individual devices.

As for the evdev backend values are saved to a config file in the user
directory and reapplied on every session start.

Note that the libinput backend always takes precedence to the evdev one.
If an user wants to force the evdev backend, the X libinput driver needs
to be removed.

Depends on D11468

{F5757944}

Test Plan: Tested X session with and without libinput driver.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, hein, mart, abetts, ngraham, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D11469

M  +3    -3    kcms/input/CMakeLists.txt
M  +5    -1    kcms/input/backends/x11.cmake
M  +4    -10   kcms/input/backends/x11/evdev_settings.cpp
M  +3    -6    kcms/input/backends/x11/evdev_settings.h
A  +63   -0    kcms/input/backends/x11/libinput_settings.cpp     [License: GPL (v2+)]
C  +9    -29   kcms/input/backends/x11/libinput_settings.h [from: kcms/input/backends/x11/evdev_settings.h - 054% similarity]
M  +44   -385  kcms/input/backends/x11/x11_backend.cpp
M  +7    -47   kcms/input/backends/x11/x11_backend.h
C  +16   -235  kcms/input/backends/x11/x11_evdev_backend.cpp [from: kcms/input/backends/x11/x11_backend.cpp - 050% similarity]
C  +12   -24   kcms/input/backends/x11/x11_evdev_backend.h [from: kcms/input/backends/x11/x11_backend.h - 066% similarity]
A  +54   -0    kcms/input/backends/x11/x11_libinput_backend.cpp     [License: GPL (v2+)]
A  +54   -0    kcms/input/backends/x11/x11_libinput_backend.h     [License: GPL (v2+)]
A  +241  -0    kcms/input/backends/x11/x11_libinput_dummydevice.cpp     [License: GPL (v2+)]
A  +273  -0    kcms/input/backends/x11/x11_libinput_dummydevice.h     [License: GPL (v2+)]
M  +1    -1    kcms/input/inputbackend.cpp
M  +3    -1    kcms/input/inputbackend.h
M  +6    -4    kcms/input/kapplymousetheme.cpp
M  +5    -5    kcms/input/kcm/configcontainer.cpp
M  +6    -1    kcms/input/kcm/libinput/libinput_config.cpp
A  +251  -0    kcms/input/kcm/libinput/main_deviceless.qml     [License: GPL (v2+)]
M  +1    -0    kcms/input/kcm/resources.qrc
M  +12   -32   kcms/input/kcm/xlib/kcmmouse.ui
M  +2    -68   kcms/input/kcm/xlib/xlib_config.cpp
M  +2    -2    kcms/input/kcm/xlib/xlib_config.h

https://commits.kde.org/plasma-desktop/6bb8cde96083f9bee6a20bbcffba7bd67c36c78b