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

Monday, 26 July 2021

Setup on Windows

setting up mingw on windows is PITA, at first since i am not used to backslash for filepaths, it load the gdb printers, i then realised that it does not come with python enabled. Downloaded a new one it does not come with python3 instead it is python 2.7.

I could not find any mingw that is built with python3 on windows, if you do send me a link here.

New Printers

  • QFile

    this private class has the following structure

    type = class QFilePrivate : public QFileDevicePrivate {
    QString fileName;

    it inherits from a QFiledeviceprivate, but the size of the qfiledeviceprivate is not consistent across operating system, architectures and qt5 versions.I got the list of offset from the qtcreator types this problem exists for also qprocess (not fully implemented as of now) and for others as i may not be able to get it size for all operating systems, architectures and qt5 versions.

    relevant commit

  • QDBusMessagePrinter

  • QUUidPrinter from here

Fixes and Tests

  • Added QByteArrayPrinterTest
  • Fix QFileInfoPrinter causing segfaults when calling a method that does not exist commit
  • The tests only runs when CMake builds successfully

Here is a link to the repo

Hi reader! It's been some time since I have posted a blog on my GSoC project. I am writing this blog to keep you updated with the development of Krita. To avoid duplicating code I have gone through relevant part of existing code in Krita (again). I must say it always amazes me as the … Continue reading GSoC’21: Week 4-7 with Krita

mobile upload dialogue

Tok now has TWO new completely revamped upload dialogues: one for desktop, and one for mobile. Despite how much of the app is spent using stuff that isn't the upload dialogues, the upload dialogues took a LOT of time and work to get implemented correctly.

The mobile dialogue makes it convenient to browse through your most recent photos, videos, music, and files to share them with your friends.

video upload dialogue on mobile

music upload dialogue on mobile

files upload dialogue on mobile

On desktop, the upload dialogue now offers a preview of your file, and for images, the option to compress it.

photo upload on desktop

video upload on desktop

music upload on desktop

file upload on desktop

Sending State

send state

The sending state of outgoing messages is now displayed with a little icon by the timestamp.

Adjusted Chat List Look

adjusted chat list look

The look of the chat list has been slightly adjusted, to make it look more like other KDE apps. More information is shown, such as the sending status of outgoing messages and the timestamp of the latest message.

Improved Pasting

Tok now has improved pasting capabilities, able to paste from apps that put images on the clipboard directly like Firefox and Spectacle now.

Obtaining Tok

Tok can be built from source from

There's a Telegram room for Tok available at, where you can come on and chat about anything Tok related, such as asking questions on using or building Tok.


Interested in contributing? Come on by the dev chat and say hello!

Tags: #libre

Sunday, 25 July 2021

Kubuntu Groovy Gorilla was released on October 22nd, 2020 with 9 months support.

As of July 22nd, 2021, 20.10 reached ‘end of life’.

No more package updates will be accepted to 20.10, and it will be archived to in the coming weeks.

The official end of life announcement for Ubuntu as a whole can be found here [1].

Kubuntu 20.04 Focal Fossa and 21.04 Hirsute Hippo continue to be supported.

Users of 20.10 can follow the Kubuntu 20.10 to 21.04 Upgrade [2] instructions.

Should for some reason your upgrade be delayed, and you find that the 20.10 repositories have been archived to, instructions to perform a EOL Upgrade can be found on the Ubuntu wiki [3].

Thank you for using Kubuntu 20.10 Groovy Gorilla.

The Kubuntu team.

[1] –
[2] –
[3] –

Last week brought a significant new addition: the schedule view. It, and all of the other features explored in last week’s post, have been added over the course of this week and are now part of the master branch of Kalendar!

  1. !8: Improved event info drawer, event collection editing, attachments
  2. !9: Add undo/redo functionality
  3. !10: Add a schedule view to Kalendar

This week brings a number of smaller visual tweaks and a significant new feature that has involved a lot of wrangling inside Kalendar’s guts. Let’s go through ’em!

Making the incidence editor prettier

!11: Improve appearance of incidence editor

The incidence editor’s has been modified to make it nicer to look at and easier to differentiate between its different sections. The description textarea has been moved to the top, and separators have been added between each of the model-driven sections (attendees, attachments, reminders, and recurrence exceptions).

Additionally, these model-driven sections have been changed to use much more visually attractive Kirigami components.

Tweaks to the calendar views

!10: Add a schedule view to Kalendar (and tweak the month view)

Kalendar’s views have seen some small changes. First, the schedule view: on desktop, the padding on the cards has been reduced in order to present more incidences at once, since on desktop the cursor allows you to click on smaller cards just as precisely.

Additionally, both the schedule and the month view now let you double-click on a date in order to instantly open the event addition window set to the date you double-clicked on. Right-clicking opens a context menu that lets you specify what kind of incidence you’d like to add.

New incidence types

!12: Add support for more incidence types

That’s right! A lot of work has gone into Kalendar this week in order to let you view, edit, and add different types of incidences. Now, you can add todos in addition to events to your calendars. This has meant significant changes under the hood, which should make work to add support for additional types of incidences much more straightforward.

Including new types of incidences has also meant some changes to the UIs of different parts of the application. Event addition buttons are now replaced with menus that let you select the type of incidence you want to add, for example. Both the month and schedule views now show what type of incidence something is alongside its name. The layout and contents of the incidence editor also change depending on what sort of incidence you are adding or modifying. In the case of todos, you can also mark them as complete or incomplete from the incidence information drawer.

This merge request is big, so it is still under review (sorry!) but it should land over the next few days.

Coming up next

Up next will be to finish tailoring the different aspects of Kalendar to accommodate new incidence types. This will include changes to the incidence editor to include support for additional and specific features of todos. Journals will also be added in the next few days.

Also coming up is the addition of a view focused on todos — but more on that when it’s ready. 😉

Is there anything you’d like to see added to Kalendar? Get in touch! I’m on Matrix.

Saturday, 24 July 2021

The Skrooge Team announces the release 2.26.1 version of its popular Personal Finances Manager based on KDE Frameworks


  • Correction bug 436006: import not working with woob bank 3.0
  • Correction bug 436081: Help text needs to be escaped
  • Correction bug 436328: there's no word "reconciliate" in English, should be reconcile
  • Correction bug 439494: Downloading currency using fails with UnicodeDecodeError
  • Correction: Small fix for FEC monthly report
  • Correction: Migration on new APIs. Need a API key now
  • Correction: Fix deprecated knsrc file location
  • Feature: Add confirmation message when an import is triggered by a double click on an imported file

Get it, Try it, Love it...

Grab Skrooge from your distro's packaging system. If it is not yet included in repositories, go get it from our website, and bug your favorite distro for inclusion.

Get Involved

To enhance Skrooge, we need you ! There are many ways you can help us:

  • Submit bug reports
  • Discuss on the KDE forum
  • Contact us, give us your ideas, explain us where we can improve...
  • Can you design good interfaces ? Can you code ? Have webmaster skills ? Are you a billionaire looking for a worthy investment ? We will be very pleased in welcoming you in the skrooge team, contact us !

This is part three of a series of posts describing a potential new API for dealing with countries, country subdivisions and timezones in KI18n, following the previous one country to timezone mapping, covering how we can query the timezone and country or country subdivision information by geographic coordinates.


The API for this is fairly straightforward, pass a geographic coordinate in, and get the respective feature at that location back:

  • KCountry::fromLocation(float latitude, float longitude)
  • KCountrySubdivision::fromLocation(float latitude, float longitude)
  • KTimeZone::fromLocation(float latitude, float longitude)

This doesn’t need to overly precise coordinates, even GeoIP-based positions with an accuracy of a few kilometers provides useful results in most areas.

Data Sources

The data sources for this are the same we already used in the last post:

Both are based on OSM data.

Compact Storage and Indexing

The source data however is huge and slow to process, we need to convert that into a compact form allowing efficient storage. For this we reuse prior work from KItinerary which contains a z-order curve based coordinate to timezone index.

There’s a few improvements and extensions over the original code though. Most notably we can now represent multiple features per location, while using the fact that there is only a small set of feature combinations actually occurring. This allows us to look up not only timezones but also the country or the country subdivision by location, without significantly increasing the needed storage size.

The QGIS Python script doing the processing also got optimized a lot, the original version from KItinerary needed about eight hours, the new one only needs about 15 minutes while producing a more detailed result. This makes it much more feasible to experiment with tweaking the various parameters to get to optimal results.

Choosing Parameters and Conflict Resolution

Obviously we can’t just magically reduce the hundreds of megabytes of source data by two orders of magnitudes without trading in spatial resolution, how much depends on the parameters of the index generation script.

There’s three values to keep an eye on:

  • For how much of the earth’s surface do we return a result?
  • For how much of the earth’s surface do we return the wrong result?
  • The size of the index data.

To understand how we can influence those it’s useful to have a quick look at what the index generation does conceptually.

  • Split the earth’s surface in rectangular tiles (currently: 2¹¹ x 2¹¹). Cut off uninhabited polar regions to have more tiles for inhabited areas (currently: 80°N and 60°S). For our current parameters that results in tiles roughly 10x20 km at the equator, and increasingly smaller towards the poles. This controls how much surface area we can cover, and how large features have to be in order to be visible at all.
  • For each tile, check which of the features in that tile actually conflict. For example a tile overlapping the French/German border would see two timezones Europe/Berlin and Europe/Paris. Those two are (at least for the present and near future) equivalent, so we just pick one of those and don’t have an actual conflict. For the country we obviously can’t do that, so there we wont be able to return a result.
  • For each feature conflict, discard those features that only cover a small fraction of the tile (currently: 2%). This trades correctness within a few hundred meters of a border for a larger coverage area.

With the above mentioned parameters, we get to an index size of about 950kB, and cover 99% of the non-polar regions for timezones and countries, as well as 98% for (first level) country subdivisions, and we shouldn’t get wrong results when being away at least 300 meters from a border.

This is a decent trade-off for many use-cases, further reducing the tile size results in a rapidly growing index size for a decreasing win in precision.

There are ways to break this of course, land-locked and shaped against the tile orientation mini-countries such as Lichtenstein can fall through the cracks entirely, even more so their subdivisions. Similarly, very fine-grained country subdivisions can also be missed, but in those locations we tend to at least get a correct country information.


There’s two more remaining aspects to be sorted out now:

  • Human readable and translated timezones names. Unlike with countries there is no canonical form for this, applications tend to use different approaches to represent timezones. It’s still unclear which building blocks for this can be offered by KI18n.
  • Looking up the language of a country or country subdivision, as well as human readable and translated language names. This needs a bit more thought as well, as code referring to languages often rather expects locales (area and/or script variants used in a specific area), as well as the available translation catalogs on the system.

Feedback for all this is very welcome, on the implementation but also regarding use-cases and requirements you have in your application. Check the corresponding Phabricator task and the Gitlab branch for this, or find me in the #kde-devel channel on Matrix, the weekly KF6 meetings (Monday 15:00 UTC) or the kde-frameworks-devel mailing list.

This week I have two particularly large things to present! Not Steam Deck levels of large, but still pretty cool, I think. 🙂

First of all, David Redondo and Kai Uwe Broulik implemented the power profiles feature! This allows you to specify how your computer should balance energy use against performance. You can switch modes at any time using the Battery and Brightness applet, and you can configure which profile gets used automatically when plugging or unplugging the power cord. The feature will be available in Plasma 5.23 with a newer computer that supports it when using Linux Kernel 5.12 or greater.

Hmm, this thing is starting to look a bit crowded

Next, the new Kickoff launcher menu that was introduced in Plasma 5.20 has received a gigantic code overhaul which fixes many bugs, improves performance and accessibility, tightens up the user interface, and adds a few commonly requested features. Among the fixes:

Here’s how it looks now:

Big thanks to Noah Davis for completing this exhaustive change! It will be released in Plasma 5.23.

More New Features

You can now configure whether the footer action buttons in Kickoff have text or not, and you can opt to show all the power and session actions at once if you prefer (Maxim Leshchenko, Plasma 5.23):

Sensor labels in System Monitor can now be changed and given custom text (David Redondo, Plasma 5.23)

The System Settings Login Screen page’s synchronization feature now syncs your screen arrangement as well, so that the login screen UIs are positioned properly on all your physical screens (Aleix Pol Gonzalez, Plasma 5.23):

Bugfixes & Performance Improvements

Konsole’s window is no longer a tiny tiny rectangle the first time you launch the app (Konsole 21.08)

Okular now scrolls by the correct distance using the PageUp/PageDown keys when its scrollbars are disabled (David Hurka, Okular 21.08)

The “Start a Slideshow” menu item in Dolphin’s context menu is now translated (Yuri Chornoivan, Gwenview 21.08)

Opening the Digital Clock applet’s settings dialog no longer closes the applet’s popup if it has been deliberately pinned open (David Redondo, Plasma 5.22.3)

When using systemd-homed, entering your password incorrectly once on the login screen no longer causes all subsequent unlock attempts to fail (Gibeom Gwon, Plasma 5.22.4)

The Bluetooth widget now works properly when placed directly on the Panel, as opposed to when it lives in the System Tray (Nicolas Fella, Plasma 5.22.4)

System Monitor is now hugely faster to launch (David Redondo, Plasma 5.22.4)

The grid items in the System Tray’s expanded popup are now always perfectly pixel-aligned so they will not become blurry (Derek Christ, Plasma 5.22.4)

Using QTimer in KWin script now works again (Vlad Zahorodnii, Plasma 5.22.4)

In the context menu for desktop items, pressing the shift key to switch between “Move to Trash” and “Delete” now works when a sub-menu is open (Derek Christ, Plasma 5.22.4)

Global shortcuts for apps whose desktop files have uppercase characters in their filenames now work properly, and their entries in the System Settings Shortcuts page now always display the correct icons (David Redondo, Plasma 5.22.4)

Plasma Notifications with embedded links now use the link color from the Plasma theme rather than the application color scheme, fixing bugs in cases where these differed such as when the Breeze Twilight theme is applied (Kai Uwe Broulik, Plasma 5.22.4)

Category lists in the Unsplash Picture of the Day wallpaper’s configuration page are now sorted alphabetically, rather than semi-randomly (Arnaud Vergnet, Plasma 5.22.4)

Website Favicons displayed in KRunner that come from a browser using Plasma Browser Integration are now nice and crisp when using a high DPI scale factor (Kai Uwe Broulik, Plasma 5.22.4)

Opening the System Settings User Feedback page no longer briefly makes Discover appear in the Task Manager (Plasma 5.23)

In the Plasma Wayland session, global shortcuts once again work while popups that would otherwise steal focus (on X11) are open (Andrey Butirsky, Plasma 5.23)

Fixed a case where searching in Dolphin could cause the kdeinit5 process to crash (Ahmad Samir, Frameworks 5.85)

User Interface Improvements

Dolphin’s Places panel now elides text when it’s not wide enough to show everything, rather than showing a horizontal scrollbar (Eugene Popov, Dolphin 21.08):

Every one of Dolphin’s zoom levels now has a different icon size associated with it; no longer will changing the zoom level sometimes cause the size of the grid to change but the icons stay the same size (Eugene Popov, Dolphin 21.12)

Panels using the Adaptive Transparency feature now enter transparent mode when the Show Desktop effect is in use (David Edmundson, Plasma 5.22.4)

When multiple devices are mounted, the Device Notifier applet now shows the “Unmount All” action inside the hamburger menu instead of as the lone button on a new toolbar that appears (Eugene Popov, Plasma 5.23):

When browsing app lists in Discover, the icon of the source that the app comes from is now displayed inside the button that also lists the name of the source (me: Nate Graham, Plasma 5.23):

The Kimpanel candidates popup now looks better (Mufeed Ali, Plasma 5.23):

The question mark button in the titlebar is now hidden by default for dialog windows (me: Nate Graham, Plasma 5.23)

Discover no longer misleadingly shows the wrong date of last update for apps that fail to provide this information themselves (Aleix Pol Gonzalez, Plasma 5.23)

In System Monitor, the app-specific process list view now sorts by memory usage by default, just like it does elsewhere (Felipe Kinoshita, Plasma 5.23)

Event indicator dots on the Plasma Calendar widget and the Digital Clock popup are now more visible no matter what color scheme or Plasma theme you’re using (Carl Schwan, Frameworks 5.85)

Kirigami-based apps’ “About” pages now display a “Get Involved” link that takes you to (Felipe Kinoshita, Frameworks 5.85):

…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.

Friday, 23 July 2021

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

A Facebook engineer abused access to user data to track down a woman who had left their hotel room after they fought on vacation, new book says

Tags: tech, facebook

This company is just an enabling environment for toxic behaviors… it’s so clear each time some information about how they work leaks out.

Revealed: leak uncovers global abuse of cyber-surveillance weapon | Surveillance | The Guardian

Tags: surveillance, dystopia

Here we go for another surveillance scandal…

Germany’s national healthcare system adopts Matrix! |

Tags: tech, matrix

This is excellent news. I like to see more adoption of Matrix. We’ll finally find out how it scales in practice. ;-)

Framework | Framework Laptop pre-orders are now open

Tags: tech, hardware, repair, laptop

Now that looks like a very interesting modular laptop. I’d be interested to test it and would love to see some KDE stuff installed on it by default. ;-)

What’s delegation? - Jacob Kaplan-Moss

Tags: management, delegation

Interesting definition of delegation

“Give Away Your Toys” - Jacob Kaplan-Moss

Tags: management, delegation

And a good approach to pick what to delegate.

Make Failure A (Safe) Option - Jacob Kaplan-Moss

Tags: management, delegation

Good set of advice on how to handle and plan for failure when delegating.

Delegate Outcomes, Not Methods - Jacob Kaplan-Moss

Tags: management, delegation

Again, very good (and short) advice about delegation.

Planning & estimating large-scale software projects

Tags: tech, project-management, estimates

This is a sane approach and a good list of steps for estimating at large scale.

The epistemology of software quality – Increment: Teams

Tags: tech, management, engineering, quality

Very interesting exploration on software engineering “facts” and what we can really do to increase quality. Unsurprisingly caring for the people seems to be the top factor.

Detached window memory leaks

Tags: tech, frontend, memory, garbage-collector

Interesting exploration of an easy to introduce memory leak in frontend code.

oss-security - CVE-2021-33909: size_t-to-int vulnerability in Linux’s filesystem layer

Tags: tech, security, linux

You gotta love narrowing… It regularly ends up instrumental in vulnerabitilies.

Smart Pointers in Rust: What, why and how?

Tags: tech, rust, programming

Nice comprehensive list of the smart pointer types in Rust.

The Tyranny of Spreadsheets | Tim Harford

Tags: tech, history, spreadsheets, quality, knowledge, data, data-science, health

It’s a very nice paper on spreadsheets and how we use them. It got enough history in it to make me tick (goes back all the way to the 1300s!). Also it’s well balanced, it’s not just about blindly blaming tools but looks at their shortcomings but also how we often use the wrong tool for the task… and then end up managing data and knowledge really badly.

Focusing on Blue - 10 Projects

Tags: optics, surprising, physics

Fascinating exploration of our perception of the blue color. Bottom line: our eyes aren’t great cameras at all and the brain compensate quite a lot. This together plays against our perception of blue.

Bye for now!

Thursday, 22 July 2021

The Steam Deck is going to use KDE Plasma as a desktop. Since I happen to know how Plasma works, I thought I'd do a video explaining its main features for the new people who would discover Plasma with it. If you want to help me make these videos: Patreon: Liberapay: Paypal: My website is and if you want to contact me, my telegram handle is [at] veggero. Background music by: After The Fall -