kcm_input: Refactor the code and add support for libinput under X11

Authored by xuetianweng on Oct 7 2017, 8:56 AM.



FEATURE: 383379

  • Move the UI setup from mouse.cpp to kcmmouse.ui.
  • Refactor the code like kcm_touchpad to enable support for different backend. We only have X11 for now.
  • Add support for libinput based acceleration settings and reverse scrolling.
  • Do not apply reverse scrolling to touchpad, which will cause conflict with kcm touchpad.
  • Use libinput provided Macro instead of raw string in both touchpad and mouse kcm.
Test Plan

Manually tested on weston (just test for no crashing) and X11.

Diff Detail

R119 Plasma Desktop
No Linters Available
No Unit Test Coverage
xuetianweng created this revision.Oct 7 2017, 8:56 AM
Restricted Application added a project: Plasma. · View Herald TranscriptOct 7 2017, 8:56 AM
xuetianweng updated this revision to Diff 20440.Oct 7 2017, 1:13 PM

using a UI file and add libinput support.

xuetianweng retitled this revision from kcm_input: Refactor the code to enable support of multiple backends. to kcm_input: Refactor the code and add support for libinput under X11.Oct 7 2017, 1:14 PM
xuetianweng edited the summary of this revision. (Show Details)
xuetianweng edited the test plan for this revision. (Show Details)
ngraham added a subscriber: ngraham.Oct 7 2017, 2:18 PM
ngraham edited projects, added Plasma on Wayland; removed Plasma.Oct 24 2017, 12:53 PM

This is going to be a necessity for Wayland, given that libinput is mandatory.

davidedmundson added inline comments.Oct 24 2017, 1:10 PM

that's not your name...


do you mean "AND" especially given this is optional?

Wow, very nice! I'm still not sure if on Wayland we should combine Touchpad and Mouse KCMs to one "Pointers" KCM how it was proposed years ago, because their properties in libinput are very similar. But since you already did the work for adding multiple backend to the Mouse KCM let's go with two separate ones now!

Your change is very big though. Could we split it up in a patch series? Basically by your bullets point in the description. Then we would have the following patches in order:

  1. UI in kcmmouse.ui.
  2. Backend refactoring
  3. Libinput mouse acceleration and revert scroll (on X)
  4. Libinput macros
  5. No revert scrolling for touchpads

Maybe (2) needs to switch position with (3) and/or (4) with (5).

ngraham edited the summary of this revision. (Show Details)Oct 25 2017, 5:00 PM
xuetianweng abandoned this revision.Nov 3 2017, 4:05 PM

Being split into small patches

Have you had any time to produce some more of the individual patches for this? It would be really great to get a libinput-compatible version of the input KCM for 5.12.

Restricted Application edited projects, added Plasma; removed Plasma on Wayland. · View Herald TranscriptFeb 19 2018, 1:25 AM