Skip to main content

Nico's blog

Using the QML Language Server for KDE Development

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 things not working as expected.

Slimming down KNotifications

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 number of dependencies. As of KNotifications 5.110 it depends on the following other KDE Frameworks:

Plasma Sprint 2023

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 notifications. This includes internal simplifications in KNotifications, API design questions, a proposed V2 for the notification portal API, and a new UI for per-event configuration in the notification settings module.

Month three as KDE Software Platform Engineer

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 currently handled by the KGlobalAccel framework.

Month two as KDE Software Platform Engineer

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 hacking on source code, but that is by no means the only thing I do.

Building Plasma against Qt6

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 features this raises the obvious question: How do I build Plasma 6 to hack on it?

How platform integration in Qt/KDE apps works

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. The other one is cultural in nature, where there’s opposing views about who gets to decide how an application should look and feel like on a given platform.

A month as KDE Software Platform Engineer

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 taking care of foundational libraries such as Qt and KDE Frameworks, but it can be really anything that helps people do awesome things.

Generating Dependency Data for kdesrc-build

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 a long time this information has been available in a set of files in repo-metadata.

KDE Eco Sprint 2022

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 we set up a measurement lab for the KDE Eco initiative.

© Nicolas Fella, 2024 MastodonNicolas Fella
Powered by Hugo, theme Anubis.