Welcome to a new issue of "This Week in KDE Apps"! Every week we cover as much as possible of what's happening in the world of KDE apps. This week we cover the two latest weeks as, due to the holidays, there wasn't a post last week.
General changes
The convergent context menu from NeoChat was made more generic and upstreamed to Kirigami Addons. It is now used by Tokodon and Merkuro with work underway to integrate it into more apps. (Carl Schwan and Joshua Goins, Kirigami Addons 1.7.0. Link)
And, don't worry, on desktop platforms, the context menu stays the same.
Help is very much welcome to port more applications to this new component. Here are some merge requests for inspiration:
Arianna allows users to use the wheel to turn pages. (Tomaz Canabrava, 25.04.0. Link), and once again correctly remembers the current reading progress of books. (Ryan Zeigler, 25.04.0. Link)
When using languages which are typically written right-to-left, like Arabic or Hebrew, Dolphin's layout is mirrored to also go from right to left. Type dolphin --reverse in Konsole to try it out! It is an interesting experience. This week, Dolphin's details view mode finally received right-to-left support, which will show file icons on the right and folder names and details on the left. This change also includes some general improvements to resizing of columns in details view mode. (Felix Ernst, 25.04.0. Link 1, Link 2. Thanks to the European Commission and NLnet for funding this work.)
Dolphin's selection mode now also changes keyboard controls to allow easier selecting. Previously there was no reason for keyboard-only users to ever use selection mode because the controls were identical. Now, when you are selecting specific files among a list you will no longer have to fear that accidentally letting go of the Control key while moving will clear your selection! Simply go into selection mode instead, move focus with arrow keys, and press Enter to toggle the selection. (Felix Ernst, 25.04.0. Link)
Finally, Dolphin received a quick accessibility report as part of the NLNet funding, and, while some issues were found, the report noted that "overall the app is very accessible"!
You can now add paths to the PATH environment variable used by Kate, which is useful if you use LSP servers, formatters, or linters not present in your default PATH variable (Waqar Ahmed, 24.05.0. Link)
We fixed opening URLs ending with :x:y cursor information from remote URLs. (Christoph Cullmann, 24.12.1. Link), and added a file template plugin which allows you to generate files from existing templates (Kåre Särs, 25.04.0. Link)
Finally, Joshua posted a blog post on how to use Hugo with Kate on his blog.
It is now possible to manually enable and disable the network or the bluetooth backend for KDE Connect. (Rob Emery, 25.04.0. Link)
We also redesigned the welcome page of the Kirigami version of KDE Connect. (Carl Schwan, 25.04.0. Link)
On iOS, notifications for pairing a new device will be displayed in the app itself as a fallback if the app is not permitted to display notifications. (Ruixuan Tu. Link)
On Android, the application was made compatible with Android 15 (Mash Kyrielight. Link); more code was ported from Java to Kotlin (TPJ Schikhof. Link 1, link 2); we reworked the custom devices lists to show the connection status and display toast messages when trying to add a device that already exists (TPJ Schikhof. Link); and we fixed the icon colors when using a dark theme (Mash Kyrielight. Link).
Jean-Baptiste Mardelle, from the Kdenlive team, posted an update about the much-requested feature of a modern background removal tool. Good news, there are testing binaries available. For more details, consult his blog post.
Kai Uwe Broulik made avatars load asynchronously, which speeds up scrolling through the list of rooms and the timeline. (25.04.0. Link). A similar change was also done to Tokodon.
We fixed fetching some TV channels for the TV Spielfilm backend (Plata Hill, 24.12.1. Link) and it's now possible to see what is hapening on your favorite TV channels for more than the current day. (Plata Hill, 25.04.0. Link)
Plata also made numerous behind the scene changes to Telly Skout.
Third Party Apps
Supersonik
Adam Pigg released the first tagged release of Supersonik, a Subsonic client written using Kirigami for SailfishOS and other mobile Linux operating systems.
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.
Uh. Has it really been almost half a year already? Whoops.
Unfortunately even with this many months I didn't get quite as much done in KDE-land as I hoped, for two main reasons:
I've been bouncing back and forth between quite big tasks (for my current level of experience in the KDE stack), leading to a lot of time spent with few results. I've learned a lot, but there's not much to show for it yet.
A good amount of time was taken by preparations for the 2024 European Rocketry Challenge (EuRoC) in Portugal - this was my second time there with the TU Wien Space Team and while it was an absolute blast, prepping a student-build bi-liquid propelled rocket for launch is on the more time consuming side of things. Who'd have thought! Maybe I'll write a dedicated post for this some time in the future, we'll see.
Back to KDE though: It wasn't all just learning - my phone also broke! Well. Kind of. Probably a loose contact in the SIM reader leading to it dropping connection to my SIM card a bit more often than I'd like.
However this did push me to put said SIM into my old OnePlus 6T which just so happened to be running postmarketOS edge making me an official Linux Mobile daily-driver.
And I'm happy to report it mostly just worked. Sure, there's a few apps I'd like to have that aren't available on Linux Mobile (yet?), but what's there works and it's enough for me to use it.
Though there are certainly a number of more-than-a-bit-annoying bugs to be ironed out - so iron them out I will. For now my SIM card is back in my spotty Android phone until I fix a bug which sometimes duplicates incoming calls making them continue ringing while you've already picked up (less than ideal), but after that I think I'll stay on my 6T with Plasma Mobile for a longer while.
Now before I write another novel, let's get to the stuff I did actually finish in the last few months.
Merged Changes
Mobile Taskswitcher
Fixed an issue with the animation opening the taskswitcher from homescreen
Fixed the icon list during task scrub mode sometimes being off center
Reintroduced maximizing the selected window when not in docked mode. Technically it shouldn't be necessary since our KWin configuration should force windows to be fullscreen already, but some apps managed to break out of that (mostly GTK based apps), so back in it goes.
Disable blue border on touch gestures in mobile environment - it's nice as an indicator for mouse based gestures, but unnecessary here.
Add double tap on navbar task switcher button to switch between the 2 most recent apps.
Misc
Disabled session restore on mobile (at least until a bug with dialer launching ontop of login screen soft-locking the phone is fixed)
This is not a change by me, but I wanted to mention it because it's great and I mentioned in my last post that I tried (and failed) working on that before: Micah Stanley did a marvelous job at new mobile friendly notifications!
I've also done my first MR reviews which was exciting and a lot more work than I anticipated. At this point I want to thank all the people who have spent time on my MRs already!
Unfinished
I still haven't managed to get back to my touch corner gesture MR for KWin due to all the stuff that came in between like:
Fixing that the navigation gestures are still active while the navbar is enabled. Unfortunately this requires a change in how our setting system works and... CMake broke me here. I got pretty close to fixing this but had to leave it be for now for my own sanity's sake. I hope to get back to this soon since this is quite annoying.
Improving plasma-dialer's lockscreen behavior. Right now with session restore it restores above the initial login screen on mobile essentially soft-locking the phone if it happened to be running when the phone was shut down. A similar thing happens when a call is received during the lockscreen - I'm currently figuring out how to best fix that.
Well, that's all from me now. Hopefully I manage to do the next post in a more timely manner, but we'll see for how long my current bigger ticket items will keep me occupied for
I hate asking but I am unemployable with this broken arm fiasco and 6 hours a day hospital runs for treatment. If you could spare anything it would be appreciated! https://gofund.me/573cc38e
After 37C3 this was the second time we had a
KDE assembly there, this time as part of the Bits & Bäume Habitat.
Besides putting us near to some of our friends and partners this made us much easier to see and find.
The new location meant we no longer had soldering irons and 3D printers at arms length, but instead a chemistry lab across the aisle,
but also more immediately useful things like a workshop area and some couches and tables for smaller meetings and discussions.
More people than last time came by, and had overwhelmingly positive feedback about KDE’s work.
Open Transport Community
Most of my time at 38C3 I spent (unsurprisingly) around public transport topics:
Jonah presented Transitous,
our free and open community-run public transport routing service. Great talk, fully packed
room with people standing in multiple rows in the back, and lots of discussion afterwards.
With Transitous existing now some formerly rather theoretical topics became much more relevant, such as synthesizing
GTFS-RT realtime information feeds in places where we lack official sources. This could potentially be done using data
collected for statistical analysis like bahnvorhersage.de or GPS vehicle position (e.g. as found in
position-only GTFS-RT feeds or obtained via crowd sourcing).
There’s ideas for a dedicated multi-day Europe-wide Open Transport conference floating around.
Somewhat related is the aspect of decoding ticket barcodes and extracting travel information from booking documents in any shape or form,
something KDE Itinerary makes heavy use of.
The talk What’s inside my train ticket?
provided a nice overview of some of the things we also have implemented and highlights many of the
absurdities encountered along the way. Lots of overlap and thus room for collaboration here, the author is already
in the Itinerary Matrix channel and just the exchange so far already allowed
for some progress towards decoding Trenitalia FCB ticket barcodes.
Discussed with the K-9/Thunderbird Android team how we could potentially solve the problem that you currently
can’t share the full unmodified email from a mail app to apps like Itinerary. There are ideas, we have yet to
see whether they hold up against Android’s limitations though.
And as usual, just chatting with the many attendees working on related projects and/or at public transport operators
always provides some new and interesting insights.
Despite the slightly unfortunate time slot we got several contacts afterwards to people working at or with German
alerting authorities, or having contacts that do. Any better understanding on how those organizations work and who to talk to
for getting the issues we presented addressed should help. Let’s see where this leads us.
Other things discussed:
The applicability of CAP to maritime use/maritime hazards.
Existing options are apparently not particularly accessible for hobbyists, cell broadcast has a limited reach out onto
the sea while satellite-based Internet has become fairly wide-spread on ships.
The use-case of ship or aircraft crews who regularly visit many different countries, national solutions don’t scale
sufficiently for that. So our work could also be interesting outside of the Google-free target audience we initially started with.
Setting up synthetic CAP feeds for infrastructure and software testing.
Adding an interface for alerting authorities to check whether their alerts were received and processed correctly,
as suggested by someone working at such an agency.
The OSM team pointed me to some useful tools for boundary geometry extraction I wasn’t
aware of yet (something that’s needed here for resolving geographic codes of affected area to actual geometry).
And just as I got back home an alert related to a burst 700mm water main line nicely demonstrated all the issues
with German alerts we had highlighted in our talk again.
Accessibility
While the above topics consumed most of my time, I also managed to attend two sessions related to accessibility.
In the context of KDE we usually think of accessibility of our software there, or more specifically the
AT-SPI interface for screen readers. That’s of course an important part, but it’s just one aspect to consider.
The usability of a video conferencing software for people who cannot hear was shown as one such example.
There’s even more beyond our software that is even less in focus usually, such as the accessibility of the
contribution process and or our events.
Another aspect is “real world” things whose accessibility can be impacted by our software. One example for this
is allowing to customize a routing profile to your needs. With the MOTIS v2 update
on Transitous things will improve there, but we are not exposing much of this in our client apps yet.
For emergency alerts this is similar, a cell broadcast warning makes so much noise that it’s hard to miss,
as long as you can actually hear. If you can’t, e.g. making your connected room lights flash might be more effective
to get your attention.
The nice thing of having free infrastructure to build upon is that such solutions become much easier to implement.
Distributions & Partners
We also had a few people approach us with distribution-related topics at the KDE assembly.
Examples:
Discussing update strategies, packaging and QA with Tuxedo.
Discussing integration issues with Plasma and QA approaches with Qubes OS.
Investigating startup performance issues on NixOS (caused by their XDG search paths containing hundreds of entries it seems).
While we could probably help in most cases, we were lacking someone deeply involved in Plasma development here.
Funding
Sustainable funding of FOSS work also came up at a few occasions:
We attended a short meeting with the Sovereign Tech Agency, who
offer public funding for longer-term foundational/maintenance work rather than shorter prototype
projects (GNOME and OSM e.g. got significant funding from them). Quite interesting for KDE,
but currently out of money due to the collapse of the German government.
We discussed donation strategies with a couple of other FOSS projects, ie. when and how to best
ask our users for help.
Members of the K-9/Thunderbird mobile team showed and interesting approach of using
in-app purchases as a donation mechanism. That’s only viable on the proprietary Google and Apple
platforms and comes with a heavy fee, but it does provide a very low threshold to donate for users
on those platforms.
There’s unfortunately no way to catch up on the hallway track and self-organized sessions, but
recordings of most of the presentations are available on media.ccc.de
(many also with translations into other languages).
Conclusion
Overall these were four days with a refreshing redefiniton of “normality” again, so that neither stumbling over a
self-driving couch table nor a 24/7 live DJ dance club in one of the rest rooms stuck out as
particularly unusual. You could spend a lot of time on discovering and exploring the various projects,
(art) installations, easter eggs and rabbit holes on display there, all while there’s criminal cases
and national scandals you probably know from the evening news being discussed on the main stage,
by the people who uncovered those.
And that is just the backdrop for a giant networking and collaboration meeting with people
working on FOSS/Open Data/Open Hardware projects in any size or form, public administration and infrastructure,
science and research, education/universities, funding organizations, politics and lobbying, civil/social initiatives, etc.
Plasma developers are returning from their holidays and have provided us all with loads of goodies! Yep, this is a big one, especially in terms of the juicy user-facing changes in the areas of accessibility and support for digital artists. There's lots more as well too!
Notable New Features
It's now (or, depending on how long your memory is, once again) possible to configure your touchpad to be automatically disabled while a mouse is plugged in. (Jakob Petsovits, 6.3.0. Link)
On System Settings' Graphics Tablet page, it's now possible to map an area of a drawing tablet's surface to the entire screen area; previously only the reverse was possible. (Joshua Goins, 6.3.0. Link)
On System Settings' Graphics Tablet page, it's now possible to customize the pressure range of a stylus to chop off the high and/or low parts, should this be desirable for your hardware or preferences. (Joshua Goins, 6.3.0. Link)
KRunner and KRunner-powered search fields can now convert between "rack units" and other units of length. (Lea McLean, Frameworks 6.10. Link)
Discover now highlights sandboxed apps whose permissions will change after being updated, so you can audit such changes for shady behavior. (Aleix Pol Gonzalez, 6.3.0. Link)
Notable UI Improvements
Overhauled the UI of System Settings' Graphics Tablet page to split it into multiple tabs, which greatly improves the organization. You can see it in the other screenshots of this blog post! (Joshua Goins, 6.3.0. Link)
On System Settings' Graphics Tablet page, a custom tablet calibration matrix is now expressed in a more standard way: now it appears as highlighted when changed while the "highlight changed settings" feature is in use, and it can also be saved and reset like any other setting. (Joshua Goins, 6.3.0. Link)
On System Settings' Graphics Tablet page, the pen testing feature now also shows information about pen tilt and pressure, if supported by the tablet and pen. (Joshua Goins, 6.3.0. Link)
Discover now shows a maximum of two columns even with a very wide window, which results in a less awkward UI because there was rarely or never enough room for a third column to have enough space to make a positive difference. (Rahul Vadhyar, 6.3.0. Link)
Editing desktop files for apps from the "Edit Application…" menu item in Kickoff and other launcher menus now opens the KMenuEdit app to show the app you'd like to edit, rather than a properties dialog. This lets you easily edit others as well, should it strike your fancy. (Oliver Beard, 6.3.0. Link)
When an application takes control of your screen and input devices because you granted it permission to do so (either in that moment or in the past), a system notification is now shown that lets you know how you can immediately terminate this and return control to yourself. (David Redondo, 6.3.0. Link)
Improved the accessibility-related keyboard navigation functionality of multiple Kirigami-based UI components, as well as users of them in Discover and KDE's XDG desktop portal implementation. (Christoph Wolk, Frameworks 6.10 and Plasma 6.3.0. Link 1, link 2link 3, link 4, and link 5)
Improved support for mnemonics (those little underlines that appear underneath letters of triggerable UI controls when you hold down the Alt key) in Kirigami and a number of Plasma components (Kai Uwe Broulik, Frameworks 6.10 and Plasma 6.3.0. Link 1, link 2, link 3, link 4, link 5, link 6, and link 7)
Notable Bug Fixes
Fixed a bug that caused the System Tray's battery icon to always be visible when the power-profiles-daemon package isn't installed. (Jakob Petsovits, 6.3.0. Link)
When you set the wallpaper by dragging an image to the desktop (try it, it works!), it's now actually remembered the next time you log in. (Tino Lorenz, 6.3.0. Link)
Fixed a bug that would unexpectedly require that you copy items twice to get them into the clipboard, but only while the clipboard is configured to not store history and also prevent itself from being empty. (Fushan Wen, 6.3.0. Link)
140 KDE bugs of all kinds fixed over the last two weeks. Full list of bugs
Notable in Performance & Technical
Plasma now respects the system's configured URL for connectivity checks — which can be important especially when customized in an institutional or enterprise environment — rather than always consulting https://networkcheck.kde.org. (Ismael Asensio, 6.3.0. Link)
Further reduced the memory usage of Plasma's clipboard system, especially when set up to store a much larger than average number of history items. (Fushan Wen, 6.3.0. Link)
How You Can Help
KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.
You can help KDE by becoming an active community member and getting involved somehow. 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. Many other opportunities exist:
You can also help us by making a donation! 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.
Happy new year everyone! It’s now 2025, we’ll see what it brings.
Unsurprisingly this week we got a couple of nice “2024 retrospective” articles in this edition, I expect more to show up in the coming weeks. Anyway, let’s go for my web review for the week 2025-01.
Open Source on its own is no alternative to Big Tech - Bert Hubert’s writings
Tags: tech, foss, business
Or why making a dent in the enterprise software space is hard for FOSS… The good news is, it’d require setting up whole ecosystems of services.
The Web standards are indeed too complex. That severely limits the possibility of browser engine incumbents. I agree there’s a deeper lesson here about the scale of technologies.
The results are unsurprising. They definitely confirm what we expected. The models are good at predicting the past, they’re not so great at solving problems.
Very nice piece. This is indeed mostly about building organizational knowledge. If someone leaves a project that person better not be alone to ensure some continuity… lost knowledge is very hard to piece back together.
Home Automation is mostly, as the name implies, about automation.
The machine you're in front of all work-day has an awful lot of useful information that can be useful in your home management.
I have a script lower my blinds if I turn on the camera during the afternoon as otherwise there's an annoying glare. My office lights and monitor both have a redder hue at night, but disabling night-mode on my PC automatically disables the main light performing redshift too. I want my screen to turn off not 10 minutes after activity, which is simultaneously both annoyingly too long and too short, but the moment the motion sensor in my room says I've left.
Home Assistant, the best open source home automation tool out there supports all of this, but it needs some hooks for the PC to tell it about the current state and invoke actions on the PC.
None of the existing solutions worked well for what I wanted. I wrote something for personal use a few years ago that worked great for me, I ran it in the background and didn't plan to take it further. During the KDE Goals sprint another user suggested creating something very similar (https://phabricator.kde.org/T17435). That goal may not have been chosen, but it did motivate me to tidy up and document what I had and turn it into a more fleshed out project.
The App
I made a small daemon, named Kiot (derived from "KDE Internet of Things") that exposes this information to your Home Automation software.
This is pre-alpha software, there's no GUI configuration it relies on manually setting up a configuration file to point to your Home Automation server. If there's enough traction I might make it more packagable, and create a UI config over the Christmas break.
There's a bunch of sensors and actions shipped, but it contains a faux plugin system to make extension easy along with hooks for user supplied scripts.
User activity
Locked state
Suspend/Power actions
Camera in use
Accent Colour
Arbitrary Scripts
Shortcuts
Nightmode Inhibition
Using this from Home Assistant is then as straightforward as possible.
Writing KRunner plugins was my first real developer experience with KDE. I started out right after graduating from school in 2019.
Since then, I continued to maintain my plugins and correct some of the code-crimes that have been committed.
This continued adding some features, removing too obscure features, getting user feedback and also making
sure the plugins are easy to install without too much developer knowlege being needed.
By maintaining the KRunner framework, I also deprecated lots of API and provided cleaner alternatives as part of the efforts for KDE Frameworks 6.
Those changes had to be applied to all the plugins. I also contributed to other developer’s plugins that I found useful.
In this post, I will give you an overview of the different plugins and show you, how they may be useful to your workflow. All the below mentioned Plugins are compatible with Plasma5 and Plasma6, meaning even users of LTS distributions can utilize them.
KRunner plugins also work in the normal application launchers - meaning you should really give those a look!
EmojiRunner
This is a utility to search and copy emojis. On X11, you may paste them using xdolib.
To ensure you get the emojis you like the most quickly, it is possible to configure favorites in the dialog.
Custom emoji, emoji+text entries and aliases can also be added in the config module.
https://github.com/alex1701c/EmojiRunner/
JetBrains plugin
While I love Kate and neovim for doing code editing, having JetBrains IDEs is amazing when working on bigger Java/JavaScript projects.
To improve the integration into KDE Plasma, the KRunner plugin searches for the installed JetBrains IDEs and reads the recently opened projects of them.
Those can be shown and filtered in KRunner. This allows one to directly launch the right project from KRunner!
Sometimes one may find oneself navigating projects in Dolphin. For this case, a context menu counterpart exists.
In there, you find the options to open the folder in the installed JetBrains IDEs. In case the folder is known as a project, the options are presented at the top-level.
Next to opening recent JetBrains projects, this plugin allows one to open workspaces configured in VSCode.
It is pretty straightforward - just install the “Project Manager” plugin in VSCode or Codium, add a few projects and enjoy opening them directly from KRunner.
Having multiple profiles in Firefox may be useful for separating the work one is doing, managing different extensions or different settings.
However, switching between them is rather annoying. Manually adding actions to the desktop file may work, but is rather cumbersome and not as flexible.
This plugin allows you to integrate Firefox profiles automatically in KRunner. It also allows for sorting, opening private windows as actions and also adds them to the desktop file.
Meaning, you can right-click on Firefox in the taskbar or the launcher and have the actions there available.
https://github.com/alex1701c/krunner-firefox
NordVPN plugin
This plugin allows you to easily connect to NordVPN servers, disconnect and view the status. A configurable status is available in KRunner or an extended one when clicking/pressing enter on the respective result.
When connecting, a country, city or specific server may be entered. It is no advertisement or recommendation! Just saying :D
https://github.com/alex1701c/NordVPNKrunner/
TmuxRunner
Tmux is a terminal multiplexer that allows you to have multiple terminals in the same window (split screen, or multiple “tabs”). You may also detach from it without killing the processes.
This is one of the advantages of using it instead or in addition to for example Konsole’s tabs.
Keeping track of the sessions might be a bit hard though. To solve this issue, this plugin provides an overview of the currently active sessions and allows you to create new ones with optionally a specified name.
The sessions will be opened in the configured terminal - by default Konsole.
https://github.com/alex1701c/TmuxRunner
QuickWebShortcuts
While I have given the official webshortcuts quite a bit of love over the years, there may be some things lacking.
For example, there is always the separator character (colon or space) that separates your query from the provided search, like “dd:testme”. With this plugin, you only need to type one out. Additionally, it can provide search suggestions!
https://github.com/alex1701c/QuickWebShortcuts
VeracryptRunner
This plugin allows one to add and search mount configurations for Verarcrypt. This includes file/device paths, display name, mount path and keyfiles.
Optionally, on X11, the password can be read and entered directly using the command line “pass” password manager.
Other mentions
I have the one or other, maybe less useful plugin. Like an integration for KWallet or a little timer utility. For users of VirtualBox, https://github.com/alvanieto/vbox-runner can be very useful. I contributed a merge requests to allow the plugin to work with KF5 and KF6.
Whilst commit numbers aren't a perfect measure of anything whatsoever, they do still provide a good indication of whether a project is healthy or faltering. It's useful to keep an eye on them, and the start of the year is a good time to do that.
I like graphs, everyone likes graphs, they need no further introduction.
Frameworks
Plasma
KWin
Conclusions
My main reason for sharing is before I gathered some data I had a negative feeling about the community health, but none of the data backs it up and it was unfounded, it's hard to get a sense of the state of how the year has gone when you're busy living in it.
There was a bit of a boon last year with KF6/ Plasma 6.0 and this year did see a drop relative to that, but it's merely returning to the former average rather than being anything to worry about. The most important graph is how many new authors and contributors we're getting on a year-by-year basis. The number of total and new contributors is relatively consistent.
Things being unchanged and boring doesn't make for a good post title (hence the Youtube-level embellishing) but is a good place for such a large project.
The 3rd graph included is a measure of how many make up the bulk of commits. If this is 1, it means a sole dev is running the project and that's an unhealthy place to be if they ever leave. If it's too high it means there isn't a core team maintaining it. There's no "right" number, but I feel it's a really interesting metric, especially seeing what happened in Kwin.
About the stats
Graphs were generated from the same scripts used by Curl's dashboard (https://curl.se/dashboard.html). It doesn't have all the stats Curl has as each needed some manual poking to make it more generic.
Frameworks and Plasma stats were made by locally git filterbranching all repos into a mega-repo and using that as a base.