25 Apr 2026
Planet KDE | English
This Week in Plasma: fanciness in Discover and more power efficiency
Welcome to a new issue of This Week in Plasma!
This week includes an interesting blend of improvements. Lots of visual stuff, so get ready for a ton of screenshots and screen recordings!
Notable new features
Plasma 6.7
The Kicker Application Menu widget can now be configured to show a "Recent Locations" item. (Christoph Wolk, KDE Bugzilla #420951)

Network connections can now be duplicated. (Kartikeya Tyagi, KDE Bugzilla #499188)

There's now a new "has parent window" window rule you can use to target child dialog windows specifically. (Kai Uwe Broulik, kwin MR #8969)
Notable UI improvements
Plasma 6.6.5
Dragging a search result for a System Settings page to the desktop now creates a launcher to that page as you would expect. This completes a mini-project to improve dragging-and-dropping things to the desktop that we started a while back. (Antti Savolainen, KDE Bugzilla #500259)
Plasma 6.7
Discover now has fancier application page headers with more obvious install buttons! (Oliver Beard, discover MR #1297)
Discover no longer disables the "More Information" button on list items for in-progress updates. (Tobias Fella, KDE Bugzilla #431719)
Discover now does a better job of handling the rare case where an automatic update to a Flatpak app introduces a compatibility issue you can't easily recover from. Now it will warn you about this once instead of continuously. (Tobias Fella, KDE Bugzilla #509760)
You can now drag favorite apps out of their areas in Kicker and Dashboard to un-favorite them. Kickoff is coming soon, too! (Christoph Wolk, plasma-desktop MR #3665 and KDE Bugzilla #518749)
When your laptop is plugged in at maximum charge, doing something that changes the power profile to a non-default one now shows only the power profile icon in the System Tray, and omits the fully-charged battery icon because that part is obvious. (Nate Graham, KDE Bugzilla #518802)
Improved some awkwardly-worded labels in System Settings and Plasma. (Philipp Kiemle, plasma-desktop MR #3674 and plasma-workspace MR #6522)
Frameworks 6.26
Reduced the amount of blurriness seen in icons throughout QtQuick-based apps using the Kirigami.Icon component when using a low fractional scale factor like 150% or less. (Volodymyr Zolotopupov, kirigami MR #2070)
Before:

After:

Added a search provider for startpage.com, so you can search there from KRunner. (Antti Savolainen, KDE Bugzilla #503976)

Notable bug fixes
Plasma 6.6.5
Fixed a case where the Plasma Login Manager could crash when connecting and disconnecting multiple monitors while the login screen is visible. (David Edmundson, KDE Bugzilla #519302)
Fixed some cases where Plasma could crash at login. (David Edmundson, plasma-workspace MR #6520)
Fixed multiple accessibility issues: key repeat not working in the Orca screen reader, and various UI elements not being read properly. (Nicolas Fella, KDE Bugzilla #519143, KDE Bugzilla #519333, and KDE Bugzilla #519217)
Fixed a tricky issue in Spectacle that could make large images fail to automatically copy to the clipboard right after the app exits. (David Edmundson, KDE Bugzilla #509065)
Fixed another cause of the issue whereby de-focused full-screen windows could sometimes inappropriately appear at the top of the window stack. (Xaver Hugl, KDE Bugzilla #484155)
Fixed a layout glitch on System Settings' Colors page that could make UI elements in the color previews overflow when using some non-default fonts and font sizes. (Akseli Lahtinen, KDE Bugzilla #516413)
Changing the brightness or any screen settings no longer terminates Spectacle's sectangular region recordings. (Xaver Hugl, kwin MR #9127)
Frameworks 6.26
Fixed some visual glitches around radio buttons in the Audio Volume widget. (David Edmundson, ksvg MR #103)
Notable in performance & technical
Plasma 6.6.5
Fixed an issue that made System Settings' Touchscreen page appear while the "highlight changed settings" feature is enabled even if you don't have a touchscreen. (Jin Liu, KDE Bugzilla #518868)
Plasma 6.7
Turned on the "overlay planes" feature for Intel GPUs, which should improve performance and save some energy when using cooperative games and apps. (Xaver Hugl, kwin MR #8699)
Improved power efficiency for full-screen windows and effects that don't gain any benefit from using the "direct scan-out" feature; now they'll only use it if it will save power. (Xaver Hugl, kwin MR #9120)
How you can help
KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.
Would you like to help put together this weekly report? Introduce yourself in the Matrix room and join the team!
Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. 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; many other opportunities exist.
You can also help out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.
To get a new Plasma feature or a bug fix mentioned here
Push a commit to the relevant merge request on invent.kde.org.
25 Apr 2026 12:00am GMT
24 Apr 2026
Planet KDE | English
Automatic brightness in Plasma
As an exception to my usual posts, this time I'll write about a feature that's already released. Since Plasma 6.6, you can enable automatic brightness in the display settings… let's take a look at how it works, and why it took so long to make it happen.
The hardware
This is where the problems start - most laptops unfortunately don't come with a brightness sensor, and there's effectively no monitors that have a built-in sensor either (let alone one that can be accessed by the connected PC).
While it's possible to buy or build a brightness sensor that connects via USB, brightness control for external monitors usually has limitations in how often we can safely adjust the brightness… So for quite some time, there was noone working on Plasma that had the combination of hardware, motivation and knowledge to do something about it.
Luckily, the Framework Laptop 13 comes with a brightness sensor, so on the hardware side I was all set:

The software
Making automatic brightness do something is easy, but making it work well enough that you actually want to use it is a very different story.
My first approach was to assume brightness of the display should scale linearly with environmental brightness. I tried this, and it was sort of usable, but just not good enough. There's three problems with it:
- the brightness setting sadly does not linearly control display luminance. 0% is generally not "off", and sometimes firmware or drivers make the curve non-linear to make the brightness more "intuitive"
- in order for automatic brightness to be easy to use, we can't expect the end user to configure an equation for their system. We need to automatically detect what they're doing, and configuring two parameters based off one brightness slider is a challenge
- the best brightness curve isn't necessarily linear. Depending on your personal preferences and how reflective your display is, you might want to keep brightness a lot higher in bright environments than in dark ones, or vice versa.
So a different approach was needed. I looked a bit at other operating systems for inspiration, and from the UX side I definitely wanted to copy Android: You use the brightness slider however you want, and the system should try to replicate what you do on its own. On the implemtation side however, I only saw claims that it uses machine learning, so that wasn't exactly helpful.
Ultimately, what I settled on is pretty simple: We just store 6 sensor values, one per 20% brightness step. When processing sensor readings, KWin finds the matching brightness setting by linearly interpolating between the two closest sensor values.

When the user touches the brightness slider or uses the brightness shortcuts, KWin adjusts the curve so the current sensor value will result in that desired brightness setting. At first, I only made it adjust the two closest points and enforce the rest of the curve to be monotonic, but it ended up causing problems:

With this configuration, any sensor readings above 100 lux - for example, 101 - resulted in 100% brightness. To fix that, we now enforce a minimum difference of at least 1 lux or 10% between control points, so the curve above would look more like

To ensure the curve would always stay strictly monotonic and so you can have an arbitrary backlight setting at zero lux, values below zero also had to be allowed when updating the curve with those constraints.
However, I was still not done. While it now followed my preferences pretty well, it was still annoying! Especially if you sit in between a light source and the laptop, or if you sit on a train with trees around the tracks (like I recently did, traveling to and from Graz for a Plasma sprint), the brightness constantly fluctuated up and down.
To make it less annoying, I added some more adjustments on top:
- some hysteresis. As long as the sensor reports ±10% of the last value, KWin should do nothing
- a time delay before changes get applied. If after two seconds the sensor value is back in that 10% range, the brightness stays unchanged
- a much slower animation for reducing display brightness (but not that much slower for increasing it)
This is how it was released in Plasma 6.6, and I'm pretty happy with it on both the Framework 13 and on my OnePlus 6 with Plasma mobile.
What now?
Just because I'm happy with it, doesn't mean it's done. If you're using automatic brightness and it's still annoying you for some reason, please tell me about it! If you're really happy with it, I won't complain about being told that either of course ;)
To fully catch up to what phones have done for years though, one feature is still missing: I'd like to adjust not just the brightness, but also the white point of the display to the environment. Unfortunately, none of my devices have a sensor for that… but since the camera module in the Framework 13 is easy to replace, I hope that changes one day!
24 Apr 2026 7:30pm GMT
Qt No Contextless Connect
As many long running projects, Qt too over the years has accumulated some APIs that in hindsight are deemed unsafe or sub-optimal. For example, Qt by default implicitly converts const char* to QString. While that usually only incurs a runtime overhead, maybe encoding problems, but also admittedly less cluttered code, there's other APIs that can backfire in more subtle ways. One such API is doing a "context-less connect".
Signals and Slots are a core principle of Qt that make it super easy to connect one object to another and keep a certain separation of concerns. The typical syntax to establish an connection is:
connect(sender, &Foo::somethingHappened, receiver, &Bar::doStuff);
This connects the signal somethingHappened in our sender of Type Foo to the member function doStuff in our receiver (context object) of type Bar. Whenever sender "emits" somethingHappened, doStuff on receiver will be called. The neat part about Qt connections is that when receiver gets destroyed, the connection is severed automatically. However, you can not just connect a signal to a member function but also use a lambda:
connect(job, &WallpaperFinder::wallpaperFound, [this](const QString &path) {
m_wallpapers << path;
});
In our hypothetical wallpaper selector when the "job" that goes looking for wallpapers found one, it emits a signal and tells us the path of the file, so we can show it to the user. Now what happens when the user closes the dialog (which then gets destroyed) before the job has finished? Well… job still emits the signal which then results in our lambda being called. And then we try to access m_wallpapers on this which is long gone. Boom!
The fix is easy: provide a "context object", too, just like you would with pointer to member function:
connect(job, &WallpaperFinder::wallpaperFound, this, [this](const QString &path) {
m_wallpapers << path;
});
If this gets destroyed, the connection is severed, our lambda will no longer be called and all is well. The receiver object also decides what thread the slot is called, i.e. it will be called in the thread the receivers "lives in". Context-less connections are always of DirectConnection type. Since Qt 6.7 you can actually enforce the use of a context object by defining QT_NO_CONTEXTLESS_CONNECT.
add_definitions(-DQT_NO_CONTEXTLESS_CONNECT)
It requires you think about the lifetime of your objects more and make a conscious decision about what your context object is. It also removes one thing to look out for in code review. I started adding this option to a couple KDE repositories to improve the quality of our code and I encourage you to do that, too! It probably comes to no surprise that in general, the bigger and older a repository, the higher the probability of it using non-ideal code.
What context object to use?
Of course, the situation is not always as simple as our example above. Here's a few tips and tricks:
- Look at the lambda captures. If you capture this, chances are, you want this as your context object.
- If you capture a single object, perhaps you want it as your context object rather than this. If you use the sender, too, that's fine, capture them both:
connect(job, &Job::finished, manager, [job, manager] {
manager->report(job);
});
When the sender gets destroyed, evidently the connection is useless and will be severed. - You can try to avoid capturing this by doing an init capture, i.e.
[foo = m_foo] { ... } - Perhaps you don't even need a lambda and can just connect to the method directly. Lambdas are so ubiquitous that you tend to forget you could just replace
connect(job, &Job::finished, [timer] {
timer->start();
});
with:
connect(job, &Job::finished, timer, &QTimer::start); - At last, you may also use the sender as context object.
- A context object must be a QObject, though. If you don't have one, you'll have to find another way. For instance, QObject::connect returns a QMetaObject::Connection object that you can store in a member variable and then disconnect when appropriate, like in your destructor.
- For connections where it doesn't really matter qApp can also be an option.
I'm a huge fan of QT_ENABLE_STRICT_MODE_UP_TO that lets you turn on most strictness features in a single shot. The biggest hurdle of rolling that out more widespread in KDE repositories is actually the Java-style iterators. Qt hates them, many use them, particularly for mutating a container, and imho they're much more pleasing to look at than STL algorithms. If you start a new project, however, do consider setting your baseline to be as strict as it can be!
24 Apr 2026 1:49pm GMT
Web Review, Week 2026-17
I'll be vacationing a bit, so there will be no web review next week. It means the next one might be a double issue though, we'll see.
Anyway, let's go for my web review for the week 2026-17.
Inside GitHub's Fake Star Economy
Tags: tech, social-media, github, scam
People are manipulating vanity metrics to attract VC money? Who would have expected? This is so unsurprising, I don't even understand why people look at those…
https://awesomeagents.ai/news/github-fake-stars-investigation/
Anthropic's Claude Mythos Launch Is Built on Misinformation
Tags: tech, ai, machine-learning, gpt, copilot, security, hype
More in depth look at the launch white paper and the issues covered in the PR. Not much survives scrutiny… there's nothing special with this model.
https://www.artificialintelligencemadesimple.com/p/anthropics-claude-mythos-launch-is
AI adoption will accelerate the e-waste crisis
Tags: tech, hardware, ai, machine-learning, gpt, ecology
One of the dark sides of our industry, and this is is accelerating at a worrying pace. Maybe it's time to look at and fix the whole hardware life cycle?
https://restofworld.org/2026/global-ewaste-crisis/
LLM pricing has never made sense
Tags: tech, ai, machine-learning, gpt, copilot, business
Indeed, and it's going to get even crazier at some point. I guess somewhat soon but who knows…
https://anderegg.ca/2026/04/22/llm-pricing-has-never-made-sense?ref=bubbles.town
Highlights from Git 2.54
Tags: tech, git, version-control, tools
Nice quality of life improvements for the history rewrites. That said, I'm particularly looking forward to the changes in hooks handling, it's always been a pain to deal with in teams, moving them to config should help.
https://github.blog/open-source/git/highlights-from-git-2-54/
Forge
Tags: tech, git, version-control, command-line, tools
A single CLI tool for any Git forge? This sounds appealing.
https://nesbitt.io/2026/03/13/forge.html
How Hard Is It To Open a File?
Tags: tech, unix, posix, filesystem, security, flatpak
A reminder that path based APIs and security don't go well together to manage files.
https://blog.sebastianwick.net/posts/how-hard-is-it-to-open-a-file/
Game Devs Explain The Tricks Involved With Letting You Pause
Tags: tech, game, time
Pausing a game is not as simple as it sounds. There are many approaches to it.
https://kotaku.com/video-game-devs-explain-how-pausing-works-and-sometimes-it-gets-weird-2000686339
What Async Promised and What it Delivered
Tags: tech, asynchronous, complexity
Interesting piece which gives some perspective on the path which led to async/await. It seems to omit some pieces of the history to me but that's a minor issue. I like how it points that it indeed led to gradual improvements locally for developers writing their functions, but is overall leading to larger issues in the involved ecosystems.
https://causality.blog/essays/what-async-promised/
Box to save memory
Tags: tech, rust, memory
Indeed, the memory layout of your structs can matter. Be it Rust or not, but in the case of Rust the use of Option might give the wrong feel about the resulting layout.
https://dystroy.org/blog/box-to-save-memory/
Lenses in Rust and My Solution
Tags: tech, rust, memory, type-systems
Finer grained borrowing is still something people need in Rust. Here is a potential solution to get them today.
https://lambdalemon.gay/posts/grist-lens
A Field Guide to Bugs
Tags: tech, debugging, funny, satire
OK, I find it funny. That said, there's a kernel of truth in this piece: there's clearly a taxonomy of bugs and you better know on what you just stepped.
https://www.stephendiehl.com/posts/field_guide_to_bugs/
"What's In It For Me" Architecture
Tags: tech, architecture, organisation
Indeed, architecture work is not only technical (what is really?). You definitely need to account for the organisation and the process to actually put the architecture in place. It's not just about having pretty pictures.
https://frederickvanbrabant.com/blog/2026-04-04-whats-in-it-for-me-architecture/
Good architecture shouldn't need a carrot or a stick
Tags: tech, architecture, organisation
Architecture work is not only technical, you need processes to put the architecture of a project in place. That said, you can make things easier with standards to smooth the path toward the preferred types of architectures in your organisation.
https://frederickvanbrabant.com/blog/2026-04-17-good-architecture-shouldnt-need-a-carrot-or-a-stick/
In defence of bureaucracy
Tags: tech, engineering, organisation, management, bureaucracy
Clearly, any endeavour which has to scale will need some form of bureaucracy to stay afloat. The art is keeping it to a minimal before it starts to be an end in itself.
https://blog.ploeh.dk/2026/04/20/in-defence-of-bureaucracy/
How to Use One of the Most Valuable Management Tools: Active Listening
Tags: management, organisation, delegation, communication
Interesting insights, or how listening helps finding risk or making sure delegation will go well. It's indeed also a good illustration that story telling works often betterthan explaining abstract concepts.
An asteroid extinguished all the dinosaurs except for birds. Here's why
Tags: history, biology, science
And this is why… we now have chickens. More seriously it's a true testament to genetic and behavioral diversity. This is clearly what allowed some species to escape the disaster.
How do we deal with the catastrophe of uninsurability?
Tags: ecology, economics, politics
The insurances are starting to crumble under the risks. Looks like it's time to do something about it.
https://aeon.co/essays/how-do-we-deal-with-the-catastrophe-of-uninsurability
The commodification of travel
Tags: travel, culture, social-media
Yes, I'm definitely bummed by this behavior as well. Best travel is when you take your time and enjoy the place, definitely not running around to take pictures for vanity reasons.
https://herman.bearblog.dev/the-commodification-of-travel/
re: The commodification of travel
Tags: travel, culture, social-media
Another one on the commodification of travel, it exemplifies what real travel is.
https://thatalexguy.dev/re-the-commodification-of-travel?ref=bubbles.town
Bye for now! See you in two weeks.
24 Apr 2026 1:16pm GMT
Speaking at Chennai FOSS: GUI Design, QT, SOK and a lot more
Chennai FOSS 2026
Earlier this month, on 18th April 2026, I had the incredible opportunity to speak at Chennai FOSS 2026, an event organized by FOSS United. If you aren't familiar with them, FOSS United is a non-profit foundation dedicated to promoting the Free and Open Source Software ecosystem in India.
About my talk
My talk, titled "Getting started with GUI Design and Music Generation using Qt and C++," was a reflection of my recent contributions to the Season of KDE 2026.
The session shares how I, personally, as a new developer, found my way across one of my favorite projects, Mankala Engine, and started contributing in the Season of KDE 2026. I had shared my work from the Season of KDE, which included updating the GUI using C++ and QML, and also implementing elements like sounds and physics using QT. How developers can make contributions using Kirigami and other QT modules of KDE.
Most contributions are not limited to code, and I also shared the artworks I created for Mankala Engine, as well as my experience being part of Season of KDE 2026.
Here is my session PDF:
I don't like too much text, my session was mostly a live demo :)
Apart from learning about many new topics, which proved helpful to me, I also got the chance to network with other projects and contributors.
Thanks for reading 🚀
References & useful resources
- https://fossunited.org/c/chennai/2026/cfp/bgvph0j635 - Link to my proposal at Chennai FOSS
- https://fossunited.org/c/chennai/2026 - Chennai FOSS 2026
24 Apr 2026 4:03am GMT
Kubuntu Resolute Raccoon 26.04 release with bonus snaps
Kubuntu 26.04 LTS Resolute Raccoon is officially released, plus a fresh batch of KDE application snaps land in stable.
24 Apr 2026 12:00am GMT
23 Apr 2026
Planet KDE | English
KDE email, part two: use an email client
One of the many benefits of going to in-person sprints is you get to see how other people use their computers, and you can learn some workflow tricks from them. Or, you might notice areas of inefficiency and share tips of your own.
This post will be about the latter, on the subject of email.
Because during the sprint, I observed multiple people using email on their laptops in ways that are slow or ineffective:
- Logging into webmail in a web browser
- Switching between multiple webmail sites to manage multiple email accounts
- Clicking on buttons in the webmail UI to delete or reply to messages
If you recognize yourself here, there's a better way, I promise.
And I'd like to help you achieve it!
Back in 2024, I wrote about my email workflow and offered some general tips for managing email overload in KDE. I'm going to write more in depth about this topic, today starting with…
Use an email client app.
KDE has one: KMail. If it works well for you, use it! If it doesn't, use Thunderbird instead, it's fine. Don't feel guilty for not using a piece of KDE software. Nobody's gonna excommunicate you from KDE! I'm officially giving you permission.
Maybe you use an email client on your desktop but haven't set one up on your travel laptop yet? Well, it's time!
Because the important part is to consistently use an email client app of some sort. Why?
Way better for multiple accounts
Most of us have 2 or more email accounts. With webmail, this becomes a pain that scales linearly with the number of accounts.
With an email client app, you can manage multiple accounts' worth of emails in one UI. When all your accounts are managed from one app, your brain doesn't need to learn and remember multiple UIs, and and opening new email accounts doesn't scale the mental burden at all.
Faster to use
An email client app lets you interact with emails using learnable and consistent keyboard shortcuts. Processing emails this way is super fast, so you can get done quickly and go back to something useful. Email sucks; life's too short to waste time on it.
Easier to access
You can access the email client app easily using the Task Switcher, Overview, or Alt+Tab, rather than letting those webmail tabs get buried among your 75 normal browser tabs and 10 pinned tabs.
Easier to leave email mode
Quit the email client app when you want to stop receiving emails.
For webmail, you're tempted to leave it open in a tab forever, which means to avoid being constantly tortured with email notification, you'll have to turn them off entirely, so you stop noticing emails when they arrive. This is problematic for the "keep my email open all day" approach where the whole point is being able to action new emails immediately so they don't pile up.
Using an app that can be turned off also facilitates being a "check email once a day" kind of person, if that's your jam. Open the app, check your email, action the important ones, delete or archive all of them, then close the app. You can carve out 5-20 minutes for email, be free of email for the rest of the day, and still keep on top of everything!
Using good tools is enjoyable
Imagine trying to manage versions or debug code without git or gdb. It would take ages and the results wouldn't be as good. Proficiency with these tools makes you feel like a bird soaring above the clouds or a wizard effortlessly wielding powerful magic, not some clod stumbling around in the mud.
Email clients are the same way. Learn powerful tools to bolster your professional skills and feel better about the process of participating in KDE, not just the outcomes.
The Thunderbird email client is the foundation of my email system. In conjunction with other techniques - which I briefly described in the earlier post and will flesh out in more detail over the coming weeks - this is currently my email situation:

Those are all of my emails across 5 accounts. Here are just my KDE emails:

As you can see, this is completely manageable. It takes practically no effort to keep it this way, and there's no feeling of dread when checking emails in the morning. If you're drowning in email, you can get here too, I promise.
It starts with using an email client. If you aren't regularly using one yet, it will take some up-front work, and some re-training, but it's worth it: you'll spend less time and mental resources on email and more of it on what actually matters - without taking the easy path of neglecting email and being perceived as a person who's hard to contact or unreliable.
So get started today with KMail or Thunderbird!
23 Apr 2026 9:53pm GMT
Qt Creator 19.0.1 released
We are happy to announce the release of Qt Creator 19.0.1!
This release of Qt Creator fixes various issues, including but not limited to
![]()
23 Apr 2026 10:39am GMT
22 Apr 2026
Planet KDE | English
Qt for MCUs 2.12.1 LTS and Updates
Qt for MCUs 2.12.1 LTS has been released and is available for download. This patch release provides bug fixes and other improvements while maintaining source compatibility with Qt for MCUs 2.12 (see Qt for MCUs 2.12 LTS released). This release does not add any new functionality.
![]()
22 Apr 2026 9:10am GMT
21 Apr 2026
Planet KDE | English
Monthly Report - April 2026
Krita 5.3.0/6.0.0 is here, and 5.3.1/6.0.1 followed soon after.
Read on for a look at development news and the Krita-Artists forum's featured artwork from last month.
Development Report
Krita 5.3.0/6.0.0 Released!
Krita 5.3.0/6.0.0 has finally been released!
However, some Windows users experienced slowdowns with 5.3.0. After much effort by users and developers trying to track down the problem, it was determined some external apps were triggering slowdowns in Qt Accessibility.
The problem was fixed with a backported Qt patch, and 5.3.1/6.0.1 released.
Fixes in 5.3.1/6.0.1
That release also contains a few other fixes. Resize Canvas's canvas size values no longer become huge after toggling 'Constrain proportions" (bug; change).
On Krita 6, incremental version failing to save and incremental backup freezing Krita (bug; change), and moving or copy-pasting a keyframe doing nothing (bug; change) were fixed. Drag-and-dropping an image no longer crashes on Wayland (change).
5.3.1.1 Released for Android
On Android, 5.3.1 introduced some regressions, which were fixed in 5.3.1.1. Editing a text field on Android 12 or older once again doesn't crash (change), which was related to fixes for the text edit popup covering text and the window panning up when using Text Tool (bug 1, bug 2; change 1; change 2).
Handling stylus buttons of some devices works again, and OnePlus stylus button (F21) is middle click (change 1, change 2), Huawei stylus double-tap gesture (Android key 718) is F25 (change).
Additionally, setting fallback languages has been disabled, as it makes the UI unusably slow (CCbug; change).
On macOS, 5.3.1.1/6.0.1.1 was released to fix an issue with Krita's built-in FFmpeg not working due to incorrect entitlements.
Further Developments
Wolthera has started working on the roadmap goal of improving HDR. In the unstable Krita Next builds, canvas decorations such as the transparency checkerboard, tool outlines, and the color sampler (bug 1, bug 2; change); reference images (bug; change); and the pixel grid (change) in are now displayed properly in HDR.
Luna continues to refine the Selection Actions Bar. An issue where the bar disappeared when toggling selection visibility was fixed (change), it's no longer interactable when covered by the pop-up palette (change), and a toggle for it was added to the selection tools' options docker (change).
Check out the Additional Changes section near the bottom of this post for more development build fixes and improvements.
Community Report
March 2026 Monthly Art Challenge Results
The winner of the "An unforgettable scene - 5 seconds before" challenge is…
Mayhem in 3…2…1 by Elixiah

Join This Month's Art Challenge!
For April's theme, last month's winner has chosen "Microadventure", with the optional challenge of using a gamut mask. What might the world outside your door look like if you were one inch tall? Little things you take for granted may no longer seem so small!
Featured Artwork
This month's featured forum artwork, as voted in the Best of Krita-Artists - February/March 2026:
Working Late at Night (Pikat fanart) by RaitzInk

Happy Dancing Girl by YaMuuS

Gato al aire libre. (Wet paint) by Syn27

Digital Collage Artist Using Krita by Deleted_Designs

Hornet! by desenhunos

Nominate and Vote For Next Month's Featured Artwork!
Participate in next month's nominations and voting to voice your opinion on the Best of Krita-Artists - March/April 2026.
Krita is Free - But You Can Contribute!
Krita is free to use and modify, but it can only exist with the contributions of the community. A small sponsored team alongside volunteer programmers, artists, writers, testers, translators, and more from across the world keep development going.
If this software has value to you, consider donating to the Krita Development Fund. Or Get Involved and put your skills to use making Krita and its community better!

Additional Changes
Krita Plus (Stable, 5.3.2/6.0.2 prealpha):
- Usability: Allow pasting images on the welcome page. (change by Luna Lovecraft)
- Transform Tool: Make increase/decrease brush size actions work with Liquify. (change by Carsten Hartenfels)
- Text Tool: Fix crash when activating Text Tool after opening two views on a document and closing the first one. (bug; change by Gregg Jansen van Vuren)
- Text Tool: Select the text that's created on a new vector layer when the selected layer was raster. (bug; change by Luna Lovecraft)
- General: Fix brushstrokes briefly freezing in images with large empty areas, by using coarse thumbnails for the Undo History docker. (change by Dmitry Kazakov)
- Brush Engines: Fix random texture offsets being reset to 0 on every stroke. (bug; change by Dmitry Kazakov)
- Canvas: Fix part of the canvas appearing transparent after cropping the image. (bug; change by Dmitry Kazakov)
- File Formats: KRA: Fix importing .kra as layers reversing the layer order. (bug; change by Dmitry Kazakov)
- Animation Timeline Docker: Select the given layer when selecting a frame. (change by Luna Lovecraft)
- Animation Rendering: Error out if duplicating a frame fails when rendering frames. (change by Raidon Chrome)
- Android: Prevent "Application not responding" message on startup by copying assets out of the APK later. (change by Carsten Hartenfels)
- G'MIC: Fix using a G'MIC filter causing parentheses in layer names to be converted to control characters. Files with these messed-up layer names are unloadable by Krita 6. (bug; change by Dmitry Kazakov)
- Qt6: Text Properties Docker: Fix clicking on fonts in the fonts dropdown doing nothing. (bug; change by Wolthera van Hövell)
- Qt6: Text Properties Docker: Fix using tags. (change by Wolthera van Hövell)
- Python Plugins: Show an error when trying to import the wrong version of PyQt, rather than trying to remove it from Python's path. (bug; change by Freya Lupen)
Krita Next (Unstable, 5.4.0/6.1.0-prealpha):
- G'MIC: Update to version 3.7.4.1. (change by Ivan Yossi)
- Layer Stack: Fix unnecessary updating of a layer mask when merging two layers below it. (bug; change by Dmitry Kazakov)
- Text Properties Docker: Fix popups such as the font dropdown to not be cropped to the containing widget. (change by Wolthera van Hövell)
Nightly Builds
These pre-release versions of Krita are built every day.
Note that there are currently no Qt6 builds for Android.
Get the latest bugfixes in Stable Krita Plus (5.3.2/6.0.2 prealpha): Linux Qt6 Qt5 - Windows Qt6 Qt5 - macOS Qt6 Qt5 - Android arm64 Qt5 - Android arm32 Qt5 - Android x86_64 Qt5
Or test out the latest Experimental features in Krita Next (5.4.0/6.1.0-prealpha). Feedback and bug reports are appreciated!: Linux Qt6 Qt5 - Windows Qt6 Qt5 - macOS Qt6 Qt5 - Android arm64 Qt5 - Android arm32 Qt5 - Android x86_64 Qt5
21 Apr 2026 12:00am GMT
20 Apr 2026
Planet KDE | English
Kookbook 0.3.0 released
I recently released version 0.3.0 of my recipe manager application Kookbook - find it in git in KDE Invent or as released tarballs in https://download.kde.org/stable/kookbook/
Changes since last time is more or less "Minor bugfixes and a Qt6 port" - nothing as such noteworthy unless you aim to get rid of Qt5 on your system.
so what is kookbook?
It is a simple recipe viewer that works with semi-structured markdown. More details can be seen in the quite old 0.1.0 announcement

At some point I should do a 10 recipe example collection, but my personal collection is in danish, so I'm not sure it is going to be useful. Unless someone will donate me some handfuls of pre-formatted recipes, I will happily announce it.
20 Apr 2026 3:01pm GMT
18 Apr 2026
Planet KDE | English
KDE Mega Sprint 2026 Graz
Hello https://planet.kde.org
I am Raresh Rus, https://invent.kde.org/nmariusp , https://www.youtube.com/@nmariusp .
I took part in the KDE Mega Sprint 2026 Graz https://community.kde.org/Sprints/MegaSprint/2026 .
The sprint was from 09:00 - 19:00, Monday 2026.04.06 - Saturday 2026.04.11.
In room HS FSI 1, Inffeldgasse 11, Graz, Austria. In the Inffeldgasse campus of the Technical University Graz (TU Graz).
We were hosted by the "Grazer Linuxtage 2026" organization. Thank you Kevin Krammer.
I travelled by bus and slept almost all of the time.
The city of Graz has a population of 300,000 and is the second largest city in Austria after the capital Vienna.
Graz has a large number of well preserved pre First World War buildings.
More than 20 KDE contributors participated. Including CorneliusS and LaurenzW from the GNOME community.
Before the sprint, I created a youtube video "KDE Mega Sprint 2026 and Grazer Linuxtage 2026 #glt26" https://www.youtube.com/watch?v=56xIRyyFR3c
During the sprint, I did small gitlab Merge Requests.
Some KDE git repositories had the main readme file say that the KDE project can most easily be built using kdesrc-build. I replaced "kdesrc-build" with "kde-builder".
I saw that https://develop.kde.org/docs/getting-started/building was ready to replace https://community.kde.org/Get_Involved/development#Setting_up_the_development_environment . So we did this replacement.
I have edited the flatpak manifest of some KDE GUI apps, such that less files are present in the flatpak package file.
KDE Linux comes with kwrite preinstalled from flathub. I saw that https://github.com/flathub/org.kde.kwrite/blob/master/org.kde.kwrite.json does exist. But this flatpak manifest for kwrite does not exist in the KDE git repository of kwrite and kate.
I have encountered various issues with the licenses displayed in the about dialog of various KDE GUI apps. Scroll issues in license text viewer in Kirigami app. Not correct license being displayed. There are also differences between the license in reuse in the KDE git repository, the license shown in the GUI app's about dialog, the license shown for that app in Discover, apps.kde.org, flathub and snap store.
Also, in reuse, the license of files which come from outside the KDE community for example app icons for VLC and Blender have different licenses in the upstream git repository and in the KDE git repository.
The reuse linter prefers that we use file "REUSE.toml" instead of ".reuse/dep5".
Top issues that I have encountered: I saw Plasma Welcome Center tens of times without reinstalling operating systems or reverting VM snapshots. My hardware laptop took many minutes to start until I have disabled "Intel VMD" from the UEFI firmware screen with advanced settings.
Fedora 44 Workstation and Ubuntu 26.04 use the GNOME desktop, do not have a GNOME desktop X11 session, but I can connect using the Remote Desktop Protocol. See https://www.youtube.com/watch?v=oelT312LqFI , https://www.youtube.com/watch?v=xjfC4GGI7_w
Work is in progress to have these features available also for KDE Linux and the KDE Plasma Wayland session.
The big epics are probably: "KDE Plasma Wayland session - make it possible via command line to change the KDE Plasma Wayland session resolution to arbitrary width and height integer values", "vdagent - make it possible to paste plain text towards KDE Plasma Wayland", "vdagent - make it possible to copy plain text from KDE Plasma Wayland", "RDP server in KDE Plasma Wayland - implement plain text clipboard copy/paste", "RDP server in KDE Plasma Wayland - make it possible to log into KDE Plasma from a RDP client such as xfreerdp".
Toward the end of the sprint, we recorded a youtube video "Conclusions panel KDE Mega Sprint 2026 Graz" https://www.youtube.com/watch?v=eSCXY4nEiWI .
18 Apr 2026 1:54pm GMT
State of Kdenlive - 2026
In 2025, the Kdenlive team continued grinding to push the project forward through steady development, collaboration, and community support. Over the past year we've found a nice balance between adding new features, bug fixing, polishing the user interface, and improving performance and workflow, with stability taking priority over feature creep.
We relaunched the website with a new content management system, refreshed some content and the design, and restored historic content dating back to 2002. We also strengthened upstream collaboration with the MLT developers and contributed several improvements to OpenTimelineIO.
Here's a look at what we've been up to and what is ahead.
RELEASE HIGHLIGHTS
As part of KDE Apps, we follow the KDE Gear release cycle, with three major releases each year-in April, August, and December-each followed by three point maintenance releases.
25.04.0
This release added a powerful automatic masking tool and brought the last batch of features from our last fundraiser.
Background Removal
The new Object Segmentation plugin based on the [SAM2][4] model allows to remove any selected object from the background.
OpenTimelineIO

We rewrote our OpenTimelineIO import and export function using the C++ library. Now you can exchange projects with other editing applications that support this open source file format.
Waveform improvements

Audio waveform generation got a 300% performance boost, along with a refactored sampling method that accurately renders the audio signal and higher-resolution waveforms for greater precision.
25.08.0
This release focused heavily on stabilization, bringing over 300 commits and fixing more than 15 crashes. Instead of major new features, the effort went into polishing and bug fixing.
Audio Mixer

We redesigned the audio mixer bringing levels with clearer visuals and thresholds. We also did some code refactoring and cleanup. This change fixes issues with HiDPI displays with fractional scaling.
Markers and Guides
Guides and Markers got a major overhaul this release to improve the project organization.
Titler improvements
This release the titler received some much needed love like improved SVG and image support with ability to move and resize items, added center resize with Shift + Drag, and renamed the Pattern tab to Templates and moved the templates dropdown to it
25.12.0
The focus of this release cycle was on improving the user experience and polishing the user interface.
Welcome Screen

We added a new first-run launch screen for first time users as well as added a Welcome Screen allowing to easily launch recent projects.
Docking System
We added a new, more flexible docking system that lets you group widgets, show or hide them on demand, and save layouts as separate files that can be shared or stored within projects.
Redesigned monitor
The audio waveform in the Project Monitor got a revamped interface with an added minimap.
THE ROAD AHEAD
26.04
This next release is just around the corner and brings a nice batch of nifty new features like monitor mirroring and animated transition previews, making it much easier to visualize how they will look before applying them. Additionally, dropping a transition onto the timeline can now automatically adjust its duration to match the clips above and below, saving time and reducing manual tweaking.
This feature allows you to mirror any monitor while working in fullscreen mode. It's especially useful when working with multiple displays or collaborating with others in the editing room.
OTHER NOTEWORTHY FEATURES
- Change the playback speed of multiple clips at once
- Import a clip directly from the timeline context menu and insert it at the click position
- Option to always zoom toward the mouse position instead of the timeline playhead
- Generate audio thumbnails for sequences
ROADMAP
Our roadmap is constantly being reviewed and updated, and some of the upcoming highlights include implementing the new features in MLT, the multimedia framework which powers Kdenlive. Some exciting upcoming features include 10/12 bit color support, playback optimizations (decoding), and OpenFX support. (Shoutout to a Kdenlive community member for leading this effort). Also expected is a refactoring of the subtitle system as well as continuing to develop the Advanced Trimming Tools.
DOPESHEET
We are currently working on refactoring the keyframing system and implementing a Dopesheet, basically it is a dedicated timeline for managing and viewing keyframes from multiple effects simultaneously. This work will also introduce per-parameter keyframing (currently, once you add a keyframe to an effect, it is applied to all parameters by default). More info can be found in the last status report. This work is made possible through an NGI Zero Commons grant via NLnet.

MICROSOFT STORE
We have been working on enabling and fixing multiple modules in MLT to compile with MSVC allowing us to ship Kdenlive in the Microsoft Store soon. Another advantage is that it will allow to run unit tests on our CI for Windows.
COMMUNITY

NEW CONTRIBUTORS
Currently, the Kdenlive core team is made up of 8 active members, including 2 developers.
In 2025, 38 people contributed code to Kdenlive (including the core dev team and other KDE devs), a truly impressive number! Even more exciting, about half of them were first-time contributors, which is always great. We hope to see many of them continue contributing in the future. On behalf of the Kdenlive team, we salute you all!
List of contributors and commits
Note that these numbers refer specifically to contributions to the Kdenlive application. Other projects such as the test suite and website are hosted in separate repositories and are not included in these figures.
- 878 - Jean-Baptiste Mardelle (core team)
- 126 - balooii balooii
- 109 - Julius Künzel (core team)
- 60 - Darby Johnston (fundraiser)
- 26 - Bernd Jordan (core team)
- 24 - Ajay Chauhan
- 11 - Eugen Mohr (core team)
- 9 - Scarlett Moore (KDE)
- 8 - Yuri Chornoivan (KDE)
- 7 - Justin Zobel (KDE)
- 7 - Ron Lee (core team)
- 6 - Farid Abdelnour (core team)
- 5 - Josep M. Ferrer
- 5 - Étienne André (fundraiser)
- 4 - Kunda Ki
- 4 - Swastik Patel
- 3 - Camille Moulin (core team)
- 3 - Carlos De Maine
- 2 - Johnny Jazeix (KDE)
- 2 - Luigi Toscano (KDE)
- 2 - Nicolas Fella (KDE)
- 2 - Richard Ash
- 2 - Side Projects Lab
- 2 - Xander Bailey
- 2 - chocolate image
- 1 - Adam Fidel
- 1 - Alex Efimov
- 1 - Edward McVern
- 1 - Eli George
- 1 - Helga K
- 1 - Jack Bruienne
- 1 - Jonas Endter
- 1 - Oliver Kellogg
- 1 - Rafael Sadowski
- 1 - Steve Cossette
SPRINTS AND EVENTS
AMSTERDAM SPRINT

In February, part of the Kdenlive core team met in Amsterdam for a short sprint, highlighted by a visit to the Blender Foundation, where we met with Francesco Siddi and he shared valuable insights into Blender's history and offered advice on product management for Kdenlive. We also attended their weekly open session, where artists and developers present progress on ongoing projects. During the sprint, we discussed and advanced several technical topics, some highlights include:
- Refining the audio workflow task
- Developing a proof of concept to improve clip timecode handling
- Finishing an MLT Framework patch to enable rendering without a display server (needed for Flatpak testing)
BERLIN SPRINT

The Berlin sprint was one of our most productive gatherings to date. Most of the team was there in person, and we also connected online with those who couldn't make it. We discussed just about every aspect of the project, from roadmap planning to upcoming features and workflow improvements. Some of the highlights include:
- Evaluated the current state of the Titler and discussed possible integration with Glaxnimate
- Reorganized the Menu structure
- Developed a proof of concept for using KDDockWidgets
- Redesigned and started development of the audio clip view in the Clip Monitor
Thanks to the nice folks at c-base who kindly hosted us.
AKADEMY 2025

Akademy is always a great opportunity to exchange ideas with the broader KDE and Qt communities. One of the highlights was meeting the maintainer of Glaxnimate, where we discussed common goals and ways to collaborate. This year, Akademy will be in Graz on the 19-24 of September, and we hope to see you there.
SHOWCASE
We're very happy to see more YouTube channels talking about Kdenlive. Here are some examples of what the community has been creating.
We'd love to see what you've been working on in the past year. Share your videos productions in the comments!
SPREAD THE WORD
Help us grow the community by organizing meetups, talks, or workshops in your local area. Don't hesitate to contact us if you need guidance, materials, or support to get started.
Below are photos from a workshop with indigenous communities in Paraguay.
STATS
DOWNLOADS
- Kdenlive was downloaded 11,500,714 times from our download page in 2025. Do note that many additional installs happen through Linux distribution package managers, the Snap Store, Flathub, and other third-party servers, where statistics are not always available or reliably measurable.
- The Flatpak package from Flathub gets 41,499 downloads per month.
- 25.04.2 got the most number of downloads.
- 17.08.2 was downloaded 1 time!
Downloads per release cycle
A script element has been removed to ensure Planet works properly. Please find it in the original post. A script element has been removed to ensure Planet works properly. Please find it in the original post.
CODE COMMITS
Per Release Cycle
- 25.04 cycle: 403 commits
- 25.08 cycle: 368 commits
- 25.12 cycle: 405 commits
Files With Most Code Changes
- src/mainwindow.cpp: 102 commits
- src/bin/bin.cpp: 70 commits
- src/timeline2/view/timelinecontroller.cpp: 67 commits
- src/monitor/monitor.cpp: 60 commits
- data/org.kde.kdenlive.appdata.xml: 57 commits
Files With Most Bug Fixes
- src/mainwindow.cpp: 1021 commits
- src/timeline2/model/timelinemodel.cpp: 600 commits
- src/bin/bin.cpp: 593 commits
- src/timeline2/view/timelinecontroller.cpp: 506 commits
- src/renderer.cpp: 501 commits
USERBASE
Continent
- 🌍 Europe - 949,077
- 🌎 Americas - 781,131
- 🌏 Asia - 750,406
- 🌍 Africa - 127,948
- 🌏 Oceania - 53,397
- 🧊 Antarctica - 5
To the 5 of you in Antarctica, let us know what you are editing. ;)
Country
- 🇺🇸 United States - 392,967
- 🇮🇳 India - 267,449
- 🇧🇷 Brazil - 153,319
- 🇩🇪 Germany - 118,115
- 🇫🇷 France - 111,071
- 🇨🇳 China - 104,692
- 🇷🇺 Russia - 96,051
- 🇪🇸 Spain - 91,052
- 🇬🇧 United Kingdom - 86,165
- 🇮🇹 Italy - 61,814
Region
- 🇺🇸 California, United States - 42,769
- 🇧🇷 São Paulo, Brazil - 37,452
- 🇮🇳 Tamil Nādu, India - 27,313
- 🇫🇷 Île-de-France, France - 26,755
- 🇮🇳 Mahārāshtra, India - 25,246
- 🇺🇸 Texas, United States - 22,470
- 🇨🇦 Ontario, Canada - 20,016
- 🇳🇱 Noord-Holland, Netherlands - 19,826
- 🇺🇸 Florida, United States - 18,997
- 🇨🇳 Shanghai Shi, China - 18,991
FUNDING
Ever since our last, and very successful, fundraiser in 2022, we haven't actively asked for donations, yet the community has continued to support us. We are very grateful for that.
In 2025, we received a total of €9,344.80 from donations (down from €11,526.61 in 2024). Around 30% of the amount was given by donors who kindly set up a recurring plan. The average donation was about €25, with the lowest amount being €10 and the highest €500.
We allocate 20% of our budget to KDE e.V. to support infrastructure costs (servers and related expenses), as well as administration, legal support, and travel. As in previous years, your contributions enable us to continue supporting Jean-Baptiste (Kdenlive's maintainer), allowing him to dedicate several days each month to Kdenlive in addition to his volunteer work.
WE NEED YOUR SUPPORT
Kdenlive needs your support to keep growing and improving. If just a quarter of the people who downloaded Kdenlive in 2025 contributed €5, our maintainers would be able to dedicate more time to the project, and it would even allow us to hire more develpers to speed up development and improve stability. Small amounts can make a big difference, please consider making a donation.
You may also contribute by getting involved and helping in:
- Reporting, debugging, and triaging bugs
- Translating Kdenlive in your language
- Promote Kdenlive in your local community
18 Apr 2026 9:00am GMT
Hello old new “Projects” directory!
If you have recently installed a very up-to-date Linux distribution with a desktop environment, or upgraded your system on a rolling-release distribution, you might have noticed that your home directory has a new folder: "Projects"
Why?
With the recent 0.20 release of xdg-user-dirs we enabled the "Projects" directory by default. Support for this has already existed since 2007, but was never formally enabled. This closes a more than 11 year old bug report that asked for this feature.
The purpose of the Projects directory is to give applications a default location to place project files that do not cleanly belong into one of the existing categories (Documents, Music, Pictures, Videos). Examples of this are software engineering projects, scientific projects, 3D printing projects, CAD design or even things like video editing projects, where project files would end up in the "Projects" directory, with output video being more at home in "Videos".
By enabling this by default, and subsequently in the coming months adding support to GLib, Flatpak, desktops and applications that want to make use of it, we hope to give applications that do operate in a "project-centric" manner with mixed media a better default storage location. As of now, those tools either default to the home directory, or will clutter the "Documents" folder, both of which is not ideal. It also gives users a default organization structure, hopefully leading to less clutter overall and better storage layouts.
This sucks, I don't like it!

As usual, you are in control and can modify your system's behavior. If you do not like the "Projects" folder, simply delete it! The xdg-user-dirs utility will not try to create it again, and instead adjust the default location for this directory to your home directory. If you want more control, you can influence exactly what goes where by editing your ~/.config/user-dirs.dirs configuration file.
If you are a system administrator or distribution vendor and want to set default locations for the default XDG directories, you can edit the /etc/xdg/user-dirs.defaults file to set global defaults that affect all users on the system (users can still adjust the settings however they like though).
What else is new?
Besides this change, the 0.20 release of xdg-user-dirs brings full support for the Meson build system (dropping Automake), translation updates, and some robustness improvements to its code. We also fixed the "arbitrary code execution from unsanitized input" bug that the Arch Linux Wiki mentions here for the xdg-user-dirs utility, by replacing the shell script with a C binary.
Thanks to everyone who contributed to this release!
18 Apr 2026 8:06am GMT
KDE Sprint and Grazer Linuxtage 2026
I spent the last week in Graz, Austria, attending a KDE sprint as well as Grazer Linuxtage.
KDE Sprint
Just like last year, the Grazer Linuxtage team had made rooms available for KDE people to meet in the week prior to the conference. More than twenty contributors attended, below are a few notes from discussions I have been involved with.
AppStream release notes
We use AppStream application metadata in a number of places currently:
- The apps.kde.org website.
- Software stores such as Flathub, F-Droid, Google Play or the Microsoft Store.
- Software centers such as Discover.
In-app application metadata has so far been maintained separately though, using the KAboutData API. With KDE Frameworks 6.26 it will become possible to populate that from AppStream data as well, reducing duplicated data and duplicated translation efforts.
We also expanded how we use release notes from AppStream data:
- Release notes can now also be translated.
- There's new API for accessing AppStream release notes inside an application itself. This is meant to avoid duplicated efforts for in-app release notes.
- The KDE Gear release automation will now handle notes for pre-releases correctly. This means you can add release notes for users of CD builds already, those will get translated and merged into the subsequent stable release notes automatically.
There's a few more things to do here still:
- We don't have a Kirigami-based standard component for in-app release notes yet.
- The metadata converters for F-Droid and Google Play don't handle release notes yet.
LSAN rollout on the CI
After Albert had added infrastructure for LeakSanitizer (LSAN) suppressions in the CI, we were able to enable LSAN in several more repositories which had previously been blocked on "unfixable" or intentional "leaks" outside of our control.
The increased visibility on actual issues then also helped with identifying and fixing a couple more "real" leaks, e.g. in KGuiAddons and LibKGAPI.
Qt 6.11 for Android
There has been some progress on the long overdue Qt update for our Android builds. This had been delayed as it'll imply some rather drastic changes to the supported Android versions and devices. Lacking alternatives we will go ahead with this.
In particular, after 26.04.0 is out this means only Android 9 and higher will be supported, and 32bit ARM builds will be discontinued.
We prepared Qt 6.11 CI images and applied necessary build fixes to practically all of our apps that have Craft-based Android builds. Initial test looks promising, and some of the annoying input handling glitches seem to have been fixed.
Sentry for Android
Another Android-related topic we looked into was uploading crash information to KDE's Sentry instance. Our Linux and Windows builds can do this since some time, and it has been a great help with identifying, prioritizing and fixing crashes.
Initial experiments got this to work quickly on Android as well, but it will require more work to do this properly and give users full control over whether they want to upload crash information or not. We explored a few options on how to do that and have a plan now, but that yet has to be implemented.
KMime move to KDE Frameworks
The long-lasting move of KMime to KDE Frameworks will finally happen early May, after the 26.04 KDE Gear release and in time for the 6.27 KDE Frameworks release.
Users of KMime will need a few minor build system adjustments for this. The CMake target name changes from KPim6::Mime to KF6::Mime, and the version number changes from KDE PIM versioning KDE Frameworks versioning. You can either replace this at once, or use the forward-compatibility approach suggested below.
The following CMake snippet replaces the previous find_package call for KPim6Mime and will handle both variants from before and after the move.
find_package(KF6Mime 6.27 CONFIG)
if(NOT TARGET KF6::Mime)
find_package(KPim6Mime 6.7.0 CONFIG REQUIRED)
add_library(KF6::Mime ALIAS KPim6::Mime)
endif()Target names in target_link_library calls can then be switched to the new KF6::Mime already. Once the transition is complete, the above snippet can be simplified to a single find_package call for the new variant again, without needing to touch anything else anymore.
Akademy preparations

While we were in Graz the dates for this year's Akademy were announced: September 19-24. Registration as well as the Call for Participation are open as well.
As it was already known that Akademy would be in Graz this year, we could use the opportunity to inspect venues, test food options, as well as to review and improve OSM (indoor) mapping of the conference location.
Itinerary
With a bunch of people traveling to the sprint, Itinerary also got a bit of attention of course:
- Performance of opening the "My Data" page the first time was improved, by optimizing computing some of the statistics shown on that page.
- A new way of sharing GraphQL query fragments should simplify maintaining support for the various OpenTripPlanner flavors in KPublicTransport. For some of the backends, the information available for rental bikes/scooters/cars became more detailed as a result of this.
- Kate's syntax highlighting got support for IATA SSIM flight schedules. That's fallout from work on importing such data into Transitous, where it will eventually also benefit Itinerary and KTrip.
And more…
That's not all of course, other topics included:
- Improving the usability of the push services configuration in System Settings.
- Enabling System Settings to configure notifications from Flatpak apps using KNotificiation.
- Aligning the different ways currently used to share plain text via Purpose.
- Fixing some non-obvious issues with the static builds after a recent CI image update.
There's also reports from e.g. Kieryn, Albert and Kristen on Planet KDE with more details and other perspectives.
Grazer Linuxtage
KDE
At Grazer Linuxtage we had a KDE booth again, showing devices running Plasma, Krita and Plasma Mobile, handing out stickers as well as the famous amigurumi Konqis, collecting donations, and of course with a bunch of KDE contributors around to talk to.
Albert also did a presentation about 30 years of KDE.
Transitous
Also as part of the conference program I spoke about Transitous and what has been built for that and around that in the past two years.
Following the recent discussions about dynamic traffic data, the talk about monitoring vehicle-to-vehicle and vehicle-to-infrastructure messages was particularly interesting. The information shown on opentrafficmap.org is obtained that way, and shows how incredibly detailed this is.
There's current positions of trams, busses, and regular cars, speed, acceleration vectors, status of all external lights, and which pedal gets pressed. Traffic lights report their current state and change timings as well as provide a full machine-readable model of their signal groups and lane relations. All of that in a standardized and (intentionally) unencrypted form.
Lots of potential in this, I wasn't aware this went anywhere after things had gotten a bit quieter around the self-driving cars hype.
How you can help!
Bringing people together, for a small meeting or a big conference, is extremely useful and productive. The necessary travel and logistics come with costs though, which is where your donations to organizations like KDE e.V. or Grazer Linuxtage help!
18 Apr 2026 8:00am GMT
This Week in Plasma: Per-Screen Virtual Desktops and Wayland Session Restore
Welcome to a new issue of This Week in Plasma!
Last week over 20 KDE contributors converged on the Austrian city of Graz for our annual mega-sprint. It was a busy week, offering a good opportunity for the kinds of face-to-face conversations that can unblock stuck work and reach new consensus. Expect reports to appear on Planet KDE over the next week or two.
We skipped an issue of TWiP due to the sprint but these past two weeks have indeed been busy! Some major features landed, along with a slew of impactful UI improvements. Let's get right into it:
Notable new features
Plasma 6.7
Each screen can now switch between any of the system's virtual desktops independently! (Hynek Schlindenbuch, KDE Bugzilla #107302)
You can now choose your default calendar app on System Settings' Default Applications page. (Denys Madureira, plasma-workspace MR #6468)

…And you can now middle-click on the Digital Clock widget to open the calendar app you've configured there. (Denys Madureira, plasma-workspace MR #6462)

You can now configure the Alt+Tab window switcher to always appear on the primary screen, rather than whichever screen has keyboard focus or the pointer on it. (Yuki Tsujii, KDE Bugzilla #329696)
You can now mark app-specific actions that you find in a search as favorites. (Kai Uwe Broulik, plasma-workspace MR #6224)

The Kicker Application Menu widget now highlights newly-installed apps, just like the Kickoff Application Launcher widget does. (Christoph Wolk, plasma-desktop MR #3649)
You can now drag-and-drop apps to the "Favorites" sections of the Kickoff, Kicker, and Dashboard widgets. (Christoph Wolk, KDE Bugzilla #383302 and plasma-desktop MR #3652)
If you find yourself captivated by a picture of the day wallpaper image, you can now right-click on it and access external information about it. (Kai Uwe Broulik, kdeplasma-addons MR #1035)

You can now optionally set Discover to quit after installing updates. (Taras Oleksyn, KDE Bugzilla #508743)

Notable UI improvements
Plasma 6.6.5
While entering the password for a Wi-Fi network using the Networks widget, the password field no longer loses keyboard focus if you happen to move the pointer away from it. (Tobias Fella, plasma-nm MR #556)
Plasma 6.7
There's now a new standard "Badge" component in Kirigami, and many parts of Plasma have been ported to use it. (Nate Graham, kirigami MR #1847, plasma-desktop MR #3089, plasma-workspace MR #6488, systemsettings MR #399, discover MR #1290, and kinfocenter MR #262)
The Input Method System Tray widget no longer disables the active input method if you click it while the input method isn't currently visible. Now it just shows and hides it. (Aleix Pol Gonzalez, plasma-workspace MR #6485)
Improved the design of Discover's grid and list items, which also slightly increases the information density of the pages that show them. (Nate Graham, discover MR #1292)
The Kicker Application Menu widget now shows tooltips for items whose labels have been elided. (Christoph Wolk, KDE Bugzilla #515608)
System Monitor now differentiates multiple GPUs by their names, rather than by arbitrary numbers. (Bernhard Friedreich, libksysguard MR #464 and ksystemstats MR #129)
System Monitor now exposes top-level actions you can use to launch it and go straight to a specific page. These can be invoked from the app's context menu, or via a global shortcut you set yourself. (Bernhard Friedreich, plasma-systemmonitor MR #427)

The Margins Separator widget is now added from the panel configuration dialog's "Add New" menu, rather than the widget explorer sidebar. This matches how the similar spacer widget is added. (Antti Savolainen, plasma-workspace MR #6494 and plasma-desktop MR #3663)

The clipboard popup invoked with Meta+V now closes if it's open when you press that keyboard shortcut a second time. (Kristem McWilliam, plasma-workspace MR #6450)
Improved how System Settings' Shortcuts page handles being told to assign a shortcut that's already assigned to something else. (David Bacskay-Nagy, KDE Bugzilla #484526 and KDE Bugzilla #489544)
KRunner now lets you evaluate fancy mathematical expressions more flexibly; in the past you could ask for sqrt(2) + 2 but not 2 + sqrt(2); now both are accepted. (Alex Cizinsky, KDE Bugzilla #496343)
Frameworks 6.26
The dialog that asks you if you want to launch or edit an executable text file (like a .desktop file) no longer gives you the opportunity to tell it to always do that thing. This behavior was making .desktop files un-launchable for people who selected the option to always open those types of files in a text editor. Anyone who wants to use this feature can still configure it in Dolphin's settings. (Nate Graham, kio MR #2171)
Removed the CFP franc from the list of common currencies, so it no longer shows up automatically for every currency conversion run using KRunner-powered searches. (Pellaeon Lin, kunitconversion MR #84)
Notable bug fixes
Plasma 6.6.4
Fixed a case where Plasma Keyboard could crash after Alt+Tabbing away from a window marked as "keep above others". (Devin Lin, KDE Bugzilla #517087)
Worked around a bug added in Qt 6.11 that made some of Spectacle's annotation tools unclickable. (Oliver Beard, KDE Bugzilla #515304)
Fixed a layout issue in the Activity Pager widget that made it look weird at specific non-default panel sizes. (Marco Martin, KDE Bugzilla #518451)
Plasma 6.6.5
Fixed a case where KWin could crash on logout when the session that's closing had sent any emulated keyboard or mouse events. (Vlad Zahorodnii, kwin MR #9092)
Fixed an issue with the screen locker that could cause the buttons to malfunction and leave you unable to unlock after you pressed the Esc key in combination with various other actions with specific timings. (Akseli Lahtinen, KDE Bugzilla #515299)
Fixed an issue that made color picker functionality throughout the system return random colors on systems with certain graphics hardware. (Xaver Hugl, KDE Bugzilla #518770)
Fixed an issue that made the clock times shown on the lockscreen differ across the screens of a multi-screen setup. (DeepChirp, KDE Bugzilla #516479)
Fixed two issues that made network connections added from the Plasma setup wizard not always work properly. (Adam Williamson, KDE Bugzilla #514841 and plasma-setup MR #100)
Fixed a couple of cases where auto-hide panels might not hide properly when there were any unread notifications. (Patrick Cleary, KDE Bugzilla #519046)
Switching away from the Networks Widget in the System Tray no longer briefly makes a placeholder message appear. (Tobias Fella, KDE Bugzilla #511367)
Improved the reliability of the Weather Widget's icon fallback behavior, making it less likely to show broken weather icons. (Ismael Asensio, kdeplasma-addons MR #1032)
Plasma 6.7
Fixed an issue that could make the Audio Volume widget not notice that a new audio device was connected and became the default one. (Oliver Beard, plasma-pa MR #393)
Using the clipboard's non-default "Never save [non-text items] in history" option no longer breaks the ability to paste items that have been moved to the top of the clipboard history. (Christoph Wolk, KDE Bugzilla #514095)
Apps in the Quick Launch widget can once again be re-arranged. (Alex Folland, KDE Bugzilla #481922)
Fixed two quirky issues with Spectacle's magnifier in Rectangular Region mode. (Noah Davis, KDE Bugzilla #509776 and KDE Bugzilla #509777)
Notable in performance & technical
Plasma 6.7
KWin now supports the Wayland session management protocol! This is an important step for apps to be able to remember their sizes and positions after restarting the system. The next step is for toolkits, libraries, and apps to implement support. We're getting there! (Vlad Zahorodnii, KDE Bugzilla #436318)
Reduced the size of animated GIF images produced by apps like Spectacle that use KDE's KPipeWire library. (Bernhard Friedrich, kpipewire MR #247)
How you can help
KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.
Would you like to help put together this weekly report? Introduce yourself in the Matrix room and join the team!
Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. 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; many other opportunities exist.
You can also help out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.
To get a new Plasma feature or a bug fix mentioned here
Push a commit to the relevant merge request on invent.kde.org.
18 Apr 2026 12:00am GMT





