Skip to content

Saturday, 18 June 2022

In a previous post about KDE Itinerary I mentioned Android platform calendar support for the KCalendarCore framework. This is meanwhile functional (code), and here are some more details about it.


KCalendarCore not too long ago got a plugin interface for abstracting access to platform calendaring solutions. For this we now have an implementation for the Android platform calendaring API.

This allows:

  • Listing of platform calendars and their access permissions.
  • Listing all events or retrieving an event by a known id from a given calendar.
  • Listing all events in a given time range, including considering recurrence rules.
  • Adding a new event, updating or deleting existing events.


However, as with any attempt to abstract cross-platform features, there are a number or limitations to be aware of.

Android’s platform calendar only supports events, while KCalendarCore implements the full iCalendar specification and also covers todos and journals. The corresponding KCalendarCore API is therefore non-functional on Android. Support for todos might be possible eventually, e.g. by building on top of the OpenTasks content provider.

Android’s event data model is only a subset of the iCalendar model. For properties beyond that there is a dedicated “extended properties” table, but that can only be written to by sync providers, not by regular applications, and it uses data formats specific to the sync provider. We can so far at least read the format of DAVx⁵ (which is used to access Nextcloud calendars for example), but writing events with properties outside the supported subset isn’t possible. Event attachments are also not supported.

Another aspect still missing is change monitoring (ie. being notified about calendar changes), it’s however unclear to what extend that is provided by the platform at all.

And finally, access to the calendar needs special permission on Android. This is something the application needs to take care of itself, as that’s an asynchronous process that can involve user interaction, which is hard to hide behind the synchronous KCalendarCore API.

Use cases

Given all these limitations, what can we actually do with this? It’s obviously not the best choice when trying to build a fully featured calendar application and hoping for a perfect platform abstraction. Neither will any KCalendarCore-based software just magically work on Android with this.

If access to calendar events or the creation of calendar events with limited complexity is needed for a secondary/extra feature of an application though, like it is in the case of KDE Itinerary, this is sufficient and makes it straightforward to access the corresponding platform calendar with (mostly) the same code.


Right now the code lives in KDE Itinerary’s repository still, which isn’t ideal and isn’t really benefiting anyone else yet. So a few things still need to happen going forward:

  • KAndroidExtras, the JNI wrapping library this is built on top of needs to be extracted and turned into a separate framework.
  • The Android platform calendar plugin then can move to KCalendarCore, alongside the corresponding plugin loader class.
  • We need at least also an Akonadi plugin to cover Linux, otherwise there’s not much platform abstraction here (work in progress).

Testing beyond a DAVx⁵/Nextcloud setup would be interesting as well, we might need support for more extended event property formats there.

Plasma 5.26 will resolve a major pain point for users of the Wayland session with high DPI screens: you’ll now be able to choose how you want your XWayland-using apps to be scaled:

  • By the compositor–ensuring uniform scaling, but blurriness (this is the status quo)
  • By the apps themselves–allowing them to use their pre-existing X11 high DPI capabilities, if they have them, but leaving apps without such capabilities at the wrong scale

So if all the XWayland apps you use support high DPI scaling properly on X11, you can use this new setting to make them look nice and crisp at your chosen scale factor:

This setting is currently off by default in Plasma 5.26, but we’re considering turning it on by default after more testing. Big thanks to David Edmundson and Aleix Pol Gonzales for this work!

Beyond that, the focus was on fixing bugs discovered in Plasma 5.25, and you’ll see quite a few mentioned here.

15-Minute Bugs Resolved

Current number of bugs: 65, up from 64. 1 added and 0 resolved.

Current list of bugs

New Features

You can now optionally configure minimized tasks in your Task Switcher to be sorted last, after all unminimized tasks, which is the way things work in the MATE desktop environment (Rachel Mant, Plasma 5.26)

Animated images can now be used as wallpapers, either standalone, or even as a part of a slideshow (Fushan Wen, Plasma 5.26)

User Interface Improvements

When you drag-and-drop something onto an empty part of a Dolphin window that is showing Details view, the drop is once again interpreted as a drop into the visible view rather than the sub-folder on the row under the cursor (Felix Ernst, Dolphin 22.08)

When you open a PDF document externally in a sandboxed app, Okular now appears in the list of preferred apps that can open PDF files as expected (Harald Sitter, Okular 22.08)

It’s no longer possible to try (and fail) to remove distro-installed SDDM login screen themes on System Settings’ “Login Screen (SDDM)” page; now you can only remove SDDM themes there that you’ve downloaded yourself, same as on other similar pages (Alexander Lohnau, Plasma 5.25.1)

The “Cover Flip” and “Flip Switch” Task Switcher effects now use the same background appearance as the Overview and new Present Windows effects, which looks better and makes them all more consistent in visual styling (Ismael Asensio, Plasma 5.26):

In the Plasma X11 session, on System Settings’ “Display and Monitor” page, the message telling you that you need to restart the machine to make scaling changes take effect now includes a “Restart” button you can click to do it immediately (Fushan Wen, Plasma 5.26)

Okular’s Breeze theme icon now better matches its original icon (Carl Schwan, Frameworks 5.96):

Bugfixes & Performance Improvements

Fixed one way that Dolphin could crash when you use it to search for files (Ahmad Samir, Dolphin 22.04.3)

External screens once again work properly with multi-GPU setups (Xaver Hugl, Plasma 5.25.1)

Screen brightness is no longer stuck at 30% for people with laptop screens that declare a maximum brightness value high enough to cause an integer overflow when multiplied using 32-bit integers (Ivan Ratijas, Plasma 5.25.1)

Fixed a common way that KWin could crash when the screen setup changes (Vlad Zahorodnii, Plasma 5.25.1)

System Settings no longer crashes when you try to install a cursor theme from a local theme file, rather than the downloader window (Alexander Lohnau, Plasma 5.25.1)

Switching desktops no longer sometimes leaves windows visible as ghosts in rare circumstances (Vlad Zahorodnii, Plasma 5.25.1)

You can once again drag individual windows from one desktop to another in the Desktop Grid effect (Marco Martin, Plasma 5.25.1)

Fixed a memory leak in Klipper, the Plasma clipboard service (Jonathan Marten, Plasma 5.25.1)

Breeze-themed sliders no longer exhibit visual glitches when using a right-to-left language (Ivan Tkachenko, Plasma 5.25.1)

Activating the Overview, Present Windows, and Desktop Grid effects with a touchpad gesture should now be smoother, not jittery or stuttery (Vlad Zahorodnii, Plasma 5.25.1)

Tinting your titlebars with the active accent color no longer applies the wrong color for inactive window titlebars (Jan Blackquill, Plasma 5.25.1)

System Tray icons no longer scale strangely when your panel height is set to certain odd (as in non-even) numbers (Anthony Hung, Plasma 5.25.1)

While a fullscreen window is focused, KWin’s “edge highlight” effect is no longer shown when you move your cursor near a screen edge with an auto-hidden panel that wouldn’t appear anyway because showing auto-hidden panels is disabled while a fullscreen window has focus (Vlad Zahorodnii, Plasma 5.25.1)

In the Plasma Wayland session, videos viewed in the latest version of the MPV app will no longer appear with a small transparent border around them (Vlad Zahorodnii, Plasma 5.25.1)

Using the properties dialog or KMenuEdit to edit an application’s .desktop file that happens to be a symlink now works as expected (Ahmad Samir, Frameworks 5.96)

…And everything else

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

This week I mainly worked on making my apps REUSE compliant, a bit on Plasma and on some new apps.


Plasma 5.25 was recently released, we added a lot of cool things, such as tinting windows with the accent color! check it out!

Digital Clock

The first thing I did was to name variables better in the digital clock “Copy to Clipboard” menu, hopefully this can make things more understandable and help making this bit of code more maintainable.


Touch Mode Keywords

Touch Mode configurability was added to System Settings but searching about it brought no results.

I added some keywords so now you can find this feature by searching in System Settings just fine.



I added REUSE compliance to my projects, it makes it clearer for everyone which parts of your software are under which license



Bravo is a text replacement utility, just type in what you want to replace, what you want to replace with and your text.


Francis is a pomodoro utility, after the 25 minutes interval it automatically starts a 5 minutes break. You can also set a goal to remind you why you’re doing this.

Pause, resume and stop features aren’t implemented, so yeah I should add that.

Contributions are Welcomed

If you’re interested in helping me with my little projects I would love any help, be it with code or with bug reporting.

Thank you for reading! :)

Friday, 17 June 2022

We are happy to announce the release of Qt Creator 8 Beta!

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

The Cult in Google

Tags: google, cult, surprising

Such cults are freaky… I’m always baffled at their ability to put their fangs into an organization and grow in there.

Tags: tech, browser, firefox, surveillance

This is definitely a welcome move to improve protection from tracking.

Don’t be that open-source user, don’t be me

Tags: tech, foss, maintenance, economics

This is definitely well put, users shouldn’t feel entitled. Maintainers do what they can (even if there’s a company backing up your favorite FOSS project) and if you use the software for free with no support contract… things will be done when they’re done.

Cool desktops don’t change 😎

Tags: tech, desktop, low-tech

I didn’t know about the Lindy effect, this is an interesting point. Obviously I have a different setup (Plasma has been around longer than XMonad after all) but the overall advice is good.

Symbiote, a nearly-impossible-to-detect Linux malwareSecurity Affairs

Tags: tech, linux, security

Alright, this one looks somewhat concerning…

⚡️ The computers are fast, but you don’t know it

Tags: tech, programming, python, c++, optimization, performance, data-science

And this is why you likely need to optimize your data pipelines at some point. There are plenty of levers available.

Product Backlog Building Canvas

Tags: tech, agile, product-management

Good ideas to improve your user stories. I often see not so complete stories, it doesn’t stop at the title, there’s more to do. The proposed canvas is interesting and definitely helps.

Cargo Culting Software Engineering Practices

Tags: tech, agile, engineering, craftsmanship

As always, what really matters in the end is the context

Tune Software Development for Rate of Change, not Rate of Progress

Tags: tech, agile, project-management

Interesting take as usual. Utilization doesn’t matter, throughput is what you need to keep in mind.

The Floppotron 3.0 » Silent’s Homepage

Tags: tech, funny

Alright, this definitely escalated beyond imagination. Still it’s a fun project.

Bye for now!


This is my third post during Google Summer of Code 2022.

During the first week of coding period, I tried my hands at adding a horizontally scrolling bar on top of room list, which would show user's joined spaces.

The first ended in failure, because I was used to using setContext() for controlling QML via C++. NeoChat uses a different method of exposing classes though. Tobias helped me understand the method NeoChat uses.

I gave the thing another try and got some success this time.

I added a new role in roomlistmodel, named IsSpaceRole. This calls the function isSpace() from neochatroom. The function checks room creation event and determines if a given room is space or not.

On the UI part, there was a horizontal scrolling UI module used elsewhere, which I reused.

When it came to integrating the UI component into actual Room List Page, things again took a hit. My first try was to wrap Room List and Space List into a Row layout. That made the Room List not show rooms, and only the categories.


I was suggested by Carl to put Space list as header of the Scrollable Page. Doing so gave better result, apart from the fact that Space list now overlaps with Room List.


Tobias suggested that specifying height of the Space List should fix that. I also need to fix the issue of invisible rooms taking up width in Space list.

For the coming week, I plan to implement room filtering, such that when user clicks on a certain Space, then only the room corresponding to that Space are visible.

Wednesday, 15 June 2022

We're excited to announce that Qt for MCUs 2.2 LTS is now available! It is the first release of Qt for MCUs that will be long-term supported; bug fixes for it will be released for a period of 18 months. This release adds improvements to text rendering,  new APIs to handle errors in GUI code, new tools to generate C++ from QML independently from CMake, and a new performance and footprint guide to help you get the best results with Qt for MCUs.

Akademy 2022 will be a hybrid event, in Barcelona and online that will be held from Saturday 1st to Friday 7th October. The Call for Participation is still open! Submit your talk ideas and abstracts as the deadline has been extended until the 19th June.

Why talk at #Akademy2022?

Akademy attracts people from all over the world, not only from the global KDE Community, but also from companies, Free Software developers and pundits from other projects, public institutions, and more. We all meet together to discuss and plan the future of the Community and its technology. You will meet people that are receptive to your ideas and will help you with their skills and experience.

How do you get started?

You do not have to worry about details or a presentation right now. Just think of an idea and submit some basic details about your talk. You can edit your abstract after the initial submission.

All topics relevant to the KDE Community are welcome. Here are a few ideas to get you started on your talk:

  • What KDE projects have you contributed to? Tell us about your work, and get feedback and support!
  • Where do you think should KDE go next?
  • How has KDE software impacted you/people you know in real life?
  • Are there particular problems with KDE you think you can give us some insight on? How would you solve it?
  • How can we improve KDE for people with disabilities?
  • How can we increase the participation of women in our community?
  • How can we accelerate full support on Wayland?
  • What is next for Plasma mobile?
  • What is the current state of the project you are working on?
  • Have you used any KDE applications in ingenious ways or created something great with them? Tell us about your work!

These are just some ideas to get the ball rolling. However, you can submit a proposal on any topic as long as you can make it relevant to KDE. For more ideas for talks, check out the videos from previous years: 2021, 2020, 2019, 2018, 2017, 2016, and 2015.

For more details and information visit our Call for Participation page.

Dot Categories: 

Tuesday, 14 June 2022

The polishing and stability effort of this release cycle continues with the release Kdenlive 22.04.2 which comes with bug fixes to the AppImage and Mac packages, render widget, same track transitions, subtitles and project loading issues.


  • Fix icon color change in some situations (eg. Appimage). Commit. Fixes bug #450556
  • Fix incorrect lambda capture leading to crash. Commit.
  • Fix AppImage icons. Commit. See bug #451406
  • Online resources: only show warning about loading time once. Commit. See bug #454470
  • Clang format fixes. Commit.
  • Fix crash clicking ok in empty transcoding dialog. Commit.
  • Fix possible crash when load task is running on exit. Commit.
  • Fix file watcher broken, changed clips were not detected anymore. Commit.
  • Fix timeremap clip always using proxies on rendering. Commit. Fixes bug #454089
  • Ensure internal effects like subtitles stay on top so that they are not affected by color or transform effects. Commit.
  • Fix crash on undo center keyframe. Commit.
  • Fix crash changing clip monitor bg color when no clip is selected. Commit.
  • Fix crash on undo selected clip insert. Commit.
  • Fix nvenc codec. Commit. See bug #454469
  • Fix clip thumbs not discarded on property change. Commit.
  • On document loading, also check images for changes. Commit.
  • Fix tests and mix direction regression. Commit.
  • Fix major corruption on undo/redo clip cut, with tests. Commit.
  • Project loading: detect and fix corruption if audio or video clips on the same track use a different producer. Commit.
  • Fix crash dropping an effect on the clip monitor. Commit.
  • Speedup maker search. Commit.
  • Fix cannot put monitor in fullscreen with mirrored screens. Commit.
  • Fix mix on very short AV clips broken, with test. Commit.
  • Fix Slide mix not correctly updated when creating a new mix on the previous clip, add tests. Commit. See bug #453770
  • Fix mix mix not correctly reversed in some cases and on undo. Commit.
  • Fix slide composition going in wrong direction (mix is still todo). Commit. See bug #453770
  • Fix several small glitches in bin selection. Commit.
  • Fix clip height not aligned to its track. Commit.
  • Fix speech to text on Mac. Commit.
  • Fix crash/corruption in overwrite mode when moving grouped clips above or below existing tracks. Commit.
  • Fix missing audio with “WebM-VP9/Opus (libre)” preset. Commit. See bug #452950
  • [Render Widget] Allow more steps for quality slider. Commit.
  • [Render Presets] Fix wrongly reversed quality with custom presets. Commit.
  • [Render Presets] Add more speed preset steps for x254 and x256. Commit.
  • Fix mixers don’t display levels if a track was added/removed with collapsed mixer. Commit.
  • Fix possible crash in transcoding dialog if there are no clips to convert. Commit.
  • [RenderWidget] Add scrollbar to improve experience on small screens. Commit.

The post Kdenlive 22.04.2 Released appeared first on Kdenlive.

Plasma 5.25 brings new features and concepts to the desktop environment. Check out how you can now handle your desktop through gestures on your touchpad or touchscreen, the advanced and easy to use customization features, an improved and very useful Overview, and much, much more.

Find out more about this release

Music: Lightness By Nomyn, distributed under a CC By license.

Special thanks to: Maksym Hazevych, Ryhor Aŭrukievič, Manuel Jesús de la Fuente, Freya, Aditya Yadav, Rachit, David McCullah, Aura Herrero Ruiz