15 Nov 2025

feedPlanet KDE | English

A new online accounts system?

For many years Plasma comes with its own system online accounts system, known as KAccounts. The idea is simple: In Systemsettings you log into a given online service once, and then several applications can use that login, instead of loggin in inside each application separately.

The number of services available and applications making use of them changed a bit over recent years. As of right now the following services are supported:

This isn't all that much. Notably absent here is KDE PIM, which could greatly benefit from integrating with the Nextcloud and Google accounts. This is something many users have asked for over time. Plus, there's more services that are used across applications and could benefit from a systemwide online accounts system, like Mastodon or Matrix.

Overall the situation with online accounts support in KDE is unsatisfactory, and it's not for a lack of trying. Over the last few years there have been several smaller improvements to the system. However there have been no changes to the overall architecture. At this point I am convinced that the architecture is what's holding us back, and we need to do something about that.

The current system is based on the Accounts SSO framework. It consists of several libraries and processes, split across about a dozen different repositories. This makes for a rather complex system for what is effectively reading and writing to a sqlite database and some OAuth handling. It also receives very little development activity, to the point where it was hard to get the required patches for Qt6 support in. Using an external accounts system as based for KAccounts only makes it harder to iterate on our system, while providing no meaningful interoperability with other parties.

The system also isn't designed for a sandboxed world. Apps have direct access to the accounts database and keychain, so there is no ability to restrict which apps can use which accounts. While per-application access control wasn't really feasible for traditional Linux packaging, with sandboxed formats like Flatpak we can and want to restrict apps to only be able to access select accounts.

Having pondered the problem for a while I came to the conclusion that we need a fresh start for our online accounts story, a new system that fullfils the following goals:

Based on these goals I have developed a prototype for how such a system could look like.

At its core there is a daemon process that manages the accounts, and exposes them via a DBus interface. Applications uses this DBus interface to list availble accounts as well as their parameters and credentials. Only accounts the app has been granted access to are visible that way. Application authentication works in a way that's inspired by how xdg-desktop-portal works.

An application can trigger a request for accessing a new account. The dameon will then handle the whole login flow and, if successful, will return a handle to the new account. Alternatively the user can log into a given service in the systemsettings module and give access to relevant apps though that.

Currently the following services/apps are supported:

You can find the code at https://invent.kde.org/nicolasfella/konlineaccounts.

It is still very much a prototype, which is by no means ready for production, but it shows the basic concept. If you have input on this please get in touch, for example by filing an issue.

15 Nov 2025 9:00am GMT

OSM Hack Weekends October and November 2025

Last weekend I once again attended the bi-annual OSM Hack Weekend in Karlsruhe hosted by Geofabrik. I've also been at the OSM Hack Weekend in Berlin hosted at Wikimedia Deutschland a couple of weeks ago and haven't written about that yet, so this is the combined report for both events.

Transitous

Transitous, our community-run public transport routing service, has been the topic of several discussions:

Map view with icons indicating available station based as well as free-floating bikes/cars, and a provider group selector in the lower right.
Available rental vehicles shown on Transitous' map view.

KPublicTransport

KPublicTransport, KDE's client library for accessing different journey planning services used by Itinerary and KTrip, got a few improvements to catch up with Transitous and MOTIS v2.6 and v2.7 changes:

Station-bound rental vehicles other than bikes are now also displayed with the correct vehicle icon on the map.

Small part of a map with green bike and car rental icons, the car one showing how many vehicles are available at this station.
Itinerary's station map showing a car rental station and two free-floating rental bikes.

Indoor mapping

Indoor mapping was of course also on the agenda:

Emergency and weather alerts

At the CAP Implementation Workshop two weeks ago a WFS/OGC feature layer for CAP alerts was mentioned, and presented as something so far only offered by a commercial entity.

With my almost non-existent GIS knowledge this looked like something that shouldn't be too hard to provide by our CAP alert aggregation service as well. And thanks to the input from the right people I got a basic prototype set up in less than an hour. All the magic is provided by pg_featureserv, which can expose a PostGIS database (which we already have) in a way it can be consumed by e.g. QGIS.

QGIS showing CAP alert message areas from an OGC layer taken from a local FOSS Public Alert Server instance on top of an OSM base map.
QGIS with a CAP alert message layer.

One important difference here is that unlike its proprietary counter-part this doesn't expose many CAP fields yet, as we hold only the bare minimum as dedicated database columns right now. However, should anyone actually need this, adding more columns isn't a big deal.

Event planning

We also looked at upcoming events in 2026 and how we could have Transitous specifically and the Open Transport community more generally represented there:

Still further out is next year's State of the Map which will be end of August in Paris, France. That's obviously something where Transitous should be present as well, and where we might have the option of a travel-optimized adjacent Transitous sprint along the way.

Ideas for a 2026 edition of the Open Transport Community Conference are also floating around already, volunteers to drive this still very much needed though.

You can help!

Hack weekends how this is called in the OSM community or sprints as this is known in the KDE community are immensely valuable and productive. There's a great deal of knowledge transfer happening, and they are a big motivational boost.

However, physical meetings incur costs, and that's where your donations help! KDE e.V. and local OSM chapters like the FOSSGIS e.V. support these activities.

15 Nov 2025 7:15am GMT

This Week in Plasma: OCR in Spectacle and many UI improvements

Welcome to a new issue of This Week in Plasma!

This week Spectacle gained OCR (optical character recognition) functionality, allowing you to turn words in images into selectable text!

(and yes, this is Spectacle recording itself performing OCR)

Right now the functionality is limited to Spectacle, but the code is in the process of being moved to a library so more apps can benefit, too. Thanks a lot to Jhair Paris, who implemented this feature that will appear in Plasma 6.6!

In addition, many UI improvements landed, as well as some high-priority bug fixes and performance improvements. A good week, I'd say! Have a look:

Notable UI Improvements

Plasma 6.5.3

You can now drag a tab out of a Chromium/Chrome window and immediately tile it to a screen edge or corner. (David Redondo, link)

Implemented some improvements to the Breeze theming for GTK 4 apps, including making the rounded corners consistent and fixing invisible expander arrows for expandable group boxes. (Kevin Duan, link 1 and link 2)

Made the favorites column in the Kicker Application Menu widget compatible with more kinds of icons in non-default icon themes. (Christoph Wolk, link)

Plasma 6.6.0

Overhauled a bunch of the portal-based permission dialogs to just look way nicer in general. (Harald Sitter, link 1, link 2, link 3, link 4, link 5, link 6, link 7, link 8, link 9, link 10, link 11, link 12)

Screen chooser dialog
Account details sharing dialog
App chooser dialog

Renaming a file or folder on the desktop now lets it keep its existing position. (Błażej Szczygieł, link)

Plasma's Timer widget now has a nicer and more straightforward configuration page, with two old pages merged into one new one. (Tobias Fella, link)

New timer config page with more stuff on the “General” page

For similar reasons, the system Tray's only two main configuration pages have also been merged into a single new one. (Nate Graham, link 1 and link 2)

Single-page System Tray UI showing size and padding settings as well as allowing configurability of individual entries

When an app asks to register keyboard shortcuts on launch and you don't let it, this preference is now remembered, instead of the annoying app just asking again the next time it launches. (David Redondo, link)

The GTK theme chooser now lets you preview the dark version of the theme, too. (Luan Oliveira, link)

Frameworks 6.21

File transfer notifications now fall back to file-based progress display in situations when size-based progress display isn't available. (Pan Zhang, link)

The Breeze icon theme now includes icons for Nim code files. (Sophie Ahumada, link)

Nim file icon

Notable Bug Fixes

Plasma 6.4.6

Fixed a seemingly random Plasma crash. (David Redondo, link)

Plasma 6.5.3

Fixed a regression that made KRunner crash when searching on operating systems that use Musl as their C standard library instead of Glibc. (John Zimmermann, link)

Fixed a case where Discover could crash while updating software if Flatpak itself throws a malformed error. (Aleix Pol Gonzalez, link)

Fixed a regression that broke Spectacle's "exclude shadows" option. (Vlad Zahorodnii, link)

Fixed a regression that made desktop icons not get visually hovered when approaching them from the left side at certain speeds and locations. (Błażej Szczygieł, link)

Fixed an issue that made the context menu for apps or processes being monitored in System Monitor open in the wrong place when using certain multi-screen setups. (Oliver Schramm, link)

Worked around a Qt regression that broke hiding columns in System Monitor's table views using the column header context menu. (Alexey Rochev, link)

Worked around a kernel bug that that made some systems fail to go to sleep the first time it was initiated. (Bhushan Shah, link)

Worked around some driver bugs that caused mangled cursor styling with certain GPUs. (Xaver Hugl, link 1 and link 2)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.5.3

Fixed a case where KWin could get blocked due to heavy disk I/O operations. (Vlad Zahorodnii, link)

The clipboard portal now supports being used in remote desktop sessions and with middle-click primary selection. (David Redondo, link 1 and link 2)

Increased the level of visual fidelity when using a fractional scale factor. (Xaver Hugl, link)

Plasma 6.6.0

Increased the level of visual fidelity when using a fractional scale factor even more, this time when using software rendering. (Vlad Zahorodnii, link)

A process that's crashing in a loop can no longer make the system run out of memory and freeze as a result of the crash tracer trying to debug all the crashes. (Harald Sitter, link)

How You Can Help

Donate to KDE's 2025 fundraiser! It really makes a big difference. Believe it or not, we've already hit out our €75k stretch goal! I've been informed that a second stretch goal is available now, too! 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.

15 Nov 2025 12:01am GMT

14 Nov 2025

feedPlanet KDE | English

Web Review, Week 2025-46

Let's go for my web review for the week 2025-46.


Valve is about to win the console generation

Tags: tech, valve, kde, hardware, gaming, desktop

Early days, we'll need to see the pricing and reviews. I'm obviously excited to see KDE going in even more consumer devices by default. Let's hope it sells even better than the Steam Deck.

https://xeiaso.net/blog/2025/valve-is-about-to-win-the-console-generation/


Meta's Chief AI Scientist Yann LeCun To Depart And Launch AI Start-Up Focused On 'World Models'

Tags: tech, business, ai, machine-learning, gpt

I was actually wondering when this would happen. Was just a matter of time, would have expected this move a couple of months ago.

https://www.nasdaq.com/articles/metas-chief-ai-scientist-yann-lecun-depart-and-launch-ai-start-focused-world-models


Less is More: Recursive Reasoning with Tiny Networks

Tags: tech, ai, machine-learning, reasoning, research

Clearly needs further exploration. I'd like to see it submitted in a peer reviewed journal but maybe that will come. Still it's nice to see people for new approaches. It's a breath of fresh air. I like it when there are actual research rather than hype. Hopefully the days of the "scale it up and magic will happen" are counted.

https://arxiv.org/abs/2510.04871


Introduction to IncusOS

Tags: tech, virtualization, containers, infrastructure, linux, incus

I didn't know about this project. This sounds interesting, smart use of mkosi to make an Incus tailored system.

https://linuxcontainers.org/incus-os/


Linux process priorities demystified

Tags: tech, linux, kernel, processes, multithreading

Does a nice job explaining how the scheduling can be investigated from outside the kernel. It is a good introduction on the topic.

https://www.sigma-star.at/blog/2022/02/linux-proc-prios/


Announcing Magika 1.0: now faster, smarter, and rebuilt in Rust

Tags: tech, filesystem, foss

Looks more and more like an interesting solution for file type detection.

https://opensource.googleblog.com/2025/11/announcing-magika-10-now-faster-smarter.html?m=1


The (lazy) Git UI You Didn't Know You Need

Tags: tech, git, version-control, tools

Nice tour of LazyGit. I keep hearing good things about it, I should really try it.

https://www.bwplotka.dev/2025/lazygit/


Imperative to relational

Tags: tech, databases, sql, learning

Long but nice post about all the things you need to figure out about working with databases when the only thing you know is imperative languages.

https://madhadron.com/imperative_to_relational.html


Automated Equality Checks in C++ with Reflection (C++26)

Tags: tech, c++, metaprogramming

Another nice use of the upcoming C++ reflection feature.

https://lemire.me/blog/2025/11/09/automated-equality-checks-in-c-with-reflection-c26/


Hardening the C++ Standard Library at massive scale

Tags: tech, c++, safety, security, standard

Interesting work from Apple and Google to have better hardening in libc++. It's nice to see it ripples through the upcoming C++26 standard as well.

https://queue.acm.org/detail.cfm?id=3773097


channels-console: Real-time monitoring, metrics and logs for Rust channels

Tags: tech, rust, debugging, distributed, multithreading

Early days but this looks like interesting tooling to inspect and debug programs using Rust channels.

https://github.com/pawurb/channels-console


The state of the Rust dependency ecosystem

Tags: tech, rust, ecosystem, supply-chain

Interesting analysis of the crates ecosystem. It shows quite well some of the challenges and weaknesses. Nothing to worry about yet about the ecosystem health overall. Still, you should probably be careful when picking dependencies.

https://00f.net/2025/10/17/state-of-the-rust-ecosystem/


GPU Glossary

Tags: tech, gpu, hardware, learning

Looks heavy on the NVidia specifics but it looks like a very comprehensive view of the important concepts in a GPU.

https://modal.com/gpu-glossary


The "Dependency Cutout" Workflow Pattern

Tags: tech, foss, economics, supply-chain, community

This is indeed the best way to handle your open source dependencies. I got concerns about the ability to sell that to management though because of the extra steps. It's also probably why you want to have an OSPO in your company, it's a good way to lower the barrier for developers to contribute this way.

https://blog.glyph.im/2025/11/dependency-cutout-workflow-pattern.html


100% coverage is not that trivial

Tags: tech, tests, tdd, coverage

In a large codebase it's not a given indeed. That's why you want integration tests to get there.

https://blog.ploeh.dk/2025/11/10/100-coverage-is-not-that-trivial/


Composable Tests

Tags: tech, tests, tdd

This is maybe the property of tests which is the most easily misunderstood. It's not always easy to respect it as well.

https://tidyfirst.substack.com/p/composable-tests


Forget Chatbots. You Need a Notebook.

Tags: tech, note-taking, science, research, productivity

I had a few moment like this in my life. I definitely recommend it. I've never been more productive than isolated in a mountain with only books, notebooks and pens.

https://calnewport.com/forget-chatbots-you-need-a-notebook/



Bye for now!

14 Nov 2025 12:04pm GMT

KDE Ships Frameworks 6.20.0

Friday, 14 November 2025

KDE today announces the release of KDE Frameworks 6.20.0.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this version

Attica
Baloo
  • Use better way to disable session management. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • [app] Skip application/mbox files greater then 10MB. Commit. See bug #443547. See bug #447681. See bug #460882
  • [balooctl] Writeback config changes before enabling or disabling indexing. Commit. See bug #419708
Bluez Qt
  • Rfkill: Write to rfkill in a thread. Commit.
Breeze Icons
  • Fix up "starred-*" icons. Commit. Fixes bug #511152
  • Add RTL versions of open-link icon. Commit. Fixes bug #506268
  • Provide external-link-symbolic as an alias to open-link-symbolic. Commit.
  • Try to avoid to depend on stuff generated by CMake. Commit.
  • Add 16px version of the RTL document-send icon. Commit. See bug #509254
  • Add document-send RTL version. Commit. Fixes bug #509254
  • Make only 24 px generation a parameter. Commit.
  • Try to avoid that we have targets that run always. Commit.
Extra CMake Modules
  • Generate-fastlane-metadata.py use https://kde.org/donate. Commit.
  • Strip username and password from Fastlane source URLs. Commit.
  • KDEClangFormat: Avoid error w/ CMP0175 enabled. Commit.
  • [FindFFmpeg] Skip version check on Windows. Commit.
  • KDE*CompilerSettings: add note why no cmake_policy is set. Commit.
  • Public KDE-specific modules: set module cmake_policy. Commit.
  • Module templates: set module cmake_policy. Commit.
  • Public general modules: set module cmake_policy. Commit.
  • Public find modules: set module cmake_policy. Commit.
  • ECMGenerateExportHeader: set module cmake_policy, not just one policy. Commit.
  • ECMGenerateExportHeader: do not push/pop module policy explicitly. Commit.
  • ECMQmlLoader: generic languages should have lower precedence. Commit. Fixes bug #509902
  • FindFFmpeg: add AVFILTER and SWRESAMPLE components. Commit.
  • Add FindFFmpeg.cmake used by many KDE project. Commit.
  • Fix QML modules to be rebuilt all the time with Qt5. Commit.
  • Ecm_generate_headers: support headers in clang vs. deduplicated header files. Commit.
  • CMakeLists.txt - remove trailing '/' to fix CMP0177 warning. Commit.
  • ECMSetupQtPluginMacroNames: fix setting up names for own build. Commit.
Framework Integration
  • Kpackage-install-handlers: check file.open result. Commit.
KArchive
  • Use CamelCase Qt include. Commit.
  • 7z: Change for{if{}} to if{for{}}. Commit.
  • Autotests/kcompressiondevicetest.cpp spell check. Commit.
  • 7z: Fix infinite loop in malformed file. Commit.
  • Ktar: Fix/Tweak the skip error condition. Commit.
  • Add nodiscard attribute to open(...) declarations. Commit.
  • Ktar: Optimize memory allocations. Commit.
  • KTar: Use skip instead of seek for skipping. Commit.
  • TestTarReadWrite: Also test with KCompressionDevice. Commit.
  • Add some const. Commit.
  • 7z: Fix assert/crash in malformed file. Commit.
  • Explicitly convert enum to int for QString::arg. Commit.
  • 7z: Break early on failure in K7ZipPrivate::folderItem. Commit.
KBookmarks
  • KBookmarkGroupTraverser: Fix typo in API documentation. Commit.
  • KBookmark::updateAccessMetadata: Utilize QDateTime method that is significantly faster. Commit.
KCMUtils
  • Added name sorting to kcmshell6 --list output. Commit. Fixes bug #509050
  • KCModuleQml: Also force height in addition to width. Commit.
  • GridDelegate & GridViewInternal: Drop mobile tweaks. Commit.
KCodecs
  • Allow to also RFC 2047-encode reserved characters. Commit.
KColorScheme
  • Fix colors in kdeglobals not being respected when platformtheme is not kde. Commit.
  • KColorScheme: Add FrameContrast API. Commit.
KCompletion
KConfig
  • Kconfig_compiler: prevent empty private: section in headers. Commit.
  • Use QLockFile.tryLock with timeout rather then lock forever. Commit. Fixes bug #508253
  • Add 59ca348606 to .git-blame-ignore-revs. Commit.
  • Kdesktopfileaction: Improve docs strings. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • Typo--. Commit.
KConfigWidgets
KContacts
KCoreAddons
  • Add missing include moc. Commit.
  • Typo--. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • Update test expectation. Qt time formatting has changed. Commit.
  • Fix the non-local license text. Commit.
  • Switch to std::enable_if_t (API consumers now required to use >= C++17). Commit.
  • Fix duplicate license text for known but externally linked licenses. Commit.
KDBusAddons
KDeclarative
  • Kquickcontrols: install kquickcontrolsprivate to KF_INSTALL_TARGETS_DEFAULT_ARGS. Commit. Fixes bug #510081
KDE Daemon
  • Use newer version of session management enablement. Commit.
KFileMetaData
  • [ExtractorCoverageTest] Fix typo in clang-format processing directive. Commit.
KGuiAddons
  • Add StartupNotify=true to geo handlers. Commit. Fixes bug #510547
  • WaylandClipboard: Avoid overriding original UTF-8 text. Commit.
  • Fix docs. Commit.
KHolidays
  • Use QCOMPARE vs QVERIFY. Commit.
  • Italy: San Francesco will be a public holiday from 2026. Commit.
  • Fixes and add days to Puerto Rico. Commit.
KIconThemes
  • [kiconcolors] Drop ActiveText. Commit.
  • [kiconcolors] Drop Complement and Contrast. Commit.
  • InvalidateFilter is marked deprecated in qt6.10. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • Remove version checks for Qt 6.8.0 that is now the minimum required. Commit.
  • Avoid saving state between multiple usages of IconDialog. Commit. Fixes bug #460451
KImageformats
  • PSD: limit memory usage on corrupted files. Commit.
  • Fix assert on broken data. Commit.
  • PSD: minor fixes while reading Image resource Section. Commit.
  • IFF: fix crash on malformed files. Commit.
  • Iff: Fix crash on malformed files. Commit.
  • PSD: improve sections size checks. Commit.
  • TGA: ignoring large metadata on dev area. Commit.
  • Check device before read. Commit.
  • Fix possible infinite loop when reading a broken jp2. Commit.
  • On demand buffer allocation on PCHG decompression. Commit.
  • Fix possible read overflow with malformed data. Commit.
  • Fix wrong palette check. Commit.
  • Use internal FP32 conversion instead of FP16. Commit.
  • Fix read test failing on aarch64. Commit.
  • Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
  • Fix assert on broken data. Commit.
  • CI: Try newer libjxl for ossfuzz. Commit.
  • Tga: Reduce Warning to Debug. Commit.
  • Fix crash on malformed files. Commit.
  • Fix crash on malformed files. Commit.
KIO
  • Add missing since documentation. Commit.
  • Kfileitemactions: use actionsKey instead of name to check KAuth. Commit.
  • [ktelnetservice] Disable session management. Commit.
  • [kioexec] Disable session management. Commit.
  • [kiod] Use better way to disable session management. Commit.
  • Trashimpl: better determine trashForMountPoint for network file systems. Commit. Fixes bug #506755
  • KNewFileMenu: prevent emiting rejected signals when not rejected. Commit.
  • Knewfilemenu: when in mkdir -p mode don't append a / for last dir. Commit.
  • Kioworkers/file: check QFile::open return and early return. Commit.
  • KCoreDirLister: Enable using mime globs. Commit. Fixes bug #450612
  • Reenable kdirlister test on non-Windows. Commit.
  • KIO::MetaData::toVariant(): document internal type of returned variant. Commit.
  • Autotests: enable connectionbackendtest. Commit.
  • Apply 1 suggestion(s) to 1 file(s). Commit.
  • Autotests: favicontest make a test more fault tolerant in Win. Commit.
  • [http] Emit WorkerResult::pass() and return when a redirection is received during webdav directory listing. Commit.
  • [http] Remember that we're doing webdav while handling redirects. Commit. Fixes bug #486790
  • Kifileitemactions: Remove unused QMimeDatabase instance creation. Commit.
  • KIO::MetaData: port inline methods away from deprecated QMapIterator. Commit.
  • Previewjob: expose standardthumbnailer fileName property. Commit.
  • File_unix: print errnum in rename when failing. Commit. See bug #510810
  • Kpasswdserver: Set cancel button on dialog. Commit.
  • JobTest: add renameFileWithNoUDSACCESS test. Commit. See bug #510567
  • Kfileitems: Use internal name again for sorting. Commit. Fixes bug #510470
  • Add typo fix commit to .git-blame-ignore-revs. Commit.
  • Fix various typos. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • RenameDialog: wrap the question text. Commit.
  • Ensure QNetworkReplies are always deleted with a scope guard. Commit.
  • Fix HTTP network error propagation. Commit.
  • Forward all KIO error codes, not just ERR_ACCESS_DENIED. Commit.
  • Delete network reply also when handling a redirection. Commit.
  • Autotest/jobtest: make sure to check error return when a job fails. Commit.
  • CopyJob: Skip permission check if there is no UDS_ACCESS entry. Commit. Fixes bug #510567
  • KFileWidgets: Allow saving to currentfolder with empty input field in special cases. Commit. See bug #507193
  • KFilePlaces: add a link to systemsettings recent config. Commit. Fixes bug #507966
  • [ftp] Claim that dir is writable during stat. Commit. Fixes bug #510456
  • KNewFileMenu: move the messageWidget below the input. Commit.
Kirigami
  • Fix documentation for AlignedSize. Commit.
  • Add missing FrameContrast enum documentation. Commit.
  • Fix documentation for closeDialog. Commit.
  • Keep passive notifications inside the SafeArea. Commit.
  • ActionTextField: don't let inline buttons accept focus on click. Commit.
  • ActionTextField: use display property to control icons-only-ness. Commit.
  • OverlayDrawer: Fix handle positioning on RTL layouts. Commit.
  • Fix accessibile properties on ActionTextField properties. Commit.
  • Support menus in bottom ActionToolbars. Commit.
  • Feat: Expose closeDialog as a signal to the PageStack attached property. Commit.
  • ActionTextField: adopt some good ideas from the PlasmaExtras version. Commit.
  • ActionTextField: use standard implementation for inline action buttons. Commit. Fixes bug #484301
  • Use reversed open-link when needed and present. Commit. See bug #506268
  • PageRow: Fix dialogs not being closable via Escape. Commit.
  • PlatformTheme: setFrameContrast value. Commit.
  • CardsListView: Make sure it never will have horizontal scrolling. Commit. Fixes bug #477493
  • Cmake: Add missing icon for android. Commit.
  • ActionsMenu: Restore the icon for submenus. Commit.
  • PageRow: Different style for the push/pop animation/gesture. Commit.
  • Make Separator always perfectly pixel-aligned. Commit. Fixes bug #510353
  • Fix up overlay sheet header content width w.r.t close button. Commit.
  • Fix up overlay sheet's close button location. Commit.
  • Platform: Include child Quick items when updating child PlatformTheme instances. Commit. Fixes bug #510480
  • Remove outdated comment. Commit.
  • Typo fix. Commit.
  • SelectableLabel: Only enable shortcuts if the label has focus. Commit.
  • Platform: Skip update() in PlatformTheme if we don't have a window. Commit. Fixes bug #493921
KItemModels
  • Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
KJobWidgets
  • Keep old test code around. Commit.
  • Disable kuiserver2jobtrackertest if HAVE_QTDBUS is false. Commit.
  • Make the test compile + do the basic thing. Commit.
  • Rewrite JobView code to be safer. Commit.
KNewStuff
  • Installationtest: Fix test failure on non english hosts. Commit.
  • Don't make KNSWidgets::Button the parent of KNSWidgets::Dialog. Commit. Fixes bug #501267
  • Port deprecated invalidateFilter in qt6.10. Commit.
KNotifications
  • Look up notifications again after hitting application code. Commit. Fixes bug #511645
  • Notifybyaudio: Don't show error on CA_ERROR_DESTROYED. Commit.
KPackage
KQuickCharts
  • Limit item count in ItemBuilder to basically uint16_t. Commit.
KRunner
  • Manager,context: remove launchcount adjustment. Commit.
KService
  • Kservice: Remove legacy X-KDE-Keywords and fix X-KDE-FormFactors. Commit.
  • Don't warn for empty layout without merge tag. Commit.
  • Kbuildsycoca: debug++. Commit. See bug #510287
KSVG
  • KSvg: Add ColorScheme-Frame. Commit.
KTextEditor
  • Remove unnecessary toEdge function. Commit.
  • Use KateViewInternal::Bias in move() signature. Commit.
  • Use void return type. Commit.
  • Remove the loops in the cursors. Commit.
  • Remove unnecessary methods and const overloads. Commit.
  • Remove operator overloading. Commit.
  • Remove unnecessary constructors. Commit.
  • Remove Bias::none enumerator. Commit.
  • Make function internal to the class. Commit.
  • Remove useless getter function. Commit.
  • Improve the test, use higher level api. Commit.
  • Move findMatchingFoldingMarker to KateBuffer. Commit.
  • Cleanup includes in kateviewinternal.h. Commit.
  • Include kateviewinternal.h less. Commit.
  • Move include to source file. Commit.
  • Move spellcheck function from DocumentPrivate. Commit.
  • Remove useless function. Commit.
  • Remove unused function. Commit.
  • Add QJsonObject. Commit.
  • Cleanup headers, deinline and remove unnecessary includes. Commit.
  • Use normal function pointer, std::function is not needed here. Commit.
  • Dont use std::pair/QPair, use named structs. Commit.
  • Add API to obtain the editor widget from View and vice versa. Commit.
  • Clear modeline matches if the model is irrelevant. Commit.
  • Add new config entries to public api docs. Commit.
  • Add "hide-cursor-if-inactive". Commit.
  • Add disable-current-line-highlight-if-inactive view option. Commit.
  • Simplify kateprinter, remove unnecessary KatePrinterPrivate class. Commit.
  • Make KateVariableExpansionManager a non QObject. Commit.
  • Move expandText to the file where its used. Commit.
  • Optionally return invalid cursor for coordinates outside text. Commit.
  • Kateview_test: extract lambda coordinatesToCursor(). Commit.
  • Explicitly convert enum to int for QString::arg. Commit.
KTextTemplate
  • Use QCOMPARE vs QVERIFY. Commit.
  • Update test expectation. Qt time formatting has changed. Commit.
KUserFeedback
  • Properly handling large timeouts for encouragement timer. Commit. Fixes bug #511102
  • Use const pointer. Commit.
  • Add missing explicit keyword. Commit.
  • Port deprecated invalidateFilter method (qt6.10). Use beginFilterChange/endFilterChange. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • Remove old qt check. Commit.
KWallet
  • Use QCoreApplication for kwallet-query. Commit.
  • Remove unused QtWidgets dep from API. Commit.
  • Enable KCrash for kwalletd6. Commit.
  • KSecretd: Use modern way of disabling session management. Commit.
  • Kwalletd: Disable session management. Commit.
  • Fix dismissing prompt for Unlock. Commit.
  • Use securelySeeded like in KWalletPortalSecrets::generateSecret. Commit.
  • Backend: Simplify random gathering to QRandomGenerator. Commit.
KWindowSystem
  • Platforms/wayland: Prevent reinstalling window effects with the same parameters again. Commit.
  • Kwaylandextrastest: Port to UI file. Commit.
  • Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
  • Fix creating empty future. Commit.
  • Fix KWaylandExtras::xdgActivationToken when KWindowSystemPrivateV3 isn't available. Commit.
KXMLGUI
  • Use CamelCase Qt include. Commit.
  • Use QCOMPARE vs QVERIFY. Commit.
  • Switchlanguage: remove duplicates from languageList. Commit.
Network Manager Qt
  • Add missing documentation comments for WifiP2P. Commit.
  • Fix since documentation for WifiP2P. Commit.
  • Fix enum value for WifiP2P. Commit.
  • Deprecate unused, Java-style iterator NMStringMapIterator typedef. Commit.
  • Add WifiP2P device. Commit. Implements feature #502159
Prison
  • Videoscanner: Remove Qt5 note. Commit.
QQC2 Desktop Style
  • PlasmaDesktopTheme: Set frameContrast on change. Commit.
  • Harmonize delegate tooltip code. Commit.
  • SpinBox: Make paddings integer to avoid potential polish loops. Commit. Fixes bug #510758
  • Remove Qt version checks now that 6.8.0 is the minimum required. Commit.
Solid
  • Udisks: Port to DBus Object Manager. Commit.
Sonnet
  • Remove double margins around groupbox. Commit.
  • Fix load default ignore list when we call slotDefault method. Commit.
  • Add missing [[nodiscard]]. Commit.
  • Use [[nodiscard]]. Commit.
  • Show headers in qtc. Commit.
  • Ensure parent is alive when removing eventfilters. Commit. Fixes bug #492444
  • Add SpellCheckDecorator destruction autotests. Commit. Fixes bug #492444
Syndication
Syntax Highlighting
  • QFace: Change type highlighting and add fully qualified cases. Commit.
  • Implement D2 syntax highlighting. Commit.
  • Cpp: Update classes for Qt 6.10. Commit.
  • Add Starlark syntax highlighting. Commit.
  • Add new features to QFace highlighting. Commit.
Threadweaver

14 Nov 2025 12:00am GMT

13 Nov 2025

feedPlanet KDE | English

Convert from Qt to Qt for MCU – Qt AI Assistant 0.9.7 released

Stretching your Qt UI to devices powered by microcontrollers (MCU) is now even easier! The Qt Quick Ultralite Converter of the Qt AI Assistant translates a QML to Ultralite-compliant code. It brings core Qt graphical features to resource-constrained embedded systems, streamlining application development and deployment.

13 Nov 2025 10:33am GMT

Akademy 2026 - Celebrating KDE’s 30th Anniversary in Graz

Akademy 2026 will be a special edition, marking the 30th anniversary of KDE! This milestone event will take place at the Graz University of Technology in Graz, Austria.

This birthday edition of Akademy will continue to bring together contributors, users, partners, and friends of KDE to reflect on three decades of collaboration, innovation, community growth, and commitment to Free Software. Just like previous years, Akademy 2026 will be a hybrid event, offering both on-site and online participation.

We will be announcing the exact dates soon. Until then, follow us on Mastodon and Lemmy for the latest Akademy updates!

About Graz

Graz is the second-largest city in Austria and the capital of the federal state of Styria. Known for its well-preserved old town, which is a UNESCO World Heritage Site, Graz offers a blend of historic charm and modern vibrancy. The city is home to numerous cultural attractions, including the iconic Schlossberg with its clock tower, the Kunsthaus Graz, and the Murinsel, a unique architectural feature on the River Mur. Graz is also renowned for its educational institutions, particularly the University of Graz and the Graz University of Technology, making it a hub for innovation and research. The city's lively atmosphere, beautiful parks, and rich culinary scene make it an ideal destination for both leisure and professional visits.

About Akademy

For most of the year, KDE, one of the largest free and open software communities in the world, works online communicating over email, instant messaging, video-conferencing, forums and mailing lists. Akademy provides all KDE contributors with the opportunity to meet in person to foster social bonds, work on concrete technology issues, discuss new ideas, and reinforce the innovative, dynamic culture of KDE. Akademy brings together artists, designers, developers, translators, users, writers, sponsors and many other types of KDE contributors to celebrate the achievements of the past year and help determine the direction for the next year. Hands-on sessions offer the opportunity for intense work, bringing those plans to reality. The KDE community also welcomes companies building on KDE technology to Akademy, as well as those who are looking for opportunities.

13 Nov 2025 9:21am GMT

What’s next for Aurorae?

Aurorae is a decoration engine that allows you easily using third party decoration themes from KDE Store.

Aurorae decoration themes at KDE Store (although there are some decoration themes that don't use Aurorae, e.g. Klassy, but a good chunk of themes found in the Plasma 6 Window Decorations category still use it)

It's been around for quite a while and it has a plenty long history. However, in the recent years, it has been somewhat neglected. The UI trends changed, e.g. rounded corners are all the rage now, but there has been no changes in Aurorae to allow theme creators to follow those trends more easily. There are also performance issues. In comparison to the default Breeze decoration theme, it performs quite poorly, unfortunately.

What is Aurorae anyway?

In Plasma, we have a C++ library that's used to implement window decorations called KDecoration. Both Breeze and Aurorae use KDecoration, but the main difference between the two is that the former directly implements a window decoration that follows Breeze style, while the latter is just a very themeable window decoration.

Aurorae supports both QML and SVG themes. With a QML theme, you need to write some QML code to define how the window decoration should look and behave. With an SVG theme, you need to provide a bunch of SVG files that specify how the window frame and various buttons look. Under the hood, SVG themes are effectively built as QML themes.

QML is pretty cool because with a few lines of code, you can get something that works and looks very decent. But for our usecase, it's also a heavy tool, and due to the way how QtQuick works, it's very challenging to have proper fractional scaling support. To be fair, normal applications that use QtQuick are mostly fine, it's just that we have a pretty unique usecase where we need full control where every individual pixel gets painted.

Aurorae V2

Recently, I started a rewrite of Aurorae with a few goals in mind. The first goal is to improve performance so KWin doesn't struggle when you resize a window (just to be clear, no, this doesn't mean that there are performance issues in QtQuick. The way QML decorations are rendered is inefficient. We render a QtQuick scene in an offscreen texture, then download its contents, and then upload its contents in another texture. These roundtrips kill performance, and they are necessary because of KDecoration API constraints). The second goal is to open up the road for fractional scaling support improvements, like fixing misaligned window border edges or gaps between the decoration and the window contents. The third goal is to prepare the foundation for future improvements and to provide more tools so artists can create themes that reflect "modern" stylistic tendencies.

In this rewrite, raw KDecoration and KSvg APIs are used. This makes aurorae decorations quite lightweight and it significantly improves performance. Some fractional scaling issues have already been fixed, while others still need more work. Window decorations are rendered on the CPU side. While, yes, it will be nice to have everything done on the GPU side, doing things on the CPU side is also not that of a big bottleneck right now. In the future, we may follow up on doing more things on the GPU, but for now, it is not high priority.

The main focus has been on improving performance issues and preserving compatibility with the previous implementation of SVG decoration themes so decorations look more or less the same way. There may be some (unintentional) differences, but they should be very minimal.

What about QML decoration themes then? The main idea behind them is brilliant, but after so many years, there are not that many window decoration themes that use QML. In either case, the original (V1) and rewritten (V2) aurorae engines live side-by-side, but the future of V1 is unclear. QML and SVG decoration themes will use V1 and V2, respectively.

Future plans

At the moment, the goal is to continue polishing and optimizing V2. There are certain limits how far we can push things due to the theme format. Some parts of the theme force us to do some things, which ideally we shouldn't do.

It's highly likely (not saying this for sure though!) that there will be a V3, which is going to address some theme limitations and add support for new features, for example rounding bottom window corners or outlines.

If you're a decoration theme creator and would like to see some particular feature in Aurorae, feel free to reach out to me (@zzag) on Matrix (e.g. in #kwin) or file a feature request at https://bugs.kde.org (product: kwin; component: aurorae).

13 Nov 2025 7:42am GMT

Qt Champions 2025

Dear Qt community!

with seven weeks to go until an exciting year 2025 will have passed, we are pleased to open the nomination period for the Qt Champion 2025 award!
See this Wiki page for more information about the award and its nomination process: https://wiki.qt.io/Qt_Champions_2025
We're looking very much forward to reading about your favorite candidates!

Cheers
Axel

13 Nov 2025 7:30am GMT

11 Nov 2025

feedPlanet KDE | English

Value Types: Reputation and Influence

This is the forth article of the series describing the open source value flow model. We'll focus on the value types: Reputation and Influence. We'll cover how to measure and report on them.

11 Nov 2025 4:11pm GMT

Plasma Setup Security Improvements

Plasma's first-run experience (FRE) / out-of-box experience (OOBE) has seen significant improvements in security recently.

Although first off I think I maybe hadn't mentioned yet how the project was renamed.

Previously known as "KDE Initial System Setup" (KISS), the project has been rebranded to "Plasma Setup" and now sits nicely alongside other system projects like "Plasma Desktop", "Plasma Mobile", "Plasma Keyboard", etc.

Enhancing Security in Plasma Setup

We received a notice of potential security issues from the folks at openSUSE, which have now been addressed.

This sort of thing is a great example of why it can be so difficult to provide ETAs and timelines for software development: unexpected issues often arise that need to be addressed before other planned work can proceed, and these issues can take time to investigate and fix properly; in this case, the security issues required careful review and testing to ensure that they were resolved without introducing new problems, and delayed our initial release by weeks.

I had very little experience with this sort of security-minded defensive programming before this, so it was a great learning experience for me personally as well. It required a whole lot of reading and research to understand the best practices and principles involved, and I definitely have a better feeling for how to think about defensive programming in the future.

It amazes me the kinds of things people will try to do to break software, and many of them (like path traversal attacks) are things I would never have thought of on my own!

I'd like to thank the openSUSE security team for responsibly disclosing these issues, and for their patience while we worked through them. Their help has made Plasma Setup more secure for all users, and I appreciate their dedication to improving the security of open source software.

A massive thank you specifically to Matthias Gerstner for the multiple rounds of detailed and thoughtful reviews and suggestions on the MR to address these issues. Your help was invaluable, and it was a pleasure working with you! 🙇‍♀️ 💙 🦎

Looking Ahead

Plasma Setup is nearly ready for initial testing and adoption. There are a couple more items to wrap up, but (barring further unforeseen delays!) we are very close to being able to release it for early adopters to try out! 🎉

11 Nov 2025 12:00am GMT

KDE Plasma 6.4.6, Bugfix Release for November

Tuesday, 11 November 2025. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.4.6.

Plasma 6.4 was released in June 2025 with many feature refinements and new modules to complete the desktop experience.

This release adds two months' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:

View full changelog

11 Nov 2025 12:00am GMT

10 Nov 2025

feedPlanet KDE | English

Mnietballs, again

Some time back I posted a bran muffin recipe. That recipe uses eggs, and I received a comment by email, perhaps from Gregor S. They pointed out some things about the egg-milk-industrial complex and how I should avoid using eggs. That annoyed me a little, although it was written respectfully and factually. Anyway, I've given it some thought and experimentation, and here's a vegan recipe for mnietballs (vaguely Dutch for "not meatballs").

I wrote a mnietballs recipe in 2023, which uses eggs as well - so that recipe is ovo-lacto-vegetarian, while this one is vegan. Vegan, but now the soy-industrial complex is involved.

Mix it all together and knead it to a lumpy paste. Add wheat flour until it is fairly stiff and you can shape it into balls about 3cm in diameter. Let stand for a while for it to glom together better. Optionally roll each ball in some breadcrumbs. Fry in plenty of oil.

10 Nov 2025 11:00pm GMT

Alternative Timezone Naming in Calamares

Calamares is a Linux system installer. During installation, it asks the user where they are on the globe, in order to set the timezone correctly on the installed system. Calamares displays the nearest timezone after you click on a map. I would like to leverage that a little for social good (or at least a tiny bit of awareness).

The last time I wrote about the Calamares timezone selector, I also said it is terrible.

One thing I do like about the timezone selector is that it supports translating the name of a timezone. That way, even though the string in the timezone database is Europe/Kiev - a relic of the time-period that the timezone database was conceived - it displays the correct Europe/Kyiv. That's when you run Calamares in English, anyway.

I added timezone translations to Calamares because a friend asked for it, and then did a couple of Dutch translations. That is because Dutch has exonyms (names in Dutch for other places) and calls Berlin, Berlijn and Paris, Parijs. There is a timezone Europa/Berlijn. The official Dutch name - last I checked - of Kyiv is Kiev, though.

The current translations addresses only a tiny fraction of the timezones, most of them ones that I have personally paid attention to, and I'd like to change that.

So here is the social project: I want, for every timezone-location (in FreeBSD, those are listed in /usr/share/zoneinfo/zone.tab) a local name. Please send them to me by email or as a change request in Calamares on Codeberg, the relevant file is tz_local.ts.

I imagine a lot of the ones in Europe will be unchanged, although I feel like Europe/Chisinau is missing accents, Europe/Athens should be Αθήνα. Those are relevant, but I'm more interested in imported names. The exonyms (what others call a place, like "Berlijn") could be endonyms (what is the local name, like "Berlin").

For everywhere where the name of the timezone was imported, I want to know what it would be locally, written locally. From Africa/Harare (this one might already be accurate, but for comparison purposes, pretend it was Africa/Salisbury, like in an atlas from 1922) to Australia/Broken_Hill to America/Edmonton (which could plausibly be ᐊᒥᐢᑿᒌᐚᐢᑲᐦᐃᑲᐣ if we pick the Cree name for the area) to America/Santiago to Asia/Dubai (دِبَيّ in Emirati Arabic) they all deserve a local name and I'd like to make that possible in Calamares.

10 Nov 2025 11:00pm GMT

This Week in KDE Apps

Quality of live improvements in Kate, basic HDR support in Krita on Wayland and touch improvements in Photos

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

As part of our yearly fundraiser, you can adopt one of KDE's apps and we can share with the whole world how awesome you are and how much you're doing to support us.

Getting back to all that's new in the KDE app scene, let's dig in!

Multimedia/Graphics Applications

Photos Image Gallery

Anders Lund added support for navigating between images when zoomed in using a touchscreen or stylus in Photos (25.12.0 - link). He also made the viewer auto-zoom when releasing a pinch when appropriate (e.g., the image is now smaller than the view) (25.12.0 - link).

Anders also enabled the slideshow feature on mobile (25.12.0 - link).

Travel Applications

KDE Itinerary Digital travel assistant

Jonah Brüchert implemented auto-resolving from railway station names to coordinates based on Nominatim (the geocoding engine powering OSM) (25.12.0 - link).

Volker Krause added support to the extractor for citycity.se, Comboios de Portugal, and Wiener Linien barcodes, and improved a bunch of existing extractors (25.12.0 - link 1, link 2, ...).

PIM Applications

Akonadi Background service for KDE PIM apps

Christoph Erhardt fixed a segmentation fault when migrating an existing Akonadi database to SQLite (25.12.0 - link).

Nicolas Fella dropped the barely used feature to show an "About Data" dialog in Akonadi resources (25.12.0 - link).

Office Applications

Okular View and annotate documents

Jack Barmes added new bookmark actions to add and remove books in various context menus in Okular (26.04.0 - link).

Utilities Applications

Kate Advanced text editor

Waqar Ahmed improved Git support in Kate. The list of branches now shows the latest activity (25.12.0 - link).

Additionally, he improved the Quick Open dialog, and it is now possible to jump to a specific line and column by entering something like 10:5 (25.12.0 - link).

Dennis Lübke added a plugin to transparently edit encrypted text files with GPG in Kate (25.12.0 - link).

Social Applications

NeoChat Chat on Matrix

Joshua Goins added an informational Keyboard Shortcuts settings page to NeoChat (25.12.0 - link).

Joshua also improved the design of the room notification settings and made it more consistent in terms of wording with the context menu used to configure notifications (25.12.0 - link).

Among a multitude of other small fixes, he improved the user experience related to the basic Jitsi meeting button to show whether a meeting is in progress, and to only enable it when the user has permission to start a meeting (25.12.0 - link).

Creative Applications

Krita Digital Painting, Creative Freedom

Carsten Hartenfels added a way to trigger the "toggle eraser preset" action via touch gestures in Krita (Krita 5.2.x - link).

Wolthera van Hövell ported the text tool dock to QML (link).

Dmitry Kazakov implemented basic HDR support on Wayland (link).

Games

Chessament Chess tournament manager

Manuel Alcaraz replaced the hamburger menu with a menu bar (link).

Third-Party Applications

Easy Effects - Audio Effects for PipeWire Applications

Easy Effects 8 was released and now uses Kirigami! Read the full announcement for details.

…And Everything Else

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

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

Get Involved

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

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

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

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

10 Nov 2025 8:21am GMT

Plasma Mobile 6.5

A mobile-centric look at the Plasma 6.5 release

About three weeks ago we released Plasma 6.5 and it's high time we talk about the plethora of improvements and bug fixes that arrived in Plasma Mobile and related projects. Let's not delay any further and get right into the juicy details!

Waydroid Integration

While our end goal is obviously KDE for world domination and a resulting breadth of native apps, we're not quite there yet and until then we wanted to make it easier to use and integrate apps running through Waydroid into your Plasma Mobile system. To that end, Florian made it so you can now set up and manage your Waydroid install right from the comfort of your settings app and turn on/off the Waydroid container from the quicksettings dropdown.

Screenshot of <nil>

(Florian Richer, Link 1, 2, 3, 4, 5, 6, 7)

Lockscreen

The lockscreen is one of the most often used and seen parts of a phone's UI and it has two jobs: Securely lock your device, but ultimately, get out of your way. So far we succeeded at the first of these jobs, but in 6.5 Devin made sure we do in the second as well. Plasma Mobile's lockscreen will now load much faster, due to reusing the existing status bar and action drawer process from the shell, instead of loading them separately each time the lockscreen is loaded. This also has the positive side effect of notifications now properly being synced between the lockscreen and unlocked shell. (Devin Lin, Link)

Screenshot of <nil>

Florian also worked on some other nifty additions:

(Florian Richer, Link 1, 2, 3)

Folio Homescreen

Micah improved and expanded the background blur effect for both the Folio and Halcyon homescreens, resulting in more consistent use of blur.

Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>

(Micah Stanley, Link)

Devin put in some work to make Folio more keyboard navigation friendly, as well as improving it in various places under the hood: from cleanup to performance improvements there's a good mix of changes here

(Devin Lin, Link 1, 2, 3, 4, 5, 6)

Meanwhile, Florian added double tap to lock to Folio, as well as a number of other improvements.

(Florian Richer, Link 1, 2, 3, 4, 5)

Halcyon Homescreen

Devin unified some code paths between Halcyon and Folio, and added a small settings page to Halcyon. Like with Folio, he also ported Halcyon to use a new applet registration method which allows it to be precompiled by qmlcachegen

(Devin Lin, Link 1, 2, 3)

Settings

There's a good bunch of stuff here as well:

Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>

Devin made sure mobile settings pages only show up on form factors that they make sense on so we stop showing the mobile shell settings on desktop. (Devin Lin, Link 1, 2)

Taskswitcher

Luis has worked on the taskswitcher internals to make it more compatible with qmlcachegen. This lays the groundwork for improving its performance while also making the code more maintainable for the future.

(Luis Büchi, Link 1, 2, 3, 4)

Haptics

Devin has done the first step on porting over our haptics plugin to use feedbackd as backend. In the future, this will allow us more fine-grained control over haptic feedback, as well as better cross-desktop compatibility

(Devin, Link)

Action Drawer

Besides Devin's work on making the action drawer overlay over the lockscreen mentioned above, there's also been some more work on improving performance of it and its contained quick actions.

For all of you running multi-monitor setups with Plasma Mobile and/or regularly docking and undocking, thanks to Sebastian there's now a quick settings to configure multi monitor layouts when several monitors are connected.

(Devin Lin, Link)

(Florian Richer, Link)

(Sebastian Kügler, Link)

Envmanager

The envmanager, responsible for keeping track of the settings environment of the shell has gotten more robust while improving how Plasma Mobile and Plasma Desktop coexist: there is now less cross-talk between potentially conflicting settings between the two shells making a hybrid setup (like on a 2-in-1 laptop/tablet combo) easier to use. In light of the work on Plasma keyboard, envmanager now also properly supports changing of the selected virtual keyboard for the mobile session.

(Devin Lin, Link 1, 2, 3, 4, 5, 6)

UI Polish

We've also spent some time improving the general look and feel of the UI. This includes updating some elements to use more appropriate theme colors, using system-wide animation durations and better layouting to reduce overlapping text/UI controls.

Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>
Screenshot of <nil>

(Devin Lin, Link 1, 2, 3, 4)

(Micah Stanley, Link 1, 2, 3)

(Florian Richer, Link 1, 2)

(Luis Büchi, Link)

Plasma Keyboard

While not technically part of the 6.5 release cycle, we've recently also released the first unstable version (0.1.0) of our new virtual keyboard. While it's not ready for prime-time just yet, progress is quick and it's already something enthusiasts may want to tinker with - so tinker away and do let us know of any feedback you might have!

...and there's much more. To see the full list of changes, check out the complete changelog for Plasma 6.5.

Contributing

Do you want to help with the development of Plasma Mobile? We are a group of volunteers doing this in our free time, and are desperately looking for new contributors, beginners are always welcome!

See our community page to get in touch!

We are always happy to get more helping hands, no matter what you want to do, but we especially need support in these areas:

Even if you do not have a compatible phone or tablet, you can also help us out with application development, as you can easily do that from a desktop!

Take Plasma Mobile for a spin! Check out the device support for each distribution and find the version which will work for your device.

If you have any further questions, view our documentation, and consider joining our Matrix channel. Let us know what you would like to work on or where you need support to get going!

Our issue tracker documentation also gives information on how and where to report issues.

10 Nov 2025 12:00am GMT