Smoking is bad for you. Testing software is good for you though. A while ago I wrote about detecting memory leaks in KDE CI . That works beautifully, and has already lead to real-world improvements, but it assumes that CI actually runs some code, usually a unit test. While some KDE projects have fairly good test coverage, others do not so much. Particularly UI code isn’t very easy to…
If you have been on invent.kde.org lately you might have seen some merge requests about “Install Qt metatypes” and wondered what that’s all about. When defining QML types in C++ the buildsytem tries to capture as much information about the type as possible, so that tools like qmllint, qmlls, and the QML compiler know about what API the type provides. If that information cannot be…
Leaking memory is impolite. It’s messy, it can suggest logic bugs, and thanks to AI grifters RAM is expensive. Unfortunately C++ makes it rather easy to leak memory. Fortunately we have tools to find such leaks. One such tool is Leak Sanitizer (LSAN) from the Address Sanitizer (ASAN) family. It’s using compiler-based instrumentation for the code to reports any leaks after the program…
For many years Plasma comes with its own system online accounts system, known as KAccounts. The idea is simple: In Systemsettings you log into a given online service once, and then several applications can use that login, instead of loggin in inside each application separately. The number of services available and applications making use of them changed a bit over recent years. As of right now the…
A few weeks ago Qt 6.8 was released, delivering many fixes and improvements for our software. Some of them were contributed by yours truly, and in this post I want to highlight some of them. They relate to graphics tablet/stylus input on Wayland. Before we go into the fixes let’s have a quick overview of the flow of tablet input events on Wayland: The genesis of input events is in the kernel…
This year’s Akademy was a special one for me in many ways. First of all, instead of me travelling to Akademy it took place in my hometown of Würzburg, Germany. While I did have a hand in organizing it, most of the credit for it goes to Tobias and David. I had a lot of fun introducing people to my area and the concept of drinking wine on a bridge. Qt Contributor Summit Right before Akademy…
In a previous post I talked about using the QML Language Server for KDE development. Since writing that post a few things happened, so it’s time for an update. I mentioned that when using Kate qmlls should work out of the box when opening a QML file. That’s mostly true, there is one problem though. Depending on your distribution the binary for qmlls has a different name. Sometimes…
Last week, like many other people, I was in Berlin for the Mega^WGoals sprint. Natually the three goals (Sustainability, Accessibility, and Automatability; the three abilities) attracted a diverse crowd of people that brought also other topics, so it turned into a proper megasprint. Being interested in all three goals made it a bit callenging to follow all relevant discussions unfortunately, but…
For a while Qt has been offering qmlls, a Language Server Protocol implementation for QML. This allows popular text editors like Kate (and some lesser known ones like Visual Studio Code) to work with QML code without having to write dedicated support for it. Naturally many people are eager to use it to hack on KDE code. When trying to do that you probably have encountered some frustration with…
KNotifications is KDE’s framework for creating popup notifications. It supports Linux, Windows, macOS, and Android, making it, to my knowledge, the most complete cross-platform library for this available in C++. This makes it natually interesting to use for non-KDE Qt application developers. However there is one aspect that makes it less attractive for third-party developers: It’s…
As you probably have seen from other people’s blog posts there was the 2023 Plasma Sprint last week. It was generously hosted by TUXEDO Computers in their offices in Augsburg, Germany. Many thanks to TUXEDO for that! Other people have already well summarized what happend there, so let’s have a look at what I have been doing: Together with Kai Uwe, Volker, and Ismael I looked at…
A month has passed since my last monthly post about my work as KDE Software Platform Engineer. What have I been up to since then? As usual not everything I did ended up as committed code. A lot of my work is reviewing other people’s code, discussing ideas, and generally being useful to the community. One area I’ve been focussing on is our infrastructure for global shortcuts. These are…
It’s been a month since my first post about my work as KDE Software Platform Engineer, so let’s have a look at what I have been doing since then. The scope of what falls under “Software Platform” work is arguably quite wide. I like to describe it as “Taking care of everything needed so that people can build and enjoy awesome software”. Of course that often means…
As you probably have heard by now the lastest development versions of Plasma and KDE Frameworks require Qt6. This transition has been in the works for a few years by now, but it was only somewhat recently that we took the plunge and started relying on Qt6 exclusively for Plasma. Plasma 5.27 is the last Plasma 5 release and continues in bugfix-only mode. For people who want to hack on Plasma…
There has been some recent discussions about how KDE applications (or Qt apps in general) should look and feel like outside of the Plasma desktop, particularly in a GNOME environment. During this discussion I noticed two major disconnects between the involved parties. One of them is technical in nature, where (understandably) not everyone involved has deep knowledge about how Qt and KDE apps work.…
Precisely one month ago I joined KDE e.V., the non-profit organization behind KDE, as Software Platform Engineer. This is part of three positions in KDE’s “Make a living” initiative . The exact scope of this position is a bit vague. I like to describe it as “Taking care of everything needed so that people can build and enjoy awesome software”. A large part of that is…
As you may know KDE consists of many different subprojects, where some projects depend on other projects. Most KDE projects depend on some KDE Frameworks, but other dependencies are also possible, e.g. plasma-desktop depends on plasma-workspace. To be able to automate building projects (for the CI system or tools like kdesrc-build) you need a machine-readable source of dependency information. For…
Last weekend, on May 21st, some people (including me) met in Berlin for what I believe is the first in-person KDE sprint since you-know-what happened (there was LAS, but that’s not technically a KDE sprint). We met in KDAB ’s office, which was incidentally also the location of the last in-person sprint before unamed things happened. Photo by Joseph P. De Veaugh-Geiss. During the sprint…
In my last post I talked about why knowing the desktop file for a window is important for the task manager. I promised to talk about some cool stuff we did there in Plasma 5.24, so here we are. While hacking on the task manager code I noticed that we show a “Open new instance” action in the context menu of every task manager entry, even for those where it doesn’t make sense. A…
In my last post I talked about what application developers can do to fix their applications not showing up correctly in Plasma’s task manager. I motivated this by the fact that we need this on Wayland to display the app’s icon. However icons are not the only reason why correctly mapping windows to desktop files is important. It brings substantial benefits even on X11: Application…
A common papercut in a Wayland session is entries in the task manager showing a generic Wayland icon instead of the proper application icon. Here’s a KWallet window having a generic icon in the task manager (on the right): This is due to the shell not being able to properly map a window to an application. This breaks more things than just icons, but those are often the first thing that is…
Last week I decided to take KDE Itinerary for a test tour. Between the train rides there was also time for some KDE stuff. FOSDEM After writing an exam on Friday afternoon I took a train to Frankfurt. I did so not to enjoy the beautiful scenery of the area around Frankfurt central station at night but to be able to catch an early train towards Bruxelles for my first time at FOSDEM. It has been a…
Last week I took a train to Berlin for the KDE Frameworks 6 kickoff sprint. A lot has been said about it by my fellow attendees already, so I won’t go into detail much. Work on Qt 6 has begun and with Qt 6 a version 6 of the KDE Frameworks is due. This will gives us the opportunity to clean up and redesign some of our API. Main goal for the sprint was to discuss the major design principles…
As most of you know KDE Connect has recently been removed from Google Play due to a policy violation with regard to our SMS and telephony features. While the public outcry helped to get it back in with all features remaining this is just yet another example of how new Android policies make it harder for us to maintain the level of quality and features you expect from KDE Connect. Android Oreo…
My last post shows how to create a stub Python/Kirigami app that doesn’t do anything. Time to change that! In this post we’re filling the screen with some controls. Kirigami Pages Kirigami apps are typically organized in Pages. Those are the different ‘Screens’ of an app. If you come from the Android world you can think of them as the view part of activities. In our case we…
KDE is happy to announce that we will be part of Google Summer of Code 2019 . GSoC is a program where students recieve stipends to work on free software for 3 months. Getting paid for open source work, that’s the dream, right? KDE Connect is participating with 3 interesting projects that also involve other areas of KDE 1. Improving KDE Connect on Windows KDE Connect builds and runs on…
From February 4th until February 9th I attended a Plasma Mobile sprint in Berlin, Germany. I met a lot of people that share the vision of an open, privacy-friendly mobile platform. However, we all agree that such a platform can only succeed if there are enough people sharing that vision creating suitable apps for it. There already is a nice amount of mobile-friendly Linux apps , many of them…
Today we released version 1.10 of the KDE Connect Android app. Therefore it’s time again to share what we’ve been working on. Targeting Android Oreo As of this month app updates uploaded to Google Play need to target Android 8 . This has several implications. Targeting Oreo comes with an updated Support Library, which forces us to drop support for Android 4.0 and below. According to…
Since a few months KDE Connect has a Telegram group to discuss development. Since the over 100 people joined. I did not expect such an interest in it. Few people asked to have this group bridged to an IRC channel since they prefer IRC over Telegram. I’m happy to announce that we finally made this happen. Let’s celebrate the birth of #kdeconnect on Freenode. You can also access it from…
It’s time for another feature update for KDE Connect! You can now run commands on connected devices from the Plasmoid. The Dolphin context menu entry for sending files to a connected device has been dropped in favour of a Purpose plugin , which groups nicely with other Share features and supports more apps such as Okular and Spectacle. Albert Vaka added a presentation mode to Android which…
Hi, For once this is not a post about KDE Connect (at least not directly). Besides KDE Connect I also work on several other KDE projects, one of them being the awesome Purpose framework created by Aleix Pol. After Nate highlighted my latest work on Purpose (the new share menu in Dolphin) in his blog post I received quite some feedback. I’m glad that many people like the idea, but I also…
The digital world has changed over the last 10 years. The usage of mobile devices skyrocketed whereas the desktop market is stagnating. The trend is also going towards smaller and convertible devices. The mobile market is controlled by two major corporations. One of them is religiously cutting down your personal freedom and aiming towards a walled garden proprietary ecosystem, the other one is…
One of KDE’s Community goals for the next years is streamlined onboarding of new contributors. It’s very important that new people regularly join the community for various reasons. First of all, there will always be something to do and the more contributors the merrier! But there are also people becoming very inactive or leaving the community and these people need to be replaced.…
Definitely one of the best use cases of KDE Connect is this: Watching a movie while laying in bed or on the couch and controlling your unreachable computer from your phone without needing to stand up. Thanks to our new media control notification you can pause and skip without even unlocking your phone. But what if the movie is too silent? If your media player is implementing the MPRIS2…
Since my first blog post we got an huge amount of feedback and it’s amazing to see that you are as excited about KDE Connect as we are. This way I want to say “Thank you” for all your kind words and tell you that this kind of positive feedback is what keeps us going. I would also like to share some tips and tricks about KDE Connect that you might not know yet, but first I would…
After I shared the link to the KDE Connect Development Telegram group almost 20 people joined within 24 hours. I certainly did not expect such a interest in KDE Connect. When I joined the project about a year ago the hardest part for me was setting up a proper development workflow, meaning configuring, building, installing and debugging the application and interacting with git and Phabricator. To…
As I said a couple of days ago we got a lot to announce for KDE Connect. This is the first of many posts where I show you what we were up to. It may not be as exciting as you hoped for because the really big features are not-quite-ready, so hang on :) First we squashed some bugs, including a pretty nasty crash in the NotificationsPlugin. In my first post about KDE Connect I told you about the…
Last weekend the core KDE Connect development team met for a sprint at the amazing Verse office in Barcelona. It was an amazing opportunity to get to know each other (most of us have never met before) and discuss the future of KDE Connect in an amazing and productive atmosphere. We squashed some bugs, implemented new features and laid the foundation for other ones. Some weeks ago we asked people…
Hey there! We haven’t blogged about KDE Connect in a long time, but that doesn’t mean that we’ve been lazy. Some new people have joined the project and together we have implemented some exciting features. Our last post was about version 1.0, but recently we released version 1.8 of the Android app and 1.2.1 of the desktop component some time ago, which we did not blog about yet.…