Celebrating 10 Years with KDE

Of course I am using KDE software much longer. My first Linux distribution, SuSE 6.2 (the precursor to openSUSE), came with KDE 1.1.1 and was already released 19 years ago. But this post is not celebrating the years I am using KDE software.

Exactly ten years ago, dear Albert committed my first contribution to KDE. A simple patch for a problem that looked obvious to fix, but waiting for someone to actually do the work. Not really understanding the consequences, it marks the start of my journey within the amazing KDE community.

Bug Triaging and Quality

In the following ten years, I contributed to or resolved thousands of bugs in kdelibs, systemsettings, and various other KDE software. Much of the passion to triage and tackle bugs do I owe Darío Andrés, the original author of our bug triaging guide. I have not heard from him later, but hope he does well.

Long before we had a continuous build service, I used to build nearly all KDE software with a self-written script, monitoring its output for build errors and newly introduced compiler warnings. Someone surely remembers my constant mails about failing builds and other issues I felt responsible for as part of the quality assurance in the KDE team.

Theming and Decorations

Besides tackling wierd crashes, I was also active in UI polishing, freeing our code from hard-coded spacings, colors, font or icon sizes, using my own Qt widget style Skulpture and a specially crafted color scheme as a testbed. Not that dark themes and HiDPI displays were common ten years ago; I just always liked the full control of the user over his software. After all, UI stands for User Interface.

The Skulpture style came with its own simple KWin window decoration. For those not satisfied with its look, I ported and improved the Dekorator theming engine, and even created a version of Emerald (the Compiz/Beryl decorator) for KDE4, called Smaragd, which has recently been ported to Plasma 5. Once installed, it gives Plasma 5 users access to over thousand window decoration themes.

Applications Porting and Releasing

Apropos porting: Hopefully my porting status page was useful for contributors to decide where to help, and for users to decide when to switch. Besides tracking porting progress, I helped porting small utilities, such as KCalc, KCharSelect, KCron, KMag, and KRuler, but also bigger applications, such as KmPlot, KolourPaint, and KTurtle. You might notice a slight bias towards math and graphics applications 🙂

The longer you are part of a community, the more responsibilites you are going to accept. Being the maintainer of a few KF5 frameworks is not exactly exciting. But a year ago, I got the opportunity to help Albert with KDE Applications releases, learning about the release process, including tagging, packaging tarballs, and posting announcements. Creating a release is a nice way to see all the fruits of the work of many contributors coming together.

So what am I going to do in the next ten years? If you had asked me that question ten years ago, I could not have given you an answer, and I am glad I cannot give you answer today. What is so special about the KDE community is that it constantly gives you new problems to tackle, and I hope I will be able to report in ten years which of them we mastered.


KF5 Applications Porting

Next week, KDE developers will release the beta of KDE Applications 17.08. This release will again have more applications and nearly all games ported to Qt5/KF5. While Qt4 is already no longer supported for over a year, KDE has decided to support Qt4/kdelibs4-based applications a bit longer.

The 17.08 release, however, will be the last to include Qt4/kdelibs4-based applications. This means, 17.12 will only include applications that are based on Qt5/KF5. See this mailing list discussion.

We hope to find more contributors who help porting the remaining applications. Instructions are on community.kde.org. Ask for help in our developer forum, mailing list, or IRC channel. You do not need git commit rights; you can add a patch/diff via Phabricator.

Porting Status

There used to be an automatically updated porting status page. Sadly the machine that created it stopped working because of a hardware failure; its DIMM simply died.

This week, I had the chance to run its script over a checkout of nearly all KDE repositories from cgit.kde.org. Unfortunately, the repository layout is not nicely structured into directories, and includes many unmaintained and playground repositories, but maybe it is still useful.

See http://imagezero.maxiom.de/files/portingstatus.html.

For contributors helping to get it more green, there is also a shorter version that omits all-green repositories, see portingstatus-todo.html.

Smaragd for Plasma 5

Smaragd is a port of the Emerald window decoration engine to Plasma‘s window manager KWin. In other words, if you install Smaragd, you will be able to use Emerald themes for Compiz/Beryl in your Plasma desktop.

Smaragd was already released 6 years ago for KWin 4. Today, I have ported most of it to the new KDecoration2 API that KWin 5 uses. What is still missing is the configuration dialog, but you should be able to move the old kwinsmaragdrc file to ~/.config/ to keep your old settings.

Build instructions:

(Install Cairo, GLIB2, KDecoration2, and KF5 devel packages)
git clone git://anongit.kde.org/smaragd.git
cd smaragd
git checkout kdecoration2
mkdir build && cd build
make && sudo make install
(Logout and restart KWin)

To use Smaragd, you need to extract the *.emerald archive to ~/.emerald/theme/ (make sure the file ~/.emerald/theme/theme.ini exists after extracting). In the future, GHNS support will be added to ease installation.

Please report issues to bug.kde.org.

KF5 Porting Progress

The porting of KDE software from Qt4 to Qt5 is in full progress. The KDE core libraries were splitted to multiple manageable frameworks, ready to be used with any Qt5 application.

On top of these frameworks (collectively called KF5 or KDE Frameworks version 5), the KDE community also ported the desktop shell and released Plasma 5.

But KDE software does not stop at the desktop shell. We have many other applications, games, and utilities, that are released either independently, or collectively with the triannual KDE Applications release.

You can find an overview of the porting status of many KDE projects at http://developer.kde.org/~cfeck/portingstatus.html (updated as time permits).

If you want to join in and help, this is a good opportunity to get in contact with the KDE community.

February Bug of the Month

The KDE Gardening Team selected the February “Bug of the Month”. Before announcing it, let me write about other bugs that got resolved recently.

First, our January bug (Bug 271934, kded4 memory leak) has been investigated and resolved by Max A. Dednev. He identified excess reference counting in the underlying PolicyKit package, and proposed a patch upstream. While Max uses KDE software since the very early KDE 3 releases, and also works as a developer for Astra Linux, this was his first contribution to the open source communities. Thanks Max!

Let me mention three other bugs, all of them very high on the list of possible candidates for the election as the next Bug of the Month, out of the literally hundreds that are resolved each month:

  • Bug 245482 (Trash has reached maximum size) was resolved by David Faure. An update to the freedesktop.org Trash specification was required to fix it.
  • Bug 340202 (ksnapshot captures itself) was identified as a regression in the xorg-intel video drivers.
  • Bug 328014 (printer-manager password prompt stuck) was resolved by Wolfgang Bauer from the openSUSE KDE team.

But now to the bug for February. This time, a keyboard usability bug was selected.
It is Bug 309193: Keyboard shortcuts do not work with certain layout order

Reasons for the nomination:

  • not being able to invoke keyboard shortcuts is a blocker for usability,
  • most (if not all) KDE developers use a single keyboard layout, so there is little chance that any of them runs into it,
  • it is still unclear whether the bug is in KDE software or underlying components, such as the Qt library, the xorg input layer, or in the keyboard layout definition files,
  • actually, it is very unclear which combination of components and configuration files triggers the bug,
  • the nomination was also dedicated to Max A. Dednev, in the hope that we can attract more developers from countries with non-latin keyboard layouts.

If you are able to fix it, you will receive a honorable mention in the next issue of my blog post “The Bug of the Month” on Planet KDE.

Not all developers that would be able to fix it are subscribed to this bug. If you know someone, feel free to point them here.

January Bug of the Month

The KDE Gardening Team selected the January “Bug of the Month”. Before announcing it, let me write more about this initiative.

When I blogged about the nomination of the first bug, I probably left the impression that each bug is to be resolved in a time frame of one month. The bugs that get selected are often unresolved for a long time, and solving them might overlap with the announcement of the next bugs, so some patience is needed. But I have good news!

The first bug (Bug 324975: Volume gets restored to 100% after each knotify event) has been resolved thanks to the work of Albert Astals Cid. Because of translation changes, the fix will be available in the next KDE Applications release in April.

Regarding the second bug (Bug 288410: KDE daemon kded4 crashes on wake up), we already have a patch to test. There are packages available for openSUSE and Kubuntu, and Fedora packages are being prepared. Please check the recents comments in the bug report and give feedback.

But now to the bug for January. This time, a memory leak was selected.
It is Bug 271934: KDE daemon kded4 grows on memory usage

Reasons for the nomination:

  • the bug is the most reported memory leak in our bug tracker,
  • some people reported growth rates beyond megabytes per minute,
  • having to restart just to keep a low memory usage is annoying,
  • there was growing interest recently (raising CC list size),
  • getting more developers to try Milian’s new heaptrack tool.

If you are able to fix it, you will receive a honorable mention in the next issue of my blog post “The Bug of the Month” on Planet KDE.

Not all developers that would be able to fix it are subscribed to this bug. If you know someone, feel free to point them here.

December Bug of the Month

The KDE Gardening Team selected the December “Bug of the Month”.

It is Bug 288410: KDE daemon kded4 crashes on wake up (related to power/battery change)

Reasons for the nomination:

  • the bug is one of the most reported crashes in our bug tracker,
  • a defunct kded4 process can cause several other issues,
  • it is annoying to restart the desktop just after a wake up,
  • getting a crash dialog when the laptop wakes up makes bad publicity,
  • it might be fixable, it looks like an access to a stale object pointer.

If you are able to fix it, you will receive a honorable mention in the next issue of my blog post “The Bug of the Month” on Planet KDE.

Not all developers that would be able to fix it are subscribed to this bug. If you know someone, feel free to point him here.