KDE Touchpad configuration ported to Frameworks 5

Fedora 20 with KDE SC 4.14 has been very stable, and after a while it gets…boring – especially when Plasma 5 is already released and you see screenshots everywhere. If you cannot hold the urge and feel sufficiently adventurous, Dan Vratil has built the Fedora 20 and 21 rpms here. If you install i386 versions, beware that baloo-widgets cannot be installed due to unmet dependencies. So, once you install dvratil’s copr repo, just do:

dnf copr enable dvratil/kde-frameworks dvratil/kde-frameworks-unstable dvratil/plasma5
dnf remove kde\* && dnf install kf5\* plasma5\* --exclude=kf5-baloo-widgets\*

I had to manually edit /usr/share/xsessions/plasma.desktop to change "/usr//usr/bin" to "/usr/bin” so that “Plasma 5” appears in gdm list. After logging in, the desktop runs smooth, but you notice the lack of many applications because they are not yet fully ported to KF5/Plasma5.

KDE Plasma 5 desktop

KDE Plasma 5 desktop

Once I had the Qt5/KF5/Plasma5 based workstation fully operational, I could also develop, build and test KF5 based applications. Most of the KDE apps are ported or being ported to KF5 under 'frameworks' git branch. As the OpenSuSe team already have started building KF5 based apps in an unstable repository, I could leverage the spec files to build rpms.

The first itch I scratched was unavailability of touchpad configuration kcm. Not being able to enable touch-to-tap, vertical and horizontal scrolling is no fun. Looking at the git repo for kcm-touchpad showed that it is not yet ported to KF5. Checked out the git repo and started porting. There are quite some references, blogposts and tools available online to guide and ease the porting effort. As it is a kcm that is being ported, the first place to go is Frameworks Porting Notes. The subtopic of ECM (extended cmake modules) source incompatible changes is also handy updating CMakeLists.txt files. The next thing is reference to Martin Graesslin’s post on porting kcontrol module. And the final tool that is quite useful to port API changes is the kde-dev-scripts. Run the source files through relevant script – like "find -iname "*.cpp" -o -iname "*.h" -o -iname "*.ui" | xargs ~/Programs/Projects/kde-dev-scripts/kf5/<porting-script.pl>". When you hit an API change that cannot be automatically converted by the script, check frameworks at api.kde.org. Then port away, setup a build directory, compile, note the build failure, fix the build – repeat.

Alexander Mezin and Hrvoje Senjan reviewed the patches and after 6 revisions the patch is committed in kcm-touchpad frameworks branch.

KCM Touchpad on KF5

KCM Touchpad on KF5

RPMs for Fedora 20 and 21 (i386, x86_64) are built and available in my copr repo. It contains builds of kmix and konsole as well. More to build and I’ll make them available in the same repo once build completed. You are welcome to try at your own risk 🙂


9 thoughts on “KDE Touchpad configuration ported to Frameworks 5

  1. Ugh… you will have to redo all of this again when the synaptics driver gets deprecated in favor of libinput.

  2. Upon encountering references to Xlib, I had thought about it as well. But yes, it should be done if it needs to be 🙂

  3. What’s kf5-konsole and kf5-kmix in your copr repo? plasma.desktop is fine on my system. I didn’t have to do anything. My system is x86_64 so I didn’t have to exclude baloo-widgets.

  4. kf5-{kmix,konsole} are the frameworks branch build of kmix and konsole. Yes, plasma.desktop/baloo-widgets are okay in x86_64 build.

  5. Multi touch support is a feature needing support from touchpad, kernel, X, gui toolkit (Qt/GTK) and application. All of them, as far as I know supports. So if you have a multi touch capable touchpad and say, firefox – pinch to zoom should work.

  6. While I like the port to Frameworks 5, I think there’s something very important that is missing. There is no way through the graphical interface to enable multi-tap on the touchpad. This was previously available under:

    KDE System Settings / Hardware / Input Devices / Touchpad, select the Tapping tab, check the “Enable tapping” checkbox.

    In my opinion this is a critical feature (and should be enabled by default, but that’s another story). Is there any plan to add the “Tapping” tab back?

  7. Sorry Rajeesh. I realize I was unclear in my last comment. I meant to say enabling tapping with the touchpad itself. I cannot seem to do this, but I am not sure that is a KCM port issue. Please disregard my last comment.

  8. The old ‘Enable tapping’ means assigning one finger tocuh to Left button – which you can set in Mouse Click Emulation in the new settings.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s