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

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 -

Wednesday, 21 July 2021

I had a look at a small XmlListModel based project of mine and started migrating the code from Qt 5.12 to Qt 6.2. The code ports pretty cleanly, but there are some caveats to be aware of.

As I’m lazy, I started by changing the imports from 2.12 to 6.2 and tried running the code. The first changes I had to make was to change the import from QtQuick.XmlListModel to QtQml.XmlListModel. I also learned that the import statement no longer requires a specific version to be specified – I’m not sure if I’m a fan of that quite yet.

The second change was that XmlRole has been renamed to XmlListModelRole, and that it no longer has a query property, but an elementName and attributeName property. I guess that saves Qt from having to implement support for XPath queries, and in my use-case (and most others), this should still be enough.

The last change I had to made was to silence a warning. It is no longer encouraged to connect objects directly to signals in QML. In my case, it was animations triggered by the onAdd and onRemove signals in a model. The trick is to declare the animation (in my case, a pair of SequentialAnimation instances, separately. Provide an id for them, and then call start on that id in the signal handler.

All in all, a quite pleasant migration experience with only superficial API changes to handle. All logic could be used as is. Nice!

**Note: This is a preview of the post for automatic RSS parsers, it is currently under testing and does not represent the format and the structure of the actual blog post. Please use the title hyperlink to access the post itself!**

Google Summer of Code 2021 with KDE, how it started and what we aim to achieve.

Blog at last + How it started

Ah yes! The blog is working at last! I suppose that this is my first Google Summer of Code blog literally a month after GSoC started (though I did have final exams for the first week so I suppose that could slide?), though I promise that I have been working on the project just fine throughout the past month. To learn more about how I dug my blog setup into a semi-pit and then back out with its slightly unusual structure and deployment, please visit !

Back in mid-March, the winter quarter had just ended, and I decided to start doubling down on my top choices for Google Summer of Code 2021 and start digging deeper into the sub-groups of the organizations. But I ended up spending 4 to 5 days (and technically many months of usage after that) getting Arch Linux properly set up on my computer that took a good 3 minutes just to POST (but booting from disk afterward is pretty quick though). It took me not too long to realize that the remaining time left was not enough to explore multiple organizations, so I quickly doubled down on KDE.

My initial thoughts were to do something along the lines of accessibility, however, after seemingly finding no mentors who could easily support me on such a customized project, I stumbled across the pre-defined project of the KDE Connect app for iOS, and somehow managed to get in contact with the mentors, look over the codebase, submit a merge request, and finished the entire proposal in a couple of days (?)

The fix we found consisted of something along the lines of calling the same function twice somehow??

Goals: UI + backend + functionalities modernisation

But this existing codebase was something special. Since it was introduced by a GSoC 2014 project, it went many years without any commits until 2019 when Inoki, one of my current mentors, took maintenance of the project and started examining it again while adding changes here and there along the way.

Surprisingly, I was able to get the mostly 7-years old project built on my machine running the latest macOS and Xcode, albeit with a bit of cocoapods fiddling. Upon opening the app on my iPhone 7 Plus, I immediately felt like it was 2013 again with the iOS 8-9 aesthetics and the fact that the app looks like it was simply ballooned up from an iPhone 5s display into the larger one of the 7 Plus (and I can only imagine what it would look like on today's taller iPhone-X era displays). Immediately, it was clear that the UI of the app would benefit greatly from a complete overhaul, preferably using the newest framework, SwiftUI, to put the project on a solid footing for future contributions.

Lots of things have changed in iOS since 2014. But the most relevant regarding KDE Connect is perhaps the fact that some of the features and system APIs needed to implement KE Connect’s functionalities that were previously absent in 2014 (such as an official file browser/user-facing file system) have been added to iOS and usable by apps throughout the years, which should make things easier. It would no doubt still take a fair amount of time to figure out all the protocols and get all the features implemented, very possibly beyond the period of this GSoC project, but the project aims to nonetheless set a solid foundation for further work to be done.

Aside from using system APIs, another major goal is to rewrite the LAN network communications backend written in objective-C with the current Swift Network framework. Aside from seemingly strange behaviours and a noticeable high power-drain/processor usage, the app also makes use of the continuously copying from the system clipboard to pass information around, which continuously triggers the clipboard access alert on iOS 14. Therefore, a sizable rewrite is needed to make sure that things function more optimally going forward.

All in all, these are the primary goals that the GSoC project aims to accomplish. There will soon be more posts following up on these topics, such as UI/UX testing with the UI rewrite and LAN testing with the backend rewrite, stay tuned!

Tuesday, 20 July 2021

The Plasma Mobile team is happy to present the Plasma Mobile updates for July 2021. Read on to found out about all the new stuff included in this release:


First and foremost: Marco Martin made the shell more responsive by improving the performance of the top panel.


We have solved some issues regarding international numbers: When dealing with numbers saved without a country code, we used to need to guess what country the number was from. Previously, we had to do this based on the locale settings, but now we also take into account which country the phone is based in and take information from the cell towers.

We also fixed an issue that could result in the dialer showing the wrong contact name when receiving a call, and now you can also use the dialer correctly with a hardware keyboard.


Thanks to Smitty van Bodegom and Jonah Brüchert, Plasma Mobile’s SMS app gained several UI improvements. For one, errors while sending messages are properly reported, and it also shows you which number you are sending SMS from. Another improvement is that chats are now ordered properly.


Han Young overhauled the KWeather plasmoid. Not only did he fix some annoying issues, but the corrections allow you to select separate locations. The corrections in the plasmoid have also removed the same issues in the app.

As for KWeather’s look, Devin worked on giving the dialogs in the app a consistent style, as well as a new inline page indicator for flat mode.


Han Young’s worked on ensuring that receiving alarms when the phone is suspended works in all cases; and Devin made sure that a proper theme is applied at all times, especially when using KClock on non-Plasma systems. He also changed the dialog style to look more consistent with other native dialogs.


Talking of which, KRecorder received the same theme fixes applied to KClock, so it also now looks consistent across platforms.


Qrca, Plasma Mobile’s QR reader, now allows you to choose between multiple available cameras for scanning barcodes. It also offers to import barcodes for transport tickets into KDE Itinerary, and provides helpful links for barcodes containing International Article Numbers or ISBNs.

We also improved the user interface. The Share dialog now handles errors, sends a notification with the shared destination URL for services like Imgur, has a loading indicator and a title. As for the camera selection dialog on the desktop, it won’t fill the entire width anymore.


Dimitris Kardarakos made sure that the phone no longer pointlessly wakes up at midnight and added some UI improvements.


It’s been quite a busy month for Kasts development. The main features implemented into Plasma Mobile’s podcasting app this month include:

  • Swapnil implemented a Discover page which allows you to search for podcasts.
  • Bart added a feature to resume podcast episode downloads. The Download page has been adapted to show downloading, partially downloaded and completed download categories.
  • Swapnil reworked the playback speed settings. Clicking the speed button will now open an overlay list. This list now includes slower playback speeds.
  • Bart added a button to the error notification. This allows you to directly open the list of errors. This error list can also be opened from the Settings page (previously this was a tab on the Downloads page).
  • On systems running NetworkManager, Kasts can now check whether a metered connection is in use (e.g. an LTE connection on the PinePhone). Bart has introduced new settings to allow/disallow checking for podcast updates, downloading episodes or downloading images on such connections.
  • Swapnil added highlighting to the currently selected page in the main menu. This should make it easier to navigate.
  • Bart added new settings to determine what happens when episodes are marked as played: episodes can be deleted immediately or next time Kasts starts.
  • Swapnil added several tooltips. He also added hotkeys: space will play/pause playback and n will skip to the next track.

Additionally, Bart fixed several bugs. Most notably:

  • Inhibit suspend on GNOME and Phosh has been fixed.
  • The implementation to restore the playback position of episodes has been improved. There should be no more audible glitches when starting up the app.
Kasts discover page
Kasts main menu highlighting
Kasts playback speed setting
Kasts error message
Kasts error list overlay
Kasts new settings

In Other News…

The Plasma Mobile sound contest has now concluded. You can find out more here. A big thank you to all participants! We will be including the sounds in future releases of Plasma Mobile.


Want to help with the development of Plasma Mobile?

If you would like to take Plasma Mobile for a spin, read this page to see device support for each distribution:

We now have a general issue tracker, where you can report any issues you encounter here:

Also, consider joining our Matrix channel, and let us know what you would like to work on!

Monday, 19 July 2021

Meta: The first thing I have to announce is, that I'm tired of trying to come up with a cool name for every blog post. I'll just use This Week In Tok from now on.

Secret (E2EE) Chats

Tok now supports secret chats, which are indicated in the chat list using a lock icon. Secret chats are Telegram's E2EE solution, and since the clients (like Tok) are open source and the algorithim well-documented, you can easily verify the implementation for yourself. Wish I could say the same for some other E2EE chats.

a secret chat

Color Scheme Persistence

Tok now remembers which colour scheme you picked between restarts.

New Desktop Settings

Tok now has a revamped settings dialogue more in line with other KDE apps on desktop.

desktop settings

New Mobile Settings

Tok now has new dedicated mobile settings that offer a touch-friendly interface.

mobile settings

Creating Chats

Tok now allows you to create chats of all kinds: one-on-one private chats, secret chats, private groups, public groups, and channels.

the dialogue

Disabling Notifications

You can now disable notifications globally in Tok quickly and easily and enable them just as easily.


Image Improvements

Messages with images are now much less jumpy than they were before.

Images also now show a blurry thumbnail while loading.


System Tray

Tok now offers the ability to minimize to the system tray on desktop systems, where you can still receive notifications without a visible Tok window and disable/enable them from the tray directly.

system tray

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, 18 July 2021

Getting closer to v0.10 stable release...
Let's welcome Latte Dock v0.9.98  the Second Beta of  v0.10.x branch!
A new beta was needed because some core parts were updated such as Last Active Window implementation (L.A.W.) . LAW is responsible to track windows per panel/dock level and provide these information to latte centric applets such as appmenu, title, buttons etc. Through LAW, Latte is possible to provide information for windows on inactive VDs/Activities/Screens. By reimplementing some of its parts the multi-screen users that use appmenus/titles/buttons applets in different screens should now get one of the best experiences. You can check how this fix was tracked down from:

Go get beta from,*
* archive has been signed with gpg key: 325E 97C3 2E60 1F5D 4EAD CF3A 5599 9050 A2D9 110E

Changes from First to Second Beta

  • update Last Active Window implementation (L.A.W.)
  • latte sidebars  are ignored from plasma notifications
  • latte tasks, activation through mouse scrolling now works again
  • new option in Latte Preferences window to disable broadcast of screen available geometry to Plasma
  • fix icon typo for running layouts and primary screen
  • fix layout for debug window "-d --with-window"
  • add cmd line option to "--add-dock"  from available dock/panel templates



  • multiple docks and panels on the same screen edge
  • floating docks and panels
  • support background radius and background shadow size
  • ten different visibility modes
  • OnSemand sidebars
  • inform Plasma Desktop about panels and docks geometries (since plasma 5.18)
  • inform window managers about docks visible area (GTK_FRAME_EXTENTS support)
  • provide internal Widgets Explorer dialog and thus being able to be used completely in other desktop environments such as GNOME and XFCE
  • support multiple Latte Tasks in the same dock or panel
  • improve applets positioning for Justify alignment in latte panels
  • support latte centric applets that can use parabolic effect easily
  • support Plasma Margins Area Separators
  • user can specify custom color scheme per layout
  • redesign and improve all layouts dialogs
  • use templates for all layout functionality
  • provide move/copy/paste functionality for docks and panels
  • export layouts and docks/panels as templates for public use
  • 2200 commits after version 0.9.0
  • plenty of small bug fixes and improvements all around


You can find Latte at Liberapay,     Donate using Liberapay

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

KDE DEVLOG: Fixing Plasma Corners

It’s hard to believe, but we are now half-way through Google Summer of Code. Wow, does time fly. 6 weeks ago Kalendar let you view events from your local and online accounts — now, it does a lot more than that!

This week brings quite a few big changes. We don’t have one merge request, but three!! They’re all in the polishing phase, and they each should get merged over the coming days. You can find each of the MRs here:

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

There’s a lot of ground to cover, so let’s get started:

Improving the event information drawer/sidebar

Last week, we introduced the event information component, which appears on the right-hand side of Kalendar’s window. This week, we are adding more information to this component. With these additions, the event information drawer should display all the information you need!

You can now expect to see, on top of what you could already view:

  • Fancy descriptions of the recurrence rules for your chosen event
  • Glanceable icons at the top of the event info describing the type of the event as well as if it recurs or has reminders set
  • Files attached to your calendar event, with clickable names that will open said attachment

That conveniently leads us to…

The event editor’s new capabilities

The event editor has also been upgraded to allow you to add new attachments to or remove existing ones from your chosen calendar event. This is done with a UI that is similar to and consistent with the rest of the things you can add to an event, like reminders or attendees.

Clicking the ‘Add attachment’ button pops up a dialog that, upon file selection, will attach your chosen file to your event.

The event editor now also correctly lets you change an event’s parent calendar, which means you can move an event from one calendar to another even if the event has already been created.


Several people have asked for some way to prevent potentially destructive actions such as event deletion and modification from being permanent. With MR !9, there is now a way to undo these changes in your calendar with simple undo/redo actions (or the shortcuts you’re used to — CTRL+Z and CTRL+SHIFT+Z). Now you can undo event creations, changes, and deletions… or redo them!

A new view for Kalendar!

Since its creation, Kalendar has supported a month view that provided you with a clean view of all events in a given month, much like a traditional calendar would.

We are now working on a new view that will be able to use alongside the month view. This view is a schedule view.

The schedule view lets you view your current and upcoming events in a simple and attractive list of cards. It opens on the current day so you can see what you need to take care of over the next 24 hours. This will be especially useful for mobile devices, where the month view might be a bit cramped.

The schedule view’s cards contain all the basic information you’ll need to know about these events. Name, time, recurrence, if the event is multi-day — you got it.

You can interact with this view as you’d expect to. Double clicking an empty day opens the event editor so you can quickly create a new event; you can also right-click on a day and create a new event from the context menu.

This view is still under development, and it will take some time to merge. Still, it is quite exciting and I couldn’t help but share on the progress that has been made!

Coming up next

The next big change we are looking forward to is adding support for more calendar items besides events — mainly journals and to-dos. This should make Kalendar a much more versatile productivity tool, though it will require some wrangling behind the scenes to get everything working well.

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

Saturday, 17 July 2021

Hi everyone, this is my 3rd blog post talking about my work during Google Summer of Code 2021.

Programming Maze Activity

This activity teaches to program Tux to find the fish using simple instructions like move forward, turn left or turn right, it has been created by Aman Kumar Gupta.

It consists of ten levels in which:

  • The first 5 levels is about having a Main Function where the instructions will be executed in order until there is no instructions left, or until Tux reaches a dead end or when the tux reaches the fish.
Programming Maze (Main Function)
  • The last 5 levels is about having Procedure area which stores a set of instructions which can be used in the Main Function.
Programming Maze (Procedure)

Supporting Loops in Programming Maze

Last two weeks, I was working on extending programming maze activity to support loops as well as procedures, I have added a loop area same as it is done with the procedure area.

The loop area stores a set of instructions which can be executed several times by setting a loop number for it.

This is done by:

  • Implementing a new instruction called Loops, it contains a ListModel in which instructions are stored in, and it has a loopCounter as a property which indicates how many this set of instructions will be executed.
  • Adding a loop counter initialized by 1, which can be decremented or incremented to reduce the number of instructions needed by Tux to reach its goal.
  • Adding an option to use or not use Procedures
  • Adding datasets for the maze displayed when using the loop area.
  • Modifying TutorialBase.qml to support loop tutorial instructions.
Programming Maze (Loops)

What’s next ?

Supporting loops in programming maze is about to be finished, I am waiting for mentors’ reviews and their new suggestions and ideas which make the activity more powerful, also it is suggested to use enum for the instructions used in the activity, there are 2 methods for implementing enum values and they are currently being discussed to select the best solution.

I would like to thank the GCompris community for providing me this amazing opportunity. Open Source contributions at GCompris helped me a lot in enhancing my coding skills and soft skills as well.

Special thanks to my mentors. It was a great learning experience for me to work with them during phase one.

Looking forward for an exciting phase two!

Thanks for reading.