Bug 383379

Summary: Modernize Input Devices section to work with Libinput
Product: [Applications] systemsettings Reporter: Nate Graham <nate>
Component: generalAssignee: Nate Graham <nate>
Status: RESOLVED FIXED    
Severity: normal CC: aanm90, antonioni.rocha, arthur, bugseforuns, christian_haegele, eneeen, grouchomarx.fr, jeremy9856, jey.and.key, josef64, kaabud-kde, kde, kdebugs, kde_bugs, konstantin.klementiev, kurmikon, lxfx.accounts+kde, malkavian666, marcus, matheus4551, michele.mazza, nate, negora, nmnazar43, nroycea+kde, philipp.reichmuth, renanrischiotto1, rikmills, sat, shtetldik, simonandric5, vukasin.nikodijevic
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
URL: https://phabricator.kde.org/T7964
See Also: https://bugs.kde.org/show_bug.cgi?id=389710
https://bugs.kde.org/show_bug.cgi?id=392488
Latest Commit: Version Fixed In: 5.17.0
Bug Depends on: 350688, 357749, 387153, 387156, 390761, 392709    
Bug Blocks:    
Attachments: Wayland version of the touchpad KCM

Description Nate Graham 2017-08-10 20:10:00 UTC
This is a placeholder bug tracking the adoption of the new kcm_pointing_devices (https://cgit.kde.org/scratch/alexandermezin/pointing-devices-kcm.git/), or else some other method of configuring things when Libinput is being used. All bugs  complaining about poor libinput support should be duped to this one in order to centralize information on that subject as well as gauge the number of people using libinput.
Comment 1 Nate Graham 2017-08-10 20:12:27 UTC
*** Bug 374214 has been marked as a duplicate of this bug. ***
Comment 2 Nate Graham 2017-08-10 20:13:04 UTC
*** Bug 383360 has been marked as a duplicate of this bug. ***
Comment 3 Nate Graham 2017-08-10 20:21:20 UTC
*** Bug 379020 has been marked as a duplicate of this bug. ***
Comment 4 Nate Graham 2017-08-10 20:21:37 UTC
*** Bug 365488 has been marked as a duplicate of this bug. ***
Comment 5 Nate Graham 2017-08-10 20:21:41 UTC
*** Bug 348265 has been marked as a duplicate of this bug. ***
Comment 6 Nate Graham 2017-08-10 20:23:39 UTC
*** Bug 350688 has been marked as a duplicate of this bug. ***
Comment 7 Nate Graham 2017-08-10 20:26:52 UTC
*** Bug 361151 has been marked as a duplicate of this bug. ***
Comment 8 Nate Graham 2017-08-10 20:30:27 UTC
*** Bug 351145 has been marked as a duplicate of this bug. ***
Comment 9 Nate Graham 2017-08-10 20:32:40 UTC
*** Bug 357749 has been marked as a duplicate of this bug. ***
Comment 10 Rajeesh K V 2017-09-10 05:31:28 UTC
*** Bug 384518 has been marked as a duplicate of this bug. ***
Comment 11 slimbook 2017-09-25 17:17:33 UTC
Hello,
We are SLIMBOOK TEAM, and we want to join this bug.
We have developed a small application to change the configuration of libinput, and we tell you a little how it works to see if you can solve it. It is best that you can change the touchpad settings without installing third-party applications.
Image of options of our app: https://slimbook.es/images/imagetuto/touchpadevdev.png

We have never developed for Plasma, but I think it should be another "kcm" when it is not a Synaptics touchpad (the synclient status service) or in our case the Unique ID: AH6Q.bGO0sOimOM3

- To get touchpad hardware id:
    hwinfo --mouse
    *Previous command returns the line: 'Unique ID: AH6Q.bGO0sOimOM3'
     and line 'Model:  "ImExPS/2 Generic Explorer Mouse"'
        (model name used later for setting properties using 'xinput')

- To get touchpad properties we can modify:
    xinput --list-props "ImExPS/2 Generic Explorer Mouse"
    *We can use model name (like previous line) or number id related with model name obtained when running command 'xinput': xinput --list-props 11
   
- To modify values of properties 'libinput Accel Speed' and 'libinput Natural Scrolling Enabled':
    xinput --set-prop "ImExPS/2 Generic Explorer Mouse" "libinput Accel Speed" 1
    xinput --set-prop "ImExPS/2 Generic Explorer Mouse" "libinput Natural Scrolling Enabled" 1
    *Like in previous step, we can use number id instead of model name. Propertie "libinput     Natural Scrolling Enabled" accepts values 0 or 1. Propertie "libinput Accel Speed" accepts values between -1 and 1.

More information in our app: https://github.com/slimbook/slimbook-touchpad

Thanks,
Comment 12 Nate Graham 2017-09-25 17:32:36 UTC
Fantastic work, guys! Here's some documentation on how to develop a KCM: https://techbase.kde.org/Development/Tutorials/KCM_HowTo

Probably the best option would be to modify the existing touchpad KCM to present a different set of settings and user interface elements when it detects that libinput is being used. But if you want to developer a new, separate KCM that only handles libinput, that's okay too, since synaptics isn't supported with Wayland and eventually everyone will have to use libinput anyway.
Comment 13 Nate Graham 2017-10-12 05:02:02 UTC
Slimbook team, any progress on turning your app into a KCM visible in System Settings?
Comment 14 slimbook 2017-10-14 14:43:21 UTC
Sorry Nate, but we have not had time to learn a new system of programming. Much of our work is to assemble the client hardware and we have little time to learn how to program.
We thought that someone from KDE would have it easy and quick to make it work.
Comment 15 Nate Graham 2017-10-18 01:23:16 UTC
There is a patch that implements this feature: https://phabricator.kde.org/D8168

If anybody is available to test this, please do so and offer comments. KDE Slimbook team, this might be a great collaboration opportunity.
Comment 16 slimbook 2017-10-18 14:09:04 UTC
Thank you very much! I like it!
It looks very interesting

I just installed a new KDE Neon and I'm updating it.
I do not really know how to apply these changes. I only have 2 folders in the system called "kcms" and none have any "input" or anything similar.

Thanks.
Comment 17 Nate Graham 2017-10-25 16:59:40 UTC
*** Bug 386157 has been marked as a duplicate of this bug. ***
Comment 18 Nate Graham 2017-11-19 05:17:28 UTC
Created attachment 108954 [details]
Wayland version of the touchpad KCM

We're getting there. FWIW, there is a simple Libinput touchpad config available on Wayland (screenshot attached). And patches to make this more complete and available on Xorg are working their way through Phabricator.
Comment 19 Nate Graham 2017-11-20 16:20:28 UTC
Turned this into a master bug tracking blockers so we can concentrate on individual issues and knock when out one at a time.
Comment 20 slimbook 2017-11-20 18:24:44 UTC
Comment on attachment 108954 [details]
Wayland version of the touchpad KCM

Wow! Wonderful!!
Comment 21 slimbook 2017-11-20 18:25:49 UTC
Wow! Wonderful!!
Thank you very much.
What can I do?
Comment 22 Nate Graham 2017-11-20 18:46:50 UTC
> What can I do?

Option 1: Work towards shipping your devices with Wayland as the default, and preferably help fix some of the biggest Wayland-related KDE bugs (e.g. Bug 385693)
Option 2: Push on Bug 387153
Comment 23 Christoph Feck 2018-01-31 04:14:56 UTC
*** Bug 389227 has been marked as a duplicate of this bug. ***
Comment 24 Shmerl 2018-02-19 23:13:44 UTC
I just tried Wayland session with KDE Plasma 5.12.0 (Debian testing), and xinput wasn't working anymore and my setting for middle click emulation with right click + left click disappeared. So for now I switched back to X session.

Will such libinput features be accessible through System Settings > Input Devices in the future?
Comment 25 Nate Graham 2018-02-20 03:31:41 UTC
yes, they have to be, because xinput isn't supported on Wayland. See Bug 390761.
Comment 26 Shmerl 2018-02-20 03:38:15 UTC
(In reply to Nate Graham from comment #25)
> yes, they have to be, because xinput isn't supported on Wayland. See Bug
> 390761.

Just for the reference, I'm talking about the mouse, not touchpad here, but I suppose the idea is similar.
Comment 27 Nate Graham 2018-03-29 14:00:33 UTC
Here's an update for folks who are interested in this:

X11
- Touchpad KCM: I am mentoring a student for Google Summer of Code who plans to tackle this work and then continue to polish up input device handling in KDE software
- Mouse KCM: in progress, thanks to Roman Gilg: https://phabricator.kde.org/D11469

Wayland
- Touchpad KCM: already fully libinput-compatible, modulo a few missing features (tracked as dependent bugs here)
- Mouse KCM: in progress, thanks to Roman Gilg: https://phabricator.kde.org/D11468
Comment 28 jeremy9856 2018-03-29 14:15:39 UTC
It would be awesome if this can be done while there is work on input device handling:

Touchpad settings are lost after resume if there is a mismatch between Touchpad-KCM and xorg.conf
https://bugs.kde.org/show_bug.cgi?id=391693

Setting to disable middle click paste
https://bugs.kde.org/show_bug.cgi?id=389710
https://bugs.kde.org/show_bug.cgi?id=392488
Comment 29 Nate Graham 2018-03-29 14:31:11 UTC
Yep, we'll consider those. They seem like good tasks for my GSoC student.
Comment 30 jey.and.key 2018-05-24 13:06:34 UTC
Jesus christ, maybe just not implement shit that you know you then wont let user configure?
Comment 31 Nate Graham 2018-05-24 13:10:25 UTC
Please keep comments constructive and technical. See:
- https://community.kde.org/Get_Involved/Bug_Reporting#Bug_tracker_etiquette
- https://www.kde.org/code-of-conduct/
Comment 32 Nate Graham 2018-05-24 13:20:26 UTC
Anyway, an update:

- Libinput-on-x11 mouse KCM is done and will be released in Plasma 5.13
- Libinput-on-x11 touchpad KCM is in progress now and should be in Plasma 5.14
Comment 33 Shmerl 2018-05-24 13:24:08 UTC
(In reply to Nate Graham from comment #32)
> - Libinput-on-x11 mouse KCM is done and will be released in Plasma 5.13

And Wayland one too?
Comment 34 Nate Graham 2018-05-24 13:25:06 UTC
An yes, I forgot that the Wayland mouse KCM was already done! That'll be in 5.13 too.
Comment 35 jey.and.key 2018-05-24 15:55:52 UTC
(In reply to jey.and.key from comment #30)
> Jesus christ, maybe just not implement shit that you know you then wont let
> user configure?

Sorry about temper, the scroll wasn't working on chrome along with back and forth buttons (didn't realize the exclusivity)
Comment 36 Nate Graham 2018-05-24 16:09:52 UTC
That's a Chrome problem, since they handle their own scrolling. Please report it to them.
Comment 37 Patrick Silva 2019-03-26 16:32:32 UTC
*** Bug 405203 has been marked as a duplicate of this bug. ***
Comment 38 vindicator 2019-03-26 20:07:51 UTC
A summary of that "dupe": it is a low priority accessibility feature that used to exist under evdev where you could use the keypad for controlling the mouse cursor.

While it was said that "...mouse KCM is done...", I might beg to differ it was supposed to include every feature previously under evdev.
If it was just about enabling the minimum configuration, then job done.

I was able to learn about the XKB from the Arch Linux wiki and after creating the needed file in /etc/X11/xorg.conf.d/, all I had to do to (en|dis)able it was press SHIFT-NUMLOCK.

Given that was all I needed, I figure it could be easy enough to implement in the mouse KCM, though I guess there would be a permission issue for creating that /etc file.

I don't know how evdev managed to do it.
Comment 39 Patrick Silva 2019-03-26 21:14:45 UTC
*** Bug 402740 has been marked as a duplicate of this bug. ***
Comment 40 Nate Graham 2019-10-27 15:39:59 UTC
This is effectively done now! We can track the remaining wishlist items separately.
Comment 41 phrxmd 2020-03-16 19:12:46 UTC
Is there a way to get back some of the more extended mouse settings (such as scroll wheel scrolling speed)?  While this is "fixed" as in "the absolutely essential minimal set of options is there", configurability is currently much more primitive than it was before the changeover.
Comment 42 Nate Graham 2020-03-16 19:25:14 UTC
(In reply to philipp.reichmuth from comment #41)
> Is there a way to get back some of the more extended mouse settings (such as
> scroll wheel scrolling speed)?  While this is "fixed" as in "the absolutely
> essential minimal set of options is there", configurability is currently
> much more primitive than it was before the changeover.

See Bug 403842.