Skip to content

Holiday Hacking 2024

Friday, 27 December 2024 | Kai Uwe Broulik

Like every year I take a couple of days off at the end of the year to wind down and spent time with the family. The year has brought many major changes, both to KDE and to me personally: We did the KDE MegaRelease 6, the next major update to KDE’s software suite. Plasma 6 further made Wayland the default graphical session. I also spent a lot more time in Qt itself, particularly Qt Wayland, rather than KDE code. Anyhow, between family visits and feasts there’s always some time for quality KDE hacking.

Konsole window with two tabs. Current tab is vi editor, the other tab is called “Progress Test” and shows a little progress bar of around 70% on its tab. The same progress is also shown in Konsole’s task bar button
That’s right: Monitoring task progress in Konsole while busy doing something else

I’ve always been a huge fan of Windows 7’s task bar with its progress reporting and Jump Lists. Nine years ago (wow, really?!) I added support for the Unity Launcher API to Plasma’s task bar in order to display download and copy progress. The other day I was browsing systemd changelog when I stumbled upon:

The various components that display progress bars […], will
now also issue the ANSI sequences for progress reports that Windows Terminal understands. Most Linux terminals currently do not support this sequence (and ignore it), but hopefully this will change one day.

I hope so, too! Guess whose Konsole understands ConEmu-specific OSC (Operating System Command), the stuff systemd uses, for progress reporting now? There’s still a few quirks to be worked out since Konsole allows you to have multiple split views within the same tab. Nevertheless, we’ve got plenty of time until the next KDE Gear release in April 2025 to finalize it. Moreover, I asked kde-builder (KDE’s meta build system and spiritual successor to kdesrc-build) to support it, so you could monitor KDE compile progress at a glance.

I’m a scratch-your-own-itch type of guy. When I finally got fed up with Element (a Matrix chat client) in a browser window eating my CPU, I gave our own NeoChat application a try. The first thing I added was a “Copy Link Address” context menu when hovering a link in addition to fixing the missing “Edit” entry. Next, I had the window title include the chat room name since that’s what I am usually looking for in my task bar. Finally, Kirigami’s Avatar component can now load its image asynchronously which should speed up scrolling through the timeline and lists of rooms and users.

Printer settings window, showing a printer icon, its name, various properties, a "Print Test Page button", and a list of ink levels, with Cyan, Yellow, Magenta, Black, and a correspondingly colored progress bar next to each one
Ink marker colors shown again in redesigned Printer Manager

Speaking of Kirigami, Qt 6.8 added an animateClick function to buttons. It briefly flashes and then triggers it. This is now used throughout Kirigami in keyboard shortcut handling, bringing it in line with the Qt Widget world. Qt 6, too, has a concept of “accent color” for a few releases. Plasma’s accent color system predates it, though, so there’s some friction between the two. While we don’t have a proper Kirigami Theme API for it yet, at least setting the highlight now also sets the accent color. With that, ink cartridge levels have the appropriate marker colors in printer settings again. Speaking of accent color, I just backported some changes we made for Frameworks 6 to Frameworks 5 to ensure that KF5 apps can interpret Breeze Icons from KF6 properly, notably fixing the black folder icons.

I hope you also got the chance to spend some time with your loved ones. If you enjoyed what the KDE Community brought you this year, please consider donating to our Year End Fundraiser or to me personally, so we can continue rocking in 2025!

Support Good People

Discuss this post on KDE Discuss.