Skip to content

Thursday, 8 May 2025

Welcome to the April 2025 development and community update.

Development Report

Text Tool Rework Progress

Read Wolthera's new post about font metrics handling for an explanation of recent improvements in 5.3.0-prealpha regarding font size, line height, baseline alignment, and text decoration.

Community Report

April 2025 Monthly Art Challenge Results

11 forum members took on the challenge of the "Fairy Tales and Bedtime Stories" theme. And the winner is… Jack and the Beanstalk by @Elixiah

Jack and the Beanstalk by @Elixiah

The May Art Challenge is Open Now

For the May Art Challenge, @Elixiah has passed choice of the topic to runner-up @Mythmaker, who has chosen "Humongous Hats" as the theme. Illustrate an elaborate hat, and optionally a matching accessory. See the full brief for more details, and throw your hat in the ring.

Best of Krita-Artists - March/April 2025

This month's Best of Krita-Artists Nominations thread received 8 nominations of forum members' artwork. When the poll closed, the moderators had to break a four-way tie for fourth place before these five wonderful works made their way onto the Krita-Artists featured artwork banner:

Winter castle by @sinisa_ercegovac

Winter castle by @sinisa_ercegovac

Plucky Puffin by @SylviaRitter

Plucky Puffin by @SylviaRitter

The Last City on Earth by @Valquer

The Last City on Earth by @Valquer

Howl from ZZZ by @Fokker

Howl from ZZZ by @Fokker

Japanese girl paint by @Joao_Batista

Japanese girl paint by @Joao_Batista

Best of Krita-Artists - April/May 2025

Take a look at the nominations for next month's featured artwork. If you don’t see your favorite artwork there, make a nomination. Or five! The amount of nominations allowed per forum member has risen to encourage more participation. And don't forget to vote when the poll opens on May 11th!

Ways to Help Krita

Krita is Free and Open Source Software developed by an international team of sponsored developers and volunteer contributors. That means anyone can help make Krita better!

Support Krita financially by making a one-time or monthly monetary donation. Or donate your time and Get Involved with testing, development, translation, documentation, and more. Last but not least, you can spread the word! Share your Krita artworks, resources, and tips with others, and show the world what Krita can do.

Other Notable Changes

Other notable changes in Krita's development builds from Apr. 17 - May 8, 2025, not covered by the Development Report.

Stable branch (5.2.10-prealpha):

  • File Formats: ORA: Default groups to non-passthrough mode. (Change, by wareya)
  • Transform Tool: When transforming multiple layers in Fast mode, show them in proper stack order instead of selected order. (bug report) (Change, by Dmitry Kazakov)
  • General: Speed up canvas rotation when the status bar is visible, by only updating it when necessary. (Change, by Maciej Jesionowski)

Unstable branch (5.3.0-prealpha):

Bug fixes:

  • Android: Fix crash on startup with recent nightly builds. (bug report) (Change, by Freya Lupen)
  • Resources: Fix a slowdown regression when scrolling through or searching resources, caused by the new font resources, by cleaning up resource cache handling. (bug report) (Change, by Dmitry Kazakov)
  • Pop-Up Palette: Fix showing brushes in tags containing '&' (ampersand). (Change, by Stuffins)
  • Animation: Add an option to disable timeline autozoom, and move animation settings into their own tab under General Preferences. (bug report) (Change, by Emmet O'Neill)

Nightly Builds

Pre-release versions of Krita are built every day for testing new changes.

Get the latest bugfixes in Stable "Krita Plus" (5.2.10-prealpha): Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

Or test out the latest Experimental features in "Krita Next" (5.3.0-prealpha). Feedback and bug reports are appreciated!: Linux - Windows - macOS (unsigned) - Android arm64-v8a - Android arm32-v7a - Android x86_64

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.

Tuesday, 6 May 2025

Equipping engineers to represent your company in open source is more than a nice-to-have — it's a strategic investment with long-term business impact.

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

Sunday, 4 May 2025

I am not a branding expert, but my journey through numerous long-term open-source projects and collaborations with marketing departments and professionals has allowed me to learn some simple but valuable lessons in this field. I would like to describe some of them in this blog post. So, what exactly is a brand and how do … Continue reading Minimise branding-related risks when your company has a commercial and an open source profile