Akademy is a special event for most of KDE people, it is opportunity for KDE developers, designers, users etc to meet and greet each other face-to-face. I have been attending most Akademies since year 2014. So of-course this year also I attended Akademy 2025 in Berlin. Last time I was in Berlin was right before pandemic happened, attending KDE Plasma Mobile Sprint in KDAB offices. It’s always lovely to visit this beautiful city!
Naïvely, I ran freebsd-update -r 15.0-STABLE install in my regular FreeBSD desktop. That was a mistake.
In principlefreebsd-update is the way to update the installed system. In principle it works really smoothly, from binary release to binary release:
it has a good manpage which tells you you can go from release to release. My FreeBSD laptop
(which also runs Fedora 42 as more of a daily-driver OS)
was running 14.3, so:
freebsd-update -r 15.0-RELEASE upgradeFetch all the things.
freebsd-update -r 15.0-RELEASE installInstall the new stuff.
rebootSmooth sailing.
That is the naive and optimistic thing to do.
If you spotted “make sure you read the announcement and release notes”
in the manpage, good for you.
After the reboot, I was dropped into a shell where nearly every command
I typed in resulted in
ld-elf.so.1: Shared object "libsys.so.7" not found, required by "libc.so.7"
Good Bug Reports Help
Fortunately, Graham Perrin had already reported this with basically-the-same steps to get into trouble.
And based on that Matthew and Colin made a fix so that
other people could first update their packages
(e.g. pkg update on the system before using freebsd-update)
to get the fixes in to the package-manager.
Good Workarounds, Also
In the same PR (Problem Report), Craig describes a workaround which almost worked for me.
Because it’s a laptop, I needed a few extra steps.
As an aside, /rescue is a directory where statically-linked rescue binaries live, which don’t suffer from shared-library misery.
/rescue/kldload if_ureLoad the kernel driver for the USB-ethernet port.
/rescue/dhclient ue0DHCP to get some network.
I have root-on-ZFS, and in single-user mode this comes up read-only,
so switch read-only off. This is different from other (e.g. UFS, ext4)
filesystems where mount -o rw,remount would be the thing to do:
/rescue/mountTo check what the name is of the ZFS mounted on /
/rescue/zfs set readonly=off zroot/ROOT/defaultMake it read-write.
Edit 2025-12-17: Fixed typo’s in the path of the commands
After that, basically Craig’s steps:
cd /tmp
/rescue/fetch https://download.freebsd.org/releases/amd64/15.0-BETA2/base.txzFetch the installation tarball.
cd /
/rescue/tar xzf /tmp/base.txz lib/libsys.so.7Extract the missing library.
freebsd-update installThis one is the “normal” dynamically-linked one, which works now the missing library is there.
Post-Upgrade Mucking About
Since there wasn’t anything especially configured or complicated
on this machine, I reinstalled the package-manager with a hammer
and then upgraded all the packages:
pkg-static install pkgReinstall with a known-good tool.
pkg updateFetch all the things.
pkg upgradeInstall all the things.
Somehow I’ve also gotten myself stuck in a “graphics driver causes kernel panic”,
state. Which kind of limits the graphics side of things this week. Amusingly AMD GPU stability is listed as a release feature, but #391 and #393 issues tell a slightly different story. I’m glad of bz@’s proposed fix, although I’ll need to rebuild the kernel to try it (which literally means make buildkernel installkernel on FreeBSD, it’s that simple).
After months of being completely consumed by my bachelor thesis and then giving myself some much needed rest, I finally have the time and headspace to sit down and write this post. And honestly, I have been waiting to write about this because Akademy 2025 was special.
This was my first in person Akademy after three years of attending remotely. Every year I would watch talks through a screen, imagining the energy in the room and the hallway conversations I was missing. This time, since my thesis brought me to Europe to work at CERN, I finally had the chance to join everyone in Berlin. KDE made it possible for me to attend in person, and I was also scheduled to give a talk on my Google Summer of Code project, KEcolab, which I currently maintain. So you can imagine how excited I was for this entire week. People say Akademy feels more like a KDE festival than a conference, and I was about to find out why.
I packed my bags in Switzerland and left for Berlin.
Arrival and Welcome Dinner
I reached Berlin on the fifth and went straight to the welcome dinner near Tiergarten. The restaurant had a relaxed vibe, and within minutes I was meeting people I had only ever known through Matrix usernames. Suddenly the names on my screen had real voices and real faces. We talked about everything from new KDE developments and the Banana release to personal side projects and long contribution journeys.
I finally met the KDE Eco team and the people working on the Endof10 campaign which is going amazingly well. We chatted over drinks, laughed a lot, and I might have invited half the table to visit CERN if they ever pass through Switzerland. Dinner was great. I had a pasta salad whose German name I still cannot pronounce, along with some very nice KDE drinks.
I returned late at night and realised that my slides were still not ready. My talk was scheduled for early morning on day one, so I stayed up finishing everything and managed only a few hours of sleep before the big day.
Day One
Day one opened with a keynote by Alexander Rosenthal on Open by Design. It set a very thoughtful tone for the conference. Right after that, I gave my talk titled KEcoLab: KDE’s Automation Tool for Energy Consumption Measurements. You can watch it here: https://youtu.be/ybduSygg2Ns?si=tZlXN7XuGcfyux-Q
The audience asked some great questions about expanding energy measurements to more applications and tools and how the process of measurement works behind the scenes.
Presenting KEcoLab at Akademy 2025
My talk overlapped with the Plasma talk, so I unfortunately could not attend that one. I spent the rest of the day listening to some very inspiring sessions. The KDE annual recap was a highlight, showing how far we have come as a community. It covered improvements across many applications, developments in Kirigami and updates to the new language bindings for Rust and Python. There was also a small peek into what is coming next such as improvements to drawing tablet support and the Plasma keyboard.
If you are interested in contributing to KDE, trust me when I say there are endless ways to do so even if you are not a technical person. You can explore opportunities here: https://community.kde.org/Get_Involved
Day Two
Day Two was packed with talks that focused on being thoughtful developers and maintainers. The keynote by Paloma Oliveira, titled The Politics of the Pull Request, stood out to me. It explored open source from angles we often overlook and gave me a lot to think about.
Paloma Oliveira’s keynote on “The Politics of the Pull Request” - exploring the social and political dimensions of open source collaboration
I also enjoyed talks related to Wayland and Plasma Mobile, and in between sessions I helped volunteer at the welcome desk. At the end of the day, we all gathered at C Base for the social event. Great pizza, great people, great atmosphere.
Day Three
Day Three was dedicated to BoFs. I attended the KDE Goals BoF and then started preparing for the KEcolab BoF because we had to quickly fix a few last minute issues in the lab setup.
Our session was right after the Okular BoF, which turned out to be perfect timing. The Okular team gave us really helpful input since KEcolab and Okular are working on an ongoing integration. We talked about the possibility of running individual energy tests on different components and many other ideas. You can follow the issues we discussed here: https://invent.kde.org/sdk/kecolab/-/issues
Day Four
Day Four had more BoFs. I am sad I missed the You Can Dance BoF because it sounded like everyone had a lot of fun. I joined the KDE Out of Experience BoF and the KDE Flatpak BoF instead, both of which were genuinely interesting.
Day Five
Akademy day trip. This was incredibly fun. We were split into groups and had to complete different tasks around Berlin. We even had a bear themed challenge which led to some hilarious photos. We placed KDE stickers on poles, shared selfies and enjoyed the entire city.
Exploring Berlin with the KDE community - sticker missions, bear challenges, and unforgettable moments
Later we visited the Computer Museum which was heaven for anyone who loves old hardware. They had everything from retro consoles to the legendary 3dfx Voodoo chips. I spent way too long inside the museum and ended up missing the group that went to the dinner spot afterward.
Classic Macs - The originals that started it all
Day Six
The last official day included the Linux InstallFest. A few new contributors came in to install Fedora KDE on their laptops and it was a relaxing final day. People were packing, saying their goodbyes and heading home. I stayed for the after drinks event and spent the evening talking to more people before ending the day with bittersweet farewells.
But Akademy was not over for me yet.
Day Seven
I stayed an extra day to work on the KEcoLab lab with Joseph and Volker in KDAB, Berlin. Huge thanks to both of them. We switched the lab from KDE Neon to Fedora and set up Wayland. We are now testing ydotool so KEcoLab will run smoothly on Wayland as well. We did ran into few issues with the VNC but it was still productive, fun and a perfect ending to the week.
After lunch I said my final goodbye to Berlin and headed to the airport.
Final Thoughts
Akademy was one of the best conference experiences I have ever had. It was a week full of meeting incredible people, listening to inspiring talks, sharing ideas, social beers and feeling truly part of KDE.
KDE is one of the most welcoming open source communities and I am grateful to every single person who made my time there so special.
Thank you to KDE eV for sponsoring my attendance. Thank you to everyone I met for the warm conversations and kindness. I will not list names because I would definitely miss someone but you all made this Akademy unforgettable.
A special thanks to my KEcoLab team (Joseph, Volker, Kieryn (for the constant help throughout the event, Aakarsh and all past contributors). Also a big thank you to the KDE Eco Team, the EndOf10 team, KDE Promo and the entire KDE family. And of course thanks to the volunteers and organizers who made Akademy perfect from start to finish.
The attentive reader will note that yes, Akademy happened in September already. Not the most prolific blogger. Not the most prolific contributor either. But I had already drafted much of this post two months ago, so let's get it out the door. I'll cut all the paragraphs about fun social outings and focus on recapping stuff related to our Input Goal.
A special thank-you to Farid, of Kdenlive and KDE Goals coordination fame, who convinced me to take the trek when I thought perhaps I shouldn't cross the Atlantic twice in a year. I'm glad I went, tons of great sessions and conversations. Powered by your donations, KDE e.V. supported my travel costs and made it possible for me to coordinate with many KDE people in person. Thank you. Yes, you! Anyway.
Talking input
I met my fellow Input Goal co-initiator Gernot (Duha on Matrix) in person for the first time. Together, and alongside reports on the other KDE goals, we delivered our presentation summarizing one year of input improvements. The KDE community made some excellent progress since the goal was chosen, thanks to everyone who contributed towards it! At the same time, there is more work to do and we'd love to see further contributions. Watch the talk for more details.
Our third Input Goal champion, Joshua Goins, had so much to report on improvements for drawing tablet users that he held an entire presentation on that particular topic.
One particular highlight for me was running into Dorota. She has been pushing for improvements to Wayland's input method protocols and had joined our input handling community on Matrix over the past year. Listening to Dorota's cross-desktop experience and plans was super interesting, and I was happy to see her coordinate with KWin maintainers over the course of Akademy. In the time since, some of Dorota's work was included in the latest upstream release of Wayland Protocols as experimental addition. Hopefully this will be further refined and standardized over time.
Andy Betts sat down with me to discuss the UI designs for touchpad gesture customization, following earlier back-and-forth with Natalie and Nate over the summer. Xaver Hugl provided some great feedback at Akademy about my ongoing patch series to implement stroke gesture support in KWin. He also proposed a change that will help with integrating config file support for gesture customization into KWin. This is all still in the works - full disclosure, I've been having somewhat of a hard time recently for unrelated reasons. It now has path simplification (for performance reasons) plus a nice stroke drawing visualization, but still lacking tests and such. Christmas time seems as good a time as any to pick up some slack and push this forward.
In more exciting news, KDE's new on-screen keyboard has seen a significant amount of work in the last few months. Aleix Pol's initial prototype for Plasma Keyboard was supercharged by Devin Lin, who also made it to Akademy but had to take off early. We decided to release Plasma Keyboard independently first, then integrating it into regular Plasma releases in 2026. This 0.1 preview release is now available, you can check if your distribution already ships it, or you can grab the nightly Plasma Keyboard Flatpak to test its latest state. Yes, even input methods will run just fine as Flatpaks.
Meanwhile, somewhere far away across the ocean, a remote partipant was going full steam ahead on another important piece in the input handling puzzle.
GSoC project: Game controller support in KWin
For this year's Google Summer of Code, Yelsin Sepulveda was accepted to improve game controller support in KWin with mentorship by Xaver Hugl and myself. After a strong start, Yelsin was forced to delay the second part of his project due to personal circumstance and Google did not agree to a deadline extension. However! With an excellent work ethic, Yelsin still continued to work on the project and brought it to completion regardless of Google's official approval. The result is an opt-in KWin plugin that's close to getting merged, and will:
Make KWin aware of game controllers in the first place,
Prevent system sleep on controller activity,
Emulate mouse and keyboard input when no other game (or app) uses the controller,
Deal with the Steam Controller's idiosyncratic "Lizard Mode".
Provide the foundation for future game controller customization in Plasma.
From the KDE side, we consider this GSoC project a resounding success. If you missed Yelsin's own posts on Planet KDE, his blog posts from mid September and early October cover a lot more detail.
Other exciting developments
Some presentations and conversations that I found particularly compelling, not focused on input.
Thanks to Bhushan Shah, Plasma now knows what made your system wake up from system sleep. Building on this, power management primarily for Plasma Mobile but also Plasma Desktop can improve even further, including the potential for scheduled background tasks and going right back to sleep.
Linux distros have been kind to KDE this year. Neal Gompa presented the Fedora KDE SIG's long-term efforts to ship a premium Plasma experience. Terrific work from these folks, this is now my current favorite distro suggestion for friends & family. Furthermore, Harald Sitter presented the Alpha release of KDE Linux, now happily chugging along on its way to becoming a Beta. This is what I hope to install on my parents' laptops one day. I took a banana from Harald in return for promising that I'll test it out myself. Didn't say when; nonetheless, the promise stands.
I was not expecting to find myself talking to GNOME contributors at Akademy, but Lorenz Wildberg from the GNOME Foundation's Board of Directors was a super interesting conversation partner. Long story short, both GNOME and KDE know about their respective shortcomings and are trying to learn from each other's experiences. Sometimes by adopting things that work, sometimes by taking a different route, sometimes just by focusing on our existing strengths and building on those. Either way, listening and reflecting will beat low-effort snark anytime. SDK evolution, contributor onboarding, governance, fun times.
Looking back and ahead
Yes, I lost a few weeks from getting a back injury soon after Akademy. The good news is that it's pretty much all healed at this point. But my contribution habits have remained out of whack since. I'm hoping to get this back on track asap, because I also really want to help KDE to reach the inflection point. Gamers, governments and many more people have something to gain if the Linux desktop breaks out of its niche into the mainstream. The tech industry has been disappointing to me on so many fronts. This here, though, is something I'm excited to see happening.
Beside that Plasma will show some small popup to ask if you want to sponsor us with a donation.
It looks like this year that is already going well, below the state as of today, 7th December 2025.
I want to say to all that already donated: Thanks a lot!
I will not personally get any money from that, but I will benefit largely from the stuff KDE e.V. funds with it, like the infrastructure, some people working on our stuff and the very important sprints and conferences!
Keep the money flowing, money is not everything, but if you can not contribute in another way and you have some spare money, please consider a donation.
I wish you all a good end of the year :)
Discussion
Feel free to join the discussion at the Linux reddit.
Luna Lovecraft fixed a crash that occurred when the window was too small to fit a selection actions panel (graphics/krita MR #2548) and also fixed the selection panel blinking when making a new selection (graphics/krita MR #2551).
Wolthera van Hövell split the character and paragraph properties, making it more intuitive to apply text transformations to just one character or to a whole paragraph (graphics/krita MR #2470).
Joshua Goins fixed a crash in the Krita plugin manager when using Python 3.14 (graphics/krita MR #2451).
Tobias Burnus made his first contribution to KDE and fixed an issue where the list of audio input sources contained duplicated entries (25.12.0 - utilities/krecorder MR #62).
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.
KStars v3.8.0 is released on 2025.12.03 for Windows & Linux. MacOS release is expected in one week due to build issue on KDE CI infrastructure.
For Linux users, it's highly recommended to use the official KStars Flatpak hosted at Flathub. You can install the stable flatpak or try out new features by downloading the KStars Nightly Flatpak for x86_64 and arm64 architectures.
Live Stacker: LRGB Stacking
John Evans implemented generation of RGB and LRGB images from individual mono subframes. Watch R, G, B and optionally L directories and combine the individual stacks into RGB or LRGB images.
Add directories for R, G, B and optionally L subs. These are monitored and a single color image is displayed.
RGB images are combined with a Linear Fit type algorithm. LRGB images are combined with a LRGB Combination type algorithm. SNR algorithm has been rewritten. Appears to work better but is more resource intensive.
Live Stacker: ImageMM Stacking Method
John Evans added an implementation of the ImageMM stacking method. This implementation strikes a balance between speed (it needs to be a Live Stacker) and fidelity.
To use: select ImageMM as the stacking method and play with the available controls. This method is considerably more resource intensive than "regular" stacking because it uses an iterative approach.
Live Stacker: Live Stacker Monitor
John Evans implemented the Live Stacker monitor. Live Stacking Monitor window is a popup from Live Stacker that shows a table of subs that match the chosen directory in Live Stacker.
The purpose is to allow analysis of Live Stacker, for example to allow investigation of bottlenecks in the stacking process.
When a sub is added to the watched directory, the sub is added to the Monitor's table. As the sub is processed by each step of the process information is updated in the table:
Waiting to load. The sub is in the queue to be processed but Live Stacker is busy with other subs.
Loading. The sub is loaded into memory.
Plate solving. The sub is undergoing plate solving (if appropriate).
Waiting to stack. The sub is waiting to be stacked (e.g. currently there are insufficient subs loaded to start a stack).
Calibration. Dark / Flat calibration.
Alignment.
Stacking.
Table columns and sort order are configurable. Changing cells can be highlighted (or not)
Task Queue system
Observatory startup and shutdown steps are now replaced by the new highly configurable Task Queue system. The Task Queue System is a modern, flexible automation framework that replaces traditional startup and shutdown scripts with a template-based, configurable task execution system. It provides a visual interface for building sequences of automated operations that can control your observatory equipment through INDI. It is accessible from Ekos Scheduler.
Why use it? The Task Queue system offers several advantages over traditional scripting:
Visual Management: Build and monitor task sequences through an intuitive graphical interface
Reusability: Use pre-built templates for common operations without writing code
Error Handling: Built-in retry logic and configurable failure responses
Device Compatibility: Automatic matching of templates to available devices
Progress Monitoring: Real-time status updates and detailed execution logs
Collections: Pre-defined task sets for startup, shutdown, and other common scenarios
Flexibility: Combine templates or create custom variations without programming
Safety Monitor
KStars scheduler now fully supports INDI Safety Monitor driver released part of INDI v2.1.7. A standalone driver may be used (independent of the equipment profile) that is running on a different INDI server to provide 24/7 safety monitor updates to the scheduler. No observatory operations shall take place unless it is deemed safe by the safety monitor.
The INDI Safety Monitor can listen to any number of sources including weather stations, UPS (uninterruptible power supply) monitors, and any auxiliary device that support the INDI's standard SAFETY_STATUS property.
Push-To Assistant
Wolfgang Reissenberger added an incredibly useful tool for users with manual mounts: Push-To Assistant. Just attached a camera to your dobsonian and use this tool to center the target in the eyepiece. This tool assumes that both the camera center and eyepiece center are already aligned.
The new push-to assistant is intended as plate solving support for mechanical mounts in combination with a digital camera on a finder scope.
Setup: Create an optical train with the Telescope Simulator as mount and configure your combination of finder scope and digital camera.
Usage
Start Ekos
open the Push-to Assistant located in the Tools menu
move your scope as good as possible to the target you want to find
select the target from the catalog or enter its coordinates manually and press "Select target"
press "Solve position" to determine the position your scope is currently pointing at
as soon as the position has been solved, the assistant displays hints in which direction you should move your mount to be closer to the target
correct your mount position and press "Solve position" again
if you want to automatically repeat plate solving, configure the delay and press the "Repeat" button.
Performance improvement in Krita, Trust and Safety in NeoChat and files actions 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.
We are still doing our fundraisers and in the past 48 hours, thanks to the crazy support from our users we managed to raise more than €90,000. Keep it going and if you can afford it, donate at kde.org/donate! Any amount helps.
Getting back to all that's new in the KDE App scene, let's dig in!
Travel Applications
Volker Krause published a blog post about the current progress of KDE Itinerary in October and November. This includes an improved journey search page, fine-grained deletion control of tickets, altitude information in the live status view, and more! You can read all of that on his blog.
Matan Ziv-Av added two keyboard actions in Konsole for focusing on the next/previous view in split view mode (26.04.0 - link).
Sune Vuorela added an option to enable or disable whether Konsole listens to zmodem terminal codes, which might happen accidentally when outputting a binary file. (26.04.0 - link)
Oula V improved the feed group feature of Alligator. Now when creating a feed group, you will get an error if another one exists with the same name. They also cleaned up the list of feed groups (26.04.0 - link).
Oula also fixed some crashes in Alligator after editing a feed (25.12.0 - link) and Stephan Seitz fixed some conformance issues with the OPML export feature (25.12.0 - link).
Salvo Tomaselli reordered the buttons in the menu, and now opening the current article in an external browser is the first button (25.12.0 - link).
Stefano Crocco added a configuration page to configure Speed Dials in Konqueror. These speed dials are buttons that allow you to quickly open pre-configured links (26.04.0 - link).
Chris Rizzitello released Deskflow 1.25.0! The main changes are support for a symbolic tray icon which is recolored correctly even when using Plasma's Twilight theme; support for changing the application's language without restarting it; and initial support for the wl-clipboard Wayland protocol.
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.
In a recent series of blog posts, we have demonstrated that Python and Qt fit together very well. Due to its accessibility, ease-of-use and third-party ecosystem, it is really straightforward to prototype and productize applications. Still, Python has one significant disadvantage: It is not necessarily the most performant programming language.