Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Sunday, 9 May 2021

KDE Gear 21.04 including Kate out in the wild!

KDE Gear 21.04 was released some weeks ago.

If you use some distribution like e.g. the rolling release Arch Linux (or Arch derivates like Manjaro), you might already have updated to Kate from that release.

As show in the 21.04 pre-release post, Kate 21.04 really has some nifty new features and improvements on all fronts over 20.12.

Window Store Update => Done!

Unfortunately, unlike for the Linux (or BSD and alike) distributions, where the hard working packagers do the work for us, for e.g. the Windows Store updates, we must do this on our own.

Naturally, thanks to the nice infrastructure like Craft and the Binary Factory, this is no purely manual work.

It more or less just is picking some nightly build and ensuring it properly works.

Thanks to the people in the Kate team, this time, not just me tried the version out (or just me and Hannah .)

And yeah, we found some crashs that need fixing before we could upload the version. (interesting enough in the KTextEditor framework, that behaves just fine on Unices…)

All these fixes will be in the next KDE Frameworks release, until then, Craft blueprints will contain the needed patches.

Kate 21.04 should now be in the Windows Store for all regions. If you don’t know the box art picture there, head over to our mascot page.

Git Integration on Windows => There we are!

My most loved new feature (beside the faster search in files & polished quick open) is the nice Git integration we now have.

You want to create commits in Kate? Check.

You want to push stuff in Kate? Check.

You want to create a feature branch in Kate? Check ;=)

You want to do this on Windows => Yeah, that works perfectly as long as the Git client is installed and in your PATH.

Git Integration on Windows with Kate 21.04

If you use Windows (and you use the store version), I hope this update will help you to use Git with Kate on Windows.

If you want to installed 21.04 in a different way, head to our Get Kate page, using the Windows Store isn’t mandatory at all!

If you use e.g. macOS, yes, the latest stable build will provide naturally all features there, too!

Windows Store statistics

To conclude this post, let’s take a look at the overall store statistics for the KDE e.V. published applications.

Below the overall acquisitions since the applications are in the store, sorted by overall number:

As you see, both Okular & Kate now nearly have 100,000 acquisitions, I think that is rather nice!

Compared to my post end of 2020, Okular has the first time overtaken Kate in the total acquisitions.

In any case, these numbers show that not just a few people really use our stuff on Windows, nice to see this work is appreciated.


A matching thread for this can be found here on r/KDE.

Saturday, 8 May 2021

If you watched enough of the Muppet Show long ago, like I did, then “the continuing stooory, of a cat .. who has gone to the dogs” should trigger Pigs in Space memories. Like a good(?) soap opera, Wayland on FreeBSD just keeps giving material for a new episode, so let’s take a look at recent changes.

I should emphasize again that much of the actual work is being done by other people: much of the time I’m just the monkey clicking things and then complaining on various instant-messanger channels. My favorite response is “that’s fixed already”.

  • Charm Time Tracker (deskutils/charmtimetracker) hasn’t had an upstream release for some time, but there is a patch fixing a crashes-always-after-a-minute on Wayland. It has a downside: idle detection doesn’t work on Wayland (er .. maybe just in KDE Plasma) at all. This will be good for my efficiency numbers.
  • Focus-follows-mouse could be tricked by slowly moving the cursor from one window to another. Reported, fixed upstream for 5.22 and backported to 5.21.4 for FreeBSD for me (being a packager has it’s advantages).
  • Cursor-weirdness was my own fault for fiddling too much with settings. Simplifying the settings made things better. I think I saw one odd cursor – shifted over by one pixel, with wrap-around – this week, but can’t reproduce it.
  • VirtualBox is unhappy, both as a Wayland client and as a XWayland client, in KDE Plasma Wayland but reportedly also in Sway; this shows there are still some specialized protocols to come up with for the special cases like (Full-Screen) VMs.

Until I hit the VirtualBox problem, I had spent all week in Wayland doing the things I always do – building new UI bits in Calamares, hacking on KDE Frameworks, doing FreeBSD ports work and doing web-front-end work for some LDAP tomfoolery – and just didn’t notice. It’s in great shape for me. Huh, maybe this soap opera has a happy ending?

About 30 participants joined the first Kdenlive video café last Tuesday, the 4th of May 2021! We had a nice meeting of about 2,5 hours with inspiring discussions. We got a great feedback and we are already having plans to reintroduce community meetings more frequently…

Several people asked for a recording of the meeting e.g. because the were not able to join (the whole time), but we feared that this might have destroyed the informal atmosphere where people dared to speak freely. We have to think how we will do it in the future, but for this time here is a short written review of the meeting:

macOS Support

MacOS Support is still a goal we want to reach and during the past month we saw some progress there, but we are currently facing a packaging problem with the dbus system. One of the reasons for the slow progress is that none of the Kdenlive team members has a Mac or advanced knowledge in packaging and development on the macOS platform. We are tracking the progress on this GitLab issue:


As a constant topic we also talked about the titler. All an all the titler works well (some bugs have been recently fixed for 21.04) and in comparison to other video editors it is not bad, but there are still many ideas for improvements. The GSoC 2019 project for a QML Titler is not finally ready as there are still multi threading issue that are hard to solve – and at least it is only the backend, the frontend is another big task… To sum it up we have to say that improvements would be nice, but there are more important tasks to do first.


We really need help on updating the manual as it is outdated and features are missing. In consequence users don’t know how to use some features and there are again and again the same questions on Kdenlive’s support channels. The written manual has a different purpose than videos (the manual is more for to look for details whereas video tutorials are for “new comers” explaining whole workflows), both are important. If you want to give something back to the community helping in the manual work group is a great possibility. Even if you don’t feel comfortable with writing texts you can e.g. update screenshots! To get involved read

Marketing, Donations, Social Media,…

We heard several questions around this topic during the café: why is Kdenlive not present on social media platforms like Twitter, YouTube, Mastodon? Why is there no way to donate to for Kdenlives development? What about a Showcase (like e.g. Will Kdenlive come to the Microsoft Store?

For all these questions the answer is almost the same. All these things are nice to have and most of them are already on our todo list. However they are also related to questions concerning branding and legal things like a trademark. We want to solve these issues first before we go further. Another aspect is the work that is required for maintaining all the social media channels, donations, etc.: we are a small team of volunteers and at the moment we would not have the capacity to mange all of this without neglecting other important things.

By the way: Kdenlive is already on Telegram, Matrix, IRC, the KDE Forum and reddit. Further more it is possible to donate to KDE. Kdenlives benefits form those donations as it uses the KDE infrastructure and things like the Sprints are payed by KDE. However if you don’t want to KDE we recommend to put the money on the side to donate to Kdenlive as soon as possible in a hopefully not too distant future.

Roadmap for the near future

Jean-Baptiste is currently working on a refactoring of the jobmanager to fix some major performance issues. A few days ago version 7 of Kdenlives media backend MLT has been release and we already made some steps to support the new version. MLT7 supports time remapping and we want to add this high requested feature soon. Two other features we are going to work on are multiple timelines and advanced trimming tools. During the past releases we had good experience with 1-2 big new features per release and beside that work on polishing and bug fixing.

Don’t miss these events!

Community member Michael Tunnell will start a new series of video editing tutorials with Kdenlive soon and Massimo from the Kdenlive team has been invited to his live video podcast for Sunday, May the 16th.

Roxane is already known by the community for here awesome kdenlive tutorials and will give a Kdenlive live demo on Saturday, May the 29th at the Libre Graphics Meeting 2021!

Other Topics

If you want to report bugs or feature requests please use and read this instruction

Let’s Encrypt revolutionized the SSL certificate management for websites in a short span of time — it directly improved the security of users of the world wide web by: (1) making it very simple to deploy SSL certificates to websites by administrators and (2) make the certificates available free of cost. To appreciate their efforts, compare to what hoops one had to jump through to obtain a certificate from a certificate authority (CA) and how much money and energy one would have to spend on it.

I make use of letsencrypt in all the servers I manitain(ed) and in the past used the certbot tool to obtain & renew certificates. Recent versions of certbot are only available as a snap package, which is not something I’d want to or able to setup in many cases.

Enter acme. It is shell script that works great. Installing acme will also setup a cron job, which would automatically renew the certificate for the domain(s) near its expiration. I have recently setup using nginx as a reverse proxy to a lexonomy service and acme for certificate management. The cron job is supposed to renew the certificate on time.

Except it didn’t. Few days ago received a notification from about imminent expiry of the certificate. I have searched the interweb quite a bit, but didn’t find a simple enough solution (“make the proxy service redirect the request”…). What follows is the troubleshooting and a solution, may be someone else find it useful.


acme was unable to renew the certificate, because the HTTP-01 authentication challenge requests were not answered by the proxy server where all traffic was being redirected to. In short: how to renew letsencrypt certificates on an nginx reverse-proxy server?

Certificate renewal attempt by acme would result in errors like:

# --cron --home "/root/" -w /var/www/html/
[Sat 08 May 2021 07:28:17 AM UTC] ===Starting cron===
[Sat 08 May 2021 07:28:17 AM UTC] Renew: ''
[Sat 08 May 2021 07:28:18 AM UTC] Using CA:
[Sat 08 May 2021 07:28:18 AM UTC] Single domain=''
[Sat 08 May 2021 07:28:18 AM UTC] Getting domain auth token for each domain
[Sat 08 May 2021 07:28:20 AM UTC] Getting webroot for domain=''
[Sat 08 May 2021 07:28:21 AM UTC] Verifying:
[Sat 08 May 2021 07:28:24 AM UTC] error:Invalid response from [NNN.NNN.NNN.NNN]:
[Sat 08 May 2021 07:28:24 AM UTC] Please add '--debug' or '--log' to check more details.
[Sat 08 May 2021 07:28:24 AM UTC] See:
[Sat 08 May 2021 07:28:25 AM UTC] Error renew


The key error to notice is

Verify error:Invalid response from [NNN.NNN.NNN.NNN]

Sure enough, the resource .well-known/acme-challenge/… is not accessible. Let us try to make that accessible, without going through proxy server.


First, create the directory if it doesn’t exist. Assuming the web root as /var/www/html:

# mkdir -p /var/ww/html/.well-known/acme-challenge

Then, edit /etc/nginx/sites-enabled/ and before the proxy_pass directive, add the .well-known/acme-challenge/ location and point it to the correct location in web root. Do this on both HTTPS and HTTP server blocks (otherwise it didn’t work for me).

 6 server {
 7   listen 443 default_server ssl;
43   server_name;
44   location /.well-known/acme-challenge/ {
45     root /var/www/html/;
46   }
48   location / {
49     proxy_pass http://myproxyserver;
50     proxy_redirect off;
51   }
83 server {
84   listen 80;
85   listen [::]:80;
87   server_name;
89   location /.well-known/acme-challenge/ {
90     root /var/www/html/;
91   }
93   # Redirect to HTTPS
94   return 301 https://$server_name$request_uri;

Make sure the configuration is valid and reload the nginx configuration

nginx -t && systemctl reload nginx.service

Now, try to renew the certificate again:

# --cron --home "/root/" -w /var/www/html/
[Sat 08 May 2021 07:45:01 AM UTC] Your cert is in  /root/ 
[Sat 08 May 2021 07:45:01 AM UTC] Your cert key is in  /root/ 
[Sat 08 May 2021 07:45:01 AM UTC] v2 chain.
[Sat 08 May 2021 07:45:01 AM UTC] The intermediate CA cert is in  /root/ 
[Sat 08 May 2021 07:45:01 AM UTC] And the full chain certs is there:  /root/ 
[Sat 08 May 2021 07:45:02 AM UTC] _on_issue_success


With the upcoming KF6 transition we have the chance again to further untangle and clean up dependencies between KDE Frameworks. There’s a number of tools that help us with analyzing the current state of dependencies, one that we didn’t have when KF5 was started is ELF Dissector.

Library-level Dependencies

When looking at dependencies we usually start at the module or library level, with something as simple and widely available like ldd. For nicer visualization, script like KDE’s draw_lib_dependencies exist to visualize the result. CMake also provides a similar option to produce a built-time dependency graph.

Dependency graph of
draw_lib_dependencies output for KF5CoreAddons.

While that is good enough in many cases, sometimes we need to dig deeper, and that’s where ELF Dissector can help. After opening the library or executable to analyze and switching to the dependency view, you’ll find three different ways to look at dependencies, described below.

Symbol-level Dependencies

The first view is closest to a tree view of what you’d get from ldd as well. However, it has one major addition, it shows which symbols (and how many) are used from a library. This helps with determining why a dependency exists in the first place, and to asses how strongly coupled two components are.

Screenshot of ELF Dissector's top-down dependency view.
ELF Dissector showing which symbols KF5Notifications uses from KF5CoreAddons.

This is done by looking at the imported symbols of a component, which means this cannot distinguish how often a specific symbol is used. So even a dependency on just a single symbol can mean a very strong coupling in practice. Nevertheless this is often a good indicator.

Inverse Dependencies

For answering the question why an application or library pulls in a specific dependency the symbol-level view can get hard to navigate when there’s many components involved. That’s where the inverse dependency view comes in. There you can select a library and see everything that depends on it, again down to the symbol level.

Screenshot of ELF Dissector's inverse dependency view.
ELF Dissector showing why and how KF5Contacts depends on D-Bus.

Unused Dependencies

The third view is the list of unused dependencies. What you can see in there heavily depends on whether the --as-needed linker flag has been used or not. Either way, the most common case for a dependency showing up in here is a transitive dependency that ended up in the public link interface of a library that is actually used.

This isn’t a problem as such, but it can be useful to review if everything that’s in the public link interface is really needed there, or if we are leaking implementation details to the outside. Fixing this has no immediate impact on the overall dependency situation, but it does enable future changes without breaking the public interface.

Screenshot of ELF Dissector's unused dependency view.
ELF Dissector showing an unused dependency between KF5XmlGui and KF5Auth.

It’s also worth noting that “unused” in this context merely means that no symbol from a library is used by the component linking to it. That doesn’t however mean that the library can safely be removed, there are a few special cases like ICU’s data library that are used by other means (and that’s also why we can’t just use --as-needed unconditionally everywhere).


There’s of course more that could be done here, for example combining the graph visualization with edge weights based on the symbol counts.

I also should finally get ELF Dissector into the KDE release service to make it easier available via distribution packages. Getting it built as standalone app bundle is unfortunately tricky due to its dependency on internal binutils API.

Plasma 5.22 is just around the corner, and we put the finishing touches on some UI improvements to it, as well as our apps! Check it out:

New Features

You can now limit the update interval of System Monitor graphs (Arjen Hiemstra, Plasma 5.22)

Bugfixes & Performance Improvements

Fixed an obscure way that Konsole could crash when opening its Settings window (Carlos Alves, Konsole 21.04.1)

Gwenview no longer gets confused and sad when asked to open a document whose mimetype does not match its filename extension (Arjen Hiemstra, Gwenview 21.08)

Fixed a way that Plasma could crash immediately upon login when using certain System Tray items, or when switching keyboard layouts (Konrad Materka, Plasma 5.22)

Clicking the “Sleep” button when using Systemd startup mode with an older Systemd version no longer turns the computer off instead of putting it to sleep (Yaroslav Sidlovsky, Plasma 5.22)

Fixed an odd bug that could occasionally cause KRunner to not activate or deactivate when pressing its global shortcut (Fabian Vogt, Plasma 5.22)

When you tell the Clipboard applet to clear history and it asks you if you really want to proceed, clicking “No” after checking the “don’t ask again” checkbox no longer breaks the “clear History” functionality forever; it will now ask you again the next time! (Bharadwaj Raju, Plasma 5.22)

Used swap space is now visible in the new Plasma System Monitor app’s Memory graph (David Redondo, Plasma 5.22)

Opening a .flatpakref file in Discover for an already-installed app no longer presents an odd error (Aleix Pol Gonzalez, Plasma 5.22)

Discover no longer shows an “Uninstall” button on update pages where it doesn’t make sense (Aleix Pol Gonzalez, Plasma 5.22)

The button to configure your screen reader in System Settings’ Accessibility page now actually uh works (how embarrassing) (Carl Schwan, Plasma 5.22)

The kdeinit5 process no longer crashes either randomly or constantly when trying to generate thumbnails during semi-common operations like taking screenshots, copying files, etc (Fabian Vogt, Frameworks 5.82)

User Interface Improvements

Ark now shows a “welcome screen” of sorts if you open it without an archive, and also opens to a saner window size (Jiří Wolker and me: Nate Graham, Ark 21.08):

Spectacle’s options for what to copy after taking a screenshot (if anything) have been substantially clarified in the settings window, and the setting to copy the file path to the clipboard now works even if autosave is turned off (it saves the file to a temp path) (Srevin Saju, Spectacle 21.08):

Gwenview’s sidebar has received a visual refresh to be more in line with current KDE user interface guidelines (Noah Davis, Gwenview 21.08):

Dolphin’s tags menu in the search view now has a “Clear selection” button so those of you who make extensive use of tags can more easily start a new tag-based search (Ismael Asensio, Dolphin 21.08)

The Notifications applet’s “Clear all notifications” action has been moved out of the hamburger menu to make it more accessible, and the applet’s “Configure” button now opens the System Settings Notifications page rather than a mostly empty applet configuration window (me: Nate Graham, Plasma 5.22):

The System Tray Notifications pop-up now closes when the last notification is cleared by using the manual close buttons in the view instead of the “Clear all Notifications” button (Eugene Popov, Plasma 5.22)

Discover’s Sources menu is now accessible and usable with the keyboard (Carl Schwan, Plasma 5.22)

System Settings’ Audio Volume page no longer shows unused and inapplicable settings when the system is using the new PipeWire-PulseAudio compatibility system (Nicolas Fella, Plasma 5.22)

The Task Manager’s “Highlight windows” feature now only triggers when you hover the cursor over a window thumbnail, which makes it useful and not annoying, so we turned it on by default (Bharadwaj Raju, Plasma 5.22)

The System Tray Vaults applet’s “Create new Vault” button now lives in the header, to match the design of other System Tray applets (me: Nate Graham, Plasma 5.22):

The System Tray Battery & Brightness System applet’s header has received an overhaul: the “Configure” button now opens the relevant System Settings page rather than a mostly-empty applet config window, and that window’s only option has been made into a checkable item in the Hamburger menu (me: Nate Graham, Plasma 5.22):

And yes, we know that the “Configure Energy Saving…” item in the hamburger menu is redundant. This is a known bug that will hopefully be fixed soon.

System Settings’ own settings window is no longer too small (me: Nate Graham, Plasma 5.22)

The corner radius of KWin-drawn titlebars now respects the scale factor on X11 (Paul McAuley, Plasma 5.22)

There’s no longer a little empty space on the right edge of a non-maximized panel (Jan Blackquill, Plasma 5.22)

Dolphin’s breadcrumbs bar now displays more user-friendly text for search results (Kai Uwe Broulik, Frameworks 5.83)

The System Settings Browser Identification page has been removed because it was almost completely pointless in this day and age (Nicolas Fella, Frameworks 5.83)

…And everything else

Keep in mind that this blog only covers the tip of the iceberg! Tons of KDE apps whose development I don’t have time to follow aren’t represented here, and I also don’t mention backend refactoring, improved test coverage, and other changes that are generally not user-facing. If you’re hungry for more, check out, where you can find blog posts by other KDE contributors detailing the work they’re doing.

How You Can Help

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.


Hello everyone, this is the first episode from Latte HowTo Sessions. For all these episodes, upcoming Latte v0.10 will be used to demonstrate different options and areas of Latte Dock applicaiton.

- youtube presentation -

  1. Add/Remove launchers
  2. Basic settings window
  3. Add/Remove/Move widgets
  4. "Live Editing" mode
  5. "Rearrange and Configure our widgets" mode
  6. Use Justily alignment to produce a nice looking panel
  7. Justify Splitters


Personally I do not think donations are necessary. Easier thing you can do is to just install from KDE Store the Latte related widgets, they work just fine even with plasma panels. KDE Store provides me some monthly beers because of this. Funny thing in that Latte Separator that I developed in a day provides me most of the beers and Latte Dock that I develop plenty of hours daily for the last three years provides me almost none.. :) I mention it as a funny fact, please do not take it differently.

In the case you still want to donate, you can use the following:

You can find Latte at Liberapay ,     Donate using Liberapay

or you can split your donation between my active projects in kde store.

Saturday, 8 May 2021

KDE today announces the release of KDE Frameworks 5.82.0.

KDE Frameworks are 83 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this version


  • Fix baloo_file autostart with systemd
  • Move baloo_file, baloo_file_extractor to libexec
  • Properly shutdown extractor process
  • Port extractorprocess to WorkerPipe/ControllerPipe helper classes (bug 435521)
  • [XAttrIndexer] Avoid unnecessary reindexing on XAttr changes
  • Cleanup/extend mimetypes for Archive document type
  • Mark Kindle mobipocket variant as type Document
  • Mark various comicbook variants as “Document”
  • Do not crash when a dir is move/delete is detected by kinotify (bug 435143)
  • When adding a folder to configuration, normalize the path semantically (bug 434919)
  • Expose IndexerState enum to QML
  • [DocumentUrlDB] Remove bogus child sanity check

Breeze Icons

  • New Sidebar Show/Hide Icons
  • Revert “Added branches with leaves to Kmymoney icon”
  • Add financial-budget icon
  • Don’t attempt to validate icons when cross-compiling

Extra CMake Modules

  • ECMGenerateExportHeader: add macros for enumerator deprecation warning
  • Fix static Windows builds by not setting /NODEFAULTLIB:libcmt /DEFAULTLIB:msvcrt
  • Fix installation of qm files from po files in the build directory
  • Document the advanced APK packaging options
  • Add a way to pass additional arguments to androiddeployqt


  • Fix cmake detection for tar+zstd
  • Implement KZstdFilter


  • Don’t export UTC timezone as TZID=UTC


  • [KCModuleProxy] Refactor loadModule() for simplicity
  • Remove ComponentsDialog class, not used anywhere
  • Deprecate unused KSettingsWidgetAdaptor class


  • Make the docs state that KConfig::reparseConfiguration() calls sync() if needed
  • Use new version-controlled enumerator deprecation warning macros
  • Deprecate KDesktopFile::readDevice()


  • Use new version-controlled enumerator deprecation warning macros
  • Un-overload KConfigDialogManager::settingsChanged() signals


  • Call ki18n_install() unconditionally


  • KPluginMetaData::instanciate to print the error when it fails
  • Call ecm_install_po_files_as_qm() unconditionally
  • Add SMB2 and CIFS magic numbers
  • KFuzzyMatcher update


  • Remove obsolete license file
  • Relicense file to LGPL-2.0-or-later


  • Add the ContextualHelpButton from some kcms in this import
  • [GridDelegate] Show inline controls for active item too
  • Make GridView KCMs handle keyboard focus in an accessible manner


  • Use new version-controlled enumerator deprecation warning macros


  • Use kstart5 to start the processes, when available
  • Remove duplicated code to start a process
  • Prevent kglobalaccel5 getting activated on non-Plasma systems (bug 430691)
  • [runtime] Avoid service restarts when the X connection is unexpectedly removed

KDE GUI Addons

  • Port from deprecated QFontMetrics::charWidth() to horizontalAdvance()
  • Add KIconUtils::addOverlays() overload to replace KDE::icon()


  • add holidays for srilanka in sinhala
  • Replace moon phase calculation code


  • Remove usage of the register keyword
  • Let gperf generate C++ code


  • Use deprecation macros for KIconLoader::alphaBlending()
  • Use new version-controlled enumerator deprecation warning macro
  • Deprecate KIconLoader::Panel in KF6


  • Support building with OpenEXR 3
  • xcf: fix new[]/delete mismatch, as detected by ASAN
  • ani: convert +1 to -1 so we don’t do a potential integer overflow


  • kcm/webshortcuts: Show icons for web providers
  • KShortUriFilter: Use https:// instead of http:// as default protocol
  • KFilePlacesView: Make icon palette match the widget palette
  • Use new version-controlled enumerator deprecation warning macros
  • Deprecate KFileItemActions::preferredOpenWithAction
  • Port KFileItemActions insertOpenWithActionsTo away from trader constraints
  • Always compile dataprotocol ioslave to be run “in-process on the client side”
  • KFileItemActions: Deprecate desktop file plugin loading of KFileItemActions
  • Proxy KCM: Show a warning when a KIO-specific setting is selected
  • Don’t forward declaration when we already include files
  • Make the openOrExecute dialog modal (bug 430396)
  • ChmodJob: port to AskUserActionInterface
  • Deprecate the remnants of FSDevice-related code
  • Use QStyle::PixelMetric() instead of hardcoding the window frame width
  • kfileitemactions: Keep KAbstractFileItemActionPlugin reusable during lifetime of object
  • Add error signal to KAbstractFileItemActionPlugin
  • Remove KDevicePropsPlugin from KPropertiesDialog
  • KDirOperator: show the progress bar above the horizontal scrollbar (bug 194017)
  • kio_trash: replace KDiskFreeSpaceInfo with QStorageInfo
  • FileProtocol: port from KDiskFreeSpaceInfo to QStorageInfo
  • When changing requestMimeTypeWhileListing to on, clear cached items
  • Add an option to allow slaves to determine mime type when using KIO::listDir
  • CommandLauncherJob: add setProcessEnvironment(QProcessEnvironment)
  • OpenUrlJob: don’t execute .exe files (via WINE) if running executables is forbidden
  • Fix assert in the kioslave executable when putting a slave on hold
  • When comparing KFilItem’s, also compare user and group
  • KPropertiesDialog: call abortApplying() in all plugins where needed
  • Core/Gui split for KUriFilterPlugin
  • Simplify User-Agent code to remove KService/KParts dependency
  • [KFilePlacesItem] Avoid calling KMountPoint::findByPath()
  • Fix memory leak in kpasswdserver, caught by ASAN
  • Add KCoreDirLister::jobError signal
  • Add error handling to CommandLauncherJob


  • SearchField: Stop timer if the user accepted manually
  • Icon: make sure we don’t call a nullptr reply (bug 423183)
  • [org.kde.desktop/Units] Use FontMetrics for fontMetrics
  • Add KDE Store avatar and profile links to AboutPage
  • Fix broken static build
  • Static builds: Let qmlimportscanner find kirigami
  • [OverlaySheet] Fix click to close (bug 435523)
  • [BasicListItem] Don’t unconditionally apply leading and trailing padding (bug 435784)
  • Fix PageRow.replace() when PageRow is empty
  • Fix deployment of static builds on Android
  • Embrace the usage of categorised debugging methods
  • [ListSectionHeader] Unset deprecated supportsMouseEvents: property
  • [ListSectionHeader] use named Kirigami import
  • controls/SizeGroup: shield against nullptr qmlContext (bug 435593)
  • Fix richTextLabel for the initial value of CJK style label
  • Switch some arbitrary numbers to the humanMoment unit
  • Add a note about humanMoment not being for animation durations
  • ColumnView: do not enable animation in setCurrentIndex
  • Do not force active focus in ColumnView::replaceItem()
  • Rewrite columnView::replaceItem()
  • PageRow: use columnView.replaceItem()
  • PageRow: split pagesLogic.initAndInsertPage into several functions
  • Implement ColumnView::replaceItem
  • Revert “disable animations during replace”
  • Fixes restoremode for binding
  • Only send one accepted signal when activating the clear action


  • KUiServerV2JobTracker: Send initial job state along


  • Remove usage of register keyword


  • Deprecate quickengine changedEntries & related methods
  • Do not show error when installation is canceled (bug 436355)
  • NewStuff Dialog: Forward entryEvent signal
  • NewStuff Button: Forward entryEvent signal
  • Make QML GHNS dialog a tiny bit wider (bug 435547)
  • ensure .desktop files are executable


  • Allow to build KNotifications without QtWidgets on Android
  • Remove the taskbar and external process backends on Android
  • Don’t install the notification plugin servicetype file on Android

KPackage Framework

  • Remove kpluginindex.json caching


  • Deprecate Part::iconLoader
  • Use new version-controlled enumerator deprecation warning macros


  • Make DBus dependency on Windows and Mac optional


  • Trigger dataChanged when a Chart’s colorSource’s data changes
  • Fix LegendModel requesting not exising items from sources
  • Correctly signal that ShortNameChanged when updating
  • Drop item creation from Legend and rename it to LegendLayout
  • Rework LegendDelegate to be a Control
  • Add a Logging item for easier deprecation messages in QML
  • Add preferredWidth to LegendAttached
  • Use decorations.Legend as central item for Controls Legend
  • Add a Legend item to decorations
  • Add a dataChanged signal to Chart
  • Convert AxisLabels to use ItemBuilder
  • Introduce ItemBuilder as a generic C++ Repeater equivalent


  • Allow runners to prevent duplicate results (bug 406292)
  • RunnerManager: Do not set the enabledCategories by default
  • querymatch: Add property to display text as multiline string (bug 395376)
  • runnermanager: Deprecate singleModeAdvertisedRunnerIds and runnerName
  • runnermanager: Allow loading runners in single runner mode if they are disabled (bug 435050)
  • RunnerManager: Deprecate single runner mode related methods
  • Allow single runners to be specified only using the launchQuery overload
  • dbus runner: Fix interface definition (bug 433549)
  • runnermanager: Remove logic for deferred runs
  • querymatch: Deprecate unused getter & setter for mimeType


  • Deprecate KMimeTypeTrader
  • Deprecate KPluginTrader
  • Properly deprecate some KToolInvocation methods
  • Include X-KDE-Wayland-VirtualKeyboard


  • Fix memory leaks
  • Make KTextWidgets dependency explicit
  • Fix dragging when folding stuff is around (bug 435500)
  • When there is no selection, disable selection-only search
  • Use a MovingRange for remembering the selection search range
  • Fix incremental selection-only search (bug 327408)
  • Attempt fix crash on dragging (bug 435500)
  • Always do resizing and limit width to 1/2 of screen
  • Make argumentHintTree border less bright and more like Kate::LSPTooltip
  • Make completionWidget border less bright and more like Kate::LSPTooltip
  • fix memory corruption on ‘Close the file, discard..’ (bug 433180)


  • Add VRR to output device and management
  • Use new version-controlled enumerator deprecation warning macros
  • Add support for overscan
  • Bump plasma-wayland-protocols dependency to 1.2.1
  • Bump required PlasmaWaylandProtocols


  • KPageDialog: document automagical connections
  • Enable Unicode support in QRegularExpression where needed
  • Remove pointless tooltip for yes and no KStandardGuiItems (bug 424658)
  • KPageDialog: make it clearer that a button box is added by default


  • Deprecate present windows and highlight windows apis
  • Deprecate WId-based effects API
  • Use new version-controlled enumerator deprecation warning macros
  • Deprecate KWindowEffects::windowSizes


  • Fix initial window size calculations
  • Don’t build with KGlobalAccel on Windows, Mac, and Android


  • Port ModemManagerQt away from QMap::unite

Plasma Framework

  • Add up to 5 event indicators to the DayDelegate
  • Port Plasma::Dialog to QWindow-based effects API
  • Fix PC3.GroupBox.color
  • ContainmentInterface: Set transient parent of submenues (bug 417378)
  • Make the size of the task manager margins as big as the panel ones (bug 434324)
  • Redesign the Plasma Calendar applet
  • [Wayland] Ensure pinned popup end up on the panel layer (bug 400317)
  • [ExpandableListItem] Fix determination of the number of list items
  • Fix month and year not getting updated after reseting date to today
  • Fix PC3 TabButton alignment
  • Port to singleton Theme
  • Fix elide of TabButtons (bug 434945)
  • [widgets/listitem] Increase left/right margins to match top/bottom margins


  • FileItemActions: Use new signal to display errors


  • Draw icon in QQStyleItem (bug 433433)
  • [CheckBox] Rewrite to be nearly identical to RadioButton (bug 435934)
  • [RadioButton] Correct typo
  • Keep context menu above other popups, use dismiss() (bug 428631)


  • Do not search for DBus on Windows & Mac


  • Fix assert when bringing up the contextmenu after starting a compose seyquence

Syntax Highlighting

  • debchangelog: add Impish Indri
  • remove text/plain from Godot
  • systemd unit: merge some RegExpr rules
  • systemd unit: increase version number
  • systemd unit: update to systemd v248
  • add support for Godot’s gd-scripts
  • Bash/Zsh: (#5) fix SubShell context that starts as an arithmetic evaluation ; add regions for all SubShell
  • Doxygen: fix Word style when the word is at the end of line

Security information

The released code has been GPG-signed using the following key: pub rsa2048/58D0EE648A48B3BB 2016-09-05 David Faure Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB

Friday, 7 May 2021

Let’s go for my web review for the week 2021-18.

CSRF, CORS, and HTTP Security headers Demystified

Tags: tech, http, security

Nice summary of several security headers you can have to deal with for HTTP.

The Fediverse – What About Ressources? – WindfluechterNet Blog

Tags: tech, fediverse, social-media, xmpp, matrix

Not very scientific but gives a rough idea of which services are heavy or not in the fediverse. Matrix seems to be still dismal in that regard… I wonder if we’ll see a revival of XMPP, that’d be very funny. - Will Linux Phones stay around this time?

Tags: tech, linux, pinephone, smartphone

Looks like the situation is still fragile for Linux phones but it’s brighter than ever.

The compiler will optimize that away | RoyalSloth

Tags: tech, performance, data-oriented, object-oriented

Excellent reminder about where the limit is for the compiler to optimize things. Nowadays it’s mostly about the memory accesses and then it means that the design matters a lot. Object-oriented designs being far from optimal here. Data-oriented designs fare much better but are definitely less friendly for human brains to reason about them.

Practical SQL for Data Analysis | Haki Benita

Tags: tech, pandas, data-science, databases, sql, postgresql

A good example of using the best tool for the job. Having your whole data analysis pipeline in pandas might not be what you want for performance reason. Very often there’s a relational database you can leverage first.

How does a mutex work? What does it cost? – Musing Mortoray

Tags: tech, multithreading

Ever wondered what’s hiding behind a mutex? This article goes a good job to explain this.

France’s highest court validates mass surveillance in the long term - European Digital Rights (EDRi)

Tags: tech, surveillance

Such a lovely country… Ruling in favor of mass surveillance (again, shall I say) which goes against the CJEU rulings. Way to go… sigh

GitHub - jendrikseipp/vulture: Find dead Python code

Tags: tech, python

Sounds like an interesting tool for Python projects.

You are what you do, not what you say or write – Baldur Bjarnason

Tags: tech, management

In the fallout of the Basecamp debacle a good reminder: talk is cheap, it’s how you act which matters.

Bye for now!

Thursday, 6 May 2021

This month, we’re campaigning for our brand-new Development Fund! Based on Blender’s development fund code, we now have an updated donation system where everyone can manage their own subscriptions.

Join the campaign and become a member on

Krita: created by the community

Krita has always been free and open source software. Hundreds of people have contributed to Krita, all sharing the ideal of making a great digital painting application for millions of users all over the world. The Krita Foundation funds work done on all aspects of Krita, but is completely dependent on donations. Sales in the various app stores also fund Krita, but not though the Krita Foundation — but the Krita Foundation owns the trademark, and it’s the developers working on Krita who decide on Krita’s long-term goals.

Goal: support Krita’s open development in the long term

We have already had two recurring subscription funds, one through PayPal, one through Mollie. In total, there are about two hundred dev fund subscriptions currently. That’s enough to support only one developer and one part-time documentation writer!

The Dev Fund goal is to support all of Krita’s core development, so we won’t be dependent on app stores for that anymore.

  • Support developers to work on Krita’s core codebase
  • Work on special projects
  • Support work like bug triaging and fixing, patch review, documentation

Krita 5

Right now, we’re working on Krita 5. It will be a big release, with a new smudge brush engine, rewritten resource management, vastly expanded animation support and much, much more. We plan to release Krita 5 in August. During this campaign we’ll give you regular updates about the cool stuff you can see is happening for Krita 5.


Currently, the Dev Fund has 200 subscribers. Together with one-time donations, we get about 4000 euros per month — sometimes a bit more, sometimes a bit less.

Allowing continuity is the primary goal of the Krita Development Fund.

With 25,000 euros a month, we could support all current core developers without depending on the income from the app stores.

The post Join the new Development Fund! appeared first on Krita.