SEP
6
2016

Plasma 5.8: More efficient Pager and Activity Pager widgets

On the heels of the Plasma 5.7's new Task Manager backend, the upcoming Plasma 5.8 LTS release will sport substantially rewritten Pager and Activity Pager widgets, aimed at improving efficiency and conserving resources in a typical Plasma Desktop setup.

Plasma Pager widget
Enemy located

Two birds with one stone

Both the Task Manager and Pager widgets report on the windowing system. (If you didn't know: The Pager is the little game-like minimap to the left of the Task Manager, showing the windows on each virtual desktop.) To do so they need to know about the windows that exist and various things about them, such as their location (screen, desktop) and state (active, minimized). Up until now, the two would collect all of that data independently, sharing no code, and doing much of the same processing in response to changes. Plasma 5.8's Pager now shares a backend with the Task Manager (no matter how many instances of each applet you have), consolidating all the window information processing in the Plasma shell process in just one spot. This saves a whole bunch of CPU and memory, along with being less code to maintain!

Doing less is doing fast

The old Pager backend would toss out everything it knew about the current state of the windowing system every time any window changed in any way, causing everything the widget was showing to be torn apart and recreated from scratch - even when most of it didn't need to be touched at all. That's of course terribly inefficient, and the Task Manager's backend is fortunately much smarter. No more needless busywork.

Dropping weight

The way the Pager is actually drawn was cleaned up along the way, now using less CPU and memory, especially with the bare-bones default settings. Dragging a window on the Pager is now also much more efficient internally.

(Re-)joining forces

All of the above also applies to the Activity Pager widget - which used to be a lightly modified copy of the Pager's code, and now instead shares all of its code with its sibling. The two pagers remain separate entries in the Widget Explorer, but all further maintenance and development can now happen on a unified codebase.

JUN
16
2016

Icon theme deployment on Windows, Mac OS and mobile platforms

During the Randa meeting I implemented some magic in KIconThemes to generalize a design initially made by Christoph Cullmann for Kate.

On platforms other than Linux/BSD, icon themes are not available as part of the system, and installing 6235 files takes forever. The deployment strategy for applications on those operations systems is now the following:

JUN
3
2016

Unlocking wallet during startup

While setting up plasma5 I found a solution for something that had been bothering me forever. Basically, while session management is restoring all windows, the wallet isn't open yet, so if the wallet is needed to get online (wifi password), all the apps being restored (in my case, about 20 konqueror windows) have no networking yet and just show error pages.
I had to be there during startup and type fast to unlock the wallet before the apps needed it.

MAY
31
2016

New Plasma Task Manager backend: Faster, better, Wayland

During the last several months, I've been rewriting the backend for Plasma's Task Manager, the strip of launchers and windows embedded into the panel at the bottom of the screen.

MAY
16
2016

Compiling all of Qt5, KF5, Plasma5, kdepim5, apps...

I see a very high value in compiling my own Qt, and on top of it all the KDE-made software that I use. This makes it very easy to fix bugs and add improvements to the software I use on a day to day basis. Nowadays I think many developers use distro packages for Qt or KF5 or even the whole environment except for the one app they're working on, but in my opinion this leads to "silo" thinking, with workarounds in upper layers rather than fixing issues at the right place.

So, here's a working and easy recipe for compiling all the Qt-based software you use.

JAN
23
2016

What we do

Earlier this week, the loved one of a man I used to babysit was pushed into the path of an oncoming subway train car, by a stranger, and soon after died of their injuries.

While the death seems random, even cruelly so, it's one of many like it: Every year, people die on Berlin's various railways. Across Germany hundreds do, many of them similarly at metro train stations.

When disaster strikes, my thoughts soon dwell on analysis and prevention. For this particular case a well-demonstrated solution already exists: Platform screen doors, which I strongly hope the Berlin subway will eventually be retrofitted with.

As engineers, we deal in the makeup of the world all of us collectively inhabit. We help make and hammer away at the stuff of civilization.

We should all be offended by ill effects that may be prevented by means of better engineering. Our labor facilitates culture, but it's also on us to keep culture and its agents - people - safe.

It feels good that we enjoy many opportunities to act on our responsibility: Pick what we work on, weigh our concerns well, work diligently and pass on our knowledge. Make better engineering more affordable and available in this way.

This is true for any application of civil engineering, like a railway system, but just as much for any software system that users commute their thoughts and concerns through, if not their bodies.

OCT
23
2015

Announcement: Marble ships the oldest existent historic Globe

Today I have the pleasure to announce that Marble is the first popular virtual globe that ships and visualizes the Behaim Globe. The Behaim Globe is the oldest surviving terrestrial globe on earth. It was created between 1492 and 1493 - yes at the same time when Christopher Columbus made his first voyage towards the west and "discovered" America.

SEP
4
2015

Konsole's new "Manage Profiles" Configure dialog

One of the goals I've had with Konsole was to combine all the configure dialogs: 1) Configure Konsole; 2) Manage Profiles; 3) Edit Profile. Currently, in the branch config_dialog, the Manage Profiles is now combined with the main Configure dialog. The only downside is that the Konsole part can't open the Manage Profiles dialog. If and when the Edit Profile gets combined, I'll have to make sure the parts can open those dialogs.

JUN
21
2015

GCI 2014 and Grand Prize Trip

Many pre-university students have participated in Google Code-In (2014) again and for many of them it has been the first opportunity to make contributions to Free Software and Open Source projects. In opposite to Google Summer of Code the GCI program is organized as a worldwide contest where students at the age of 13-17 years take the challenge to complete as many software development tasks from their mentor organizations as possible.

JUN
3
2015

Folder View panel popups are list views again

In later versions of Plasma 4, the Folder View widget adopted a special appearance when placed in a panel: It would arrange folder contents in a simple list instead of the usual icon grid. Folder View had to be rewritten completely for Plasma 5, and while there were various improvements along the way, the list view mode unfortunately went missing. Until now - on popular request, this feature will make a return soon in Plasma 5.4:

Pages