This week in KDE: megabytes and gigabytes for all

New Features

On System Settings’ Region & Language page, you can now choose how you’d like storage sizes to be displayed. This means you can change them to the more common MB and GB style, instead of MiB and GiB, for example. Note that the default value has not changed, but you have the option to change it yourself (Méven Car, Plasma 6.1. Link):

The popular Kirigami.ContextualHelpButton component now has a QtWidgets counterpart: KContextualHelpButton! (Felix Ernst, Frameworks 6.2. Link)

UI Improvements

On X11, Spectacle now makes it obvious that screen recording isn’t supported when you try to run it in recording mode using a global shortcut (Noah Davis, Spectacle 24.05. Link)

Plasma’s Vaults widget now appears visible in the active part of the system tray only when a Vault is actually open, bringing the System Tray closer to its platonic ideal of only showing things that are contextually relevant (me: Nate Graham, Plasma 6.1. Link)

Apps inhibiting sleep and screen locking are now shown by their pretty names, not their technical names (Natalie Clarius, Plasma 6.1. Link):

Adopted the new frameless message header style in Discover, as seen when there’s a distro upgrade available (me: Nate Graham, Plasma 6.1. Link):

Bug Fixes

Kate once again works as expected with multiple virtual desktops, opening files in a new window in the current virtual desktop rather than attaching it to an existing instance in a different virtual desktop (Christoph Cullmann, Kate 24.05. Link)

Fixed Spectacle’s multi-monitor screenshots on X11 not working either at all, or well (Vlad Zahorodnii, and Noah Davis, Plasma 6.0.5. and Spectacle 24.05. Link 1 and link 2)

Fixed a semi-common crash in System Monitor when switching to the Applications page (Arjen Hiemstra, Plasma 6.0.5. Link)

When updating the system using Discover, there are no longer gaps in the updates list as items complete and disappear (Ivan Tkachenko, Plasma 6.0.5. Link)

Plasma’s feature to remember whether Bluetooth was on or off last time now works more reliably (Someone going by the pseudonym “Arctic Lampyrid”, Plasma 6.0.5. Link)

Fixed an issue in Plasma that would cause flickering and stuttering with adaptive sync turned on (Xaver Hugl, Plasma 6.0.5. Link)

Floating panels now de-float when a window reaches the correct distance away from them, as opposed to de-floating too early (Yifan Zhu, Plasma 6.0.5. Link)

Fixed multiple issues involved with LPD printer discovery and queue management (Mike Noe, Plasma 6.1. Link)

When you have multiple Brightness and Color widgets (for example, because you have multiple panels each with a System Tray on it), the Night Light portions of the widgets no longer interfere with one another and interact in strange ways (Natalie Clarius, Plasma 6.1. Link)

Other bug information of note:

Performance & Technical

Improved Spectacle-s startup speed on Wayland (Noah Davis, Spectacle 24.05. Link)

Improved the scrolling performance of long scrollable views in Discover. This is an area of focus, so expect more to come soon (Aleix Pol Gonzalez, Plasma 6.0.5. Link)

Reduced visual glitchiness when the GPU does a reset, which can happen due to driver bugs, or, with NVIDIA, when the system goes to sleep (Xaver Hugl, Plasma 6.1. Link)

Implemented support for the org.freedesktop.impl.portal.Secret portal for KWallet, which lets Flatpak apps use it (Nicolas Fella, Frameworks 6.2. Link)

Automation & Systematization

Added some basic GUI tests for Dolphin (Méven Car, link)

Added basic GUI tests for opening Plasma’s Alternate Calendar config page (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

The KDE organization has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, of which I am a board member), and that’s a problem. We’ve taken steps to change this with paid technical contractors—but those steps are small due to growing but still limited financial resources. If you’d like to help change that, consider donating today!

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!

Berlin mega-sprint recap

For the past 8 days I’ve been in Berlin for what is technically four sprints: first a two-day KDE e.V. Board of Directors sprint, and then right afterwards, the KDE Goals mega-sprint for the Eco, Accessibility, and Automation/Systematization Goals! Both were hosted in the offices of KDE Patron MBition, a great partner to KDE which uses our software both internally and in some Mercedes cars. Thanks a lot, MBition! It’s been quite a week, but a productive one. So I thought I’d share what we did.

If you’re a KDE e.V. member, you’ve already received an email recap about the Board sprint’s discussion topics and decisions. Overall the organization is healthy and in great shape. Something substantive I can share publicly is that we posed for this wicked sick picture:

Moving onto the combined Goals sprint: this was in fact the first sprint for any of the KDE Goals, and having all three represented in one room attracted a unique cross-section of people from the KDE Eco crowd, usability-interested folks, and deeply technical core KDE developers.

Officially I’m the Goal Champion of the Automation & Systematization Goal, and a number of folks attended to work on those topics, ranging from adding and fixing tests to creating a code quality dashboards. Expect more blog posts from other participants regarding what they worked on!

Speaking personally, I changed the bug janitor bot to direct Debian users on old Plasma versions to Debian’s own Bug tracker—as in fact the Debian folks advise their own users to do. I added an autotest to validate the change, but regrettably it caused a regression anyway, which I corrected quickly. Further investigation into the reason why this went uncaught revealed that all the autotests for the version-based bug janitor actions are faulty. I worked on fixing them but unfortunately have not met with success yet. Further efforts are needed.

In the process of doing this work, I also found that the bug janitor operates on a hardcoded list of Plasma components, which has of course drifted out of sync with reality since it was originally authored. This causes the bot to miss many bugs at the moment.

Fellow sprint participant Tracey volunteered to address this, so I helped get her set up with a development environment for the bug janitor bot so she can auto-generate the list from GitLab and sysadmin repo metadata. This is in progress and proceeding nicely.

I also proposed a merge request template for the plasma-workspace git repo, modeled on the one we currently use in Elisa. The idea is to encourage people to write better merge request descriptions, and also nudge people in the direction of adding autotests for their merge requests, or at least mentioning reviewers can test the changes. If this ends up successful, I have high hopes about rolling it out more broadly.

But I was also there for the other goals too! Joseph delivered a wonderful presentation about KDE Eco topics, which introduced my new favorite cartoon, and it got me thinking about efficiency and performance. For a while I’d been experiencing high CPU usage in KDE’s NeoChat app, and with all the NeoChat developers there in the room, I took the opportunity to prod them with my pointy stick. This isn’t the first time I’d mentioned the performance issue to them, but in the past no one could reproduce it and we had to drop the investigation. Well, this time I think everyone else was also thinking eco thoughts, and they really moved heaven and earth to try to reproduce it. Eventually James was able to, and it wasn’t long before the issue was put six feet under. The result: NeoChat’s background CPU usage is now 0% for people using Intel GPUs, down from 30%. A big win for eco and laptop battery life, which I’m already appreciating as I write this blog post in an airport disconnected from AC power.

To verify the CPU usage, just for laughs I added the Catwalk widget to my panel. It’s so adorable that I haven’t had the heart to remove it, and now I notice things using CPU time when they should be idle much more than I did before. More visibility for performance issues should over time add up to more fixes for them!

  • Sleeping cat showing 0.5% CPU usage
  • Running cat showing 22.5% CPU usage

Another interesting thing happens when you get a bunch of talented KDE contributors in a room: people can’t help but initiate discussions about pressing topics. The result was many conversations about release schedules, dependency policy, visual design vision, and product branding. One discussion very relevant to the sprint was the lack of systematicity in how we use units for spacing in the QtQuick-based UIs we build. This resulted in a proposal that’s already generating some spirited feedback.

All in all it was a happy and productive week, and after doing one of these I always feel super privileged to be able to work with as impressively talented and friendly a group of colleagues as this is:

Full disclosure: KDE e.V. paid for my travel and lodging expenses, but not my döner kebab expenses!

This week in KDE: sprints, enhancements, and kebabs

This week I’m attending two sprints: a KDE e.V. Board sprint which is already done, and a KDE Goals mega-sprint, which begins today! My “Automate and systematize internal processes” goal is represented there and I’m hoping we have a great time brainstorming and fixing stuff. And also that we eat lots of Döner kebabs. So many Döner kebabs. All the Döner kebabs.

New Features

Spectacle regains its “blur factor” feature, so now if you want your blurred areas to be even blurrier, you can do that without having to draw a blur over the same area multiple times (Noah Davis, Spectacle 24.05. Link)

You can now copy the text of a column in System Monitor (Joshua Goins, Plasma 6.1. Link)

UI Improvements

The Plasma Digital Clock’s Islamic calendar feature now respects the locale-specific numbering system, which means for example that people living in Arabic-speaking countries that use western-style Arabic numerals will now see those rather than eastern-style Arabic numerals (Fushan Wen, Plasma 6.0.5. Link)

Removed the “Clear all” button on the fingerprint authorization enrollment UI, because it was a big obvious footgun you could use to destroy all your work to enroll fingerprints (Arthur Zamarin, Plasma 6.1. Link)

Normally I don’t mention changes to Welcome center, but this is a fairly large one: the “Simple by default” page is no longer a big dumb picture of System Settings, but rather shows you a nice mock desktop where you can hover or click on elements to learn what they are and what they do. System Settings is now mentioned on the “Powerful When Needed” page (me: Nate Graham and Oliver Beard, Plasma 6.1. Link):

On System Settings’ Night Light page, the time input fields for manual time mode are no longer a nightmare, because they’ve been replaced with a set of spinboxes (Natalie Clarius, Plasma 6.1. Link):

Yes, ideally these would use a dedicated time picker UI component, but one thing at a time

Information about Night Light transition times is now shown in the tooltip for the Brightness and Color widget (Natalie Clarius, Plasma 6.1. Link):

System Settings’ Screen Locking page has also now adopted the “buttons in the header” paradigm, this time for its “Configure Appearance” button (Jakob Petsovits, Plasma 6.1. Link):

Bug Fixes

Fixed a number of issues in various pieces of KDE software caused by changes in Qt 6.7 (Felix Ernst, Noah Davis, and Fushan Wen, Dolphin & Spectacle 24.05 and Plasma 6.0.4. Link 1, link 2, and link 3)

Spectacle no longer badly misbehaves when asked to take a screenshot of a screen with a scale factor of less than 100% (Noah Davis, Spectacle 24.05. Link)

Fixed an issue whereby Spectacle’s feature to save screenshots with an increasing number sequence would number the screenshots incorrectly in certain circumstances (Noah Davis, Spectacle 24.05. Link)

Closing your laptop’s lid with the keyboard backlight illuminated now correctly restores its brightness level when you open the lid again (Anthony Vital, Plasma 6.0.4. Link)

Fixed multiple issues whereby parts of Plasma would fail to save changed settings if Plasma quickly crashed, exited unexpectedly, or was terminated in an unclean way (David Edmundson, Plasma 6.0.5. Link)

Plasma no longer crashes when removing standalone launcher widgets for apps with no “Open With” context menu action (Fushan Wen, Plasma 6.0.5. Link)

Fixed multiple issues with keyboard focus and selection with search results in Plasma’s Application Dashboard widget—which you may notice is visibly on life support, but this constitutes some of that support 🙂 (Marco Martin, Plasma 6.0.5. Link)

Plasma’s screen chooser OSD once again works as expected on X11 (Fushan Wen and David Redondo, Plasma 6.0.5. Link 1 and link 2)

The Grid layout for System Monitor sensors once again looks good in constrained spaces, such as a thick Plasma panel (Akseli Lahtinen, Plasma 6.0.5. Link)

Fixed a major regression that prevented LUKS-encrypted disks from being decrypted by KDE software using the Solid framework (Kai Uwe Broulik, Frameworks 6.2, but distros should be backporting it to their 6.1 packages too. Link)

Those increasingly ubiquitous contextual help buttons that open explanatory tooltips when clicked no longer have a weird empty space on the right side of their tooltips (Shubham Arora, Frameworks 6.2. Link):

Fixed a Breeze icon that was not changing its color properly when using non-default color schemes (Evgeniy Harchenko, Frameworks 6.2. Link)

Other bug information of note:

Performance & Technical

On Wayland, implemented support for the remote desktop portal’s ConnectToEIS method. This enables applications like Synergy and Barrier that have Wayland support for sending emulated input events to do so in a more convenient way than using the existing methods. Full support for input-leap is pending, but in progress (David Redondo, Plasma 6.1. Link)

System Settings’ Keyboard page has been ported to QML, retaining most of its prior styling but with a modern and extensible codebase (Evgeny Chesnokov, Plasma 6.1. 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

The KDE organization has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, of which I am a board member), and that’s a problem. We’ve taken steps to change this with paid technical contractors—but those steps are small due to growing but still limited financial resources. If you’d like to help change that, consider donating today!

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!

This week in KDE: Explicit Sync

This week something big got merged: support for Explicit Sync on Wayland!

What does this do? In a nutshell it allows apps to tell the compositor when to display frames on the screen, reducing latency and graphical glitches. The effect should be particularly noticeable with NVIDIA GPUs, which only support this rendering style, and not having support for it on Wayland was the most common source of random graphical glitches and slowdowns.

This work was done by Xaver Hugl, and lands in Plasma 6.1. You can read more about it in a recent blog post he wrote on the topic!

In addition to that impactful but technical change, this was a week of many UI improvements and bug fixes as well:

UI Improvements

Improved the visual quality of cross-screen screenshots that Spectacle takes when using multi-screen setups where the screens have different scale factors (Noah Davis, Spectacle 24.05. Link)

Improved quality of blurs, pixelations, and shadows in Spectacle’s annotations (Noah Davis, Spectacle 24.05. Link)

KWrite now shows a hamburger menu by default instead of a traditional menu bar, and the hamburger menu has gained an assortment of curated actions on the top to speed up access to them (Nathan Garside and Christoph Cullmann, KWrite 24.05. Link 1, link 2, and link 3):

Just KWrite! Nothing has changed for Kate.

Filelight now throws fewer annoying modal dialog windows in your face: it now shows directory access errors using inline placeholder messages, and failures to add duplicate exclusion paths using small toasts/passive notifications (Han Young, Filelight 24.05. Link 1 and link 2)

In the “Get New [Thing]” dialogs, the warning shown at the top is now different and more warningy if the available content has the potential to run executable code on your system (David Edmundson and me: Nate Graham, Plasma 6.1 and Gear apps 24.05. Link 1 and link 2):

In Plasma’s traditional Task Manager widget, the threshold for showing any text is now smaller, so you’ll see text more often even at relatively narrow task widths. This is based on the idea that if you’re using this widget, it’s because you want to see text! (me: Nate Graham, Plasma 6.0.4. Link)

On Wayland, the Dialog Parent effect that dims parent windows when dialogs are active now temporarily disables the dimming when the dialog window is a color picker that’s currently picking a screen color (Ivan Tkachenko, Plasma 6.1. Link)

System Settings’ Virtual Desktops page has now adopted the common “controls on the header row” paradigm to increase the space available for content (Jakob Petsovits, Plasma 6.1. Link):

In Plasma’s Power and Battery widget, the controls and UI for blocking sleep and screen locking have moved from the header into the view, matching the location of other interactive controls and preventing the header from becoming super chunky when multiple apps are inhibiting sleep and screen locking (Natalie Clarius, Plasma 6.1. Link):

System Monitor now shows a tooltip with the full text when you hover over an elided piece of text in one of the table views (Joshua Goins, Plasma 6.1. Link)

Made the header message on System Settings’ File Search page frameless and border-touching, making use of new API created to enable this purpose. This API was also used for the message in the “Get new [thing]” dialog shown earlier. So expect to see more of this kind of thing in the coming weeks! (me: Nate Graham, Plasma 6.1. Link 1 and link 2):

Folder popups invoked from a Plasma panel can now be resized if you’d like more space to see everything in them (Ivan Tkachenko, Plasma 6.1. Link)

If you preferred the old style of app launching in Plasma’s traditional Task Manager widget whereby an app’s pinned launcher would disappear when launched, you can now get that back (Niccolò Venerandi, Plasma 6.1. Link)

Middle-clicking a desktop in KWin’s Overview effect no longer instantly removes it, because this made it too easy to accidentally destroy your layout (me: Nate Graham, Plasma 6.1. Link)

The radius of rounded corners throughout Breeze-themed UI elements has now been standardized at 5px, much better than the previous random assortment of corner radii that ranged generally from 2-5px, with some being as high as 8 or 16px! This is an easily bikeshedded topic, so please try to restrain yourselves; check out all the other screenshots in this post, which feature the change—I bet you thought they looked pretty good before I explicitly mentioned that the corner radius had increased, right!? 😁 (Akseli Lahtinen, Plasma 6.1 and Frameworks 6.2. Link)

Bug Fixes

In Dolphin’s Details view, navigating to a subdirectory no longer resets the current sort mode (Felix Ernst, Dolphin 24.02.2. Link)

Gwenview no longer inappropriately blocks sleep and screen locking when simply viewing an image (Daniel Strnad, Gwenview 24.02.2. Link)

Fixed a nasty bug in Spectacle that could cause the rectangular region overlay to get stuck on screen when taking a rectangular region screenshot right after a screen recording without quitting and re-launching Spectacle first (Noah Davis, Spectacle 24.05. Link)

Plasma’s Night Light feature no longer unintentionally connects to Mozilla Location Services to geolocate you for the purpose of figuring out the Night Light transition time when you don’t have that setting turned on (Natalie Clarius, Plasma 5.27.12. Link)

Plasma no longer crashes when you close the notification that gives you an opportunity to undo removing an Icon widget (Nicolas Fella, Plasma 6.0.4. Link)

Modal font dialogs in Plasma 6 are now ugly, but at least they work again; our previous styling approach caused them to end up non-interactive and has been reverted for now pending a better solution (Nicolas Fella, Plasma 6.0.4. Link)

Discover once again shows you everything you have installed on its “Installed” page—not just an assortment of packages that depended on what distro you were using (Harald Sitter, Plasma 6.0.4. Link)

When scrolling down in one app category on Kickoff and then switching categories, random items from the former category no longer sometimes appear inappropriately on the new page (David Redondo, Plasma 6.0.4. Link)

On Wayland, the color picker dialog no longer returns incorrect colors when an ICC profile is applied to the display (Xaver Hugl, Plasma 6.0.4. Link)

Fixed a strange issue whereby items in Plasma’s list view mode Folder View popups on a panel could only be highlighted when moving the cursor downwards, rather than upwards (Akseli Lahtinen, Plasma 6.0.4. Link)

Fixed a bug that made it possible, under certain circumstances, to drag a window completely off the screen (Yifan Zhu, Plasma 6.0.4. Link)

On Wayland, the clipboard menu that appears when you hit Meta+V no longer goes underneath windows set to always be on top (Tino Lorenz, Plasma 6.0.4. Link)

In KWin’s Overview effect, the thumbnails for inactive virtual desktops are now live, not static (David Redondo, Plasma 6.0.4. Link)

Fixed a problem creating new Wireguard VPNs (Stephen Robinson, Plasma 6.1. Link)

Keyboards are no longer sometimes shown as mice on System Settings’ Mouse page (me: Nate Graham, Plasma 6.1. Link)

Rapidly toggling the “Floating” setting for a Plasma panel on and off no longer sometimes causes the panel to get stuck in a position where it’s not floating, but also detached from the screen edge (Vlad Zahorodnii, Plasma 6.1. Link)

Discover no longer mislabels apps that get removed from a Flatpak repo as being not installed when they are in fact still installed (Aleix Pol and Ivan Tkachenko, Plasma 6.1. Link)

Fixed a case where KDE apps could run out of memory when told to open certain types of malformed image files (Mirco Miranda, Frameworks 6.1. Link)

Fixed the most common crash in the Baloo file indexing service, with 113 duplicates as of the time of writing (Christoph Cullmann, Frameworks 6.2. Link)

Fixed a rare case where KIO could exhaust all memory while trying and failing to process HTTP requests under certain unusual circumstances (Harald Sitter, Frameworks 6.2. Link)

WebDAV files accessed through Dolphin or other KDE apps once again show the correct modification times (Fabian Vogt, Frameworks 6.2. Link)

Other bug information of note:

Performance & Technical

After Qt changes regressed this, changing color schemes is once again nearly instant, giving the “blend changes” KWin effect enough time to provide a smooth transition between the colors (Kai Uwe Broulik, Frameworks 6.2 Link)

Files and folders on the desktop that are copied or dragged are now made available via the Portals system, so dropping them into sandboxed apps now works as expected (Karol Kosek, Plasma 6.0.4. 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

KDE has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, which I am a board member for), and that’s a problem. We’ve taken steps to change this with paid technical contractors—but those steps are small due to limited financial resources. If you’d like to help change that, consider donating today!

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!

This week in KDE: real modifier-only shortcuts and cropping in Spectacle

For years KWin has offered modifier-only shortcut handling via an obscure and undocumented method of editing the kwinrc file. Well, no more: in Plasma 6.1, KDE’s shortcut choosers will accept lone modifier keys natively! This makes it much easier to, for example, re-bind what the Meta key does: now you can easily make it open Overview, KRunner, or anything else simply by assigning it directly to that something else. This work required extensive re-plumbing throughout KDE’s software stack and was undertaken by Yifan Zhu, closing multiple Bugzilla tickets in the process—some fairly old. Thanks a lot, Yifan! (Link 1, link 2, link 3, link 4, link 5, and link 6)

But that’s not all! Though bug-fixing is eternal, we’ve largely gotten over the hump for Plasma 6.0, and I’ve noticed that features and UI improvement have occupied more of people’s attention recently. So let’s start with a much-requested one…

New Features

Spectacle regains a Crop tool, this time integrated internally rather than coming from a 3rd-party annotations library. This also happens to fix a related bug (Noah Davis, Spectacle 24.05. Link 1 and link 2):

For laptops with RGB-backlit keyboards, Plasma has gained the ability to keep the backlight color in sync with the active accent color! And support for custom colors is coming too (Natalie Clarius, Plasma 6.1. Link 1 and link 2):

The new automatic crash reporter now gives you the option to let it always download debug symbols in the background to improve the crash reports it generates (Harald Sitter, Plasma 6.1. Link)

Going along with the theme of modifier-only shortcuts, you can now make an unused mouse button simulate pressing a modifier key alone (David Redondo, Plasma 6.1. Link)

Even though Snaps are supposed to auto-update, Discover has gained the ability to let you manually update them if desired (Kevin Ottens, Plasma 6.1. Link)

UI Improvements

Dolphin now shows a visible error message when you use a keyboard shortcut to trigger an action that can’t be performed in the current context, like cutting a file in a read-only folder (Jin Liu, Dolphin 24.05. Link):

In Elisa, you can now switch between list and grid views as you see fit (Jack Hill, Elisa 24.05. Link):

In Elisa, you can now search for albums on the Tracks page (Karl Hoffman, Elisa 24.05. Link)

You can now select multiple wallpapers in Plasma’s “add new wallpaper” dialog (Sahil Arora, Plasma 6.0.4. Link)

Changed Breeze-themed radio buttons and checkboxes to use the “Button” color role as most other interactive UI elements already do, which not only improves visual consistency, but also fixes a visual glitch in QtQuick-based software where these UI elements would have the wrong color some of the time (Akseli Lahtinen, Frameworks 6.1 and Plasma 6.1. Link 1, link 2, and link 3)

List headers in Kickoff now use the standard list header style seen in QtQuick-based KDE apps, which also necessitated creating a version of that component suitable for Plasma, so expect to see it showing up in more places too (me: Nate Graham, Plasma 6.1. Link 1 and link 2):

The Plasma Digital Clock widget’s holiday list picker no longer elides long text; instead it wraps the text, since there’s plenty of space to show it in the long already-scrollable list (Ivan Tkachenko, Plasma 6.1. Link)

Bug Fixes

Okular no longer asks you for a password to open encrypted PDF documents where the encryption isn’t actually applied to simply opening them (Nicolas Fella, sponsored by TU Dresden, Okular 24.02.2. Link)

Fixed a set of related crashes in Plasma that appear to have been a subtle side effect of the recent fix to make apps in Kickoff’s favorite grid disappear immediately when uninstalled (Fushan Wen, Plasma 6.0.4. Link)

Fixed another case where Plasma could crash when you plugged in a new screen (Fushan Wen, Plasma 6.0.4. Link 1 and link 2)

Fixed a rare Plasma crash that could happen when clicking on certain System Tray icons (Fushan Wen, Plasma 6.0.4. Link)

Fixed a case where Spectacle could crash after ending a screen recording when using certain GPU hardware (Fabian Vogt, Plasma 6.0.4. Link)

Fixed bug that had broken the ability to log out within 60 seconds of logging in when using Plasma’s systemd-enabled startup process (Harald Sitter, Plasma 6.0.4. Link)

Fixed an issue that caused two-finger touchpad taps on the Task Manager to not open a context menu with certain, shall we say, “less than premium” touchpad hardware (Fushan Wen, Plasma 6.0.4. Link)

Contributed code hardening for four additional crashes picked up by KDE’s automatic crash reporting system, which as you can tell is proving quite useful! (Fushan Wen again; he’s just that amazing! Plasma 6.0.4. Link 1, link 2, link 3, and link 4)

Fixed the date information in the tooltips of various clock widgets not being localized correctly (Albert Astals Cid, Plasma 6.0.4. Link 1 and link 2)

Fixed a variety of additional weird issues with mouse cursors in video games on Wayland (Xaver Hugl, Plasma 6.1. Link 1 and link 2)

Fixed some visual glitches that could happen on Wayland when you resize certain types of window that open in a maximized state (Ser Freeman, Plasma 6.1. Link)

Other bug information of note:

Performance & Technical

Spectacle is now less likely to show up in its own screenshots when used outside of Plasma and KWin on X11 (Konstantin Kharlamov, Spectacle 24.02.2. Link)

By default, Partition manager now mounts volumes (other than / and /home) with the nofail flag so they don’t block boot-up when not available for some reason (Thomas Bertels, Partition Manager 24.05. Link)

Fixed a memory leak in Plasma’s Networks widget (Fushan Wen, Plasma 6.0.4. Link)

Custom QML layouts for lock screens in Global Themes are no longer honored, as this is too security-sensitive (Marco Martin, Plasma 6.1. Link 1, link 2, link 3, and link 4)

The Dialog Parent effect (the thing that makes windows get dimmed when a child dialog window is open) now works on Wayland (Carlos Garnacho and David Redondo, Plasma 6.1 with Qt 6.8. Link)

Did a major code-quality overhaul of the Plasma Digital Clock and Calendar widgets, which fixed a bunch of fragility, warnings, and some minor glitches, with more to come soon (Ivan Tkachenko, Plasma 6.1. Link)

Automation & Systematization

Wrote a tutorial on how to publish your Android-compatible KDE app on the Google Play store (Ingo Klöcker, 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

KDE has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor that KDE e.V. didn’t pay for, and that’s a problem. We’ve taken steps to change this with paid technical contractors—but those steps are small due to limited financial resources. If you’d like to help change that, consider donating today!

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!

This week in KDE: looking forward towards Plasma 6.1

This week I’d like to highlight a very cool development: the automatic crash reporting facility in the Plasma 6 version of our venerable DrKonqi crash report wizard. Automatic reporting is opt-in, but so far lots of people are opting in, and we’re using this data to get a much better picture of the crashes that our users are actually experiencing than we ever could using Bugzilla! Using this system, at least three such important crashes were fixed this week, two by Fushan Wen (link 1 and link 2) and one by Vlad Zahorodnii (link)–and possibly even more than I missed!

These reports make a difference; they’re not a black hole. So if something crashes, please do use the automatic crash reporting feature in DrKonqi!

In addition, quite a lot of technical and performance work was merged, especially for Discover and the Baloo file indexer. Finally, features and UI polishing are starting to land in Plasma 6.1. In addition to everything listed here, there’s something big that I can’t mention yet since it’s not 100% merged yet, but only 95%! Hopefully next week. 🙂 So stay tuned for that!

New Features

The Power and Battery widget now responds to middle-clicks and scrolls: middle-click will block or re-enable automatic sleep and screen locking, and scrolling will change the active power profile (Natalie Clarius, Plasma 6.1. Link)

UI Improvements

The Power and Battery widget now shows an appropriate icon when you manually block sleep and screen locking (Natalie Clarius, Plasma 6.1. Link 1 and link 2):

Some of the menu items and toolbar buttons in the desktop context menu and global Edit Mode toolbar are now more concise (me: Nate Graham, Plasma 6.1. Link):

The opening and closing animations for expandable List Items in Plasma system tray widgets now respect the global animation speed, and are also a bit faster and more responsive-feeling in general (me: Nate Graham, Plasma 6.1. Link)

“Get new [thing]” dialogs throughout KDE software are now sorted by highest number of downloads first (Ismael Asensio, Frameworks 6.1. Link)

Bug Fixes

Fixed a common crash in Discover related to refreshing KNewStuff content (Harald Sitter, Plasma 6.0.3. Link)

The bug where clicking on certain panel widgets would inappropriately transfer focus to the panel is now actually fixed. It turns out that it was in fact fixed before as well for people living on git master, but I forgot to backport half of it to the stable branch, so it didn’t take effect. Sorry about that. But even if I had, it would have broken other things as it turned out to not be the right fix. This week we have a much better fix that fixes everything and breaks nothing! 🙂 (Niccolò Venerandi, Plasma 6.0.3. Link 1 and link 2)

Power and session actions once again work for people not using the systemd-enabled boot process (David Edmundson, Plasma 6.0.3. Link)

Fixed multiple related issues that would cause panels to switch to a different screen on wake-up or login when using a multi-screen setup with an AMD GPU (David Redondo, Plasma 6.0.3. Link 1, link 2, and link 3)

It’s once again possible to disable Presentation Mode via the same way you enabled it, in the Display Configuration widget (Natalie Clarius, Plasma 6.0.3. Link)

Syncing your settings to SDDM now also syncs the scale factor and screen arrangement correctly on systems where SDDM is running on KWin as a Wayland server rather than Xorg as an X server (Xaver Hugl, Plasma 6.0.3. Link)

Fixed multiple minor glitches with Task Manager window thumbnails related to them being sometimes cut off, displaced, or never showing up at all (Vlad Zahorodnii, Plasma 6.0.3. Link)

Fixed an issue that could cause Discover to crash at launch under certain circumstances (Harald Sitter, Plasma 6.0.4. Link)

In the Plasma X11 session, the Desktop Grid page on the Overview effect can now be closed using the same keyboard shortcut (Meta+G by default) that was used to open it (Niccolò Venerandi, Plasma 6.0.4. Link)

Fixed a case where Plasma could crash after changing the panel position on certain setups (Fushan Wen, Plasma 6.1. Link)

Fixed a case where the Baloo file indexer could crash after you created or renamed files or folders (Méven Car, Frameworks 6.1. Link)

Other bug information of note:

Performance & Technical

Discover is now much faster about showing reviews for apps, especially when doing so immediately after the app is launched (Harald Sitter, Plasma 6.0.3. Link)

Discover is now also faster about displaying information about large offline updates (Harald Sitter, Plasma 6.0.4. Link)

The Baloo file indexer no longer tries to index content on temporarily mounted file systems, such as network shares and overlayfs mounts (Adam Fontenot, Frameworks 6.1. Link)

The list of recently-accessed files that gets saved to disk by open/save dialogs and other consumers of KFileWidget now gets written to the config file for volatile state data, not user-directed config data (Nicolas Fella, Frameworks 6.1. 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

Please help with bug triage! The Bugzilla volumes are still pretty high right now and help is appreciated. If you’re interested, read this.

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!

As a final reminder, 99.9% of KDE runs on labor that KDE e.V. didn’t pay for. If you’d like to help change that, consider donating today!

Free software wisdom

Every week veteran KDE contributor Kevin Ottens posts a bunch of thought-provoking links on his blog, and last week’s post contained one that I found particularly enlightening:

40 years of programming

It’s a collection of wisdom written from someone named Lars Wirzenius who started his software development career decades ago and has seen it all. While I don’t have 40 years of programming under my belt, I do have 16 years in programming, QA, release engineering, and management, and everything Lars wrote rings true to me. I’d encourage everyone to give it a read!

Here are my favorite takeaways:

  • Take care of yourself, or else you’re no good to others.
  • Useful software is too big to create alone, so your most important skill is the ability to collaborate.
  • Write caveman code anyone can understand, unless complexity can be justified by measurably and consistently better performance.
  • Do work in small chunks, and repeat.
  • Diversity of perspective is important, or else you’ll end up accidentally making something that only works for a narrow slice of people.
  • Know who the intended user is, and try to see things from their point of view.
  • Developing software is political. Deal with it.
  • Learn to write, and write stuff down.

But do check out the whole thing!

This week in KDE

The bug-fixing continued this week with the aim of getting Plasma 6.0.3 into a great state. Already the big bugs you folks found have almost all been fixed, and this week a lot of time was spent on some X11 regressions and various crashes that our new automatic crash reporting system was able to find (thanks for submitting those! It really does help). A number of automated tests were also added, and finally some nice UI improvements to round things out. More exciting work is in progress too, but not quite ready to mention here!

New Features

Ark can now open and un-archive self-extracting .exe archive files (Kai Uwe Broulik, Ark 24.05. Link)

System Monitor’s “bar chart” style can now be shown horizontally, not just vertically (Jin Liu, Plasma 6.1. Link)

UI Improvements

Did you know then you can middle-click a file in Dolphin to open it with the first app in the “Open with some other app” sub-menu? I bet you didn’t! I didn’t either. Well, now the menu item for that app indicates this, you can find out! (Kai Uwe Broulik, Dolphin 24.05. Link):

Made the floating panel’s float/de-float animation smoother when using a scale factor, both when using a scale factor above 100%, and also just in general (Fushan Wen, Plasma 6.0.3. Link 1 and link 2)

While you’re in Plasma’s global Edit Mode, you can now click anywhere on a panel to show that panel’s own configuration dialog, rather than having to aim for a tiny little icons-only “configure” button that appears at the end of the panel (Marco Martin, Plasma 6.1. Link):

Entries on System Settings’ Autostart page are now sorted alphabetically, rather than by the order in which they were added (Kristen McWilliam, Plasma 6.1. Link)

Mentioned on System Settings’ Mouse and Touchpad pages that using the middle-click emulation settings will increase click latency by 50ms, so you can make a more informed decision about whether or not to use them (Wladimir Leuschner, Plasma 6.1. Link)

Screen chooser OSD icons now respect the current accent color (Nicolas Fella, Frameworks 6.1. Link):

Bug Fixes

Fixed a recent regression that caused Gwenview to crash when trying to play videos (Nicolas Fella, Gwenview 24.02.2. Link)

Fixed an issue in Okular that caused it to crash when closing a note annotation while spell checking was enabled (Albert Astals Cid, Okular 24.02.2. Link)

Installing a font on Wayland now actually works, rather than crashing System Settings (Nicolas Fella, Plasma 5.27.12. Link)

Fixed a fairly common way that you could get System Settings to crash by applying a new window decoration theme (Nicolas Fella, Plasma 6.0.3. Link)

Plasma no longer crashes when certain music videos are played in Spotify (Fushan Wen, Plasma 6.0.3. Link)

Fixed a recent regression in System Monitor that caused it to crash when discarding changes after editing a page (Arjen Hiemstra, Plasma 6.0.3. Link)

Fixed a strange issue that could cause certain XWayland windows to continuously resize themselves when using certain fractional scale factors (Yifan Zhu, Plasma 6.0.3. Link)

Relaxed KWin’s requirement on Wayland that XWayland windows can only put content on the clipboard when they have keyboard focus, as this was not a requirement on X11 and enforcing it was breaking some XWayland-using apps (David Edmundson, Plasma 6.0.3. Link)

Fixed a recent Fitts’-Law-compliance regression in Qt on X11 that could cause panel widgets to not activate when clicking on pixels right against a screen edge (Fushan Wen, Plasma 6.0.3. or Qt 6.6.3, Link 1 and link 2)

Fixed a recent regression that caused the network speed shown in the Networks widget to always appear as something crazily high (Kai Uwe Broulik, Plasma 6.0.3. Link)

Fixed a recent regression on multi-monitor setups that caused Task Manager widgets to display tasks from the wrong screen and notifications on X11 to appear in the center of one of the screens, rather than the correct position (Fushan Wen, Plasma 6.0.3. Link 1 and link 2)

Fixed a recent porting regression in System Monitor that had made it possible to drag pages up when re-ordering, but not down (Arjen Hiemstra, Plasma 6.0.3. Link)

Fixed a recent regression in the colors of the tiles in System Monitor widgets using the Color Grid visualization (Arjen Hiemstra, Plasma 6.0.3. Link)

Improved the robustness of the code that migrates custom global shortcuts from the old KHotKeys service to the new KGlobalAccel service (Nicolas Fella, Plasma 6.0.3. Link)

Fixed an issue with cursor-based camera control in some games on Wayland (Xaver Hugl, Plasma 6.0.3. Link)

The sub-pixel previews on System Settings’ Fonts page now display properly on Wayland (Du Yijie, Plasma 6.0.3. Link)

The Global menu’s compact button form now disables itself when the current app doesn’t have any global menus, rather than disappearing and causing your panel’s contents to bounce around (me: Nate Graham, Plasma 6.0.3. Link)

Fixed a recent regression causing “Total” sensors in System Monitor and its widgets to not work properly (Arjen Hiemstra, Plasma 6.1. Link)

A bunch of random Breeze icons that can appear in the System Tray which weren’t changing color properly when using non-default color schemes now do change color properly (Nicolas Fella, Frameworks 6.1. Link 1 and link 2)

Fixed a source of mysterious random pointless “Unknown Open Collaboration Service API error.(0)” messages when browsing for content in the “Get New [thing]” dialogs (Albert Astals Cid, Frameworks 6.1. Link)

Fixed a recent Qt regression in System Monitor that caused it to crash when attempting to open the details sidebar on the Applications page (Nicolas Fella, Qt 6.6.3. Link)

Other bug information of note:

Performance & Technical

Kup’s Plasma widget has been fully ported to Plasma 6, so it should start working again with the next Kup release (Simon Persson, link)

Global shortcuts for volume control are now handled by a KDED module rather than the last-active instance of the Audio Volume widget, which was fragile and caused the shortcuts to break if there was no such widget, or if you had two and deleted one and didn’t restart Plasma immediately (Bharadwaj Raju, Plasma 6.1. Link)

Automation & Systematization

Wrote a tutorial for creating KWin effects, and moved it to develop.kde.org (Vlad Zahorodnii and Carl Schwan, link)

Moved the “getting started with KDE development” documentation/tutorial to develop.kde.org, which is a better home for it (Thiago Sueto, link)

Added a whole bunch of tests in KWin to ensure that X11 windows behave properly (Vlad Zahorodnii, link)

Added a test to make sure that KRunner’s main UI works (Fushan Wen, link)

Added a test to make sure the screen locking shortcut works (Kristen McWilliam, 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

Please help with bug triage! The Bugzilla volumes are still high right now and help is appreciated. If you’re interested, read this.

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!

As a final reminder, 99.9% of KDE runs on labor that KDE e.V. didn’t pay for. If you’d like to help change that, consider donating today!

This week in KDE: Dolphin levels up

In addition to lots and lots of Plasma 6 stability work and the beginning of Plasma 6.1 feature work, Dolphin received large amount of development this week, resulting in some nice improvements. Check it out!

New Features

KSSHAskPass (which has the best name of any app in the world, change my mind) now supports SK-type SSH keys (Franz Baumgärtner, KSSHAskPass 24.05. Link)

Gave the Web Browser widget the option to always load a specific page every time, or remember the last-browsed-to one (Shubham Arora, Plasma 6.1. Link):

Info Center has a new page showing you technical audio information for debugging purposes (Shubham Arora, Plasma 6.1. Link)

The icon chooser dialog now has a filter so you can see only symbolic icons, or no symbolic icons (Kai Uwe Broulik, Frameworks 6.1. Link):

UI Improvements

Dolphin’s icon once again changes with the accent color (Kai Uwe Broulik, Dolphin 24.02.1. Link)

Most of Dolphin’s bars now animate appearing and disappearing (Felix Ernst, Dolphin 24.05. Link):

Some folders in Dolphin get special view settings applied by default, such as the Trash and Recent Files/Folders locations. Now these special view settings get applied to those folders even if you’re using the “use same view settings for all folders” setting (Jin Liu, Dolphin 24.05. Link)

Dolphin now has a new tab in its settings window for settings about its panels, which were previously hidden away in a context menu. So far just the Information Panel is represented there, but others may be added later! (Benedikt Thiemer, Dolphin 24.05. Link):

Made touch scrolling in Konsole work better (Willian Wang, Konsole 24.05. Link)

Improved the way Konsole’s text cursor scales on Wayland, especially with fractional scale factors (Luis Javier Merino Morán, Konsole 24.05. Link)

Okular already lets you scroll around a document with the hjkl keys. Now if you hold down the Shift key while doing it, it scrolls 10 times faster! (Someone going by the pseudonym “GI GI”, Okular 24.05. Link)

KRunner-powered search fields in Overview and the Search widget show the same search ordering that other ones already do (Alexander Lohnau, Plasma 6.0.2. Link)

The Power and Energy widget now hides its “Show Battery percentage on icon when not fully charged” option when the system has no batteries (Natalie Clarius, Plasma 6.0.2. Link)

With non-random wallpaper slideshows, Plasma now remembers the last-seen one and starts from there the next time you log in (Fushan Wen, Plasma 6.0.2. Link)

Improved keyboard navigation in Kirigami sidebars powered by the GlobalDrawer component (Carl Schwan, Frameworks 6.1. Link)

Increased the size of the “Get new Plasma Widgets” dialog (Me: Nate Graham, Frameworks 6.1. Link)

Bug Fixes

Fixed one source of issues with the lock screen breaking on X11 by showing a black background. There may be more, and we’re on the case for those too (Jakob Petsovits, Plasma 6.0.2. Link)

Fixed a way that the Battery Monitor widget could cause Plasma to crash (Natalie Clarius, Plasma 6.0.2. Link)

Fixed a way that Plasma could crash when you middle-click tasks in the Task Manager, or rapidly left-click on random audio-playing tasks (Fushan Wen, Plasma 6.0.2, Link 1 and link 2)

On X11, clicks no longer get eaten on part of top panels (Yifan Zhu, Plasma 6.0.2. Link)

On X11, lock and sleep inhibitions once again work (Jakub Gocoł, Plasma 6.0.2. Link)

Fixed most of the incorrectly-colored System Tray icons when using mixed dark/light themes. There’s still one remaining source of this that we found, which is also being worked on (Nicolas Fella, Plasma 6.0.2. Link)

You can once again scrub through songs played in Spotify using the Media Player widget (Fushan Wen, Plasma 6.0.2. Link)

Fixed several issues with panel widgets (including Kickoff) incorrectly passing focus to their parent panel when activated (Niccolò Venerandi, Plasma 6.0.2. Link)

Dragging widgets to or from panels no longer sometimes causes Plasma to crash or makes the widget get stuck in ghost form on the desktop (Marco Martin, Plasma 6.0.3. Link 1 and link 2)

On Wayland, adding a second keyboard layout now causes the relevant System Tray widget to appear immediately, rather than only after Plasma or the system was restarted (Harald Sitter, Plasma 6.0.3. Link)

Fixed a way that Bluetooth pairing could fail (Ajrat Makhmutov, Plasma 6.0.3, Link)

On X11, the screen chooser OSD works again (Fushan Wen, Plasma 6.0.3. Link)

Breeze GTK is once again the default GTK theme (Fabian Vogt, Plasma 6.0.3. Link)

Yet again fixed the login sound so that it actually plays (Harald Sitter, Plasma 6.0.3. Link)

Reverted to an older and better way of sending pointer events on Wayland, which fixes multiple issues involving windows and cursors teleporting unexpectedly while dragging to maximize or de-maximize windows (Vlad Zahorodnii, Plasma 6.1. Link 1, link 2, and link 3)

Fixed a bunch of weird cursor issues with GPUs that don’t support variable refresh rate properly (Xaver Hugl, Plasma 6.1. Link)

Fixed a source of xdg-desktop-portal crashes on boot (David Redondo, Frameworks 6.1 Link)

Fixed two issues with the “Get New [thing]” dialogs that caused them to not show installation progress correctly, and get stuck after uninstalling something (Akseli Lahtinen, Frameworks 6.1. Link 1 and link 2)

System Monitor charts now appear properly for users of 10+ year-old Intel integrated GPUs (Arjen Hiemstra, Frameworks 6.1. Link)

More UI elements throughout QtQuick-based KDE software stop animating when animations are globally disabled, which also fixes an issue where Plasma button highlights would disappear with animations are globally disabled (me: Nate Graham, Frameworks 6.1. Link 1 and link 2)

Other bug information of note:

Performance & Technical

Fixed a source of 25-second Plasma startup delays when using KDE Connect with Bluetooth disabled or absent (Simon Redman, the next KDE Connect release, though most distros have already backported it. Link)

Fixed another source of slow Plasma startups caused by using the Bing picture of the day wallpaper (Fushan Wen, Plasma 6.0.2. Link)

KWin now does direct scan-out even for rotated screens (Xaver Hugl, Plasma 6.1. Link)

Reduced the size of all the wallpapers in the plasma-workspace-wallpapers repo by 10 MB (Martin Rys, Plasma 6.1. Link)

Ported Kile to KDE Frameworks 6. Hopefully this should presage a new release soon (Carl Schwan, link)

Automation & Systematization

Wrote a tutorial about setting up your app’s continuous integration system to package and publish to the Windows store (Ingo Klöcker, link)

Added some autotests for X11-specific window behavior (Vlad Zahorodnii, link)

Other

Rewrote a some chunks of text on KDE neon’s website to make it reflect reality: it is a distro, its target users are those who want KDE stuff fast and can tolerate some instability, and you shouldn’t use the package manager to get apps (me: Nate Graham, link 1, link 2, link 3, and link 4)

…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

Please help with bug triage! The Bugzilla volumes are extraordinary right now and we are overwhelmed. I’ll be doing another blog post on this tomorrow; for now, if you’re interested, read this.

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!

As a final reminder, 99.9% of KDE runs on labor that KDE e.V. didn’t pay for. If you’d like to help change that, consider donating today!

How YOU Help With Quality

In today’s other blog post, I mentioned how we’ve been getting a huge number of bug reports since the Mega-Release. If you’re not in software engineering, this probably seems like a bad thing. “Oh no, why so many bugs? Didn’t you test your software properly!?”

Since most people are not involved in software engineering, this perspective is common and understandable. So I’d like to shed a light on the assumptions behind it, and talk about the challenges involved in improving software quality, which is a passion of mine.

Don’t kill the messenger

See, bug reports are a “don’t kill the messenger” type of thing. Bugs are there whether they get reported or not, and getting them reported is important so you have a more accurate picture of how your software is actually being used by real people in the real world.

In our KDE world, the alternative to “lots of bug reports” isn’t “few bug reports because there are few bugs” but rather “few bug reports because the software isn’t actually being used much so no one is finding the bugs.” What matters more is the severity of the actionable bug reports.

What bug-free software looks like

That sounds so defeatist! Surely it must actually be possible to have bug-free software, right?

Yes. But to achieve it, you have to test literally every possible thing the software can do to make sure it performs correctly in the environment in which it’s doing it. If the software can do infinite things in infinite environments, then testing also becomes infinite and therefore impossible, so combinations get missed and bugs sneak through. Bug-free software must aggressively limit the scope and variety of those environments to just the ones that can be tested. What does that look like in practice?

  • Limit what the software can do in the first place. Remove as many features, options, and settings as possible without compromising the product’s necessary core functionality.
  • Limit how the user can modify and extend the software after release. No user-created themes, widgets, scripts–nothing! Every modification to what the software can do or how it looks must go through a the same QA team that QAd the software in its original state. 1st-party modifications only.
  • Limit the versions of upstream 3rd-party libraries, dependencies, and kernels that the software is allowed to use. Lock those versions and test everything the software can do on those specific versions.
  • Limit how downstream 3rd-party user-facing software (i.e. apps) can interface with the system. Lock it down in a sandbox as much as you can so any misbehavior can’t affect the rest of the system.
  • Limit the hardware that the software stack is allowed to run on. Test everything the software can do only on that hardware.

Does this sound very much like how KDE software is developed, distributed, and used? I’d say it’s more like how Apple builds products (and note that Apple products still have bugs, but I digress)! By contrast: KDE develops lots of features and options; we’re liberal with supported library, dependency, and kernel versions; and we don’t prevent you from installing our software on any random device you can get your hands on.

You can see the challenge right away! The foundation of quality is a set of restrictions that we don’t want to impose on ourselves and our users. You folks reading this probably don’t want us to impose them on you, either.

Quality from chaos

So is it just impossible to ensure quality in a permissive environment? No, but it’s harder. That’s right: we in the KDE free software world set for ourselves a fundamentally more difficult task than the big corporations with their billions of dollars of resources. Given this, I think we’ve done a pretty darn impressive job with the Mega-Release. And judging by initial impressions out there, it seems like many others agree too!

So how did we do it?

We lengthened our beta period to 3 months and relied on bug reports from people using the software in their own personal environments.

Yes you, loyal reader! We wanted to hear how our software was working on your 12-year-old Netbook. We wanted to hear how it worked when plugged into two TVs and a rotated monitor, all through a KVM switch. We wanted to hear how it coped with the most bizarre-looking 3rd-party themes. By using our flexible and non-limited software in your diverse ways on your diverse hardware, you’re testing it and finding all the bugs that we lack the resources to find ourselves.

Does this sort of QA work sound like something you don’t want to do? That’s 100% fine. But then you need for someone else to be the QA team for you. There are two options:

  • Buy a computer with KDE software pre-installed; there are a lot of them now! Then it’s the vendor’s responsibility to have done adequate QA on their own products. Is it buggy anyway? Complain to them or find a better vendor!
  • If you’re going to install it yourself, limit yourself to common hardware, default software settings, and operating systems that are relatively conservative in their update schedules. Then the QA has been provided by others who who already used your exact setup and reported all the bugs affecting it.

Become a superhero

But what if you do want to help out with making the software better for others, but you’re not a programmer? Congratulations, you’re a real-life superhero.

We’ve already talked about reporting bugs. It’s also important to do a good job with your bug reports so they’re actionable! I’ll encourage folks to read through our documentation about this. Low-quality bug reports don’t just waste our time, they waste yours as well!

But where do all those 150-200 bug reports per day that I mentioned actually go? There’s a flip side which is that someone needs to do something with every single one of them. The more bug reports we get (which, again, is good!) the more we need people to help triaging them.

Because the truth is, most bug reports don’t begin life being actionable for developers. They may be missing key information; they may be mistaking a feature for a bug; they may be describing an issue in someone else’s software; they may be about an issue that was already fixed in a version of the software that the reporter doesn’t have; they may be describing a real issue but in an unclear and confusing way; and so on.

The job of bug triagers is to make each of these bug reports actionable. Ask for missing information! Move them to the right products! Set the version and severity appropriately! Mark already reported bugs as duplicates of the existing report! Mark obvious upstream or downstream issues accordingly and direct people to the places where they can report the bugs to the responsible developers! Try to reproduce the issue yourself and mark it as confirmed if you can! And so on. It isn’t terribly glamorous work, so there aren’t very many people lining up to be volunteer bug triagers, unlike developers. But it’s very important. And so every person who helps out adds resources to what’s currently a very small team, making a massive difference in the process.

If you’ve been looking for a way to help out KDE in a way that doesn’t require programming or a consistent time commitment, this is it. Triage a few bugs here, a few bugs there. Chip in when you can. If 30 people each triaged three bugs a day (this would take under 10 minutes, on average), we’d be in an amazing position.

So get started today! I’m available to help in the #kde-bugs Matrix room.

Still don’t wanna? Donate to KDE e.V. so we can eventually hire our own professional bug triage and QA team!