I just returned from this year’s KDE Akademy in Barcelona. After two years of only virtual sprints it has been great to finally meet up with many fellow KDE friends, most of which I haven’t seen since 2019, and also get to know some of the faces of people that have joined in-between.
Whenever I’m using the public WiFi somewhere, I feel like there should be a hint in the network Plasmoid about logging into the captive portal. There is a persistent notification when connecting but once you close it, you can’t get it back. For implementing this, I wanted to use the NetworkConnectivity enum from our networkmanager-qt Framework. In the early days of QtQuick, however, we typically created a wrapper class for exposing enums to QML, which meant having to sync up two separate implementations.
Qt’s tooling has evolved a lot since and nowadays it’s possible to register namespaces, too. To do so, you need to add the Q_NAMESPACE macro and annotate the enums using Q_ENUM_NS. In the networkmanager-qt case, there was a catch, though: the namespace’s meta object had to be exported since plasma-nm is a separate project. That’s what the Q_NAMESPACE_EXPORT macro is for: once added, I could just register the enum to the QML engine and use it directly from the Plasmoid UI.
When attending Akademy, you get a badge with your name on it, so that building security doesn’t kick you out. You can fold it open like a leaflet and quickly look up the event schedule including important organizer contact information. This year, there was also a QR code for connecting to the venue’s WiFi network. While our QRCA application can set up a connection just fine, it would be much more convenient to have a scanner in the network Plasmoid itself.
Thanks to Volker’s work on KDE Itinerary, which deals a lot with ticket barcodes, there’s now a reusable scanner component in our Prison framework that you pretty much just plug into a Camera source from QtMultimedia to start detecting things. You might have spotted the QR code button in the screenshot above but I still need to iron out a few quirks before I’ll submit a merge request to add it.
Saturday and Sunday were packed with talks, and my personal highlights were David’s talk “Full Steam Ahead” about Valve’s Steam Deck (which runs KDE Plasma!) and Volker’s talk on Push Notifications in Plasma where he let the audience spam him live during his presentation – that was quite a bold move. Harald also did an interesting session on a new tool KDE is evaluating for automated crash reporting, called Sentry.
Monday traditionally started with the KDE e.V. General Assembly where, among other things, two new board members were elected. After lunch there was a two hour workshop on KDE Frameworks 6. Sadly, the microphone setup we had in the meeting rooms wasn’t really up to the challenge of having dozens of people scattered across the room, and thus we had a hard time incorporating remote attendees into the discussion, including Virtual D4™, whom we already got to know from the first KDE Frameworks 6 sprint three years ago. Nevertheless, we decided on a timeline when to branch off KDE Frameworks 6, with a feature freeze on KF5 at the end of December this year and Plasma 5.27 likely being the final feature release in the Plasma 5 series. Check out our meeting minutes for more details on that.
Qt 6 and Fameworks 6 was a big topic at this Akademy for me, too, and I spent quite some time porting stuff away from deprecated API and adding Qt 6 CI afterwards. Nico’s iskdeusingqt6.org website gives you an up-to-date view on how our porting is progressing. I started by porting the most important KDE application, Kolourpaint, to Qt 6. I also ensured that we can still have Akademy group photos in the future by making sure KImageMapEditor worked well with it. I then also had a look at Ark, Dolphin-Plugins, and Print-Manager. Most parts of Plasma were still blocked by KWin not building against Qt 6 but there has been great progress on fixing that, and I believe the last remaining changes should be merged any day now.
Tuesday was packed with BoFs: it started off at 9 with a session on KDE’s Yocto layers, which you should definitely check out if you’re building an embedded device. On the subject of embedded devices, I then hosted a discussion around using KWin in such an environment. In the afternoon our newly crowned Dolphin maintainer held a meeting on the biggest areas of improvement needed to KDE’s file manager. Wednesday we all went on a bus trip to the Montserrat Abbey an hour Northwest of Barcelona, took the funicular up the mountain, and hiked up the rest to one of its peaks. Overall it was a good conference and I can’t wait to see all of you again next year in Thessaloniki!