Red Diff is Good Diff

A patch-set that removes more code than it adds is always much appreciated. Code that doesn’t exist cannot have bugs after all! KWin, our fantastic Wayland compositor and window manager, like many others, has an Alt+Tab switcher (“tabbox”) for quickly cycling between windows. Of course having been created by KDE, there’s plenty of options for how it should behave and what it should look like.

Flip Switch – a pseudo-3d stack of Windows floating over the blurred desktop
It was the fashion at the time…
Continue reading Red Diff is Good Diff

Reworking KSSHAskPass

KDE has a little utility called ksshaskpass that is invoked by SSH to prompt the user for credentials. It can then store them in KDE Wallet so you don’t have to type them again next time. The other day I had to set up an elaborate SSH configuration with jump hosts and what not and found that it actually couldn’t handle some of the prompts I encountered along the way.

“SSH Credentials” prompt asking for “user@localhost’s password”
A regular password prompt, nothing too fancy.
Continue reading Reworking KSSHAskPass

Qt No Contextless Connect

As many long running projects, Qt too over the years has accumulated some APIs that in hindsight are deemed unsafe or sub-optimal. For example, Qt by default implicitly converts const char* to QString. While that usually only incurs a runtime overhead, maybe encoding problems, but also admittedly less cluttered code, there’s other APIs that can backfire in more subtle ways. One such API is doing a “context-less connect”.

Continue reading Qt No Contextless Connect

Tighter KDE Connect Integration

In my opinion, KDE Connect is one of the finest pieces of software KDE has ever produced. It lets you easily pair your devices and makes them work together. Copy some text on your computer, paste it on your phone. A call comes in and the video you’re watching in your browser pauses. How cool is that? For the past couple of weeks I’ve been working on even tighter integration between KDE Connect and the Plasma desktop.

Plasma’s “Power & Battery ” popup, containing a power profile slider, and three batteries (intenral laptop battery, phone battery, and some other laptop battery)
Battery Monitor displaying status about devices paired wirelessly using KDE Connect
Continue reading Tighter KDE Connect Integration

Nifty Dialogs

As explained in one of my previous blog posts where I revamped the unresponsive window dialog, KWin isn’t really designed to show regular desktop windows of its own. It instead relies on helper programs to display messages. In case of the “no border” hint, it just launched kdialog, a small utility for displaying various message boxes from shell scripts. This however came with a couple of caveats that have all been addressed now:

KWrite (simple text editor) window without window border. Ontop a dialog “You have selected to show a window without its border. Without the border, you will not be able to enable the border again using the mouse: use the window menu instead, using the Alt+F3 keyboard shortcut”, buttons “OK” and “Restore Border”
Setting no border now lets you restore it in case you really don’t have a keyboard
Continue reading Nifty Dialogs

Holiday Hacking 2025

Like every year I took a couple of days off at the end of the year to wind down and spent some quality time with the family. Time just flies and it feels like the year had only just begun. I have also taken the time to revisit some of my work-in-progress merge requests and tried to push them over the finish line.

Plasma volume OSD showing a megaphone and “Speak…” indicating that push to talk is enabled and the user may speak now
Please talk now or forever hold your peace.
Continue reading Holiday Hacking 2025

30 Reasons I ❤️ KDE Plasma

KDE’s 30th birthday is coming up next year. For this year’s holiday season I therefore decided to compile a list of 30 reasons why I love KDE Plasma. It makes me so much more productive and work a lot more fun. While some of the items listed below aren’t unique to Plasma, it’s the combination of all of those things that truly makes it the best desktop environment out there. Tell me, what are your top reasons?

Vertical christmas gift card with Konqi, KDE’s mascot dragon, christmas tree decoration
Konqi Christmas post card (CC-BY-SA-4-0 Timothée Giet)
Continue reading 30 Reasons I ❤️ KDE Plasma

Little KWin Helpers

KWin, our fantastic and flexible window manager and Wayland compositor, can not just drive your session but also run in windowed mode for development purposes:

$ dbus-run-session kwin_wayland --exit-with-session kwrite

Et voila, a windowed KWin appears, running KWrite. The separate DBus session is important so it doesn’t mess with your running session, notably trying to take over your global shortcuts.

A black window “KDE Wayland Compositor” containing a KWrite editor window
KWrite running inside KWin Wayland running inside KWin Wayland
Continue reading Little KWin Helpers