Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Sunday, 28 December 2025

Happy holidays to all in the KDE universe who celebrate them! As 2025 draws to a close, I thought it would be a good time to take stock.

“This Week in Plasma” began 8 years ago as a development report for KDE’s Usability & Productivity goal, which had just been democratically selected by the community in the very first round of the new KDE Goals process.

Back then it wasn’t called “This Week in Plasma” (or “TWiP” for short), but eventually it would gain and change names, and move off my personal blog and onto KDE’s infrastructure.

During these past 8 years, I’ve done my best to keep the wider KDE community informed about what’s going on almost every week! And I’m constantly amazed and humbled by the positive feedback it’s generated.

The march of time and accumulation of responsibilities

My own role in KDE has changed substantially during these 8 years. I started out in 2017 as a volunteer and fell in love with KDE, squeezing my KDE time into a long daily train commute to and from work. And by 2019 I had a full-time job at Blue Systems, doing what I loved. In 2022 I was elected to the KDE e.V. board of directors, until October of this year. Each of these transitions heralded the accumulation of more responsibilities beyond TWiP.

And at the beginning of this year, everything changed again when I became the co-owner and CEO of Techpaladin Software, the successor of Blue Systems’ consultancy business, and an employer of over a dozen rockstar KDE developers.

This has been the largest career shift in my life, and caused my time to become more limited than ever before. It’s possible some readers may have noticed the quality of TWiP content slipping over the past year; it’s not a coincidence, and I apologize for not being able to do a better job.

I need help

I truly want to keep publishing this blog, but there comes a point where I have to face facts: my time and energy budgets are not as unlimited as I wish they were. In addition, my children are getting older; they’re 9 and 13, and they need their dad to do more than just work and work and work and work and work some more.

So it’s time to begin the painful but necessary process of ensuring that those budgets remain big enough to cover my work and family responsibilities.

In 2026, I’m actively looking for a person or team interested in taking over TWiP. Until then, I plan to reduce the frequency of posts, based on how busy my schedule is. Expect one every two weeks, or even every three or four weeks.

How You Can Help

If anyone reading would like to see TWiP remain a weekly fixture as much as I do, the best way to make it happen is to get involved and help out with it! I would be thrilled to hand off TWiP to the next generation.

Nothing about TWiP is particularly difficult, but it does take time. Time to notice or seek out relevant changes, time to collect them in a big list, time to sort them for relevance to the readership, time to write a little blurb for each of them, time to take screenshots showcasing the changes, and time to edit and polish the post.

I’m happy to teach, coach, or mentor anyone who wants to get involved. So if you’ve been wondering how you can get involved in something that matters without technical skills beyond basic markdown and git, this is a perfect way to do it. And if you are technical, I’m sure there are low-hanging-fruit opportunities for automation that I never pursued (I did try AI a few times, but the results were always horrible).

You can reach out to me about it at nate@kde.org, or the relevant Matrix room, or any other relevant means of getting in touch that you might already know about. Please do!

And finally

I’d like to take the opportunity to thank the readers and community members. This blog post series is something I never really expected to become popular, and it was my pleasure to publish it (almost) every week!

Today Plasma and KDE in general are strong and prosperous, with growing bases of users, hardware partners, distros pre-installing our software, and small-donor financing. In some ways KDE is outgrowing TWiP; it’s no longer really necessary to provide weekly evidence that we’re still keeping the lights on. The evidence is all around us!

But it’s still a nice thing to have, I think. I personally would feel sad if I had to abandon TWiP without anyone to hand it off to. So if you’re interested in getting involved, please reach out!

If helping to take over TWiP isn’t your cup of tea, consider donating to KDE’s 2025 end-of-year fundraiser. It’s already demolished past records by raising over €325,000, but every little bit helps! This level of funding can support significant projects and keep KDE independent for years to come. And that’s what we all want.

So here’s to a great 2025 for KDE, and may 2026 be even better!

Saturday, 27 December 2025

At the TUG2025 conference, I presented a talk about the development of a new colour font, which does automatic syntax highlighting for TeX documents/snippets. The idea was floated by CVR, and was inspired by a prior-art of HTML/CSS syntax highlighting font by Heikki Lotvonen.

Syntax highlighting is achieved by specialized grammar files or packages on desktop applications, code editors, the Web, and typesetting systems like TeX. Some of these tools are heavy (e.g. prism.js or pygmentize package). A light-weight alternative would be a font that uses recent OpenType technologies to do syntax highlighting of code snippets. I developed such a font, for highlighting TeX code snippets.

Fig. 1: OpenType colour font doing syntax highlighting of TeX document.

There are some novelties in the developed font:

  1. It supports both COLRv0 and COLRv1 colour format specifications (separate fonts, but generated from the same source).
  2. Supports plain TeX, LaTeX2 and LaTeX3 macro names.
  3. A novel set of OpenType shaping rules for TeX syntax colouring.

The base font used is M+ Code Latin by Coji Morishita. The details of the development, use cases, and limitations can be found in the 46:2 issue of the TUGboat journal publication. The binary font and sources are available at RIT fonts repository.

Friday, 26 December 2025

Let’s go for my web review for the week 2025-52. This is the last one of the year, hope you all had a merry xmas.


Ethics

Tags: tech, ethics

Indeed I wish our profession would have a strong and binding set of ethics like doctors or lawyers. That wouldn’t prevent all problems, but that’d tame some of the issues of our time.

https://inessential.com/2015/02/26/ethics.html


Is Firefox Firefucked?

Tags: tech, web, browser, firefox

This is pretty much where I’m at as well regarding Firefox… Sad state of affairs.

https://kevquirk.com/blog/is-firefox-firefucked/


I foretold that Mac app notarization is security theater

Tags: tech, apple, security

Always hated this notarization with a passion when I had to target Macs… One reason being that it felt fairly useless, and it’s confirmed: it is pretty much useless.

https://lapcatsoftware.com/articles/2025/12/5.html


Flock Exposed Its AI-Powered Cameras to the Internet

Tags: tech, surveillance, privacy, iot

There are just too many of those cameras deployed. The fact that they are badly secured are compounding the negative effects.

https://www.404media.co/flock-exposed-its-ai-powered-cameras-to-the-internet-we-tracked-ourselves/


Generative AI hype distracts us from AI’s more important breakthroughs

Tags: tech, ai, machine-learning, gpt, criticism, ethics

Add to this how generative AI is used in the totally wrong context… and then I feel like I could have written this piece. I definitely agree with all that.

https://www.technologyreview.com/2025/12/15/1129179/generative-ai-hype-distracts-us-from-ais-more-important-breakthroughs/


History LLMs: training the largest possible historical LLMs

Tags: tech, ai, machine-learning, history, politics, culture

Interesting research. Can it give insights on the pervasive views of the time?

https://github.com/DGoettlich/history-llms?tab=readme-ov-file


An initial analysis of the discovered Unix V4 tape

Tags: tech, unix, history

Interesting historical work. It indeed went through a fast paced evolution cycle.

https://www.spinellis.gr/blog/20251223/?ms261223


x-ray: A tool to detect whether a PDF has a bad redaction

Tags: tech, pdf, security

Interesting tool. Indeed very often people send PDFs with useless redaction in them. Better check first.

https://github.com/freelawproject/x-ray


Passphrases That You Can Memorize — But That Even the NSA Can’t Guess

Tags: tech, security

An oldie now but still the best way to create a passphrase.

https://theintercept.com/2015/03/26/passphrases-can-memorize-attackers-cant-guess/


Go ahead, self-host Postgres

Tags: tech, cloud, databases, postgresql, self-hosting

Things went too far with the cloud monoculture. It’s time to remember that it doesn’t always makes sense, and in the case of databases maybe it’s rarely worth it to go for fully managed options.

https://pierce.dev/notes/go-ahead-self-host-postgres


cargo-coupling: Visualizing Coupling in Rust Projects - じゃあ、おうちで学べる

Tags: tech, complexity, design, architecture, rust

Interesting tool and I like the underlying approach. I wish we’d have good equivalent tools for other ecosystems.

https://syu-m-5151.hatenablog.com/entry/2025/12/21/152559


Rust’s Block Pattern

Tags: tech, rust, pattern

This is definitely a useful idiom. A bit like the immediately invoked lambdas in C++ but less verbose. This is nice to control intermediate variables locality and mutability like this.

https://notgull.net/block-pattern/


Performance Hints

Tags: tech, performance, optimization, memory, c++

Excellent resource for keeping an eye on performance issues in your codebase. It’s very C++ oriented but most of the insights can be generalised to other ecosystems.

https://abseil.io/fast/hints.html


map::operator[] should be nodiscard

Tags: tech, c++, api

I definitely agree there. It looks like a missed opportunity to improve the API and nudge people in the right direction.

https://quuxplusone.github.io/blog/2025/12/18/nodiscard-operator-bracket/


The Rule of Zero

Tags: tech, c++, memory

Another explanation for the rule of zero in C++. We should definitely stick to it.

https://blog.feabhas.com/2015/01/the-rule-of-zero/


Logging Sucks - Your Logs Are Lying To You

Tags: tech, logging, observability

Lots of good advice on how to improve your logs.

https://loggingsucks.com/


Refactoring with Loops and Collection Pipelines

Tags: tech, refactoring, data

Pipelines are very widespread nowadays, still I don’t see them used much. Having a few refactoring ideas under our belt to replace loops with such pipelines might help.

https://martinfowler.com/articles/refactoring-pipelines.html


On Metastable Failures and Interactions Between Systems – Aleksey Charapko

Tags: tech, distributed, failure, reliability

A good explainer on what metastable failures are and how to try to mitigate them.

https://charap.co/on-metastable-failures-and-interactions-between-systems/


What Actually Makes You Senior

Tags: tech, career, leadership

I think this is a good pick at a core skill for senior developers. Indeed removing ambiguity for the rest of the team is an important factor.

https://terriblesoftware.org/2025/11/25/what-actually-makes-you-senior/


The Code Is Just the Symptom

Tags: tech, organisation, conway, architecture, quality, management, leadership

This is very true. It’s not like whoever produced bad code is particularly stupid, in most cases it’s the context around which breaks the people.

https://medium.com/@rubyghetto/the-code-is-just-the-symptom-c77f43b29320


Take Pride in Your Legacy (Code)

Tags: tech, legacy, quality

The definition of legacy code is ambiguous enough. We generally mean “bad code” (the wrong definition to me…). What about seeing things differently and trying to leave a great legacy behind us?

https://8thlight.com/insights/take-pride-in-your-legacy-code


Well-factored architecture

Tags: tech, architecture, quality

A good list of characteristics to aim for. Gives clue about the quality of your software architecture.

https://jchyip.medium.com/key-practice-well-factored-architecture-b9d53f5549fb


The cardinal sin of software architecture

Tags: tech, software, architecture, data, state

It’s not the only factor leading to troublesome architectures of course. Still, if state and thus data is wrongly handled, you’re indeed on the wrong track.

https://functional.computer/blog/the-cardinal-sin-of-software-architecture


A Definition of Systems Thinking: A Systems Approach

Tags: tech, systems-thinking, complexity

A nice little primer on what systems thinking is about.

https://www.sciencedirect.com/science/article/pii/S1877050915002860?ref=pdf_download&fr=RR-2&rr=7e18ecfcdd9e2916


Agile Software Guide

Tags: tech, agile

Martin Fowler obviously wrote a lot on the topic. This is a nice guide pointing to some of the most interesting resources on his blog around the agil topic.

https://martinfowler.com/agile.html


How Pairing & Swarming Work & Why They Will Improve Your Products

Tags: tech, pairing

It still something I don’t see happening often. I think it is unfortunate.

https://www.jrothman.com/mpd/project-management/2014/07/how-pairing-swarming-work-why-they-will-improve-your-products/


Essential XP: Card, Conversation, Confirmation

Tags: tech, xp, tests, project-management

Where are acceptance tests coming from? They’re generally the result of a conversation.

https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/


Story Slicing, How Small is Enough?

Tags: tech, project-management, agile

A good justification of why you want to slice your stories finely. It definitely helps steering the project and reduces chances of bottlenecks.

https://agilepainrelief.com/blog/story-slicing-how-small-is-enough/


10 Tips to Get Your Agile teams Better at Story Estimation

Tags: tech, agile, estimates

Nice list of ideas for stories estimations. I applied some of that with nice success.

https://www.liminalarc.co/2014/01/10-tips-better-story-estimation/


Effective Standups around Kanban Board

Tags: tech, agile, kanban

When teams grow the usual standup/daily meeting format doesn’t work anymore. What’s proposed here is a nice alternative.

https://brodzinski.com/2011/12/effective-standups.html


Seven Changes To Improve Flow In Your Software Development Process

Tags: tech, kanban, flow, project-management

Indeed, people getting into lean processes tend to obsess over “eliminating waste”. Sure there might be some waste to clean up but it’s pretty much useless if you don’t focus on the flow of work.

https://flowchainsensei.wordpress.com/2014/08/19/seven-changes-to-improve-flow-in-your-software-development-process/


Cross-Functional Collaboration in Agile: What It Does and Doesn’t Mean

Tags: tech, team, project-management

Indeed, having generalists in teams is definitely what you want. Having only specialists will reduce the project efficiency.

https://www.mountaingoatsoftware.com/blog/cross-functional-doesnt-mean-everyone-can-do-everything


Hire generalists to help your specialists shine!

Tags: tech, team, project-management, problem-solving

The other advantage of not relying only on specialists. You actually get teams better at solving problems due to the extra context and communication channels the generalists will bring.

https://softwaredevelopmenttoday.blogspot.com/2014/01/hire-generalists-to-help-your.html


Using Brainwriting For Rapid Idea Generation

Tags: knowledge, problem-solving, ux, business, strategy

Definitely required more preparation work than brainstorming. That said it’s a nice alternative, maybe easier to get right.

https://www.smashingmagazine.com/2013/12/using-brainwriting-for-rapid-idea-generation/


The Science Of Good Sleep: There’s A Reason You’re Always So Tired

Tags: science, biology, sleep

Lots of insight and advice in here. Are you sure you’re having enough sleep? Of high enough quality?

https://www.elitedaily.com/life/ways-to-get-better-sleep/974053



Bye for now! And see you in 2026!

Tuesday, 23 December 2025

This article focuses on the community analysis of the Automotive Grade Linux Business Intelligence study. It explains which data was analyzed, why individuals were excluded, and how understanding teams and organizations helps correctly interpret metrics from complex software production systems.

Monday, 22 December 2025







Haruna version 1.7.0 is released.

playlist advanced sorting and grouping showcase
playlist advanced sorting and grouping

flathub logo

Windows version:

Availability of other package formats depends on your distro and the people who package Haruna.

If you like Haruna then support its development: GitHub Sponsors | Liberapay | PayPal

Feature requests and bugs should be posted on bugs.kde.org, ignoring the bug report template can result in your report being ignored.


Changelog

1.7.0

Known issues

The animation for the playlist can be stuttery/slow when playback is active. You can improve it by creating two custom commands that run on startup set override-display-fps 75 (replace 75 with your monitor's refresh rate) and set video-sync display-resample.

These don't work for variable refresh rate monitors.

Features

Playlist

  • added advanced sorting and grouping (Muhammet Sadık Uğursoy)
  • added context menu to open file in Hana (thumbnail generator, only if it's installed). Get it from flathub
  • the last active playlist will be set as visible when starting the app

Other

  • added replay gain settings (Muhammet Sadık Uğursoy)
  • mpris thumbnail is only set for audio files, this allows the os taskbar preview to show the actual live window
  • decreased the size of the play icon in the compact playlist

Bugfixes

  • fixed database folder not being created
  • fixed seekbar tooltip not updating when file changes and the mouse is not moved
  • fixed deleting custom commands
  • fixed saving last opened url

Qt for MCUs 2.8.4 LTS has been released and is available for download. It's the last patch release in the MCU 2.8 Long Term Support series. This patch release provides bug fixes and other improvements while maintaining source compatibility with Qt for MCUs 2.8 (see Qt for MCUs 2.8 LTS released). This release does not add any new functionality.

Sunday, 21 December 2025

Happy holidays everyone. Consider this as your holiday card from me. I will be taking short break from KDE stuff for now, though I will be around.

Me wearing my lizard cosplay and chilling in christmas dinosaur shirt

Me wearing my lizard cosplay and doing devil horn hand gesture in christmas dinosaur shirt

(I tagged KDE so that readers of planet have to see these, mwahaha.)

And happy new year 2026, let's hope it gets better from here.

Saturday, 20 December 2025

Lately, this question came up a few times on different channels and I felt to provide some background why things are the way they are.

The question arose most likely, because the latest KMyMoney development snapshot downloaded had a problem and users using that snapshots wanted to return to an earlier version which did not have this problem. At that point they just found out, that those older versions are not available anymore. Therefore, this post will provide some information how the KMyMoney project handles development and which services create binary versions and why older ones disappear.

For that purpose, I created the diagram shown below. It shows the participants in the game enclosed in the areas identified by dashed lines. Those are:

  • KMyMoney developers provide the source code that makes up the application
  • KDE project and their sys-admins running the CI/CD infrastructure which is used by the KMyMoney team to verify that the software compiles and builds in various environments (Linux, FreeBSD, Windows) and provides executable test versions (snapshots).
  • The distribution maintainers who use released source code versions, add distribution specific changes and provide the installable package in the format for the distribution in question (e.g. RPM, DEB, AUR, TGZ, …).

      The diagram also shows the means that the various players interact with, namely the GIT repository and the released source tar-balls. And last but not least, it marks the different steps in the processes of snapshots and releases (red circle with white number) which are explained below.

      Step 1 is where a source code change happens. This may be a new feature or a bug fix. The developer commits this change to the GIT repository either into a specific branch (e.g. stable or master). I leave out feature branches which also exist but don’t play a role here. Once step 1 is finished, automatically

      Step 2 kicks in and the KDE CI/CD system starts a pipeline to build the software and run the automated tests in various environments. In case any of those builds or tests fails, the committing developer gets a notification via e-mail and has the chance to fix the problem by adding another commit in step 1 and thus restarting the process. If all builds and tests finish successfully, the last part of step 2 creates installable versions for different environments as snapshot version and continues with step3.

      Step 3.stores the last successful build for download by developers, testers and interested users. Per KDE project policy only the last successful build is kept, which answers the title’s question. Those snapshot versions will show a version x.y.z followed by an 8 digit hash in the Help/About KMyMoney dialog. This 8 digit hash identifies the commit (step 1) that this version is based on. Example: 5.2.1-05390aa93

      Steps 1 through 3 can happen multiple times a day.

      Step 4 happens, when the KMyMoney developers (or better release manager) create a release. A release does not only contain the source code in a compressed container format and an electronic signature as outlined above, but is also accompanied by the releases notes, change log and the public announcement on blogs, mailing lists, forums, etc. So a bit of work is involved. Step 4 also includes the change of the version number of KMyMoney (which is another step 1 commit) and creating a tag in the GIT repository on the commit that is used to create the tarball. Binaries created based on those tarballs therefore do not show a commit hash in the Help/About KMyMoney dialog.

      Step 5 is performed by the release manager with the help of KDE sysadmin. KDE sysadmins take the files and add them to the KDE content delivery network which comprises of mirrors around the world.

      Step 6 happens, when distribution maintainers take those source code files and compile and build them into installable packages for their distributions.

      Steps 4 through 6 usually happen at a low frequency.

      I hope that this explains how the project works and why things are the way they are.


      Not shown in the above diagram is the work performed by one developer. He maintains a specific build for MS-Windows versions based on MinGW. Using cross-compiled versions allow to create KMyMoney for Windows including support for AqBanking (online banking features) which is not possible using the MSVC compiler suite. Since he basically uses the above mentioned steps 4, 5 and 6, the resulting binaries unfortunately do not contain the 8 digit hash in the Help/About KMyMoney dialog.

      Last weekend I attended the annual(ish) KDE Personal Information Management (PIM) sprint in Paris, to discuss and work on KDE’s infrastructure and applications for dealing with email, calendars and address books. And since this involved travelling, there was some Itinerary field testing as well of course.

      PIM Sprint

      The PIM sprint was hosted by enioka Haute Couture this time, in their offices in the middle of Paris, which happens to be located in a very appropriately named street for this.

      Paris street name sign reading 'RUE DU MAIL'.

      With nine people attending (even if Kévin could only make it remotely in the end) it was actually a new record since moving that event to France many years ago. Even better, for about half of the attendees it was their first PIM sprint ever.

      Eight people and a flip chart with colored post-its on it as a stand-in for Kévin.
      Group photo

      Topics

      The following is by no means complete, see also the other reports on Planet KDE such as the one from Albert, as well as the notes on the sprint wiki page.

      KMime framework

      My focus was mainly on finally pushing the move of KMime to KDE Frameworks over the finishing line. While most review comments collected during Akademy have meanwhile been addressed, the request to make ownership transfers more explicit in the API is still requiring work. Not so much in KMime itself, but it’s exposing sloppy ownership semantics in consumer code such the message composing code in messagelib. Attempting to untangling that has at least already lead to multiple memory leaks being found and fixed.

      Message-IDs

      We also reviewed the code to generate Message-ID headers in KMime, triggered by a recent forum thread. Message ids have to be globally unique, but the underlying specification and implementation predate UUIDs being widely available (yes, email is that old). Therefore this used to be a combination of a time-based random string and the host name of the sending machine.

      That works but is not up to today’s privacy standards anymore. Instead, the de-facto standard nowadays is to combine a UUID-based identifier with the domain of the sender address. The latter is just necessary to comply with the format and doesn’t contribute to the uniqueness. KMail will now do the same.

      While that is a minor detail, it’s somewhat symptomatic for working on email-related code, trying to understand decisions made in specifications and code from last century and assessing the implications of changing any of that.

      And more

      Other topics discussed included:

      • Retirement of the Kolab resource. That has been on the agenda since years, and a proposal exists since a while. That hasn’t been implemented yet in the hope for a better solution which never materialized. Meanwhile a library this depends on is no longer buildable on current systems, so the Kolab resource has been silently disappearing from some distributions already, which is far worse than even the most low-effort orderly retirement.
      • Flatpak packaging for the Akonadi stack, and the challenges for host integration that come with it. As sharing that between two Flatpak applications and/or to/from the host isn’t really viable, the best we can do is probably a dedicated D-Bus interface for a separate platform calendar backend plugin in KCalendarCore, and use that for host integration like in the Plasma clock.
      • Improvements to address auto-completion in KMail, in particular better defaults for filtering “no-reply” addresses.

      We also spend some time debugging some weird synchronization issues that David R eventually tracked down to a very recent one-line change. This originally had been mis-attributed to the Sqlite backend for Akonadi while exploring whether that should become the default (with support for the other databases being dropped in the long run), but fortunately turned out to be entirely unrelated to that.

      Travel

      Travel ended up a bit adventurous and thus provided plenty of opportunity for observing Itinerary and Transitous under unusual circumstances.

      • We need a more powerful alternative journey search that doesn’t use the next change as a starting point, but every upcoming stop of the train you are currently on. MOTIS used to have this built-in as so-called on-trip queries, but it would also be possible to emulate this client-side. This helps with situations where the best alternative isn’t just to take the next train after a missed connection, but to continue on the train you are on longer to connect onwards at a later stop.
      • We should apply a lower-bound sanity check to realtime data in Transitous. In cases of more complex reroutings and detours Deutsche Bahn’s own projection can contain times which go beyond what’s technically, legally or physically possible.
      • Also, crowd-sourced vehicle positions are equally valuable for operators where we usually have realtime data, to further support such sanity checks. Deutsche Bahn’s onboard GPS is actually precise enough (outside of tunnels) to determine the exact track (and thus the speed rating) on OpenRailwayMap.
      • Border points reported as dummy intermediate stops without a time or location still slip through on some backends and mess up our progress display in Itinerary.
      • Parsing of international DB seat (re)bookings got fixed.

      Another interesting observation from a routing perspective were passages in Paris (e.g. Passage Jouffroy or Passage des Panoramas) which in OSM terms are essentially footways with opening hours or conditional access. That is, those work as regular pedestrian ways during the day and are closed at night. OSM can model this for roads and routers can usually deal with that for vehicles, but I haven’t seen this used yet for walking.

      You can help!

      Getting everyone together for a few days is extremely valuable and productive, and your donations to KDE .e.V. help to make that possible!

      Welcome to a new issue of This Week in Plasma!

      This week many KDE contributors wound down their activities in preparation for some well-deserved rest. But that didn’t stop the merging of some impactful work anyway!

      This will be 2025’s last This Week in Plasma post; I too will take a break next week. Happy holidays for those who celebrate, and I’ll see you all in 2026!

      Notable New Features

      Plasma 6.6.0

      Implemented support for automatic brightness adjustment on devices with ambient light sensors! (Xaver Hugl, KDE bug #502122)

      Notable UI Improvements

      Plasma 6.5.5

      Improved KRunner’s search matching algorithms to prioritize partial matches at the beginning of apps’ names, descriptions, and keywords. This should fix issues like searching for “ala” and getting “KAlarm” as the top match instead of “Alacritty”. (Harald Sitter, KDE bug #512400 and KDE bug #512399)

      Plasma 6.6.0

      Added a workaround for Windows games with HDR support to make sure their colors still look good when run in WINE or Proton. (Xaver Hugl, KDE bug #509114)

      Spectacle’s notifications about screenshots now include an “Open Containing Folder” button, and persist in the history if you don’t manually close them. This should make it harder to miss where your screenshots got saved to. (Noah Davis, Spectacle MR #499)

      Fixed an issue in Spectacle that made the bottom toolbar in Rectangular Region mode get cut off when the selected region is close to the bottom of a screen with certain screen setups. (Mario Roß, Spectacle MR # 498)

      System Settings’ Wi-Fi & Networking page now shows information about the connected Wi-Fi networks, just like the System Tray popup does. (Alexander Wilms, KDE bug #471071)

      Network details on the Networks page

      Discover now shows available updates within the app in a fancier-looking way. (Taras Oleksyn, KDE bug #509926)

      Fancier update notification in Discover

      Notable Bug Fixes

      Plasma 6.5.5

      Disabling visual customization of Plasma via the Kiosk system now hides relevant buttons on System Settings’ Quick Settings page. (Nicolas Fella, KDE bug #511381)

      6.6.0

      Made opacity window rules work for picture-in-picture windows. (Vlad Zahorodnii, KDE bug #513374)

      Frameworks 6.22

      Fixed a large number of clipboard-related issues on Wayland. (David Edmundson and David Redondo, kguiaddons MR #191)

      The next release of WallpaperEngineKDE

      Fixed one of the most common crashes in Plasma, caused by using the 3rd-party WallpaperEngineKDE wallpaper plugin. (catsout, wallpaper-scene-renderer Issue #13)

      Other bug information of note:

      Notable in Performance & Technical

      Plasma 6.5.5

      Fixed an issue that prevented KWin from using direct scanout when the Battle.net launcher is open. (Xaver Hugl, KDE bug #513203)

      Plasma 6.6.0

      Reduced frame drop on monitors with extremely high refresh rates. (Xaver Hugl, KDE bug #513296)

      Implemented the ability for portal-based applications to actively inhibit logout, for example because they have unsaved documents open. (David Edmundson, xdg-desktop-portal-kde MR #391)

      How You Can Help

      Donate to KDE’s 2025 fundraiser! It really makes a big difference. In total, KDE has raised over €300,000 during this fundraiser! The average donation is about €25. KDE truly is funded by you!

      This money will help keep KDE strong and independent for years to come, and I’m just in awe of the generosity of the KDE community and userbase. Thank you all for helping KDE to grow and prosper!

      If money is tight, you can help KDE by directly getting involved. 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.

      To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.