A script element has been removed to ensure Planet works properly. Please find it in the original post. Dolphin Dolphin is KDE's file/folder browser manager, which also lets you connect to remote file systems and manage code repositories. In version 26.04, Dolphin lets you add keyboard shortcuts to nearly any option in any menu, plugin or extension. Say you find yourself often switching the order of files between order by name and order by date created. Make a shortcut and re-order with ease. Personal Information Management KDE's Personal Information Management software covers everything to do with email, contacts, calendars, etc. Merkuro Calendar now boasts a re-designed schedule view and event editor. They now look more modern and show more relevant information in a more attractive way.
The venerable KOrganizer calendaring app integrated into Kontact has had a facelift and is both tidier and more informative.
Itinerary helps you plan your trips, manages all your tickets and reservations, and helps you not get lost when travelling. This new version improves its dialogs and has added new information for when travelling around Switzerland. Kdenlive Kdenlive is KDE's full-featured video editor. In 26.04, you will find animated previews in Compositions that show you what a transition does even before you apply it. Another feature you'll find useful is that you can now mirror the monitor to an external display. This will let you see the clip in the usual interface, but also on a second screen as a larger view.
A few smaller tweaks include a timeline context menu that directly imports a clip to the project, adding it to the clicked position an option to always zoom on the mouse position instead of the timeline playhead automatic generation of audio thumbnails for sequences dropping a transition to the timeline will automatically adjust its duration to the above/below clips you can now change the speed of multiple clips at the same time. Also in Gear ⚙️ 26.04 Audiotube boasts a fancy, brand new welcome page
KClock now shows up as an overlay on a mobile lock screen when a timer is running NeoChat, KDE's Matrix chat client, gets a rich text editor and now supports threads! Full changelog here Where to get KDE Apps Although we fully support distributions that ship our software, KDE Gear 26.04 apps will also be available on these Linux app stores shortly: Flathub
Snapcraft If you’d like to help us get more KDE applications into the app stores, support more app stores and get the apps better integrated into our development process, come say hi in our All About the Apps chat room.
...
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!
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.
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
...
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...
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! ...
I was reading the latest edition of Kevin Ottens’ excellent weekly web review and one particular article caught my eye: “The Git Commands I Run Before Reading Any Code“. In a nutshell, you can use the git version control tool to quickly assess a project’s health, what breaks, who’s a key figure, how bad emergencies are, and so on. So useful! I immediately wanted to apply this to KDE projects. So I took the commands from the post and made some shell aliases and functions for convenience: # git repo analysis toolsalias what-changes="echo 'What changes a lot?' && git log --format=format: --name-only --since='1 year ago' | rg -v 'po$|json$|desktop$' | sort | uniq -c | sort -nr | head -20"alias what-breaks="echo 'What breaks a lot?' && git log -i -E --grep='fix|bug|broke|bad|wrong|incorrect|problem' --name-only --format='' | sort | uniq -c | sort -nr | head -20"alias emergencies="echo 'And what were the emergencies?' && git log --oneline --since='1 year ago' | grep -iE 'revert|hotfix|emergency|urgent|rollback'"alias momentum="echo \"What's the project's momentum over the past 5 years?\" && git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c | tail -n 60"alias maintainers-recently="echo \"Who's been driving this project in the past year?\" && git shortlog -sn --no-merges --since='1 year ago' | rg -v 'l10n daemon script' | head -n 30"alias maintainers-alltime="echo 'And what about for all time?' && git shortlog -sn --no-merges | rg -v 'l10n daemon script' | head -n 30"function repo-analysis { what-changes echo what-breaks echo emergencies echo momentum echo maintainers-recently echo maintainers-alltime} Now let’s run it on Plasma. Here’s plasma-workspace, the core of Plasma: $ git clone ssh://git@invent.kde.org/plasma/plasma-workspace.git$ cd plasma-workspace $ repo-analysisWhat changes a lot? 1519 38 CMakeLists.txt 29 shell/shellcorona.cpp 24 runners/services/servicerunner.cpp 21 wallpapers/image/imagepackage/contents/ui/config.qml 19 libnotificationmanager/notifications.cpp 18 shell/org.kde.plasmashell.desktop.cmake 18 devicenotifications/devicenotifications.cpp 17 kcms/lookandfeel/kcm.cpp 16 wallpapers/image/plugin/model/packagelistmodel.cpp 16 kcms/cursortheme/xcursor/xcursor.knsrc 15 wallpapers/image/plugin/model/imagelistmodel.cpp 15 applets/notifications/global/Globals.qml 15 applets/devicenotifier/devicecontrol.cpp 14 wallpapers/image/plugin/imagebackend.cpp 14 shell/panelview.cpp 14 .kde-ci.yml 14 applets/systemtray/systemtray.cpp 13 runners/services/autotests/servicerunnertest.cpp 12 krunner/qml/RunCommand.qmlWhat breaks a lot? 225 shell/shellcorona.cpp 183 shell/panelview.cpp 83 CMakeLists.txt 74 applets/systemtray/package/contents/ui/main.qml 71 applets/digital-clock/package/contents/ui/DigitalClock.qml 63 klipper/klipper.cpp 62 applets/notifications/package/contents/ui/NotificationItem.qml 58 wallpapers/image/imagepackage/contents/ui/config.qml 56 shell/desktopview.cpp 56 libtaskmanager/tasksmodel.cpp 54 shell/main.cpp 54 applets/systemtray/systemtray.cpp 53 shell/shellcorona.h 52 krunner/view.cpp 48 applets/digital-clock/package/contents/ui/CalendarView.qml 47 runners/services/servicerunner.cpp 46 wallpapers/image/imagepackage/contents/ui/main.qml 45 applets/notifications/package/contents/ui/NotificationPopup.qml 44 applets/systemtray/package/contents/ui/ExpandedRepresentation.qml 43 startkde/startplasma.cppAnd what were the emergencies?4f526a7bd1 Revert “applets/systemtray: Prevent popups from overlapping with the panel”dca5788fee lookandfeel/components: Revert Plasma::setupPlasmaStyle2c0fd34541 Revert “ContainmentLayoutManager: send recursive mouse release events too”b6b230f4ff Revert “Read selenium-webdriver-at-spi-run location from CMake”b8651b56f6 hotfix: Remove doc translations without actual doc1f43f576e8 Revert “Add forceImageAnimation property to force animated image play”f0349b6c81 hotfix: remove stray .po file3ff7ae4269 Revert “CI: enable parallel testing”83bebc7896 Revert “Limit evaluateScript execution at 2 seconds”4f45f672be Revert “kcms/componentchooser: Don’t offer NoDisplay services”3bf0ff8f56 Revert “Disable linux-qt6-next while the regression in Qt gets fixed”80996f0633 Revert “kcms/wallpaper: set roleNames for WallpaperConfigModel”What’s the project’s momentum over the past 5 years? 148 2021-05 87 2021-06 62 2021-07 85 2021-08 121 2021-09 106 2021-10 146 2021-11 190 2021-12 191 2022-01 84 2022-02 168 2022-03 130 2022-04 146 2022-05 141 2022-06 136 2022-07 107 2022-08 232 2022-09 234 2022-10 181 2022-11 150 2022-12 154 2023-01 161 2023-02 156 2023-03 156 2023-04 163 2023-05 137 2023-06 186 2023-07 190 2023-08 275 2023-09 226 2023-10 283 2023-11 157 2023-12 131 2024-01 147 2024-02 249 2024-03 180 2024-04 188 2024-05 158 2024-06 128 2024-07 146 2024-08 169 2024-09 156 2024-10 116 2024-11 98 2024-12 145 2025-01 126 2025-02 120 2025-03 116 2025-04 131 2025-05 131 2025-06 132 2025-07 115 2025-08 110 2025-09 97 2025-10 147 2025-11 114 2025-12 140 2026-01 131 2026-02 119 2026-03 44 2026-04Who’s been driving this project in the past year? 116 Vlad Zahorodnii 113 Nicolas Fella 87 Christoph Wolk 82 Fushan Wen 78 Nate Graham 66 Kai Uwe Broulik 48 Bohdan Onofriichuk 37 Harald Sitter 34 Tobias Fella 31 Marco Martin 30 David Edmundson 25 Akseli Lahtinen 21 Ismael Asensio 17 David Redondo 16 Niccolò Venerandi 15 Bhushan Shah 11 Alexander Lohnau 11 Kristen McWilliam 9 Oliver Beard 9 Shubham Arora 8 Alexey Rochev 8 Han Young 8 Philipp Kiemle 7 Albert Astals Cid 6 Aleix Pol 6 Méven Car 5 Devin Lin 5 Joshua Goins 4 Alexander Wilms 4 Arjen HiemstraAnd what about for all time? 1543 Fushan Wen 1497 Marco Martin 1374 Kai Uwe Broulik 1030 David Edmundson 772 Nate Graham 658 Alexander Lohnau 551 Aleix Pol 548 Nicolas Fella 438 ivan tkachenko 385 Eike Hein 264 Sebastian Kügler 250 Martin Gräßlin 238 Harald Sitter 232 Martin Klapetek 223 Jonathan Riddell 207 Vlad Zahorodnii 194 David Redondo 190 Friedrich W. H. Kossebau 189 Laurent Montel 144 Bhushan Shah 134 Christoph Wolk 134 Ismael Asensio 126 Lukáš Tinkl 121 Niccolò Venerandi 117 Méven Car 105 Natalie Clarius 91 Konrad Materka 80 Vishesh Handa 80 Volker Krause 79 Ivan Čukić ShellCorona both changing and breaking a lot is no great surprise to me; it’s fiddly and complicated. We need to do something about that. The number of emergencies doesn’t look too bad, and momentum feels fine too. The project also appears to have a nice healthy diversity of contributors. Excellent! It’s been quite illuminating to run these tools on KDE projects that I’m both more and less familiar with. Give it a try!...
Let’s go for my web review for the week 2026-15. France Launches Government Linux Desktop Plan as Windows Exit Begins Tags: tech, foss, politics, desktop, france, europe Well, what can I say? This is excellent news and I’m excited to see it happen. Let’s hope more governments do the same. It’ll take a while of course, so we’ll have to be patient. https://linuxiac.com/france-launches-government-linux-desktop-plan-as-windows-exit-begins/ The Free Market Lie: Why Switzerland Has 25 Gbit Internet and America Doesn’t Tags: tech, infrastructure, economics A good explanation and illustration of how natural monopolies work. This is why you want to regulate infrastructure properly. https://sschueller.github.io/posts/the-free-market-lie/ You can absolutely have an RSS dependent website in 2026 Tags: tech, blog, rss The stats are clear there. Beside in term of experience, RSS feeds are so superior to newsletters… I wish more bloggers would give up on the newsletter focus. There’s also a good point in this post: as soon as you have a newsletter you will sit on a database of email addresses, it’s definitely a liability. https://matduggan.com/you-can-absolutely-have-an-rss-dependent-website-in-2026/ The Downfall and Enshittification of Microsoft in 2026 Tags: tech, microsoft, github, apple, linux, business, product-management Indeed, the giant managed to make itself weak. This means opportunities for other ecosystems to grow faster than before. https://caio.ca/blog/the-downfall-and-enshittification-of-microsoft.html Let’s talk about LLMs Tags: tech, ai, machine-learning, copilot, productivity, craftsmanship Long but very precise piece about why you can likely ignore LLM for development purpose. Starting from older Fred Brooks work is spot on. Indeed whatever will remain of LLM based tools in the years to come, it’s much smarter to focus on fundamental skills than chase the new tools. At least, I’m trying to do my share in getting myself and others better at the craft. https://www.b-list.org/weblog/2026/apr/09/llms/ Almost Half of US Data Centers That Were Supposed to Open This Year Slated to Be Canceled or Delayed Tags: tech, ai, machine-learning, gpt, energy, economics, infrastructure It’s getting clearer that the industrial LLM complex will have a hard time meeting its targets. https://futurism.com/science-energy/data-centers-construction-supply “Cognitive surrender” leads AI users to abandon logical thinking, research finds Tags: tech, ai, machine-learning, gpt, cognition, bias It feels like it’s supercharging an old bias… We tend to confuse confidence for competence. https://arstechnica.com/ai/2026/04/research-finds-ai-users-scarily-willing-to-surrender-their-cognition-to-llms/ The machines are fine. I’m worried about us. Tags: tech, ai, machine-learning, gpt, copilot, learning, science, research Excellent piece, it show quite well the problem of skipping the “grunt work”. Without it you can’t really learn your trade (be it astrophysics or anything else). It also shows how the incentives on scientific careers are wrong. It’s not new, but when LLM agents become available, things are definitely changing for the worst. https://ergosphere.blog/posts/the-machines-are-fine/ Giving LLMs a Formal Reasoning Engine for Code Analysis Tags: tech, ai, machine-learning, copilot, prolog, logic Definitely interesting approach. I think neurosymbolic approaches are what we ultimately need so I’m probably biased. At least it means using LLMs for what they’re good at (language skills) and only that. Then rely on proper code symbolic models which do the reasoning heavy lifting. I’d expect it can give nice output with smaller models. https://yogthos.net/posts/2026-04-08-neurosymbolic-mcp.html Open source security at Astral Tags: tech, security, ci, supply-chain Lots of interesting measures to reduce the risk of supply chain issues. Definitely to be considered on your projects. https://astral.sh/blog/open-source-security-at-astral another memory corruption case Tags: tech, hardware, memory, failure Failing DRAM chips are real. Here is the case of debugging a single bit flip. https://trofi.github.io/posts/347-another-memory-corruption-case.html The Git Commands I Run Before Reading Any Code Tags: tech, git, version-control, team, audit Nice little commands to use to discover quickly the state of a code base… Or rather of its team. https://piechowski.io/post/git-commands-before-reading-code/ Zsh: select generated files with (om[1]) glob qualifiers Tags: tech, zsh, shell Oh this is super neat and convenient! I didn’t know about those glob patterns modifiers in zsh. https://adamj.eu/tech/2026/01/27/zsh-om1-glob-qualifiers/ Two little scripts: addup and sumup Tags: tech, unix, shell, scripting A friendly reminder that one can go far mainly with awk. https://utcc.utoronto.ca/~cks/space/blog/sysadmin/LittleScriptsIX All of the String types Tags: tech, memory, unicode, encodings So many string types! They all have a purpose of course. It’s a good reminder that something mundane like a string type is not that simple. https://lambdalemon.gay/posts/string-types Stamp It! All Programs Must Report Their Version Tags: tech, version-control, debugging Examples of how i3 and go stamp versions. This is indeed good habits to ease dealing with errors in production. https://michael.stapelberg.ch/posts/2026-04-05-stamp-it-all-programs-must-report-their-version/ The MVC Mistake Tags: tech, architecture, complexity Shows the problem with layer cakes in applications or how you might want to go toward onion architectures. https://entropicthoughts.com/mvc-mistake The Mouse That Roared Tags: tech, leadership, tests, tdd, agile, organisation Cryptic title to be honest. But this is a good explanation of why any “agile transformation” better start close to the code and in particular with automated tests. If you can crack that nut (and it takes time), the rest will follow naturally. https://codemanship.wordpress.com/2026/03/30/the-mouse-that-roared/ If you thought the speed of writing code was your problem - you have bigger problems Tags: tech, productivity, organisation, leadership, ai, machine-learning, copilot So much this… There are so many organisational problems that churning code faster is likely not what you need. When did we start to obsess with the number of lines of code? https://andrewmurphy.io/blog/if-you-thought-the-speed-of-writing-code-was-your-problem-you-have-bigger-problems Are We Idiocracy Yet? Tags: satire, culture Getting there, one day at a time. https://idiocracy.wtf/ Bye for now!...
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.
Konqi at Zotter
Konqi guarding my chocolates at the bus stop
me and Konqi on the train 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...
We're currently working on porting Qt to HarmonyOS. For our CI and developer machines, we need a number of third-party libraries built for HarmonyOS. Cross-compiling open-source C and C++ libraries for this platform has been a manual, error-prone process. Each library has its own build system, whether CMake, Autotools, or Meson. Each needs individual attention to produce correct binaries for the OHOS target. We have been maintaining a hand-written shell script that builds libraries one by one, with per-library workarounds for cross-compilation quirks.With our vcpkg fork, that script is now a single command.
...
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.
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...
Friday, 10 April 2026 KDE today announces the release of KDE Frameworks 6.25.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 Baloo Fix remaining QFile::open nodiscard warnings. Commit. [FileIndexerConfigUtils] Fix a nodiscard warning in fixture setup. Commit. [FileIndexerConfigUtils] Remove unneeded QTextStream. Commit. [FileIndexerConfigTest] Get rid of an almost duplicate helper function. Commit. [FileIndexerConfigTest] Reduce repetitions/manual expansion. Commit. [FileIndexerConfigTest] Reduce string puzzles to improve readability. Commit. [FileIndexerConfigTest] Move single-use strings out of header file. Commit. [DocumentUrlDBTest] Remove unused helper function. Commit. [ExtractorProcess] Verify transaction was sucessfully created. Commit. Tell the compiler QFile::open(fd, ...) can not fail for STDIN. Commit. [Query] Use explicit percent-encoding for title and json data. Commit. [QuerySerializationTest] Extend test coverage for disallowed characters. Commit. [QuerySerializationTest] Cover fromSearchUrl/toSearchUrl methods. Commit. [QuerySerializationTest] Make JSON roundtrip test data driven. Commit. Breeze Icons Duplicate kdesrc-build icon as kde-builder icon. Commit. Remove duplicate/bogous style sheets. Commit. Remove unused path in im-invisible-user.svg that breaks webfont on MacOS. Commit. See bug #499597 Add data-question status icon similar to other data-* status icons. Commit. Add nicer 16x16 variant of dialog-question. Commit. Add keyframe-warn. Commit. Resize kmouth, konversation, and kde-im-log-viewer to same height. Commit. Add icon for conic gradients. Commit. Add mask action icons. Commit. Extra CMake Modules KDECMakeSettings: Disable CMAKE_CXX_SCAN_FOR_MODULES. Commit. KArchive Fix int overflow + QList assert on broken files. Commit. Generate a pkgconfig file. Commit. KCalendarCore CI - add pre-commit support. Commit. Use markdownlint-cli2 to format markdown files. Commit. Use gersemi to format CMake files. Commit. Src/filestorage.h - fix a misspelled word. Commit. Clang-format project. Commit. Clean whitespace issues. Commit. KCodecs We depend against qt 6.8 => we can remove check here. Commit. Propagate C++20 requirement to consumers. Commit. [KEncodingProber] Remove unused/unreachable Reset() method. Commit. [KEncodingProber] Use in-class initialization for prober members. Commit. [Codec] Default constructors/destructors, annotate as constexpr. Commit. [Codec] Simplify codecForName lookup. Commit. [Codec] Benchmark codecForName lookup. Commit. [Codec] Move test class declaration to implementation file. Commit. [Codec] Remove double quote for invalid codec warning. Commit. [KCharsets] Simplify instance singleton. Commit. [KCharsets] Reuse translated strings from encodingsByScript. Commit. [KCharsets] Fix possible initialization race for encodingsByScript. Commit. [KCharsets] Remove unused include. Commit. [KCharsetsTest] Reduce call nesting to improve readability. Commit. KConfig Kreadconfig: Add flag to include globals. Commit. Kdesktopfile: tolerate nameless action for SEPARATOR. Commit. Fixes bug #517770 Remove ifdef now that we depend on Qt >= 6.9.0. Commit. QDoc fixes. Commit. Kreadconfig: Add flag to dump all entries. Commit. Do not try to read registry entries for absolute config file names. Commit. Avoid creation of not already existing registry keys. Commit. KCoreAddons Remove unused cmake variable. Commit. KDocTools Dynamically retrieve the list of languages to install. Commit. Install arabic files. Commit. KFileMetaData ExtractionPluginManager -> ExtractorCollection. Commit. Ffmpeg: use qScopeGuard to release AVFormatContext on failure. Commit. Extractors/exiv2: remove version check for BMFF_SUPPORT. Commit. Ffmpegextractor: when color_space_name is "unkwown" don't set ColorSpace. Commit. KGuiAddons Waylandclipboard: Wait for up to 1s for the clipboard contents. Commit. Waylandclipboard: Properly interrupt thread when client extension goes inactive. Commit. Remove ifdef now that we depend on Qt >= 6.9.0. Commit. Change include in ksysteminhibitor_dbus.cpp preventing building when using a QT version < 6.9. Commit. Systemclipboard: waylandApp ptr validation cleanup. Commit. Systemclipboard/wlrwaylandclipboard: Fix WlrDataControlDevice::setPrimarySelection. Commit. KHolidays Update holidays of 2026 for Taiwan. Commit. CI - add pre-commit support. Commit. Use markdownlint-cli2 to format markdown files. Commit. Use gersemi to format CMake files. Commit. .codespellrc - allow "lightening". Commit. Clang-format fixes. Commit. Clean whitespace issues. Commit. Edit portuguese holidays. Commit. KIconThemes Explain why SVG preference was reverted. Commit. Don't try to create KIconTheme with empty theme name. Commit. Revert "KIconTheme: Prefer SVG files over PNG files". Commit. Fixes bug #516007. See bug #502273 KImageformats TIM: PlayStation graphics read only support. Commit. Remove ifdef now that we depend on Qt >= 6.9.0. Commit. IFF: fix Integer-overflow in IDATChunk::strideSize. Commit. KIO Kfileitem: isExecutable: rely on QFileinfo. Commit. Revert "KFileItem: use permissions to determine isWritable and isReadable". Commit. Fixes bug #504287. Fixes bug #506472 KFileItem: Check desktop MIME type before isSlow. Commit. Widgets: Don't show an error when trying do paste while there is nothing to paste. Commit. Kio_ftp: Enable UTF-8 encoding negotiation after successful login. Commit. See bug #269370. See bug #165044 Autotests/openurljobtest: ensure to have deleteLater launched. Commit. Filewidgets/kfileplacesview: clear job in destructor. Commit. Autotests: openurljobtest, prevent memleak in negative tests. Commit. Kpasswdserver: prevent memleak of retry dialog. Commit. Core/kcoredirlister: prevent mem-leak upon redirection. Commit. Filewidgets/knewfilemenu: prevent small leak. Commit. Autotests/threadtest: prevent memleak in test. Commit. KfilePlacesView: delete FileSystemFreeSpaceJob once it is finished. Commit. Krecentdocumenttest: prevent a memleak. Commit. DropJob: parent DndPopupMenuPlugin to the dropjob. Commit. Fix protocol in "Destination" header for WebDAV copy/move. Commit. Fixes bug #487503. Fixes bug #443386 Filepreviewjob: Track subjobs using QPointer. Commit. Fixes bug #517867 Filecopyjob: Pass source file size to put() workers via setSourceSize(). Commit. Tweak ifdef now that we depend on Qt >= 6.9.0. Commit. Core: listjob: Support selective StatDetails for directory listing. Commit. Gui/filepreviewjob: return an error in case the sub-job failed. Commit. Gui/filepreviewjob: avoid a crash when temp is removed. Commit. Fixes bug #516575 File: In LSTAT also stat subvolid and mntid when requested. Commit. Kurlnavigator: Change fallback behaviour for user input url. Commit. Fixes bug #408315 Fix some cmake warnings. Commit. Filepreviewjob: allow to log the file being previewed. Commit. Forwardingworkerbase: Forward stat side and details. Commit. Fix build on macOS relating to tv_nsec. Commit. Core/udsentry: don't reduce nanosecond precision to millisecond. Commit. KFileItemDelegate: Use margins directly from style. Commit. Kirigami Disable Alpine CI. Commit. Disable qmllint for some modules. Commit. PageRow: don't leak the dialog layer window. Commit. Fix AboutPage license sheet. Commit. Remove duplicate FeatureSummary include. Commit. Don't include quiet packages in feature_summary. Commit. TitleSubtitle: Add tweakable textFormat property. Commit. Platform: Prefer filesystem over qrc when determining install root. Commit. LinkButton: Create template, move items from control to template. Commit. KItemModels Remove unused cmake variabls. Commit. KNewStuff Use KF6Kirigami, fix cmake variable use KF_DEP_VERSION. Commit. KRunner Fix cmake warnings (use correct Qt version). Commit. KService Bump sycoca version after changing the hash. Commit. Extract to variable. Commit. Fix a typo in the bitmask used in the hash. Commit. KStatusNotifieritem Don't include quiet packages in feature_summary. Commit. KSVG Add basic test for Svg. Commit. KTextEditor Don't do reverse encoding if the target is the null char. Commit. KTextEditor::DocumentPrivate constructor does the register. Commit. Katedocument: Use first line of text as document title. Commit. Katedocument: Add relevant MIME types to Save dialog. Commit. Remove cmake warning. Commit. Update MiniMap Area. Commit. KUnitConversion Add missing since documentation to Momme. Commit. Add conversions to/from momme for silk fabric weight. Commit. KUserFeedback We depend against qt6. Commit. Fix some cmake warnings. Commit. KWallet Fix find_package calls when not building kwalletd and ksecretd. Commit. Hardcode one short DH key instead of brute-forcing one. Commit. Ksecretd: fix intermittent Secret Service session key mismatches with libsecret. Commit. Fixes bug #514194 KWidgetsAddons KMessageBox: Set very long lines to wrap, even on very wide screens. Commit. KAccelatorManager: Avoid unnecessary allocations. Commit. Add test for resizing dialogs with squeezed messages. Commit. Re-enable logic to allow resizing of some KMessageBox dialogs. Commit. KWindowSystem Kxcbevent_p.h: FWD KXcbEvent as class instead of struct. Commit. Add missing Q_EMIT to signal call. Commit. Platforms/wayland: Fix a crash in WindowEffects::installBlur(). Commit. KXMLGUI KKeySequenceWidget: Add text to clear button. Commit. Modem Manager Qt Fix version guards. Commit. Network Manager Qt Fix cmake warnings. Commit. QQC2 Desktop Style SpinBox: Use displayText for display text. Commit. Popup: remove default contentItem. Commit. Popup: don't clip by default. Commit. Solid Fstab: Use qCCritical instead of qCritical. Commit. Sonnet Remove seemingly useless text position check. Commit. Syntax Highlighting Add highlighting for ISO 10303-21 STEP files. Commit. Cmake.xml: update syntax for CMake 4.3. Commit. Adapt XSD and code to docs. Commit. Fixes bug #517428 Fix reading of spellchecking element to match XSD. Commit. Fixes bug #517428 Add license. Commit. Add PIO Assembler syntax highlighting. Commit. Add autotest reference file. Commit. Add syntax file and tests for SAS. Commit. Systemd unit: update to systemd v260. Commit...
Introduction Another year, another successful Season Of KDE for 20 contributors! This article has been co-written with the input from all contributors. Lokalize During Season of KDE 2026, Tanish Kumar worked on cleaning up the UI in Lokalize, KDE’s translation tool. The main task was fixing an annoying bug where the menu bar kept jumping around whenever you switched tabs, which was solved by giving the menus a stable “skeleton” in the KXMLGUI .rc files. Along the way, a bunch of “ghost actions” were discovered - menu entries that existed only in XML - and actually implemented the missing ones like Cut, Copy, Paste, Alternate Translation, Save All, Revert All, and Close All. He also built a Bookmark Manager dialog so translators can see all their bookmarks in one place.
Navya Sai Sadu and Kumud Sagar fixed navigation inconsistencies in the Editor Tab where shortcuts like “Approve and Go Next” failed to respect active filters and custom ordering in the Translation Units view. They ensured consistent behavior across all related shortcuts, including Next Ready, Next Non-Empty, and Next Bookmark. They unified the traversal logic so navigation always follows the filtered and ordered entries and users of Lokalize can now navigate through Translation Units using the keyboard shortcuts or the options in Go menu properly..
Additionally, Kumud identified Lokalize’s on-disk file tracking mechanism and began improving its handling of external file updates.
Jaimukund Bhan fixed foundational issues with the Glossary file, ensuring it could be properly loaded, saved, and autosaved, and cleaned up the codebase by removing an obsolete Restore function that no longer made sense once autosaving was in place. Several UI bugs were resolved, including the editor failing to clear when all terms were deleted and incorrect pre-selection behavior when the app started on the Glossary tab. In the second half, Jaimukund improved the manual term addition workflow by replacing silent blank entry creation with a proper dialog prompt, preventing accidental accumulation of empty entries. He also fixed a broken keyboard shortcut for switching to the previously active tab by replacing an index-based tracking variable with a widget pointer, which remains valid even as tab positions change.
Aditya Sarna made a full Figma redesign for the Glossary tab, which was referenced in several places to implement comprehensive UI and UX improvements. The work involved close collaboration with translators to understand user pain points and iterating on designs based on feedback from the design group. It included replacing button text with icons and adding tooltips to the Add and Delete buttons to clarify their purpose. This was followed by designing a new delete functionality, which introduced a cross button for each entry to make deletion more intuitive. Several additional UI changes were implemented, including shifting elements and improving the overall structure and layout of the Glossary tab. Furthermore, the workflow for adding new terms was refined by moving note text into the dialogue box and enhancing its layout, resulting in a cleaner, more intuitive and user-friendly interface.
Varun Sajith Dass worked on improving the proofing capabilities of Lokalize and implemented a reactive character consistency check that alerts translators in real-time when special characters are mismatched between the source and target strings. This involved debugging Qt UI signals, resolving macOS build issues with KIO workers, and creating a persistent status bar warning system to enhance the overall translation workflow.
Vishesh Srivastava worked on adding Appium-based UI testing to KDE’s Lokalize. Vishesh started with a small bug fix and unit test to familiarize with the codebase and then built a complete Appium test from scratch, including basic tests and a full end-to-end workflow. Another thing done was adding accessibility ids in the UI so Appium could interact with the editor. The tests were integrated into the CMake system, ensured they ran independently of the user, and can run with kde-builder tests with a flag. By the end, Vishesh had developed a functional UI testing framework for Lokalize, along with documentation to help future contributors.
KDE mentorship website Advaith Sathish Kumar project was transforming mentorship.kde.org into a proper onboarding system for new KDE contributors. On the homepage, the hero section was redesigned, placeholder routing with experience based navigation was replaced, social media links were added, and the news cards to include author, date, and tags were also redesigned. For the /mentees page, I added past mentee details, implemented pagination, and added client-side filtering by year, program, and technology.
Aryan's project was to make mentorship.kde.org better so that new contributors who want to work with the KDE ecosystem have a better onboarding experience. As part of this effort, a new "/programs" page was added. It gives a structured overview of the main KDE mentorship programs and links to help newcomers find their way around the opportunities more easily. He also changed the card template to better organize the repository, making it more structured, easier to maintain. Aryan also filled the /resources page with more useful resources for new contributors.
Documentation website Mohit Mishra worked on decoupling the bundled dblatex fork from the docs-kde-org repository and fixing PDF generation for Chinese, Japanese and Korean (CJK) languages for KDE documentation. This involved switching the TeX engine to XeTeX from pdfTeX and then re-integrating the KDE styles. The outputs are now nearly identical, with CJK languages rendering correctly as well. There is still work in process to ensure there are no regressions and we can officially switch to this generation.
Scripty Aviral Singh and Keshav Nanda worked on fixing KDE's translation tools so translators can easily locate where text belongs in the code. Keshav corrected the underlying logic to make sure these paths are always accurate, and Aviral built an automated testing system to validate the fix across KDE projects. Marknote Siddharth Chopra worked on Marknote to add source mode for notes. The Source Mode essentially allows users to bypass the rich-text WYSIWYG interface and directly edit the raw markdown. While working on this feature, Siddharth also made a major refactoring of the codebase (on both the QML and C++ sides). Spell checking using Sonnet was also added, among other small fixes and improvements. KDE Eco Hrishikesh Gohain worked on setting up KEcoLab's measurement environment with Wayland on Fedora 43 KDE Plasma Desktop. He ported the Okular measurement scripts from the X11-based xdotool to ydotool and kdotool, which work on both X11 and Wayland. His contributions can be found in this merge request. The original project plan had included measuring the KDE Plasma desktop environment itself. However, porting the Okular scripts to Wayland in the new lab setup turned out to be more complex than expected. Moreover, measuring a desktop environment may need some infrastructure changes to the KEcoLab setup. Hrishikesh is currently working towards it and will continue after SoK26 is over.
Automate Promo Data Collection Chuyen Nguyen wrote automation scripts and created environments for them to perform some of the KDE promotional team's insight data collection tasks. The first script collects KDE's X, Bluesky, Mastodon, and Threads accounts' follower and post counts using a mix of API requests and web scraping methods alongside a local Nitter instance. The second script scrapes the KDE subreddit's Reddit Insights page for weekly metrics on page visits, unique visitors and its total member count and includes a Docker image that allows for headless execution. The final script collects articles related to KDE using Google Alerts emails and performs sentiment analysis on them using a locally run large-language model. The figure below shows output from the follower and post count scraper, Reddit Insights page scraper, and Google Alerts evaluator respectively.
Plasma Setup Onat Ribar worked on bringing Plasma Setup, KDE's first-run setup wizard, to Plasma Mobile. Plasma Setup was built with desktop screens in mind, and running it on a phone showed overall accessibility issues including but not limited to overlapping components, content clipping on short window sizes, session buttons that remained tappable beneath wizard pages, and a timezone selector built around an interactive map that was nearly unusable on a small touchscreen. Onat worked through these systematically across the wizard's QML UI, resulting in an adaptive experience across screen sizes and input methods without affecting the desktop UX. Two MRs have been reviewed, merged, and are now part of the upstream codebase in repositories plasma-setup and plasma-workspace.
Falkon Sairam developed a XMPP extension that adds a chat client directly into the KDE Falkon browser's sidebar. Written in Python using Slixmpp, the project lets users message each other and run interactive WebXDC apps right inside their chat window. It supports modern XMPP features like Message Carbons (XEP-0280) for device syncing, Message Corrections (XEP-0308) for edits, Emoji Reactions (XEP-0444), and HTTP File Uploads (XEP-0363). This setup turns Falkon into a communication tool without even leaving the browser.
J Shiva Shankar added XMPP bookmark syncing to the Falkon browser. The basic setup is working, so whenever you add or update a bookmark, it successfully syncs across your devices. Deleting bookmarks still has a few bugs right now, but they have been documented. He plans to keep contributing after SoK to squash these bugs and get the feature completely polished.
Mankala Engine Sayandeep Dutta helped in redesigning the MankalaNextGen GUI with Kirigami and added designs fixing the Main UI and the Game with game boards and shells. He also added music with Qt to Mankala and made translations in Tamil and Hindi. Made assets for the game variants using Krita in their traditional designs and motifs. Started with the review process of MankalaNextGen with the CI build.
Pavan Kumar enhanced MankalaEngine by adding an opening book and investigated performance of multithreaded alpha-beta search using OpenMP, Pthreads and Taskflow. In addition, he enhanced MankalaNextGen by creating visual assets for game boards and seeds and also created logos for MankalaEngine and MankalaNextGen.
...