Skip to content

Saturday, 18 April 2026

I spent the last week in Graz, Austria, attending a KDE sprint as well as Grazer Linuxtage.

KDE Sprint

Just like last year, the Grazer Linuxtage team had made rooms available for KDE people to meet in the week prior to the conference. More than twenty contributors attended, below are a few notes from discussions I have been involved with.

Photo of the KDE sprint at TU Graz.
Photo by Kieryn Darkwater

AppStream release notes

We use AppStream application metadata in a number of places currently:

  • The apps.kde.org website.
  • Software stores such as Flathub, F-Droid, Google Play or the Microsoft Store.
  • Software centers such as Discover.

In-app application metadata has so far been maintained separately though, using the KAboutData API. With KDE Frameworks 6.26 it will become possible to populate that from AppStream data as well, reducing duplicated data and duplicated translation efforts.

We also expanded how we use release notes from AppStream data:

  • Release notes can now also be translated.
  • There’s new API for accessing AppStream release notes inside an application itself. This is meant to avoid duplicated efforts for in-app release notes.
  • The KDE Gear release automation will now handle notes for pre-releases correctly. This means you can add release notes for users of CD builds already, those will get translated and merged into the subsequent stable release notes automatically.

There’s a few more things to do here still:

  • We don’t have a Kirigami-based standard component for in-app release notes yet.
  • The metadata converters for F-Droid and Google Play don’t handle release notes yet.

LSAN rollout on the CI

After Albert had added infrastructure for LeakSanitizer (LSAN) suppressions in the CI, we were able to enable LSAN in several more repositories which had previously been blocked on “unfixable” or intentional “leaks” outside of our control.

The increased visibility on actual issues then also helped with identifying and fixing a couple more “real” leaks, e.g. in KGuiAddons and LibKGAPI.

Qt 6.11 for Android

There has been some progress on the long overdue Qt update for our Android builds. This had been delayed as it’ll imply some rather drastic changes to the supported Android versions and devices. Lacking alternatives we will go ahead with this.

In particular, after 26.04.0 is out this means only Android 9 and higher will be supported, and 32bit ARM builds will be discontinued.

We prepared Qt 6.11 CI images and applied necessary build fixes to practically all of our apps that have Craft-based Android builds. Initial test looks promising, and some of the annoying input handling glitches seem to have been fixed.

Sentry for Android

Another Android-related topic we looked into was uploading crash information to KDE’s Sentry instance. Our Linux and Windows builds can do this since some time, and it has been a great help with identifying, prioritizing and fixing crashes.

Initial experiments got this to work quickly on Android as well, but it will require more work to do this properly and give users full control over whether they want to upload crash information or not. We explored a few options on how to do that and have a plan now, but that yet has to be implemented.

KMime move to KDE Frameworks

The long-lasting move of KMime to KDE Frameworks will finally happen early May, after the 26.04 KDE Gear release and in time for the 6.27 KDE Frameworks release.

Users of KMime will need a few minor build system adjustments for this. The CMake target name changes from KPim6::Mime to KF6::Mime, and the version number changes from KDE PIM versioning KDE Frameworks versioning. You can either replace this at once, or use the forward-compatibility approach suggested below.

The following CMake snippet replaces the previous find_package call for KPim6Mime and will handle both variants from before and after the move.

find_package(KF6Mime 6.27 CONFIG)
if(NOT TARGET KF6::Mime)
    find_package(KPim6Mime 6.7.0 CONFIG REQUIRED)
    add_library(KF6::Mime ALIAS KPim6::Mime)
endif()

Target names in target_link_library calls can then be switched to the new KF6::Mime already. Once the transition is complete, the above snippet can be simplified to a single find_package call for the new variant again, without needing to touch anything else anymore.

Akademy preparations

Akademy Graz September 19-24

While we were in Graz the dates for this year’s Akademy were announced: September 19-24. Registration as well as the Call for Participation are open as well.

As it was already known that Akademy would be in Graz this year, we could use the opportunity to inspect venues, test food options, as well as to review and improve OSM (indoor) mapping of the conference location.

Itinerary

With a bunch of people traveling to the sprint, Itinerary also got a bit of attention of course:

  • Performance of opening the “My Data” page the first time was improved, by optimizing computing some of the statistics shown on that page.
  • A new way of sharing GraphQL query fragments should simplify maintaining support for the various OpenTripPlanner flavors in KPublicTransport. For some of the backends, the information available for rental bikes/scooters/cars became more detailed as a result of this.
  • Kate’s syntax highlighting got support for IATA SSIM flight schedules. That’s fallout from work on importing such data into Transitous, where it will eventually also benefit Itinerary and KTrip.

And more…

That’s not all of course, other topics included:

There’s also reports from e.g. Kieryn, Albert and Kristen on Planet KDE with more details and other perspectives.

Grazer Linuxtage

KDE

At Grazer Linuxtage we had a KDE booth again, showing devices running Plasma, Krita and Plasma Mobile, handing out stickers as well as the famous amigurumi Konqis, collecting donations, and of course with a bunch of KDE contributors around to talk to.

Photo of the KDE booth at Grazer Linuxtage.
KDE's booth at Grazer Linuxtage (photo by Kieryn Darkwater)

Albert also did a presentation about 30 years of KDE.

Transitous

Also as part of the conference program I spoke about Transitous and what has been built for that and around that in the past two years.

Following the recent discussions about dynamic traffic data, the talk about monitoring vehicle-to-vehicle and vehicle-to-infrastructure messages was particularly interesting. The information shown on opentrafficmap.org is obtained that way, and shows how incredibly detailed this is.

There’s current positions of trams, busses, and regular cars, speed, acceleration vectors, status of all external lights, and which pedal gets pressed. Traffic lights report their current state and change timings as well as provide a full machine-readable model of their signal groups and lane relations. All of that in a standardized and (intentionally) unencrypted form.

Lots of potential in this, I wasn’t aware this went anywhere after things had gotten a bit quieter around the self-driving cars hype.

How you can help!

Bringing people together, for a small meeting or a big conference, is extremely useful and productive. The necessary travel and logistics come with costs though, which is where your donations to organizations like KDE e.V. or Grazer Linuxtage help!

Friday, 17 April 2026

La Palma Tech Tagoror vuelve. Los meetups en la isla canaria de La Palma se relanzan este 23 de abril, en La Real Sociedad Aridane, Los Llanos de Aridane. La entrada es gratuita previo registro. Únete al evento o apúntate al grupo de Meetup para estar informado de futuras actividades.

Thursday, 16 April 2026

100+ KDE Application snaps updated and released to stable, with Qt6, KF6, arm64 support, and KDE CI integration. Coinciding with KDE Gear release day.

Wednesday, 15 April 2026

This April, KDE once again had a sprint in Graz, Austria. This one was deemed a "Mega Sprint" as unlike last year it was not just for Plasma, but for everything KDE-related from Plasma, goals, frameworks, apps, and more. We had a great turnout!

Group photo of the sprint attendees

Amazingly I managed to go the whole trip this time without getting sick! 😊

We covered a lot of ground! Briefly, a few of the things off the top of my head:

Testing​

Improving reliability, ease of running locally, documentation, and ensuring that test failures are reported by the CI in merge requests. We have some work to do for all of these to improve our testing story, and we collectively came to important decisions on how to move forwards.

Gardening​

There is a lot, often not enough hours/energy to deal with it, and a lot of the time people just don't even know about the issue(s). Let's try: being more proactive about closing bad/stale MRs, creating a GitLab bot to help automate things that get people's attention, keep track of things by sending regular notices to the mailing list(s) similar to how the "failing ci" emails help people keep on top of things.

Gestures​

A complicated topic! We had a lot of good discussions about the user flow/UI/UX, and I think we came to a really good place that sets us up for some excellent custom gestures/bindings with the fantastic work by Jakob & Natalie.

This sort of work is a really great example of something that would have been very difficult to do online, that we broke through with a lot of back and forth conversation/explanation/design at the sprint — which is exactly why we get together to unblock these things and make quick progress together!

Plasma Keyboard​

We covered all of the large topics/issues that have been pending, for example: morekeys/full keyboard emulation, emojis, speech-to-text, Wayland protocols, testing, etc. So much that each could probably be its own blog post! We'll continue to see a whole lot of changes and improvements here; we really want plasma-keyboard to be a first-class experience for all sorts of input stories.

Photo of all the Framework laptops at the sprint

Graz​

We were once again in lovely Graz, and the weather was a very welcome change from the brutal winter we've had in Canada — still had ice and snow when I left home! In addition to the mostly sunny weather and chirping birds, the city and its people were just fantastic once again. 💙

I can't say enough just how lovely Graz is, and how glad I was to get to visit again. 🇦🇹 Special shout out to Kevin Krammer, our KDE local who did so much to make this sprint great for us!

The fact that Graz is a lovely place to go is good news, since this year we'll be hosting Akademy there — I am already looking forward to coming back! :D

Lovely architecture on this museum in Graz

Interesting tower building in Graz

Shipping container apartments in Graz

Tuesday, 14 April 2026

La Palma Tech Tagoror is back. After a year without events, the meetup series relaunches on April 23rd at Real Sociedad (Casino) Aridane, Los Llanos de Aridane, La Palma. Free entry, short talks, good conversations. Join us — or sign up to the Meetup group to stay informed.

Sunday, 12 April 2026

I spent this week in Graz, the weekdays as part of the KDE Mega Sprint 2026 and Saturday attending Grazer Linuxtage 2026.

Before arriving in Graz I already did some work on the train from Vienna. I published a new version of kio-gopher so KDE Frameworks 6 applications can browse gopher sites and helped finish the review of KDominate, Albert Vaca's latest tactical game.

At the Sprint itself many things were achieved, too many to remember. 

There was some discussion about improving release notes so they go into the appstream files and end up in lots of interesting places (apps.kde.org, Discover, etc).

I also talked a bit with David Edmundson on how to streamline our work in the KDE Security team.

Another important thing was that we introduced a way to help us enable the LeakSanitizer in more repositories (by ignoring leaks that are not our fault and that we can't control) 

Non-planned group photo of Sprint attendees, a few are missing. Apologies!

 

While we were at the Sprint it was announced that we will have Akademy 2026 also in Graz. So start preparing to visit Austria in late September! 


Grazer Linuxtage was very nice, as far as I've heard also very successful in attendance, with the estimate being around 50% more than the previous year (hard to calculate when you don't require registration).

There were not many talks in English but the ones I attended were interesting. If you have time I would recommend giving them a quick skim to see if they interest you.

Transitous - Free and Open Public transport routing  (from KDE's own Volker Krause)

What can we learn from Android for other embedded Linux systems security? (Every app in Android is a different Linux user)

LibreOffice: What we're doing, where we're going, and how you can help (Very fashionable given the latest rifts in the community (sadly))

How we hacked the Bavarian State with an Open Source Open Letter (About how to pressure administrations not to give Microsoft all of our tax money)

I gave a talk about KDE and the 30 years of the Linux desktop, that from the reaction of the attendees I think it was well received, that's always nice :) 

The video from my talk is available at https://media.ccc.de/v/glt26-691-kde-30-years-of-the-linux-desktop 

Thanks everyone involved in the organization and Kevin Krammer in particular for hosting us! 

Friday, 10 April 2026

I’ve been on the Akademy organizing team and contributing in various cat-herding capacities since 2023, but this is the first time I’ve joined other contributors for a Sprint.

My mission this week has been to scout locations and activities for the Akademy conference later this year. One of the members of our local organizing team let me (temporarily) adopt their stuffed Konqi, so I have been wandering around Graz and the state of Styria with a stuffed dragon taking a bunch of pictures, drinking Aperol Spritz, eating chocolate, and petting animals to make sure that all the places we visit in September will be fun and accessible for everyone who joins.

This year KDE turns 30, so we are planning a big celebration for Akademy. I have been thrilled to discover that Graz is very accessible. The town tourism website has a guide for navigating with a wheelchair or other mobility devices; many restaurants have mocktails or homemade juice/tea options for non-alcoholic drinks; the city is full of plazas you can sit and sip a coffee in for hours when you need a break from walking, and there is an abundance of parks and fountains that children can expel their energy playing in.

I can’t wait to introduce the KDE community to Graz this September!

Akademy 2026: Call for Participation

Akademy 2026 will be a hybrid event held simultaneously in Graz, Austria, and online. The Call for Participation is open! Send us your talk ideas and abstracts.

Why talk at #Akademy2026

Akademy attracts artists, designers, developers, translators, users, writers, companies, public institutions and many other KDE friends and contributors. We celebrate the achievements and help determine the direction for the next year. We all meet together to discuss and plan the future of the Community and the technology we build. You will meet people who are receptive to your ideas and can help you with their skills and experience. You will get an opportunity to present your application, share ideas and best practices, or gain new contributors. These sessions offer the opportunity to gain support and make your plans for your project become a reality.

How to get started

Do not worry about details or slides right now. Just think of an idea and submit some basic details about your talk. You can edit your abstract after the initial submission. All topics relevant to the KDE Community are welcome. Here are a few ideas to get you started on your proposal:

  • How KDE can empower building robust communities in changing political climates
  • Work towards KDE's goals: Streamlined Application Development Experience, We care about your Input, and KDE Needs You
  • Giving people more digital freedom, sovereignty, and autonomy with KDE software
  • Advice on how to participate for new users, intermediates and experts
  • New developments/plans for KDE Frameworks, Plasma, Applications and other projects
  • 30 years of KDE: achievements, highlights, and what’s next
  • Anything else that might interest an audience of long-time, new, and potential KDE contributors!

To get an idea of talks that were accepted, check out the program from previous years: 2025 2024, 2023, 2022, 2021, 2020, 2019, 2018, and 2017.

For more details and information, visit Call for Participation.

In my opinion, KDE Connect is one of the finest pieces of software KDE has ever produced. It lets you easily pair your devices and makes them work together. Copy some text on your computer, paste it on your phone. A call comes in and the video you’re watching in your browser pauses. How cool is that? For the past couple of weeks I’ve been working on even tighter integration between KDE Connect and the Plasma desktop.

Plasma’s “Power & Battery ” popup, containing a power profile slider, and three batteries (intenral laptop battery, phone battery, and some other laptop battery)
Battery Monitor displaying status about devices paired wirelessly using KDE Connect

By adding a corresponding back end to Solid, KDE’s hardware abstraction framework, your phone’s battery status will show up in the “Power & Battery” popup just like a wireless mouse would. The key advantage of reporting a KDE Connect device as storage media is that it can show up in various places just like a USB drive would, including the Places panel in Dolphin and “Disk & Devices” in Plasma’s system tray. Right now, the Places panel entry is actually manually added by kdeconnectd creating a bookmark. This also means that any modifications done to the entry, such as hiding it, will be lost once the device disappears. If instead it is a proper Solid device with a unique identifier, the Places panel will remember that the device was hidden next time it is discovered. Additionally, PowerDevil, Plasma’s power management daemon, already automatically issues a notification when a connected external device runs low on battery.

Now that the fact that you can browse your phone’s storage remotely via KDE Connect is more obvious, I spent some time improving the user experience when doing so. Since KDE Connect is cross-desktop and cross-platform it uses sshfs to provide access to the phone. It doesn’t implement a proper KIO worker like we normally would since that really only works in KDE applications. This unfortunately comes with a couple of downsides: for example, the device is mounted into /run/user/<uid>/<deviceid> which is gibberish that will be shown to the user in the address bar. More importantly, though, it makes the file manager think it’s a local path (which is normally fast to access) and could lead to UI freezes when the connection is slow or unstable.

To improve this, I made use of KIO’s ForwardingWorkerBase. This is a tiny KIO worker that just rewrites a URL and forwards it to a different location. This way, the application sees a “remote” kdeconnect://device/path URL and keeps everything nice and asynchronous but under the hood still uses the sshfs infrastructure we already have. It’s what the magic desktop:/ URL uses that parses the name of .desktop files (so your get nice application names) but other than that merely reads from /home/<user>/Desktop. This also makes the entry in the Places panel match up with the URL being browsed and ultimately makes the device’s name appear on the address bar instead of an ugly UUID.

No more gibberish /run/user/somethingsomething URL on the address bar

While at it, I also added a “KDE Connect Devices” link to the “Network” folder, like we already have for Bluetooth, MTP, and Apple devices. Finally, when there is only a single storage location on the device, such as “Internal Shared Storage”, it redirects into it automatically. This saves one click when opening the device and puts you directly where your stuff is. The back end has just been merged and will be released next month as part of KDE Frameworks 6.26. However, since there’s still a bunch of infrastructure work needed around it, the back end is disabled by default. We will likely need to have at least KDE Gear 26.08 and Plasma 6.7 released that will include some necessary changes before we can flip the switch.

If you run latest KDE git builds, please give it a try and let me know what you think! You need to set the SOLID_ENABLE_KDECONNECT=1 environment variable to use it. To enable all debug output to aid debugging, set QT_LOGGING_RULES=kf.solid.backends.kdeconnect*=true or use KDebugSettings.

Final stretch toward the April 23rd release — bug fixes, thanks to contributors, and a call for testers.