September Plasma 6 update

A month has passed since the last Plasma 6 status update, so it’s time for another one!

First, what you’ve all been waiting for: a release date! We’ve decided that Plasma 6 will be released in early February of 2024. We don’t have a specific day targeted yet, but it’ll be in that timeframe. I’m feeling quite confident that the release will be in excellent shape by then! It’s already in good shape right now. 5 months should provide enough of a runway for a solid final release.

What’s done

Over the last month, a few remaining porting tasks were completed:

  • Replace PlasmaCore.SortFilterModel with KItemModels.KSortFilterProxyModel. Less code duplication, yay!
  • Replace Kirigami.Avatar with KirigamiAddons.Avatar and KirigamiAddons.AvatarButton, which are easier to use and better-behaved.
  • Introduce an opt-in dedicated sidebar column UX for System Settings KCMs, and port various bespoke stuff to use it.
  • DataEngines have been made into thin wrappers around other functionality and moved into a new package called Plasma5Support, so porting away from them isn’t so urgent anymore and won’t block the release.

This work was done by Marco Martin, Arjen Hiemstra, Carl Schwan, Nicolas Fella, and me: Nate Graham. All this porting work is leveling off as the major work has now been completed, making room for features and bugfixes. This means we are solidly in stage 4 of the roadmap (features and planned changes) and nibbling on stage 5 (QA and convergence).

In the feature department, major work included:

  • Custom ordering for KRunner search results
  • Printers KCM rewritten in QML
  • Double-click by default
  • Tap-to-click by default
  • Icons throughout Plasma itself now exclusively come from the systemwide icon theme
  • Support for automatic bug reporting in DrKonqi and improved reporting flow in general
  • Autostart KCM shows details about entries
  • Distros can now customize the first page in Welcome Center

This work was done by Alexander Lohnau, Mike Noe, Harald Sitter, Nicolas Fella, Thenujan Sandramohan, Xaver Hugl, and me, Nate Graham.

In terms of bugs, it’s been an all-hands-on-deck affair, with everyone helping out. As a result our list of open Plasma 6 issues is down to 75 today, after having risen three weeks ago to an all-time high of 87. The number has been falling since then, which is a great sign–bugginess has peaked and we’re starting to converge! And not all of these are major, high profile issues, either; as of this writing, there are only 15 of those. These are the true showstoppers that must be fixed before we can release Plasma 6. As for the rest, we’ll be trying our best to get as many of those done too to ensure that quality on release day is as high as possible!

What’s next

There are a lot of items remaining in the “Work that’s been decided on but not implemented yet” section on the Plasma 6 wiki page–both started but not yet finished, and also not yet started. It’s time to get cracking on that stuff! If you want your features to be included in Plasma 6.0, we have about 2 months to do it before the soft feature freeze.

Beyond that, it will be a matter of bugfixing, bugfixing, and more bugfixing!

How to Help

Basically the same as last time: if you’re a developer, live on Plasma 6, work on your features, and fix bugs! If you’re a user, test out Plasma 6 and report issues! And if this makes you feel excited in your nether regions, reach for your wallet instead and make a donation to KDE e.V. so we can continue to fund that which needs to be funded!

This week in KDE: Custom ordering for KRunner search results

This was a big week for KRunner! In addition, the number of open Plasma 6 issues continues to tick down. Thanks to everyone who’s been making this happen!

Plasma 6

General infoOpen issues: 81

You can now manually configure certain types of search results in KRunner to be high priority and hence always appear first in the results list! (Alexander Lohnau, link):

KRunner has also received a lot of performance work (Alexander Lohnau, link)

Landed some nice performance work for KWin as well, including making it do less unnecessary work by avoiding repainting layers of the screen that haven’t changed at all (Xaver Hugl, link)

Did a Plasma performance push too, resulting in various parts of Plasma and System Settings launching in some cases hundreds of milliseconds faster (Fushan Wen, link 1, link 2, link 3, and link 4)

The Breeze icon theme’s “refresh” icon and all other icons that use a similar “circle with arrows” style of iconography have now been updated with a new arrow style that looks nicer (Philip Murray, link):

The Breeze icon theme now has more colorful weather icons to match additional weather conditions supported by various weather providers (Alois Spitzbart, link)

When supported, KRunner and KRunner-powered searches now let you manually initiate “Hybrid Sleep”, which is when the system goes to sleep immediately and then hibernates in a few hours (Natalie Clarius, link):

The Display Configuration widget is now less intrusive on your System Tray, and only appears in the visible part if you’ve enabled Presentation Mode (Fushan Wen, link)

Improved the “your distro shipped Discover without its app backends” message to be shorter and more comprehensible (me: Nate Graham, link)

Explanatory text of placeholder messages found throughout Kirigami-based apps is now mouse-selectable and copyable, and can contain clickable links (me: Nate Graham, link)

User Interface Improvements

Preview thumbnails for HDR images being viewed in non-HDR mode apps are now converted to the sRGB color space, ensuring that they’re actually viewable (Mirco Miranda, kio-extras 23.12. Link)

Konsole’s multi-process architecture gained support for putting each process in its own Systemd cgroup when using (Systemd, of course), which makes them show up correctly as children of Konsole in System Monitor (Theodore Wang, Konsole 23.12. Link)

We now support public holidays in Benin (Lukas Sommer, KDE Frameworks 5.110. Link)

Other Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Fixed yet another way that Plasma could crash when switching Global Themes (Harald Sitter, Plasma 5.27.8. Link)

The Widget Explorer’s category filter once again works for people using the system in a language other than English after we broke this recently, sorry! (David Redondo, Plasma 5.27.8. Link)

Fixed one of the most common random generally unexplainable-to-the-user crashes in Plasma (David Edmundson, Plasma 6.0. Link)

In the Plasma Wayland session, the “Maximized” window placement mode no longer gets inappropriately applied to OSDs (David Edmundson, Plasma 6.0. Link)

Other bug-related information of interest:

Automation & Systematization

Added a bunch of autotests for Kirigami.PlaceholderMessage (Ivan Tkachenko, link)

Added a bunch of autotests for the Media Controller widget (Fushan Wen, link)

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Plasma 6 is usable for daily driving now, but still in need of bugfixing and polishing to get it into a releaseable state by the end of the year.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

And finally, KDE can’t work without financial support, so consider making a donation today! This stuff ain’t cheap and KDE e.V. has ambitious hiring goals. We can’t meet them without your generous donations!

This week in KDE: tap-to-click by default

This week we weren’t done improving input device defaults; for Plasma 6, touchpad tap-to-click is now enabled by default! If you’re curious about the reasons, click that link.

In addition, convergence is starting to happen. You might notice that the number of open Plasma 6 issues is lower this week than it was last week! A good sign for sure.

Plasma 6

General infoOpen issues: 85

In the Plasma Wayland session, text copied from an XWayland-using app now remains on the clipboard after it quits (David Edmundson, link)

In the Plasma Wayland session, dialog windows with parent windows set to live on multiple virtual desktop now always appear on the current virtual desktop (Vlad Zahorodnii, link)

System Settings’ minimum window size is now smaller, fitting better into low-resolution 1366×768 screens with thick panels (me: Nate Graham, link)

System Settings’ Printers page has been rewritten in QML for better future maintainability and a more modern and consistent style (Mike Noe, Print Manager 23.12 with Plasma 6. Link):

Icons in Dolphin’s item view now look better and smoother when using a fractional scale factor (Kai Uwe Broulik, Dolphin 23.12 with Plasma 6. Link)

Other User Interface Improvements

In Dolphin, you can now middle-click a file to open it in the first app in the expanded “Open with” list, rather than the default app for its file type (Méven Car, Dolphin 23.12. Link)

.3mf files now display thumbnails showing their 3D model contents (Bernhard Sulzer, Dolphin 23.12. Link)

Other Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Yet again fixed the ability to monitor NVIDIA GPUs using System Monitor, this time improving compatibility with multi-GPU setups (Oliver Beard, Plasma 5.27.8. Link)

The time that you configure your system to dim the screen after is now respected, instead of the screen dimming in half that time (Konstantin Kharlamov, Plasma 6.0. Link)

Starting a Plasma Wayland session in VirtualBox is now more reliable (Xaver Hugl, Plasma 6.0. Link)

Improved reliability with symlinked or hardlinked files on Samba shares opened with KIO-using KDE apps (Kevin Ottens, Frameworks 5.110. Link)

Other bug-related information of interest:

Automation & Systematization

Koko now produces Flatpak bundles with every commit and Merge Request change via its CI system (Tobias Fella, link)

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Plasma 6 is usable for daily driving now, but still in need of bugfixing and polishing to get it into a releaseable state by the end of the year.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

And finally, KDE can’t work without financial support, so consider making a donation today! This stuff ain’t cheap and KDE e.V. has ambitious hiring goals. We can’t meet them without your generous donations!

This week in KDE: Double-click by default

This was a week of huge changes and improvements, starting with our headliner! Yes it’s true, by default in Plasma 6, you’ll single-click to select files and folders, and double-click to open them. The patches have now landed, done by me. This remains user-configurable, of course.

But there’s a whole lot more to talk about as well! This is gonna be a big one…

More Plasma 6 awesomeness

General infoOpen issues: 87

KWin’s blur effect has been totally rewritten for better reliability. Among other things, this fixes the infamous glitches that have been appearing for people using fractional scale factors as well as the blocky cursor trails for users of NVIDIA and some AMD GPUs (Vlad Zahorodnii, link)

When a KDE app crashes and you click on the “Report bug” button in the notification, the DrKonqi crash reporting wizard you’ll see has now been hugely simplified and includes an option to report the crash automatically to our new Sentry-based crash tracker, no need for a Bugzilla account! (Harald Sitter, link):

System Settings’ Autostart page now lets you see the technical details about entries’ startup sequences which lets you debug why they might not be behaving as expected (Thenujan Sandramohan, link):

Cycling through keyboard brightness level keys (e.g. with Fn+Space on many laptops) now shows an OSD for the change (Natalie Clarius, link)

When toggling the keyboard backlight off and back on, it now remembers its previous brightness level (Natalie Clarius, link)

The minimum screen brightness is now always 1, and the minimum keyboard brightness is now always 0, ensuring that the screen backlight never turns off completely at minimum brightness, while the keyboard backlight always does (me: Nate Graham and Natalie Clarius, link 1 and link 2)

The “Alternative widgets” popup has been modernized and now has the typical hover highlight effect (Lukas Spies, link)

It’s now possible to change the wallpaper immediately after changing the desktop containment type (e.g. switching from Folder View to Desktop or back) (Fushan Wen, link)

In the System Tray configuration window, the icons shown to represent the widgets now match the actual icons shown in the System Tray itself (me: Nate Graham, link):

The project to fully remove the concept of icons in the Plasma style has been completed, so now all icons come from the systemwide icon theme. In addition, we have also completed the project to remove the ability to globally change the size of toolbar, dialog, and small icons in some KDE apps that respected these global settings (not all did), in order to reduce the number of ways to scale things on the system so that people will be more likely to use one of the supported methods. For more information about these planned and previously announced changes, see https://pointieststick.com/2023/07/26/what-we-plan-to-remove-in-plasma-6/.

Other User Interface Improvements

Dolphin’s settings window has gotten an overhaul to re-arrange things to be more logical (Dimosthenis Krallis, Dolphin 23.12. Link)

The initial location for Elisa’s “Files” view is now user-configurable but defaults to the system’s “Music folder” location (Me: Nate Graham, Joshua Goins, and Eduardo Bray, Elisa 23.12. Link 1 and Link 2)

KCalc now remembers its window size, and position too on X11 (Gabriel Barrantes, KCalc 23.12. Link)

Apps using the KHolidays framework now have support for holidays in Tanzania (Lukas Sommer, Frameworks 5.110. Link)

Settings dialogs for QtWidgets-based apps now have a search field in the header area that can be used to find settings on individual pages!!! (Waqar Ahmed, Frameworks 6.0. Link):

Improved the Breeze icon for .bak and other backup files (Alexander Wilms, Frameworks 6.0. Link)

Other Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Fixed a way that Plasma could crash when launching an app using the Task Manager while its tooltip was open (Fushan Wen, Plasma 5.27.8. Link)

Implemented a workaround for a weird issue that could cause Plasma to eventually slow down and crash on systems that frequently change monitor arrangements. A better fix will be coming for Plasma 6 (Harald Sitter, Plasma 5.27.8. Link)

Fixed a way that taking screenshots using Spectacle could fail in the Plasma X11 session (Noah Davis, Plasma 5.27.8. Link)

Sensors in System Monior and the widgets of the same name now work properly when your system is using the C locale (Maciej Stanczew, Plasma 5.27.8. Link)

Other bug-related information of interest:

Automation & Systematization

A long-failing test in the plasma-workspace has been fixed, in the process requiring fixes to various things that were actually broken that the text had caught–imagine that! (Marco Martin, link)

Wrote extensive autotests for the Powerdevil profile generator code (Jakob Petsovits, link)

Tests are now required to pass before a merge request can be merged in the plasma-framework, plasma-workspace, plasma-desktop and print-manager repos (Harald Sitter and me: Nate Graham, link 1, link 2, link 3, and link 4)

Changes not in KDE that affect KDE

Firefox now supports the Wayland fractional scaling protocol, so it will be smoother and better looking when using a fractional scale factor (Emilio Cobos Álvarez and Robert Mader, Firefox 118. Link)

Fixed a common way that Qt-based apps could crash when disabling a screen (Axel Spörl, Qt 5.15.12, or the latest snapshot of the KDE Qt patch collection. Link)

Fixed a major graphical glitch affecting people using certain AMD GPUs (Melissa Wen, Linux kernel 6.5. Link)

Sped up the glCopyTexSubImage2D graphical operation on integrated Intel GPUs, which helps various KWin effects (Sviatoslav Peleshko, Mesa 23.3, Link)

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Plasma 6 is usable for daily driving now, but still in need of bugfixing and polishing to get it into a releaseable state by the end of the year.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

And finally, KDE can’t work without financial support, so consider making a donation today! This stuff ain’t cheap and KDE e.V. has ambitious hiring goals. We can’t meet them without your generous donations!

Bug tracking vs user support

I often encourage people to submit bug reports when they complain about this or that on Reddit or comments here or wherever. This works as long as their problem is actually a bug.

But many problems are not bugs. They could be user error, a misunderstanding of the software’s scope or capabilities, a request for something impossible, a long rant about how the software sucks, or a request for help recovering the picture of their kawaii catgirl waifu that they just lost in Krita.

I’ve noticed that the more popular a product is, the worse the bug reports it tends to get. This makes sense, right? A niche product is used only by experts; a popular product gets used by 0-dots-in-computers users to whom bug trackers are weird and unfamiliar. It’s common for normal people to have difficulty describing a discrete technical problem in precise terms, or to bury the useful information in a description of their distant end goal or how the problem made them feel. Hard and jaded software developers who read such bug reports roll their eyes and cruelly wonder how their hapless users manage to plug in their coffee makers without electrocuting themselves.

But non-experts who are having problems with our software need help too! It’s just that the bug tracker isn’t the right place for it. What they need is user support.

This is where https://discuss.kde.org comes in. Discuss is full of magical people who are not only good at talking to other people, but also at understanding machines! These magicians can be the bridge between regular folks and software developers, providing technical support and filtering out problems that aren’t bugs so they never make it onto the bug tracker. They can also evaluate whether a problem is a bug and ought to be reported there.


So if you’re a happy KDE user, you can become a superhero by answering questions at https://discuss.kde.org/c/help/6! Help regular people recover their misplaced files. Explain to them that update errors in Discover are caused by their distro. If their issues seem to be real bugs, direct them to the bug tracker.

And if you’re having a problem with KDE software, and you don’t know whether it’s a bug or not, ask for help at https://discuss.kde.org/c/help/6. You’ll probably get a better response!

How all this icon stuff is going to work in Plasma 6

Today I want to discuss in detail our plans for icon theming in Plasma 6. It will be rather technical, but may be of interest if you’re a user, developer, or theme author who wants to know what (if anything) you’ll have to do differently for Plasma 6.


Let’s start by briefly reviewing the way FreeDesktop-compatible icon themes work. Icons in icon themes are named with standardized names, like edit-copy. A list of standard names can be found here. When an app wants the icon for a “Copy” action, it uses the API of its toolkit to ask for a themed icon named edit-copy. In Qt, you use QIcon::fromTheme(). If an icon isn’t found by its name, the implementation is required to chop off the last word and try again. So if an app asks for edit-copy-path and an icon with that name isn’t found in the icon theme, it will look for edit-copy and return that instead. Icons can also come in multiple sizes, so that each icon can be optimized for being displayed at different sizes. There’s more to it than that, but it’s enough for now.

Over time, icon themes started doing something interesting: they changed the visual styling between sizes! For example in many icon themes, the symbolic monochrome style is used for icons’ 16px and 22/24px versions, and a full-color style is used for the 32px and larger versions. Breeze is one such icon theme. For example:

Now we have a problem. What if an app developer wants to display an icon at 32px size, and they want it to be symbolic even if if the theme has both symbolic and full-color versions of the same icon? There is actually no way of expressing this preference.

This was a common issue with icons in a Plasma Panel, which has a variable thickness. So when you were using the Breeze icon theme, any Panel widgets that asked for an icon present in the icon theme might become colorful if the panel was thicker than 32px (excluding padding). Some icons also only had full-color versions, and others only had symbolic versions, so the result was a jumble of visual styles on your Plasma Panel.

The old solution

Because this was primarily a problem in Plasma, in the past we solved it by shipping icons inside the Plasma style that overrode the icons in the system-wide icon theme. The Plasma-specific icons could be always symbolic at all sizes. Unfortunately there were many drawbacks:

  • The style of icons in the Plasma style might be different from the style of icons you chose for your System-wide icon theme, making unified theming impossible unless you also applied a matching icon theme made by the author of the Plasma theme.
  • Plasma themes often had only a few icons in them, meaning that most icons in Plasma respected your system icon theme, but some didn’t, and which ones didn’t was dependent on what Plasma theme you were using and how many icons it included. In practice it felt totally random.
  • Even when developers offered matching icon and Plasma themes, it was an easily-forgotten chore to remember to update the same icons in both places, causing them to get out of sync.
  • This solution required the use of different icon loading code between apps and Plasma, with subtly different behaviors, features, bugs, and performance characteristics–not to mention twice the maintenance.
  • Apps encounter the same issue, and this Plasma-specific solution doesn’t work for them.

For these reasons, we wanted to move away from this system in Plasma 6.

The new solution

For Plasma 6, icons in the Plasma theme will no longer be used even if they’re present. All icons in Plasma now come from the system-wide icon theme.

So how do we solve the above issue? Well, remember how the system falls back to an icon with a simpler name when it’s asked for an icon with a more complex name that isn’t found? The GNOME folks have used this feature to do something clever: they appended the -symbolic suffix to the end of their symbolic icons. Then when an app asks for, say, media-optical-audio-symbolic, it gets the symbolic version of the icon even if it’s being displayed at a large size such that otherwise it would get the full-color one.

For Plasma 6 we have adopted this convention as well for our Breeze icon theme. This isn’t an official part of the icon theme spec, but now that both GNOME and KDE do it, hopefully it shouldn’t be that hard to amend the spec to include it.

What it means for users

In Plasma 6, all icons in both your apps and Plasma will come from your icon theme. If you want your icons to look different, use a different icon theme.

What it means for app and Plasma developers

Anywhere in your app where you want the user to see a symbolic icon if the icon theme has one, append -symbolic to the end of the name of the icon that your app asks for. So yes, you’ll end up with a lot of git diffs like this:

Due to the name fallback behavior, this is a fully backwards-compatible and harmless change. So it’s not urgent to do this. But if you don’t, sometimes your users will see a full-color icon even though a symbolic one that you might prefer they see is available. So I encourage it!

What it means for icon theme authors

If your icon theme only has symbolic icons, or only has full-color icons, you don’t need to do anything.

If your theme has both symbolic icons and full-color icons, but there aren’t any icons that use different styles at different sizes, you don’t need to do anything. However do consider adding symbolic versions of your full-color icons that might get used on buttons, menu items, system tray items, and other places where people commonly expect to see symbolic icons. The filenames of the symbolic versions should end with the -symbolic suffix.

If your icon theme has any icons with symbolic versions at some sizes, and full-color versions at other sizes, you should create symlinks that end with the -symbolic suffix and point to the symbolic versions. Here’s an example of what we do in Breeze icons:

What it means for Plasma style authors

Don’t include icons in your Plasma 6 styles; they won’t be used. If you want your Plasma style to be accompanied by a distinctive matching icon style, bundle it in a Global Theme that also specifies the icon theme matching its style.

In conclusion

Nah, no conclusion needed. That’s all for today, folks!

This week in KDE: Plasma 6 development continues

Much bugfixing happened this week, and as a result, the number of open issues only rose by 2 compared to last week. In addition, feature work and planned UI changes are in development and getting merged!

Plasma 6

General infoOpen issues: 84

More 1st-party widgets and System Tray icons are now always monochrome and symbolic no matter the thickness of the Panel they live on, even if there are colorful icons at large sizes. This includes the Trash, Folder, and Minimize All widgets and KTeaTime’s System Tray icon (me: Nate Graham, link 1, link 2, link 3, and link 4)

Updated the layout and visuals of the per-app notification configuration page in System Settings (me: Nate Graham, link):

When falling back to software rendering, the Icon widget’s text label now gets a rounded black rectangular background, just like the ones for desktop icons (Mike Noe, link)

Bluetooth-based internet connections are now distinguished with a new icon (Manuel Jesús de la Fuente and Ismael Asensio, link 1 and link 2):

The “Open” toolbar buttons on many QtWidgets-based KDE apps have now grown a little arrow button off to the side that provides quick access to recent documents (Kai Uwe Broulik, link):

Throughout QtQuick-based KDE software, small icons rendered with Kirigami.Icon will no longer sometimes be automatically and inappropriately masked in black with all of their color being lost; this is now purely an opt-in thing, which fixes a ton of bugs (me: Nate Graham, link)

Other New features

All KDE apps now support the QOI image format (Ernest Gupik, Frameworks 5.110. Link)

Other user Interface Improvements

Two-finger pinch zoom gestures in Okular now zoom in on the midpoint between your fingers, as you would expect (Nicolas Fella, Okular 23.12. Link)

In Elisa, clicking on an item in the sidebar now takes you right to that thing even if you were already in a child page of the clicked thing (Jack Hill, Elisa 23.12. Link)

Kolourpaint now lets you zoom in much more (Moritz Zwerger, Kolourpaint 23.12. Link)

Other Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

Spectacle no longer crashes when the screen configuration changes while it’s running (Albert Astals Cid, Spectacle 23.08. Link)

Fixed a strange bug that could cause Plasma to crash when some widgets updated their contents while their popups were open (Fushan Wen, Plasma 5.27.8. Link)

Pressing the Meta key to open and close the Kickoff Application Launcher no longer steals focus from whatever window had focus before (Fushan Wen, Plasma 5.27.7.1. Link)

KDESU works again on Kubuntu (Fabian Vogt, Frameworks 5.10. Link)

Other bug-related information of interest:

Things not in KDE that affect KDE

The InputCapture portal has been merged upstream into xdg-desktop-portal, offering support on Wayland for apps like Barrier and Input Leap that need to be able to remotely control key and pointer input! Note that support in KDE’s portal extension has not yet been implemented, but that’ll be coming too (Peter Hutterer, xdg-desktop-portal 1.18. Link)

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Plasma 6 is usable for daily driving now, but still in need of bugfixing and polishing to get it into a releaseable state by the end of the year.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

And finally, KDE can’t work without financial support, so consider making a donation today! This stuff ain’t cheap and KDE e.V. has ambitious hiring goals. We can’t meet them without your generous donations!

Bug fixes are a good thing, not a bad thing

Occasionally I see online comments saying things like, “more bugfixes week after week; KDE must be a real train wreck!” or “15 years of Wayland and it’s still needing bug fixes; it’ll never be ready!”

It can be a bit funny to see people interpret normal code maintenance as evidence of critical bugginess. But this does make some sense; most objects and systems you’re familiar with around your house and in your life don’t require constant fixing to avoid collapsing, right? They have a bounded problem space; the scope of what they’re expected to do is fixed. Your coffee maker just needs to make coffee! Tomorrow you aren’t going to ask it to make juice, and the electrical outlet it plugs into isn’t going to morph overnight into something physically incompatible with the plug. So the people who built that coffee maker just have to make sure it brews coffee correctly and reliably given the current arrangement of the world around it. Its problem space is bounded.

By contrast, the world around a piece of software is constantly changing in ways that it needs to adapt to; it has an unbounded problem space. For example, one of the libraries that the app delegates some of its work to may change in behavior and cause broken features or crashes in the app. A new CPU architecture, display server, or containerization format may be invented and deployed in an exciting new operating system that people are starting to use, so that the app needs to adapt or else not be able to run on the new OS. A new and previously unusual file format may become popular and users will start expecting the app to work with it. And often user expectations themselves change over time, such that if your app doesn’t evolve in its visuals or interaction paradigm, it will feel clunky and obsolete even if it didn’t feel that way when it was first released.

Because of this, constant maintenance is required to prevent software from becoming obsolete and unusable.

There are methods of development that acknowledge this chaos. You can minimize externally-induced bugginess by intentionally limiting the scope of the software, coding defensively, avoiding programming paradigms that impose lot of mental overhead, and not depending on 3rd-party libraries known to be unstable. But even so, the need for maintenance and bug-fixing is eternal. There’s just no real way out of it.

So the fact that we’re making regular fixes to code that was buggy or has become buggy due to external changes is a good thing, not a bad thing. The alternative isn’t “software so good that it requires no bug fixes” but rather “software that bit-rots and stops working over time due to lack of maintenance.”

This week in KDE: porting, Dolphin, and KWin

I wrote about all the porting work done recently for Plasma in yesterday’s Plasma 6 update. That work consumed a lot of time due to a big push to get it all done, so this week there isn’t as much feature work and UI polishing to report. Nevertheless, some good fixes and improvements made it in, especially for KWin and Dolphin!

Plasma 6

General infoOpen issues: 82

Copying and pasting files to the desktop that won’t fit there because there’s not enough space now shows a notification explaining the problem (Thenujan Sandramohan, link)

In the Plasma Wayland session, cursors now look better when using fractional scale factors (Vlad Zahorodnii, link)

User Interface Improvements

Gwenview now transitions between images more smoothly, or, if it can’t do so because the system is under heavy load, it doesn’t animate the transition at all (Felix Ernst, Gwenview 23.08. Link)

Dolphin’s location bar can additionally now be focused using the Alt+D shortcut (Amol Godbole, Dolphin 23.12. Link)

Ctrl+Scrolling to zoom in Dolphin now goes in the expected direction on Wayland (Amol Godbole, Dolphin 23.12. Link)

In Dolphin, you can now press-and-hold with a touchscreen to enter selection mode for already-selected files or folders too (Steffen Hartlieb, Dolphin 23.12. Link)

Significant Bugfixes

(This is a curated list of e.g. HI and VHI priority bugs, Wayland showstoppers, major regressions, etc.)

When searching in the Kickoff Application Launcher, the initially selected item is now always the first one, not the one that happened to be under the mouse pointer (Fushan Wen, Plasma 5.27.7. Link)

Fixed another way that KWin could crash in the Plasma Wayland session when clicking on a window decoration tooltip (Xaver Hugl, Plasma 5.27.8. Link)

In the Plasma Wayland session, alt+tabbing through windows no longer goes in reverse when Caps Lock is on (Xaver Hugl, Plasma 5.27.8. Link)

Fixed a bug that could cause Night Color to not properly deactivate after waking the computer up from sleep at a time when it would otherwise have already turned off automatically (Xaver Hugl, Plasma 5.27.8. Link)

In the volume and brightness OSDs, the text “100%” no longer inappropriately wraps across two lines in some languages (Kai Uwe Broulik, Plasma 5.27.8. Link)

Fixed a bug that could cause some items to be silently skipped when copying a very large number of files (Harald Sitter, Frameworks 5.109. Link)

Other bug-related information of interest:

Automation & Systematization

Monochrome icons for the Breeze Dark icon theme are now automatically generated at build-time from the light ones, saving a huge amount of manual work! (Noah Davis, Frameworks 6.0. Link 1 and link 2)

…And everything else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.

How You Can Help

If you’re a developer, work on Qt6/KF6/Plasma 6 issues! Plasma 6 is usable for daily driving now, but still in need of bugfixing and polishing to get it into a releaseable state by the end of the year.

Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

And finally, KDE can’t work without financial support, so consider making a donation today! This stuff ain’t cheap and KDE e.V. has ambitious hiring goals. We can’t meet them without your generous donations!

August Plasma 6 progress update

About 6 weeks ago, I posted a tentative roadmap for Plasma 6. I wanted to give everyone an update on how things have gone since then!

So where are we? I previously explained that we were somewhere in between “clean up the code” and “Implement planned features and changes”–stages 3 and 4. I predicted that stage 3 code cleanup would mostly be done by early August.

What’s done

I’m happy to report that my prediction appears to have been pretty accurate! As of today, almost all of the planned Plasma 6 code porting tasks have been completed. Only one major one remains: porting everything away from DataEngines. But everything else is done, including the following projects:

  • Port all usages of Plasma SVG elements to KSvg (link)
  • Port everything to use Kirigami colors and Units (link)
  • Port PlasmaExtras.Heading to Kirigami.Heading (link)
  • Port away from direct KActionCollection usage (link)
  • Improve and modernize wallpaper API (link)
  • Improve and modernize Plasmoid component API (link)
  • Improve and modernize Plasmoid actions API (link)
  • Port PlasmaCore.IconItem to Kirigami.Icon (link)
  • Port to declarative header actions in KCMs (KCM is short for “KDE Control Module” and it’s internal jargon for a page in System Settings) (link)

These projects have involved many people, including: Marco Martin, me: Nate Graham, Laurent Montel, Carl Schwan, Mike Noe, Jorge Barroso Barea, Ivan Tkachenko, Joshua Goins, Kai Uwe Broulik, and Oliver Beard.

Now before we continue, let me mention that there’s much more porting work also going on in the background in Frameworks 6 which is technically independent of Plasma 6. This important work has been done by people like Volker Krause, Nicolas Fella, Friedrich Kossebau, and many others! Thanks for this work as well, guys!

Most of the Plasma porting projects should result in exactly zero user-facing changes, and I’ve done a lot of QA work over the past two months to make sure that’s the case. But the last two projects are exceptions; in addition to being porting and code cleanup projects, they do result in some intentional user-facing changes. Let’s go over them:

Using Kirigami.Icon everywhere is a part of the project to deprecate icons that live in the Plasma style, and always use icons from the (configurable) systemwide icon theme instead. That’s tracked at https://invent.kde.org/plasma/plasma-desktop/-/issues/82 and it’s now been completed! This makes it easy to achieve a consistent icon style across both Plasma and apps. Here’s how my system looks today with the style ze Plasma and the popular Papirus icon theme applied:

Fairly complete icon themes already look great! Others will need to add some new icons that are only displayed by Plasma, which was not necessary in Plasma 5. Icon theme creators take note! And I’ll write a separate post about this later.

Porting KCMs to use header actions also results in a user-facing changes. Now System Settings KCMs have largely dropped their double-height footers by moving some of the footer actions to their headers. The result looks great:

In the future we also plan to investigate moving the remaining bottom buttons elsewhere, so that KCMs can have no footers at all

Not too shabby, eh?

What’s next

As I mentioned, we still need to port all the widgets away from DataEngines. That’s ongoing. And there are some more lower-priority porting projects that we’ll be working on over time, such as removing custom CompactRepresentation code from widgets in favor of using the standard one and using the standard QML KCM components in Plasma widgets’ config windows. Those are lower priority though, and can be done at any time, including after Plasma 6 is released.

Beyond that, it’s time to move fully into stages 4 and 5: implementing planned features and polishing everything up in preparation for a release. In addition to the features relating to icons and KCMs that I mentioned earlier, a bunch more planned changes are mentioned on the Plasma 6 wiki page. Folks will be starting work on those soon. These planned changes are of course in addition to the random and awesome unplanned changes submitted by volunteers not working in close coordination with the Plasma team. For example the Autostart KCM is undergoing heavy changes right now as the result of some excellent volunteer contributions. So expect Plasma 6 to have a lot of amazing things in it!

How to help

If you’re a developer

Help port widgets away from DataEngines so we can close the lid on major porting work.

Also, start submitting merge requests for your major feature work. If you want it to ship with Plasma 6.0, the time to do so is now! We have probably a 2-3 month window of time remaining before we start branching for betas and any new features have to be deferred until Plasma 6.1.

And finally, since you’re already living on Plasma 6 git master (no doubt! 🙂 ), go fix some more of these bugs you encounter on a daily basis! You know, the ones that are annoying you but you already found a workaround? Delete your workaround, then fix it for everyone! Can’t find any bugs? Fix some of these!

If you’re an excited user

Test out Plasma 6 in a real environment! Use it. Test it. Break it. Find all the bugs. And then report them on https://bugs.kde.org! We want the number of open bug reports to go up for a while, as this represents people reporting issues that have been newly found, or weren’t previously tracked with Bugzilla tickets. We need that! Everything must be tracked!

If you’ve got money to spare

KDE is run by people volunteering their time to work on it or sponsored to do so by their employers, but now KDE e.V. is one such employer too! And [puts on board member hat] we want to make sure we have the financial leeway to remain one. The majority of KDE e.V.’s funding comes from small individual donations (here are the ones from PayPal, for example), and you can be a part of keeping it that way! Every little bit helps us to continue to pay our server bills, host free-to-attend conferences and sprints and even pay for people’s travel costs, employ folks to develop, package, and promote the software, and so on. If you can make a donation, we’d really appreciate it!