Planet KDE

Subscribe to Planet KDE feed Planet KDE
Planet KDE | English
Updated: 18 hours 14 min ago

This week in KDE: yo dawg, I heard you wanted stability

Sat, 2022-09-24 01:26

People are always saying that they want us to slow down on the features and focus on stability for a while. Well, we’ve heard you and we’re doing just that for Plasma 5.26 in general, and specifically are focusing almost entirely on bug work during the one-month beta period. The results so far have been tremendous! I suspect everyone reading this post should find something in the “Significant Bugfixes” section to be happy about! Possibly multiple things. This is the time to file your beta bugs! They’ll get fixed quickly. Let’s all help to make Plasma 5.26 the most stable release ever!

New Features

Kdenlive has now adopted KHamburgerMenu, so if you turn off its normal menu bar (which remains visible by default), you can still access its full menu structure (Julius Künzel, Kdenlive 22.12. Link)

If your keyboard has a “Calculator” button, pressing it will now open KCalc (Paul Worrall, KCalc 22.12. Link)

User Interface Improvements

The global Edit Mode toolbar now has a nicer and smoother enter/exit animation (Fushan Wen, Plasma 5.24.7. Link)

The Plasma Media Player and Notifications plasmoids are now grouped with system services rather than app status indicators, so your apps’ System Tray icons will always be together in a group, without these plasmoids appearing in random-seeming positions among them (me: Nate Graham, Plasma 5.26. Link)

You can once again switch tabs in Kickoff the Ctrl+Tab shortcut, and now also the standard ones too (Ctrl+PageUp / Ctrl+PageDown and Ctrl+[ / Ctrl+]) (Ivan Tkachenko, Plasma 5.26. Link)

The marks you make on the screen using the Mouse Mark effect now appear in screenshots and screen recordings (Vlad Zahorodnii, Plasma 5.26. Link)

On the lock screen, you can now zoom in and out, and clear the password field with the semi-common-ish Ctrl+Alt+U keyboard shortcut (Ezike Ebuka and Aleix Pol Gonzalez, Plasma 5.26 and Frameworks 5.99, Link 1 and link 2)

Tooltips throughout Plasma and QtQuick-based apps now smoothly fade in and out when they appear and disappear (Bharadwaj Raju, Frameworks 5.99. Link 1 and link 2)

Significant Bugfixes

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

In the Plasma Wayland session, Plasma no longer sometimes crashes when dragging items from Kickoff that aren’t on the Favorites page to somewhere else (Fushan Wen, Plasma 5.24.7. Link)

On System Settings’ Fonts page, the sub-pixel anti-aliasing and hinting settings now reflect the true state of reality on first boot as configured by your distro, rather than inaccurately always saying that the system is using RGB sub-pixel anti-aliasing and slight hinting (Harald Sitter, Plasma 5.24.7. Link)

Also fixed the most common Plasma crash, which could happen sometimes when searching using KRunner (Arjen Hiemstra, Plasma 5.26. Link)

Fixed the second-most-common Plasma crash, which could happen sometimes when dragging widgets out of the widget explorer (Fushan Wen, the latest release of the KDE Qt patch collection. Link)

Desktop widgets and icons no longer randomly move around and reset their positions sometimes when you log in! (Marco Martin, Plasma 5.26. Link 1 and link 2)

When using an NVIDIA GPU in the Plasma Wayland session, clicking on Kickoff’s panel button now always opens it as expected (David Edmundson, Plasma 5.26. Link)

On the subject of NVIDIA, we also fixed a major issue with NVIDIA GPUs that could cause various elements of Plasma to be visually corrupted after the system wakes from sleep (David Edmundson and Andrey Butirsky, Plasma 5.26. Link 1, link 2, and link 3)

Right after the system wakes up, the desktop is no longer displayed for a moment right before the lock screen appears (Xaver Hugl, Plasma 5.26. Link)

In the Plasma Wayland session, dragging files to Firefox now works properly again (Vlad Zahorodnii, Plasma 5.26. Link)

Un-maximizing a maximized window while using a floating panel no longer leaves a weird shadow floating in space (Vlad Zahorodnii, Plasma 5.26. Link)

The desktop context menu’s “Add Panel” sub-menu no longer shows non-functional items for “Empty Grouping Plasmoid” and “Empty System Tray” (Marco Martin, Plasma 5.26. Link)

In the Plasma Wayland session, those of you using the latest Frameworks plus Plasma 5.25.5 should now see your widgets and notifications positioned in the right place (Xaver Hugl, Frameworks 5.99 or else distro-patched 5.98. Link)

Floating panels and the corners of Plasma dialogs/popups no longer exhibit the customary dots and other visual glitches you’ve become accustomed to (Niccolò Venerandi, Frameworks 5.99. Link)

Fixed yet another way that some Kirigami-based scrollviews using a recent version of the KDE Qt patch collection could display an unnecessary horizontal scrollbar (Marco Martin, Kirigami 5.99. Link)

Other bug-related information of interest:

Something worth noting is that this week we made our Bugzilla bot start automatically promoting bugs to be 15-minute bugs or very high priority bugs to reduce the manual work for bug triagers. As a result, the total numbers kept going up this week as the bug bot did its work to re-classify old bugs. So the fact that we still managed to keep ahead of that and reduce the totals on net–and during a Plasma beta period too, when people are filing more bug reports than average–is very impressive to me!

…And everything else

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

How You Can Help

If you’re a developer, fix Plasma 5.26 beta bugs! Let’s make this bug list empty before the final release!

Beyond that, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly! Otherwise, have a look at to discover 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!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Categories: FLOSS Project Planets

Shared With Me files in KIO GDrive

Fri, 2022-09-23 13:00

I’ve just merged in kio-gdrive master the support for Shared With Me files. This new feature will be shipped with the next KDE Gear 22.12 release.

Your shared files and folders will be presented in a virtual “Shared With Me” folder (similar to the “Shared With Me” tab in the Google web-UI):

The properties dialog in dolphin will also show the date the file/folder was shared with you (if available):

Please test it and report any bugs you’ll find :)

Categories: FLOSS Project Planets

Web Review, Week 2022-38

Fri, 2022-09-23 07:07

Let’s go for my web review for the week 2022-38.

World of Open Source: Europe Spotlight 2022

Tags: tech, foss, business, economics

Very interesting report although I admit I’m a bit skeptical at the strong “apolitical” message in it. This highlights very well a few challenges specific to Europe. We need to see them tackled I think. It’s nice to see moves in the public sector but clearly it needs to go further and faster. Same thing regarding the creation of OSPOs in companies.

Press release: Use of Google Analytics for web analytics

Tags: tech, google, surveillance

We all know you shouldn’t use Google Analytics. Now we also know that if you’re in Europe and you’re using it, it’s probably illegal.

Open Web Search – Promoting Europe’s Independence in Web Search – Funded by the Horizon Europe Programme

Tags: tech, web, search

Could this lead to the open web index we all need? I hope this research will have high impact.

drones run linux: the free software movement isn’t enough

Tags: tech, foss, ethics

Slightly depressing when it’s laid out like this… still there is some truth to it. Maybe it’s time to rethink a few things.

5 Figma Alternatives for UI & UX Designers - Stack Diary

Tags: tech, design, ux, self-hosting

Since I regularly see Figma used by customers I really hope this will boost adoption on Penpot. A good open alternative you can even self-host.

Rendergraphs and how to implement one

Tags: tech, 3d

Interesting dive into the implementation of a render graph system for a 3D engine.

Wasmtime Reaches 1.0: Fast, Safe and Production Ready!

Tags: tech, webassembly, portability

Definitely a big deal for the development of WebAssembly. We’ll have to see if the security promises hold but this definitely shows interesting features.

Ten challenges for Rust

Tags: tech, rust, complexity, community

Interesting set of challenges indeed. I think Rust is a bit at a crossroad now. The next few years will be crucial, either they will lead to further adoption or it will stagnate and slowly disappear.

A personal experimental C++ Syntax 2 -> Syntax 1 compiler

Tags: tech, c++, complexity, safety

Now this is very interesting. An excellent teaser for Herb Sutter’s CppCon 2022 talk. Let’s see where that goes.

Entitlement in Open Source | Mike McQuaid

Tags: tech, foss, work, life

Good reminder of the sometimes uneasy relationship between users and maintainers. This needs to stay healthy. Users need to know their place and maintainers should feel OK saying no to things.

Cultivating Hospitality

Tags: business, hr, culture, organization

A very important and unfortunately underestimated factor for a sane and welcoming culture.

We Spoke With the Last Person Standing in the Floppy Disk Business – Eye on Design

Tags: tech, surprising, culture, low-tech

The death of the floppy disk has been greatly exaggerated it seems. At least for now…

Photography for geeks

Tags: photography

A long and complete article about the important parameters when taking photos and processing them. So it gives a few tricks for shooting the picture but also when you sit in front of the computer.

Bye for now!

Categories: FLOSS Project Planets

FontForge gains ability to reuse OpenType rules for different fonts

Thu, 2022-09-22 02:08

FontForge is the long standing libre font development tool: it can be used to design glyphs, import glyphs of many formats (svg, ps, pdf, …), write OpenType lookups or integrate Adobe feature files, and produce binary fonts (OTF, TTF, WOFF, …). It has excellent scripting abilities, especially Python library to manipulate fonts; which I extensively use in producing & testing fonts.

When I wrote advanced definitive OpenType shaping rules for Malayalam and build scripts based on FontForge, I also wanted to reuse the comprehensive shaping rules in all the fonts RIT develop. The challenge in reusing the larger set of rules in a ‘limited’ character set font was that FontForge would (rightly) throw errors that such-and-such glyph does not exist in the font and thus the lookup is invalid. For instance, the definitive OTL shaping rules for Malayalam has nearly 950 glyphs and lookup rules; but a limited character set font like ‘Ezhuthu’ has about 740 glyphs.

One fine morning in 2020, I set out to read FontForge’s source code to study if functionality to safely skip lookups that do not apply to a font (because the glyphs specified in the lookup are not present in the font, for instance) can be added. Few days later, I have modified the core functionality and adapted the Python interface (specifically, the Font.mergeFeature method) to do exactly that, preserving backward compatibility.

Next, it was also needed to expose the same functionality in the graphical interface (via File→Merge Feature info menu). FontForge uses its own GUI toolkit (neither GTK nor Qt); but with helpful pointers from Fredrick Brennan, I have developed the GUI to take a flag (default ‘off’ to retain backward compatibility) that allows the users to try skipping lookup rules that do not apply to the current font. In the process, I had to touch the innards of FontForge’s low-level code and learn about it.

Fig. 1: Fontforge now supports skipping non-existent glyphs when merging a comprehensive OpenType feature file.

This worked fine for our use case, typically ignoring the GSUB lookups of type sub glyph1 glyph2 by glyph3 where glyph3 does not exist in the font. But it did not properly handle the cases when glyph1 or glyph2 were non-existent. I’ve tried to fix the issue but then was unable to spend more time to finish it as Real Life caught up; c’est la vie. It was later attempted as part of Free Software Camp mentoring program in 2021 but that didn’t bear fruit.

A couple of weeks ago, Fred followed up now that this functionality is found very useful; so I set aside time again to finish the feature. With fresh eyes, I was able to fix remaining issues quickly, rebase the changes to current master and update the pull request.

The merge request has landed in FontForge master branch this morning. There’s a follow up pull request to update the Python scripting documentation as well. I want to thank Fredrick Brennan and Jeremy Tan for the code reviews and suggestions, and KH Hussain and CVR for sharing the excitement.

This functionality added to FontForge helps immensely in reusing the definitive Malayalam OpenType shaping rules without any modification for all the fonts!

Categories: FLOSS Project Planets

Qt Quick Controls 2: iOS Style

Tue, 2022-09-20 09:39

Qt Quick Controls 2 applications provide a native look and feel for several target platforms by using styles such as the macOS, Windows, or the Material style for Android. This has so far not been the case for iOS. QQC2 applications running on iOS did not look native and developers had to manually customise the controls or create their own style in order to give their UIs a more native look.

Categories: FLOSS Project Planets

The Kdenlive Fundraiser is Live

Tue, 2022-09-20 04:17

Today we break ground. Today we launch the first of what will be many fundraisers for specific projects. Our goal is to get funds directly into the hands of the people who make the software.

Up until now, when KDE has run a fundraiser, or received donations, the proceedings have gone to KDE as a whole. We use the money to fund operational costs, such as office rent, server maintenance, and salaries; and to pay for travel expenses for community members, event costs, and so on. This has worked well and helps the KDE Community and common project to flourish.

But the fundraiser starting today is very different. For the first time KDE is running a fundraiser for a specific project: today we have the ambitious goal of raising 15,000€ for the Kdenlive team. The funds will be given to contributors to help Kdenlive take the next step in the development of KDE's advanced, free and open video-editing application. For the record, on the cards for upcoming releases are nested timelines, a new effects panel, and improving the overall performance of Kdenlive, making it faster, more responsive, and even more fun to work with.

The advantages for the Kdenlive team members are many, but mainly there is no need for them to worry about setting up and managing bank accounts, or, indeed, a whole foundation. KDE's financial, legal, promotional, and admin teams are there for Jean Baptiste, Julius, Camille, Farid, Massimo, and Eugen, and are helping make the process as streamlined and painless as possible.

There are also immense advantages for the KDE Community as a whole. This event will set the basis for similar future fundraisers for all KDE projects. Our aim is that contributors be able to work on their Free Software projects with the peace of mind that comes from having their financial needs covered.

Want to help? Head over to the Kdenlive fundraiser page and donate now.

Want to help more? Join KDE and contribute to building the future of KDE.

Categories: FLOSS Project Planets

Plasma 5.26 Beta available for testing

Mon, 2022-09-19 13:12

Are you using Kubuntu 22.04 Jammy Jellyfish, our current stable LTS release? Or are you already running our development builds of the upcoming 22.10 Kinetic Kudu?

We currently have Plasma 5.25.90 (Plasma 5.26 Beta) available in our Beta PPA for Kubuntu 22.04 and for the 22.10 development series.

However this is a beta release, and we should re-iterate the disclaimer from the upstream release announcement:

DISCLAIMER: This release contains untested and unstable software. It is highly recommended you do not use this version in a production environment and do not use it as your daily work environment. You risk crashes and loss of data.

5.26 Beta packages and required dependencies are available in our Beta PPA. The PPA should work whether you are currently using our backports PPA or not. If you are prepared to test via the PPA, then add the beta PPA and then upgrade:

sudo add-apt-repository ppa:kubuntu-ppa/beta && sudo apt full-upgrade -y

Then reboot.

In case of issues, testers should be prepared to use ppa-purge to remove the PPA and revert/downgrade packages.

Kubuntu is part of the KDE community, so this testing will benefit both Kubuntu as well as upstream KDE Plasma software, which is used by many other distributions too.

  • If you believe you might have found a packaging bug, you can use to post testing feedback to the Kubuntu team as a bug, or give feedback on IRC [1], or mailing lists [2].
  • If you believe you have found a bug in the underlying software, then is the best place to file your bug report.

Please review the release announcement and changelog.

[Test Case]
* General tests:
– Does plasma desktop start as normal with no apparent regressions over 5.24?
– General workflow – testers should carry out their normal tasks, using the plasma features they normally do, and test common subsystems such as audio, settings changes, compositing, desktop affects, suspend etc.
* Specific tests:
– Check the changelog:
– Identify items with front/user facing changes capable of specific testing.
– Test the ‘fixed’ functionality or ‘new’ feature.

Testing may involve some technical set up to do, so while you do not need to be a highly advanced K/Ubuntu user, some proficiently in apt-based package management is advisable.

Testing is very important to the quality of the software Ubuntu and Kubuntu developers package and release.

We need your help to get this important beta release in shape for Kubuntu and the KDE community as a whole.


Please stop by the Kubuntu-devel IRC channel on if you need clarification of any of the steps to follow.

[1] – #kubuntu-devel on
[2] –

Categories: FLOSS Project Planets

Intel Becomes First Krita Development Fund Corporate Gold Patron

Mon, 2022-09-19 06:48

The Krita Foundation is very happy to announce that Intel is the first Patron Member of the Foundation’s Development Fund Intel and Krita have a long history together of successful collaboration on projects like Krita Sketch, improving multithreading and HDR painting.

This strategic collaboration will deliver a series of new painting capabilities, making full use of the 12th and future Gen’s Intel Core Hybrid technology using powerful P-cores and E-cores, as well as the Intel Arc GPUs, all resulting into a more powerful painting experience with less lag. We are also excited about the support for JPEG XL, offering significantly better HDR experience and higher compression ratios, hereby meeting the needs of image delivery on the web and professional photography.’ Jerry Tsao, VP/GM of Intel CCG Mobile Enthusiast & Creator Segment.

With Intel’s support, Krita can build a more stable developer foundation, allowing to hire and retain the best developers in the industry.

With this new Intel partnership, we are already seeing improvements. A recent result is in the Krita 5.1 release: full support for the new JPEG-XL file format. JPEG-XL is a new image format that offers significantly better compression and image quality than normal JPG images. The file format is currently behind experimental flags in most web browsers, so it is an upcoming format that we want to support. Together with Intel we are working with the JPEG-XL developers and the Chrome developers to ensure interoperability.

In the future, the Krita community will collaborate with Intel in the creation of technical documentation in the form of white papers. These white papers will explore new art and painting technologies. Krita will add the new ideas and features in the application, and assist Intel in writing the white paper explaining the new technologies.

What is the Krita Development Fund?

The Krita Development Fund accepts donations to support sponsored developers to work on exciting new features, performance improvements and stability improvements, as well as outreach to users in the form of manuals, tutorials and resources for painters.

Learn more at

The post Intel Becomes First Krita Development Fund Corporate Gold Patron appeared first on Krita.

Categories: FLOSS Project Planets

Promo sprint in Saumur

Mon, 2022-09-19 06:00

Last month, I was in Saumur (France) to attempt a KDE Promo sprint. This was my first sprint since the pandemic, actually this might even be my first ever official KDE sprint as before the pandemic I primarely attended conferences (Akademy, Fosdem, Libre Graphics Meeting, Linux App Summit, …) but no official sprint.

The sprint took place during the weekend and was a great occassion to meet Allon, Aron and Neophytos for the first time. Aside from them I also meet Claudio, Paul, Joseph and Aniqua would I had already had the chance to meet before.

While the sprint was only 2 days long, I think we had some really productive discussions about the general strategie we should take and also how to move forward with some stuck tasks.

Personally I was quite happy to unblock one of my previous idea of creating “KDE for”-webpages. I already created a KDE for Kids page a long time ago but never managed to find the time and motivation to create more of them. So during the sprint, we started to brainstorm a bit for a “KDE for Creators” page, you can already take a look at the wip prototype here and if you have suggestions and want to help we have a phab task.

Aside from all the productive discussions, Allon made us discover Saumur. It’s a really nice city near the Loire. But I need to say that I was quite depressed at the level of water in the Loire, it looked almost empty. Good reminder that climate change is real and human made.

Aside from the sad state of the Loire, we also tasted a lot of good food. We had some gallete bretones on Sunday evening and it was delicious. Allon also invited us Saturday night at his place and he made fouée for us.

bread oven with fouée

It’s a local speciallity and it was really good and I was so full at the end of the day. Thank you Allon and your family for being such wonderful hosts!

Sprint photo

Categories: FLOSS Project Planets

Kdenlive 22.08.1 released

Sun, 2022-09-18 11:06

The first maintenance release of the 22.08 series is out fixing issues with project archiving, same track transitions among others.


  • Fix crash when clip is modified by external app. Commit.
  • Fix paste clip broken until close/repoen app if trying to paste an invalid clip (missing of playlist with different fps). Commit.
  • Fix double clicking mixed clip start corrupting mix. Commit.
  • Fix incorrect mutex unlock in thumbs cache. Commit.
  • Ensure tasks are properly terminated on close, fix incorrect mutex in thumbnailcache causing corruption. Commit.
  • Ensure queued tasks are not started on project or test close. Commit.
  • Don’t remove consecutive spaces in SRT subtitles. Commit. Fixes bug #457878
  • Fix archiving when a clip is added twice in a project. Commit.
  • [Mix Stack] Fix wrongly reversed position slider. Commit.

The post Kdenlive 22.08.1 released appeared first on Kdenlive.

Categories: FLOSS Project Planets

Daily driving the steam deck

Sat, 2022-09-17 06:00

Tuesday night, I managed to break the screen of my laptop. This is particular annoying when you don’t have any external screen at home and need to work. Fortunately the scren wasn’t completely broken, and I managed to survice Wednesday, with half of the screen working.

From half of the screen working on Wednesday, the situation got worse on Tursday and I was forced to find another solution. My only other Linux powered devices at home were a PinePhone and my SteamDeck. Performance wise, the choice was easy and I choose to try to use my SteamDeck. And so my workstation on Tursday and Friday ended up like this:

Steam deck workstation

I connected the dev environment of my laptop with SSH and it kinda worked. I did some commit. I even managed to do call and share my screen for a demo/presentation at work. But still the experience on the small screen wasn’t that great.

Fortunately, I ordered a new laptop (Thinkpad E14 gen 4) and it arrived on Friday afternoon. The new laptop has a working screen but no mainline wifi drivers. So took me a bit more time than expected to build and sign the out-of-tree drivers with secure boot enabled.

I love hardware.

Categories: FLOSS Project Planets

Come to Barcelona for Akademy-es 2022!

Sat, 2022-09-17 05:12

As previously announced, Akademy 2022 will be happening in Barcelona at the beginning of October.

On top of that, Akademy-es [the Spain spin-off of Akademy] is also happening in Barcelona the days before (29 and 30 of September). So if you're interested in KDE and understand Spanish a bit, please drop by and register yourself at


There's also a quite pretty t-shirt you can order but if you want it, you have to register BEFORE the end of the weekend if you want it!


Categories: FLOSS Project Planets

KDE Frameworks 6 FreeBSD CI and Qt Shader Tools Porting

Sat, 2022-09-17 03:30

Since the last update we finally have all Frameworks build with Qt 6 and got one more platform covered on the CI. We are also only two weeks away from Akademy, which is where we’ll make important decisions on how to proceed.


Besides Linux and Android we now also have FreeBSD CI coverage for the Qt 6 builds, thanks to Qt 6 having become available as FreeBSD packages. The roll-out is largely complete, and was remarkably painless. Pretty much everything built without needing additional fixes, and unit test results match the results with Qt 5.

That’s even more surprising given there is one crucial difference in the FreeBSD CI: it doesn’t use separate containers for the Qt 5 and Qt 6 builds. Instead both versions are built on the same system, with both Qt versions installed. This is of course something that eventually has to work, but that has caused various unintended version mixes in the beginning.

The last missing platform for full Qt 5 parity is now Windows. Work for creating a CI image for that is meanwhile under way as well.

Qt Shader Tools

One of the more invasive changes when porting to Qt 6 is the way how shader programs are handled. In Qt 5 that was done by providing OpenGL shaders directly, Qt 6 abstracts the graphics backends (OpenGL, Vulkan, D3D, Metal) and expects shaders in a backend-neutral GLSL format. Those are then translated by the Qt Shader Tools into the specific backend formats. See Eskil’s recent blog post for details.

While that technically makes sense it requires rather substantial changes to the shader code, the build system and the integration code, which is why we had stayed away from this until now. However corresponding changes have meanwhile been integrated in Kirigami, KQuickCharts, Plasma Frameworks and KWin.

Kirigami shader effect test program.

With this done all non-deprecated Frameworks can be built against Qt 6 now.


Another noteworthy milestone was being able to run a nested KWin Wayland session with a Qt 6 based KWin. This is not only an important step towards eventually bringing up a Qt 6 based Plasma session, it’s also rather reassuring given the many changes around Wayland in Qt 6, and the long “blind” work on porting KWin.

Nested KWin Wayland session running qdbusviewer. Akademy

Akademy is now only two weeks away. Besides the KF6-related talks by Alex, Nico and myself, we’ll also have a KF6 BoF on Monday Oct 3rd at 15:00 CEST in room 1. That’s where we have to discuss and take some decisions on how to proceed, as with the current progress I don’t think we are terribly far away from branching anymore.

  • What are the remaining “branch blockers”, ie. things that need to happen before branching?
  • What is the scope for the first 6-based release? Just KF6, or are we aiming at also releasing Plasma 6 at roughly the same time?
  • How would branching practically look like, ie. how do we deal with ongoing work in the 5 branch, how do we manage breaking changes, etc.
  • What defines “done”, ie. when do we get back to regular time-based releases eventually?

As those are questions not only affecting KDE Frameworks contributors, I can only encourage everyone to participate and provide their respective input on this!

Categories: FLOSS Project Planets

This week in KDE: It’s a big one, folks

Sat, 2022-09-17 01:19

This week we have, like, a quadruple whammy. We released the Plasma 5.26 beta, annihilated a huge number of high profile bugs, added new features, and improved the UI throughout Plasma!

New Features

Ark has now been ported to use KHamburgerMenu for a cleaner default user interface (Andrey Butirsky, Ark 22.12. Link):

Not quite a new feature, more like a brought-back-from-the-dead feature, but anyway… You can once again use a flag+label style for the Keyboard Layout plasmoid (me: Nate Graham, Plasma 5.26. Link):

You can now add an “Open Terminal” menu item to the desktop context menu if you want (Neal Gompa, Daniel Vrátil, Jan Grulich, Marc Deop, and Rex Dieter, Plasma 5.26. Link):

Info Center now has a page where you can see support info and technical details about the KWin window manager, which can be useful when filing bugs (me: Nate Graham, Plasma 5.26. Link):

User Interface Improvements

The opening/closing animation speed for the Overview, Desktop Grid, and Present Windows effects has been changed back to what it used to be: 300ms (Xaver Hugl, Plasma 5.26. Link)

When previewing the color temperature adjustment on System Settings’ Night Color page, the message that tells you what’s going on is now in an OSD, not inline on the page (Natalie Clarius, Plasma 5.26. Link)

When the virtual keyboard is visible, there’s now always a button in the System Tray to close it, even when you’re not in Touch Mode (me: Nate Graham, Plasma 5.26. Link)

You can now close notification pop-ups by middle-clicking on them (Kai Uwe Broulik, Plasma 5.26. Link)

The Plasma Widget Explorer, Alternatives pop-up, and all Plasma plasmoids that use expanding list items can now be navigated entirely using the arrow keys (Fushan Wen, Plasma 5.26. Link 1, link 2, and link 3)

You can now use the Ctrl+Alt+[arrow keys] keyboard shortcuts to re-arrange items in Kickoff, the Quick Launch plasmoid, and the Task Manager (Fushan Wen, Plasma 5.26. Link 1, link 2, and link 3)

Inactive Breeze-themed tab bar tabs are no longer quite so distractedly dark when using a dark color scheme (Waqar Ahmed, Plasma 5.26. Link)

Switching to the next month, year, or decade in the Digital Clock plasmoid now shows a nice animation (Tanbir Jishan, Plasma 5.26. Link)

The Networks and Bluetooth plasmoids now display relevant actions in their context menus for faster access (Oliver Beard, Plasma 5.26. Link 1 and link 2):

When using the “Accent color from wallpaper” feature, the accent color generated by the system should now look significantly nicer, better reflecting the most eye-catching color in the image (Fushan Wen, Plasma 5.26 with Frameworks 5.99. Link)

The “Download new Wallpapers” dialog’s footer now looks better and isn’t visually broken (me: Nate Graham, Frameworks 5.99. Link 1 and link 2):

Standalone links in Kirigami-based apps now always have an underline, so you can more easily tell they’re links (me: Nate Graham, Frameworks 5.99. Link)

Significant Bugfixes

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

When using an NVIDIA GPU in the Plasma Wayland session, the Application Launcher menu once again always appears when you click on its Panel icon (Vlad Zahorodnii, Plasma 5.26. Link)

Dragging windows in the Desktop Grid effect once no longer uses a visually broken animation (Ivan Tkachenko, Plasma 5.26. Link)

When the Overview, Present Windows, and Desktop Grid effects are activated with a screen corner, continuing to push the pointer into the corner when the effects are already open no longer closes them immediately (Marco Martin, Plasma 5.26. Link)

Scrolling on the desktop to switch virtual desktops now always works (Arjen Hiemstra, Plasma 5.26. Link)

Even though we haven’t fully finally for-realsies fixed the issue of Plasma desktops and panels being scrambled or lost, panels should now at least be less likely to get lost (Marco Martin, Plasma 5.26. Link)

It’s once again possible to tell identically-named screens apart in the System Settings Display & Monitor page’s screen view and “Identify” feature (Ivan Tkachenko, Plasma 5.26. Link 1 and link 2)

In the Plasma Wayland session, your keyboard delay and repeat rate settings are now respected (Vlad Zahorodnii, Plasma 5.26. Link)

A variety of fixes were made to make autostart apps more likely to autostart successfully when using the Systemd startup feature: Systemd itself is now more tolerant of minor issues in autostarted desktop files, and both KMenuEdit and the properties dialog make it harder for you to create or edit a desktop file in a way that’s invalid (David Edmundson, Plasma 5.26 with Frameworks 5.99 and systemd 252. Link 1, link 2, link 3, link 4, and link 5)

In the Plasma X11 session, KDE apps now correctly remember their window sizes and positions on multi-screen arrangements (Richard Bízik, Frameworks 5.99. Link)

Using a touchpad to scroll through scrollable lists in Kirigami-provided overlay sheets should just kinda be a lot less janky in general (Marco Martin, Frameworks 5.99. Link)

Other bug-related information of interest:

  • 15 Very high priority Plasma bugs (down from 20 last week). Current list of bugs
  • 46 15-minute Plasma bugs (same as last week, but this is because a few new ones were added to replace ones that were fixed). Current list of bugs
  • 143 KDE bugs of all kinds fixed this week. Full list of bugs
…And everything else

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

How You Can Help

If you’re a developer, check out our 15-Minute Bug Initiative. Working on these issues makes a big difference quickly! Otherwise, have a look at to discover 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!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Categories: FLOSS Project Planets

Web Review, Week 2022-37

Fri, 2022-09-16 07:50

Let’s go for my web review for the week 2022-37.

W4 Games raises $8.5 million to support Godot Engine growth – W4 Games

Tags: tech, 3d, godot, business

This could be good news, let’s hope this really pushes Godot forward.

Privacy vs “I have nothing to hide” - Kev Quirk

Tags: tech, privacy, surveillance

As if we still need people to be convinced… apparently we do. So just in case we need a well built argument about it, this post does it.

Microsoft Teams stores auth tokens as cleartext in Windows, Linux, Macs

Tags: tech, microsoft, security

So they’re seriously not using the system credential management to store these… I mean OK if your machine is compromised there’s not much you can do. But for a laptop being stolen for instance it’d make sense for such tokens to be protected by default and require a passphrase to be read by a local application, otherwise you could just easily recover it from the disk if it’s not encrypted.

A taxonomy of hosting options, for personal data security

Tags: tech, self-hosting

This is a welcome list of options to clarify what we’re talking about when we talk about “self-hosting”. It’s not a single concept but a range of approaches.

QR codes | Dan Hollick 🇿🇦

Tags: tech, barcode, qrcode

Nice explanation on how QR codes are made. The most gritty details are left out so it’s easy to follow.

Transcending POSIX: The End of an Era? | USENIX

Tags: tech, system, unix, posix

Very interesting piece. Goes in length about the UNIX history and the evolution of POSIX. It also highlight its limitations and where the design needs to evolve.

The Little Things: My “radical” opinions about unit tests

Tags: tech, tests, tdd

Some good points in this list although I’m not in full agreement with everything (especially the one about the lack of usefulness for TDD). The importance and the impacts of the tooling is often underestimated indeed. The last two random opinions about mocking and overtesting are very much true as well.

9 Practices that Haunt Developers Working with Scrum | by Willem-Jan Ageling | Serious Scrum | Sep, 2022 | Medium

Tags: tech, project-management, scrum, agile

Lots of truth in there. Indeed the proposed “practices” when they get in just kill the promises of things like Scrum.

⭐️ How management by metrics leads us astray

Tags: management, metrics

A good reminder about the impacts of Goodhart’s law, or even simply of measuring the wrong thing. I like the conclusion overall: it’s fine to measure things but that shouldn’t be the center of the decision taking and conversations need to take a larger role into it.

First rule of the team: size

Tags: management, team

Good points to keep in mind regarding team size. It’s a delicate balance to strike in an organization.

ZeroBanana – Senior Engineers are Living in the Future

Tags: tech, organization, information

Interesting point of view. Indeed what might look like magic skills can simply be about having gathered more information. That thus depends on the organization.

Etsy Engineering | Blameless PostMortems and a Just Culture

Tags: management, failure, postmortem, safety, psychology

If you want to get to the bottom of a problem and of why an accident happen, people need psychological safety. This is indeed necessary if you want them to share truthfully why the accident happened in the first place. Otherwise fear will drive the conversation and hide important facts.

Quality Is Systemic - Jacob Kaplan-Moss (

Tags: tech, quality, team

In our industry, we obsess too much over individual performance. In turn it means that the systems we put in place within or around our teams get neglected… this is a problem because it is what has the biggest impact on quality and performance.

Bikes, Not Self Driving Cars, Are The Technological Gateway To Urban Progress

Tags: tech, urbanization, bike

Please this, I’d love to see more bikes everywhere.

The world’s 30 most beautiful bookshops

Tags: book, library, travel

Definitely a good list of places I’d love to visit and get lost into.

Bye for now!

Categories: FLOSS Project Planets

Plasma 5.26 Beta Testing

Fri, 2022-09-16 07:42

Plasma 5.26 Beta was released yesterday

And now we need your help testing it. Download KDE neon Testing edition and install it on a machine (do backups etc or use a spare computer if you can).

Please help with reporting but also reviewing bugs that others have reported.

One big addition in this release is Plasma Bigscreen, a plasma workspace for your television. Install it along with auro-browser and plank-player and plasma-remotecontrollers and log into the Bigscreen session. We plan to make a KDE neon edition with a dedicated Bigscreen install soon.

Categories: FLOSS Project Planets

KDE PIM in July and August

Thu, 2022-09-15 05:52
KDE PIM is the set of applications that helps you manage your email, contacts, appointments, tasks and more. Since our last report covering KDE PIM in May and June, the PIM applications and libraries have seen over 1200 changes from almost 30 contributors. Let’s go over some of the biggest updates. New features Kalendar I … Continue reading "KDE PIM in July and August"
Categories: FLOSS Project Planets

Teaser of Pepper & Carrot Episode 3

Wed, 2022-09-14 06:59

The Morevna Project has released a teaser of a new episode of Pepper&Carrot Motion Comic, which is made using Krita and other open-source tools.

Pepper&Carrot is a webcomic created by David Revoy, who is known for his contributions to Krita and other libre art projects. The sources of the webcomic are available to everyone under CC-BY license and the team of Morevna Project used them to create the animated series.

There are already two episodes of the series released – Episode 6 in 2017 and Episode 5 in 2021. The new episode has number 3 and is expected to be released by the end of August.

Right now the Morevna Project team  is looking for sponsors, who wish to get their name listed in final credits. The collected funds will go for producing more episodes (there are 2 more episodes already in production). You can visit this link if interested.

The post Teaser of Pepper & Carrot Episode 3 appeared first on Krita.

Categories: FLOSS Project Planets

Plasma 5.26 Beta

Tue, 2022-09-13 20:00

Today we are bringing you the preview version of KDE’s Plasma 5.26 release. Plasma 5.26 Beta is aimed at testers, developers, and bug-hunters. As well as our lightweight and feature rich Linux Desktop this release adds a Bigscreen version of Plasma for use on televisions.

To help KDE developers iron out bugs and solve issues, install Plasma 5.26 Beta and test run the features listed below. Please report bugs to our bug tracker.

The final version of Plasma 5.26 will become available for the general public on the 6th of October.

DISCLAIMER: This release contains untested and unstable software. It is highly recommended you do not use this version in a production environment and do not use it as your daily work environment. You risk crashes and loss of data.

See below the most noteworthy changes that need testing:

Plasma Bigscreen

Plasma Bigscreen is a user interface for your television.

Aura Browser

Browser for a fully immersed Big Screen experience allowing you to navigate the world wide web using just your remote control.

Plank Player

Multimedia Player for playing local files on Plasma Bigscreen

Plasma Remotecontrollers

Translate various input device events into keyboard and pointer events for your bigscreen television.


Components relating to Flatpak ‘pipewire’ use in Plasma.

  • Discover now lets you choose the frequency with which it notifies you about new updates
  • Discover now displays content ratings for apps
  • Discover now lets you change the name used for submitting a review
  • Discover now has a “Share” button on each app’s details page
  • The pop-ups of Plasma widgets in the panel are now resizable from their edges and corners just like normal windows, and they remember the sizes you set, too!
  • Quite a lot of Plasma widgets have gained improved accessibility characteristics, after using them with a screen reader
Kickoff App Menu
  • You can now click on a letter header in Kickoff’s “All Applications” view to be taken to a view where you can choose a letter and be zoomed right to the apps that start with that letter
  • Kickoff now has a new non-default “Compact” mode that lets you see more items at the time.
  • When using a horizontal panel, Kickoff can now be configured to display text and/or remove the icon
System Settings
  • It’s now easier to preview wallpapers: just click on them and the desktop will change to show you what the wallpaper would look like
  • Plasma now supports wallpapers with different images displayed when using a light color scheme vs a dark color scheme
  • Animated images can now be used as wallpapers, either standalone, or even as a part of a slideshow
  • Support for keyboard navigation in more applets
  • Typing in the Overview effect now filters windows when there are any matching the search text, in addition to doing a KRunner search when no open windows match the search text
  • Support for re-binding the buttons of a multi-button mouse
  • System Settings’ Night Color page now lets you use a map to choose a manual location
  • On System Settings’ Night Color page, you can now set a day color in addition to a night color
Wayland Support
  • In the Plasma Wayland session, it’s now possible to adjust how a graphics tablet’s input area maps to your screen coordinates
  • It’s possible to select if apps will be scaled by the compositor or by themselves to avoid having blurry apps on Wayland
  • In the Plasma Wayland session, it’s now possible to disable middle-click paste

Remember to check and see if your bug has already been reported before reporting a new one.

View full changelog
Categories: FLOSS Project Planets

No Yes/No, yes?

Tue, 2022-09-13 19:03

How some evening supermarket shopping is triggering some API work…

Human Mind vs. Machine Mind

Some time ago I ran into a variant of a self-service checkout system in a supermarket which, when asking for applying the data collection identity card, used a dialog with the button options “Yes” & “No”. Being privacy-positive, my thoughts were, yes, I want to keep my data private, and was about to press the “Yes” button. Only to check once more and find that the question actually was “Do you want to use our card?”. Which made me wonder why in the year 2022 new systems are developed that apply that old pattern of “Yes” & “No” replies. And reminded me that also in newer software made in the KDE community I had seen new appearances of that scheme. Had it not been found to be inferior, from what I had seen by-passing in the HMI field?

What the Human Interface Guidelines Say

Let’s see what in 2022 the guidelines for some prominent UI systems recommend for buttons in dialogs.

Apple’s Human Interface Guidelines for Alerts (dialogs) about text to use on buttons:

Aim for a one- or two-word title that describes the result of selecting the button. Prefer verbs and verb phrases that relate directly to the alert text — for example, “View All,” “Reply,” or “Ignore.” In informational alerts only, you can use “OK” for acceptance, avoiding “Yes” and “No.” Always use “Cancel” to title a button that cancels the alert’s action.

Google’s Material guidelines on behavior of Alert dialogs:

Don’t use action text that fails to indicate what the selection will do. “Cancel” and “Delete” better indicate what will occur in this dialog.
[ed.: comment on a “Don’t” example using “NO”/”YES” buttons]

Microsoft’s Fluent Design System guidelines on buttons of Dialog controls:

Use specific responses to the main instruction or content as button text. An example is, “Do you want to allow AppName to access your location?”, followed by “Allow” and “Block” buttons. Specific responses can be understood more quickly, resulting in efficient decision making.

And respective recommendations can be also found in guidelines of FLOSS projects:

Haiku’s Human Interface Guidelines hold for Alert Windows this:

Avoid Yes / No button labels. It is much better to use the name of the action in the label, such as Save Changes / Discard Changes. Only in very rare cases are Yes / No labels the best choice.

Also KDE’s Human Interface Guidelines state on Modal Message Dialog:

Buttons should clearly indicate the available options using action verbs (“Delete”, “Rename”, “Close”, “Accept”, etc.) and allow the user to make an informed decision even if they have not read the message text. Never use “Yes” and “No” as button titles.

And the GNOME Human Interface Guidelines recommend on Action dialogs:

Label the affirmative button with a specific imperative verb, for example: Save or Print. This is clearer than a generic label like OK or Done.

When looking at older guidelines, e.g. in the NeXTSTEP User Interface Guidelines from November 1993 in the section “Naming Buttons in an Attention Panel” can be read:

When naming buttons in an attention panel, you should label each one clearly with a verb or verb phrase describing the action it performs. The user shouldn’t have to read the text of the attention panel to be able to choose the right button. Thus, generic labels (like Yes and No) aren’t appropriate, as they tend to cause user errors.

And similar, to little surprise, the variant in the OpenStep User Interface Guidelines from September 1996 in its section “Naming the Buttons in an Attention Panel”:

Label each button clearly with a verb or verb phrase that describes its action. Users should be able to read the names of the buttons and choose the right one. They should not need to read other text on the panel. Avoid “generic” labels like Yes and No, because they are not clear and lead to user errors. Avoid using OK unless it is the only button in the attention panel.

So seems the authors of all the HIGs checked agree on avoiding Yes & No. But is that actually founded on data from science & research, or did they just copy from each other?

Backed by Research?

On a quick look I could not find related scientific research reports that could back up the guideline recommendations. But instead I came across research about the related field of designing questionnaires, on the topic of preventing errors in the given answers e.g. due to misunderstandings or lack of concentration. And that seemed to confirm that people gave more correct answers and also felt it simpler to do when the items representing the choice (e.g. a text next to a checkbox) themselves had clear unique references to the choice instead of being abstract items whose meaning only could be known by the assignment to a choice in the question itself. Abstract items being things like colors, shapes, positions, numbers or the very Yes & No.

Not seen discussed or even researched, but my theory would be that things are worse even when there is a memory effect and something could mean the opposite in other similar choices.

Own experience with soda machines or coffee machines would confirm that, less mistakes remembered when pushing a button with the image of the wanted drink on it over entering a number on a dial to express the selection. Even more when the motivation for a drink was temporary brain insufficiency

(If a reader has some pointer to related public papers, happy to add here).

API-Driven UI

By personal experience a lot of software is produced patch-by-patch, feature-by-feature, idea-by-idea. Often by people who at most learned how to write syntax-conforming code. And to be efficient, typically things are developed using resources which are available, e.g. deploying existing standard libraries. Thus instead of UX engineers designing HIG conforming UI stories directing the implementation, as theory would suggest, it is the API and any documentation around it of existing UI components libraries.

Legacy API Rooting for Yes & No

One might remember more “Yes” & “No” buttons in older software. One reason might be that those texts (and their localized variants) need less horizontal space on the screen, something to consider for sure in low-dpi times. But then also still in hi-dpi times, when there are other constraints requiring very short texts to have it fit on the display.

Another reason was that it saves resources in the own software, if one just has to pass a flag to denote a set of predefined standard buttons with their texts and possibly icons instead of having to maintain and carry around all the data in the own executable and then pass it over at runtime. And such flag idea is supported by the API of legacy libraries.

The classic Microsoft Windows Win32 API provides a MessageBox function, to show a modal dialog:

int MessageBox( [in, optional] HWND hWnd, [in, optional] LPCTSTR lpText, [in, optional] LPCTSTR lpCaption, [in] UINT uType );

The argument uType is used with flags to define the buttons to use in the dialog, like MB_YESNO or MB_YESNOCANCEL. Those buttons have hard-coded text . The function return value indicates which button was pressed, like IDYES or IDNO.

This function signature and related definitions have been also carried over to other MS APIs, see e.g. .NET’s System.Windows.Forms.MessageBox with MessageBoxButtons and DialogResult. So still continuing to have developers write “Yes” & “No” options dialogs, despite some HIG from the same company (see above) recommending not to do that.

Borland’s (now Embarcadero) Visual Component Library (VCL) has been following the same spirit offering the function Vcl.Dialogs.MessageDlg:

function MessageDlg( const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint ): Integer;

The Buttons argument takes flag values like mbYes and mbNo, while the matching returned value are defined by constants like mrYes or mrNo. Latest version 10.4 Sydney at least has an overload with an additional argument CustomButtonCaptions: array of string. But the flags and constants keep the code centered around the concepts of Yes and No.

Another classic UI library is Java’s Swing. It provides a class javax.swing.JOptionPane to use for standard dialog boxes. While the developer can add any custom UI components to the button row, the class itself provides prominently documented convenience API to use predefined button sets by optionType argument values like YES_NO_OPTION or YES_NO_CANCEL_OPTION. Using those flags saves resources needed to come up with own texts and any needed localization, so a developer has motivation to use those.

Then there is Qt. It has had the class QMessageBox (now part of Qt Widgets) providing a modal dialog. That has an enum with values like QMessageBox::Yes and QMessageBox::No, which is used in the class methods to reference predefined button as well as to return the user choice. Static convenience methods like QMessageBox::question() use Yes & No as default arguments, with no option to use custom buttons.

QMessageBox::StandardButton QMessageBox::question( QWidget *parent, const QString &title, const QString &text, QMessageBox::StandardButtons buttons = StandardButtons(Yes | No), QMessageBox::StandardButton defaultButton = NoButton );

Custom buttons can be used when manually creating a QMessageBox instance, but the involved flags and constants also here keep the code centered around the concepts of Yes and No.

Again the API was carried over to own newer products, here the QtQuick API. The QML type QtQuick.Dialogs.MessageDialog has a property standardButtons, which takes a flag set for predefined buttons, .like QtQuick.Dialogs.StandardButton.Yes and QtQuick.Dialogs.StandardButton.No.

The sibling type from the QtQuick Controls 2, QtQuick.Controls.Dialog, also has a property standardButtons, which takes a flag set for predefined buttons, here QtQuick.Controls.Dialog.Yes or QtQuick.Controls.Dialog.No. With this type one can customize the button properties in the Component.onCompleted method, but as with QMessageBox the involved flags and constants also here keep the code centered around the concepts of Yes and No.

Looking further, Gtk also has had methods around a Gtk.MessageDialog, with the main instance creation function being:

GtkWidget* gtk_message_dialog_new ( GtkWindow* parent, GtkDialogFlags flags, GtkMessageType type, GtkButtonsType buttons, const char* message_format, ... );

The argument buttons is used to reference predefined sets of buttons, e.g. GTK_BUTTONS_YES_NO. The dialog will emit a signal when the user chose a button, using values like GTK_RESPONSE_YES or GTK_RESPONSE_NO. One can also only add custom buttons with own text and ids. A note in the documentation for Gtk.ButtonsType hints at least that GTK_BUTTONS_YES_NO is discouraged by GNOME’s HIG.

Oh Yes: KDE Frameworks with Oh-Nos

The KDE Frameworks, a set of extensions around Qt, have quite some APIs designed decades ago. Among them are in the KMessageBox namespace convenience methods around message dialogs, for more feature-rich variants of the static methods of QMessageBox and reflecting the accepted state of art at the time. By the time they have grown into a large set, all encoding their specifics in the method names. But never got adjusted to meet the newer state of the art when it comes to recommended texts on the buttons, including KDE’s own HIG.

Examples are:

ButtonCode questionYesNo( QWidget *parent, const QString &text, const QString &title = QString(), const KGuiItem &buttonYes = KStandardGuiItem::yes(), const KGuiItem &buttonNo = KStandardGuiItem::no(), const QString &dontAskAgainName = QString(), Options options = Notify ); ButtonCode questionYesNoCancel( QWidget *parent, const QString &text, const QString &title = QString(), const KGuiItem &buttonYes = KStandardGuiItem::yes(), const KGuiItem &buttonNo = KStandardGuiItem::no(), const KGuiItem &buttonCancel = KStandardGuiItem::cancel(), const QString &dontAskAgainName = QString(), Options options = Notify ); ButtonCode warningYesNo( QWidget *parent, const QString &text, const QString &title = QString(), const KGuiItem &buttonYes = KStandardGuiItem::yes(), const KGuiItem &buttonNo = KStandardGuiItem::no(), const QString &dontAskAgainName = QString(), Options options = Options(Notify|Dangerous) ); ButtonCode warningYesNoCancel( QWidget *parent, const QString &text, const QString &title = QString(), const KGuiItem &buttonYes = KStandardGuiItem::yes(), const KGuiItem &buttonNo = KStandardGuiItem::no(), const KGuiItem &buttonCancel = KStandardGuiItem::cancel(), const QString &dontAskAgainName = QString(), Options options = Notify );

The return type ButtonCode being an ernum with values like Yes and No.

Recent API additions for some more asynchronous variants, though without convenient one-method-call code, by the class KMessageDialog continue the pattern. An instance can be only created by defining its type in the constructor method:

KMessageDialog::KMessageDialog( KMessageDialog::Type type, const QString &text, QWidget *parent = nullptr );

Where the argument of enum type KMessageDialog::Type has values like QuestionYesNo, QuestionYesNoCancel, WarningYesNo, or WarningYesNoCancel. To signal the user choice, the class reuses the enum type StandardButton from QDialogButtonBox , with values like QDialogButtonBox::Yes or QDialogButtonBox::No.

Searching the current sources of all KDE software using QWidgets technology for the UI, one can see all that API is heavily used. While many places have seen follow-up work to use custom, action-oriented texts for the buttons, as recommended by the KDE HIG, yet the code itself has to keep using the Yes and No semantics, being part of the API.

The spirit of this API can be again found in the message API available to the KIO workers to request interaction with the user by the front-end:

int KIO::WorkerBase::messageBox( const QString &text, MessageBoxType type, const QString &title = QString(), const QString &buttonYes = QString(), const QString &buttonNo = QString(), const QString &dontAskAgainName = QString() );

The argument of enum type MessageBoxType has values like QuestionYesNo, WarningYesNo, or WarningYesNoCancel. Similar patterns in the front-end interface classes.

KDE Frameworks’ QtQuick-based UI library Kirigami with its Kirigami.Dialog and Kirigami.PromptDialog copies the problems of Qt’s QtQuick.Controls.Dialog, having a property standardButtons taking a flag set for predefined buttons by values like QtQuick.Controls.Dialog.Yes or QtQuick.Controls.Dialog.No.

With all this API, and also not a single comment in its documentation about what the KDE HIG has to tell here, and a community reaching out explicitly also to non-educated developers, it is little surprise that even new code written in the KDE community these days uses the discouraged Yes/No dialog pattern.


With the upcoming KDE Frameworks 6 API series around the corner, it would be good to have some substitute API done before, so the HIG-conflicting API could be deprecated still for KF5. And KF6 would only hold API trapping developers into more HIG-conforming UIs.

Some, sadly non-exciting proposals to address this should appear in the next days, both as further blog posts as well as MR with actual code.

Categories: FLOSS Project Planets