Skip to content

Thursday, 8 May 2025

A bugfix release for Falkon containing crash fix, general fix and wayland fixes.

  • Fix crash with bookmark toolbar (BUG: 501535)
  • Fix editing SiteSettings and Cookies permissions
  • Wayland: Fix issue that location bar can’t use input methods when locationcompleterview popups on wayland (By Signal Kirigami)
  • Wayland: Fix tooltip in tabbar (by Signal Kirigami)
Modern TableView in QML: What’s New in Qt 6.8 and Beyond

Over the years, the capabilities of QtQuick's TableView have evolved dramatically-from early custom implementations to well supported feature in Qt 6.8 and newer. In this article we explore the progression of QtQuick/QML's TableView, outline the limitations of early versions, and highlight newer features such as custom selection modes, header synchronization, and lightweight editing delegates. Check it out.

Continue reading Modern TableView in QML: What’s New in Qt 6.8 and Beyond at basysKom GmbH.

I’m thrilled to announce that I’ll be participating in Google Summer of Code 2025 with the KDE community and my mentors Claudio Cambra, Carl Schwan and Aakarsh MJ!

This summer, I’ll be working on the Merkuro suite with a focus on a project called Merkuro – Porting Away from QtWidgets.

The Challenge: Why Merkuro Needs to Slim Down

Merkuro is a KDE application suite, aiming to provide a seamless experience for email, calendaring, and contacts. At its core, it leverages Akonadi, KDE’s powerful PIM data storage framework.

Currently, many Akonadi agents and resources (the components that fetch and manage your data from various services) load their configuration dialogs using QtWidgets. While QtWidgets is a robust UI toolkit, it’s also quite “heavy.” This means these components, by default, include substantial UI code, leading to:

  1. Increased Memory Footprint: Each agent/resource can consume an extra 15-20 MiB of RAM just by including these UI elements, even when they’re not actively being configured.
  2. Performance Hindrance on Mobile: For Merkuro to truly shine on mobile devices, where resources are often constrained, this overhead is a significant bottleneck.

The goal is to make Merkuro lean, efficient, and perfectly suited for both desktop and mobile environments.

My Objective: Decoupling UI for a Lighter Future

The primary goal of my GSoC project is to refactor these Akonadi agents and resources by decoupling their configuration dialogs from their underlying logic.

The plan is as follows:

  1. Separate UI from Logic: I’ll move the QtWidgets-based configuration dialogs out of the core agent/resource code.
  2. Dynamically Loaded Plugins: These UI dialogs will become separate, dynamically loaded plugins. This means the core agent/resource can run without loading any UI code unless a host application (like Merkuro or KMail’s settings) specifically requests the configuration interface.
  3. Reduced Dependencies: By doing this, we can remove heavy QtWidgets header file inclusions from the core components. For example, we can switch from QApplication (which pulls in all of QtWidgets) to the much lighter QCoreApplication for the agent’s primary functionality.

This separation not only brings immediate benefits in terms of memory and performance but also lays crucial groundwork for the next big step: modernizing the user interface by transitioning to QtQuick/QML. With a clear segregation, future efforts can focus on building sleek, modern QtQuick UIs without wrestling with embedded QtWidgets code.

Key Deliverables: What I’ll Be Working On

Over the summer, I’ll be focusing on several key areas:

  • Refactoring Core Components:
    • Targeting specific Akonadi agents in KMail (like archivemail, mailfilter, sendlater agents) and resources in the KDE PIM Runtime (like pop3, imap, google, ews resources).
    • The main task here is to strip out embedded QtWidgets dependencies from their primary functionality.
  • Modifying Build Configurations: Updating CMake files to reflect these changes, ensuring unnecessary UI files are not compiled into the core components, and reducing overall dependencies.
  • Creating Dedicated Configuration Plugins:
    • Implementing plugin factory classes (conforming to Akonadi::AgentConfigurationBase and Akonadi::AgentConfigurationFactoryBase interfaces). This ensures that host applications can dynamically discover and load these new UI plugins.
    • Providing accurate metadata (via JSON files) for each plugin to integrate smoothly with the existing Akonadi framework.
  • Testing and Documentation: Rigorously testing all changes to verify the memory usage reduction and ensure the new plugin-based system works flawlessly on both desktop and mobile. I’ll also be documenting the changes for future developers.

Wednesday, 7 May 2025

First, credit where credit is due: the following solution was cobbled together combining both advice from Kdenlive developers and a

These past two days I attended the Qt World Summit 2025


It happened in Munich in the SHOWPALAST MÜNCHEN. The venue is HUGE,  we had around 800 attendees (unofficial sources, don't trust the number too much) and it felt it could hold more. One slightly unfortunate thing is that it was a bit cold (temperatures in Munich these two days were well below the average for May) and quite some parts of the venue are outdoors, but you can't control the weather, so not much to "fix" here.

 


The venue is somewhat strangely focused on horses, but that's nothing more than an interesting quirk.

Qt World Summit is an event for the Qt developers around the world and the talks range from showcases of Qt in different products, to technical talks about how to improve performance along others less Qt centric talks about how to collaborate with other developers or about "modern C++".

As KDE we participated in the event with a stand trying to explain people what we do (David Redondo and Nicolas Fella were more in the stand than me, kudos to them)


For following years we may need to re-think a bit better our story for this event since I feel that "we do a Linux desktop and Free Software applications using Qt" is not really what Qt developers really care about, we maybe should focus more on "You can learn Qt in KDE, join us!" and "We have lots Free [Software] Qt libraries you can use!".

 

Talks for the videos will be published "soon" (or so I've been told). When that happens the ones I recommend you to watch are "Navigating Code Collaboration" by  LAURA SAVINO, "QML Bindings in Qt6" by ULF HERMANN and "C++ as a 21st Century Language" by BJARNE STROUSTRUP, but the agenda was packed with talks so make sure to check the videos since probably your tastes and mine don't 100% align.

 

All in all it was a great event, it is good to see that Qt is doing well since we use it for the base of almost everything we do in KDE. Thanks to The Qt Company and the rest of the sponsors for organizing it. 

 


 

It has been quite a long time since I attended any KDE sprint, last sprint for me was Plasma Sprint in Valencia, Spain before pandemic and personal life got in a way. Last month I had chance to attend Plasma Sprint 2025 in Graz, Austria. This was good opportunity for me to meet some of long time contributors to Plasma Mobile like Devin Lin and Luis, as well as other Plasma contributors to discuss some of technical details about my upcoming power management work.

Monday, 5 May 2025

I'll soon start my second project supported by NLnet and the European Commission. For the first one I spent way too much time figuring out if I need to pay taxes on the funding I receive. At least value added tax does not apply! However, German tax law is not clear about income tax from what I can tell, and even writing a petition to the federal ministry of finance to clear things up still leaves me with most of the uncertainty. In any case, I did not need to pay income tax on the funding the first time around. Who knows if it will stay this way?

If you might find yourself in a similar situation one day, I strongly recommend to save yourself many hours of headaches and read my German blog post about this. Here it is: https://wordsmith.social/felixernst/wie-man-keine-steuern-auf-europaisch-geforderte-softwareprojekte-bezahlt

I don't want to translate German legalese into English.

If you can't read German, that's a bit of a cliffhanger now, isn't it? Well, sorry about that. However, you might want to cherish the fact that you probably don't need to deal with German tax law! Also consider that it is probably better for your sanity anyway if you don't spend your time learning about taxation in other countries. It's not a good conversation starter, trust me.

Welcome to a new issue of "This Week in KDE Apps"! Every week we cover as much as possible of what's happening in the world of KDE apps.

Creative Applications

Kdenlive Video editor

Balooii fixed the high memory consumption of the SAM2 based background removal (link).

Multimedia Applications

Peruse Comic Book Reader

Carl Schwan ported Peruse to Qt6 (Link) and to the newer Kirigami components.

JuK Music Player

Lukas Kahnert ported Juk from Phonon to QtMultimedia (25.08.0. Link).

Travel Applications

KDE Itinerary Digital travel assistant

Volker Krause automated the generation of static builds of the library powering Itinerary. This allows to simplify the deployement of Itinerary on servers like for Nextcloud Mail integration or the online extractor.

Grzegorz Mu expanded the documentation for writing ticket extractors (link). Writing an extractor is quite easy and only requires some knowledge of JavaScript, so checkout the new documentation and integrate the tickets from your local transport company!

Social Applications

NeoChat Chat on Matrix

Aleix Pol fixed a crash in NeoChat (link).

Tokodon Browse the Fediverse

Joshua Goins redesigned the notification view to be more compact (25.08.0. link).

Joshua also ported the navigation over to KirigamiAddons.StatefulApplication which means the different pages can now be accessed by the command popup (Ctrl+Shift+I) and can be assigned to a shortcut (25.08.0. link).

System Applications

Dolphin Manage your files

The toolbar button for view mode changing has become more powerful: Jin Liu added all the view-related actions to its dropdown menu, so this button that lies to the left of the location bar is now your one-stop shop for changing the file display of the main view. (25.08. Link)

Kai Uwe Broulik reworked the new files dialog used in Dolphin and other KIO based applications to now include the icon of the new file or folder (KF 6.14.0, link).

Journald Browser Browser for journald databases

Andreas Cord-Landwehr replaced the custom About dialog with the standard Kirigami About dialog (link). Journald Browser also adopted KirigamiAddons.StatefulApplication.

Utilities

Krfb Share your desktop to another computer via VNC

Wendi Gan added support for UTF-8 clipboard in Krfb and Krdc (25.08.0. link 1 and link 2). This means non-European alphabets are now supported!

KDE PIM

Akonadi Background service for KDE PIM apps

Krzysztof Nowicki added support for Microsoft's InTune enterprise authentification service to Akonadi's Exchange support (25.08.0. link).

Kiên Hồ added support for displaying holidays in Vietman (KF 6.14.0, link 1 and link 2).

KOrganizer KOrganizer is a calendar and scheduling application

Allen Winter continued polishing KOrganizer. This week the todo view state is now fully saved and restored across sessions (25.08.0, link), the wording of some tooltips was improved (25.08.0, link) and a crash was fixed (25.04.1. link).

…And Everything Else

This blog only covers the tip of the iceberg! If you’re hungry for more, check out Nate's blog about Plasma and be sure not to miss his This Week in Plasma series, where every Saturday he covers all the work being put into KDE's Plasma desktop environment.

For a complete overview of what's going on, visit KDE's Planet, where you can find all KDE news unfiltered directly from our contributors.

Get Involved

The KDE organization has become important in the world, and your time and contributions have helped us get there. As we grow, we're going to need your support for KDE to become sustainable.

You can help KDE by becoming an active community member and getting involved. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer either. There are many things you can do: you can help hunt and confirm bugs, even maybe solve them; contribute designs for wallpapers, web pages, icons and app interfaces; translate messages and menu items into your own language; promote KDE in your local community; and a ton more things.

You can also help us by donating. Any monetary contribution, however small, will help us cover operational costs, salaries, travel expenses for contributors and in general just keep KDE bringing Free Software to the world.

To get your application mentioned here, please ping us in invent or in Matrix.

Qactus 3.0.0 comes with many changes, such as:

  • UI redesign, package-centred with a modern style (Plasma-ish)
  • Code ported to Qt6
  • Improved memory usage
  • New features:
    • Location bar
    • Search bar
    • Project/package overview
    • Getting revisions
    • Getting requests per project/package
  • New logo
  • Multiple fixes (and some bugs? 😉
  • Switch to Apache License 2.0

RPM packages

I have also updated jOBS, a Java-based Open Build Service library and developed a basic GUI for it,
OBS FX; it is a JavaFX-based OBS client with a green touch 🙂

The rpm and zip are available at GitHub.
Download OBS FX

Saturday, 3 May 2025

This month has been amongst the most intense of my FOSS journey I’d had in a while. We had both the Plasma sprint and the LinuxAppSummit (LAS).

You can follow what was done in the sprint at the many blog posts by our teammates. Thank you all!

When it comes to LAS, you can look at most videos here. However, you’ll be missing out on the experience of joining it. Consider joining next year!

All in all, it gave me a nice feeling of realisation that we are on the right track at large. Plasma is getting lots of love by our devs, ensuring a continued stream of improvements to our UX. From a Plasma standpoint, we are slowly exploring the possibility of having add-ons with Flatpak. I find this an exciting development that can bring Plasma extensions to a next level, that wouldn’t be feasible without the work from many of the folks at LAS.

And all that to say that we are all fine, and healthy. Either Plasma or LAS, both are nice communities full of nice people pushing our ecosystem together towards new horizons that I’m sure we’ll all be happy to explore.

Happy hacking!