Skip to content

Saturday, 7 March 2026

FOSDEM 2026

This year I had the chance to attend my first ever FOSDEM. My main objective there was the GCompris workshop in FOSDEM Junior track. It was an experimental one with the initiative from the organizer since it was only the third year that this track existed.

The workshop had way more adult attendees interested in GCompris for their children than children themselves. So, naturally, it turned more into a dev room than a workshop.

Me, together with the organizers came to a conclusion that GCompris isn't fit for the FOSDEM Junior, at least not in the form of: short presentation -> hands free experience.

Image from the workshop

The FOSDEM, for me, was very overwhelming. The amount of people in one place as well as having to choose from many different topics, navigating an unfamiliar city had me drained by the end of the first day. Mostly because of that, on the second day I had my workshop and attended only one talk.

Despite that, it was awesome to meet the people of KDE, experience solo travelling for the first time and get to know the core of open source.

Welcome to a new issue of This Week in Plasma!

This was another week of focusing on bug-fixing and UI polishing. Not massively flashy stuff, but critical for the long-term stability of the platform. Check out the work:

Notable UI improvements

Plasma 6.6.2

The arrows in Discover’s “See More” buttons are now in the right place and point in the right direction for both left-to-right and right-to-left languages. (Nate Graham, discover MR #1275)

Plasma 6.6.3

The Panel Spacer Widget no longer appears in the widgets sidebar, because it only makes sense to put on panels, and there’s already a dedicated button to do that. (Tobias Fella, plasma-workspace MR #6376)

Allowed some labels in the Task Manager widget’s tooltips to become multi-line instead of eliding. (Nate Graham, plasma-desktop MR #3598)

Plasma 6.7

Trying to save a color scheme with the name of an existing system color scheme no longer shows an accusatory and unclear error message; now it tells you you’ll need to choose a different name, and then prompts you to do so. (Akseli Lahtinen, plasma-workspace MR #6316)

Enabled the “Global Shortcuts” KRunner plugin by default. (Nate Graham, plasma-desktop MR #3590)

KRunner finding the “Toggle Overview” global shortcut

Notable bug fixes

Plasma 6.6.2

Fixed a bug that made KWin crash if you used the kscreen-doctor tool to create a custom modeline while already using a different custom modeline. (Vlad Zahorodnii, KDE Bugzilla #516452)

Spectacle no longer crashes when you try to share a rectangular region screenshot using KDE Connect. (Noah Davis, KDE Bugzilla #516717)

Fixed various issues with Plasma’s remote desktop server when accessed from a client running Microsoft Windows. (Nicolas Blackburn, krdp MR #148, krdp MR #149, krdp MR #150, and krdp MR #151)

Fixed a regression that made bridged Ethernet networks show an inappropriate icon in the Networks widget. VLANs still show the wrong icon though; hopefully that’ll be fixed next week. Networking is complicated! (Nate Graham, KDE Bugzilla #516712)

Fixed a bug that made day names in the Digital Clock widget’s tooltip not be capitalized with certain languages. (Alessio Bonfiglio, plasma-workspace MR#6289)

Plasma 6.6.3

Fixed a case where KWin could crash when using the kscreen-doctor tool to change the resolution of a virtual screen in certain ways. (Xaver Hugl, KDE Bugzilla #517198)

Fixed a bug that could make Plasma crash on login with certain multi-monitor setups. (Dobry Nikolov, KDE Bugzilla #516937)

Fixed a regression that prevented certain monitors from automatically dimming at the right times. (Xaver Hugl, KDE Bugzilla #516867)

Fixed a regression that made Spectacle sometimes crash when quitting, instead of quitting cleanly. (Noah Davis, KDE Bugzilla #517064)

Fixed a regression that could cause long-presses on desktop widgets to unexpectedly trigger interactive controls on them. (Marco Martin, KDE Bugzilla #517040)

Fixed two visual glitches affecting on/off switches in Plasma when using non-default Plasma styles. (Filip Fila, KDE Bugzilla #504116 and KDE Bugzilla #516542)

Plasma 6.7

Fixed a somewhat common way that Plasma would quit (not crash, actually quit) with a Wayland protocol error when certain monitors woke from sleep. (Vlad Zahorodnii, KDE Bugzilla #507691)

Fixed a bug that made Plasma’s file transfer progress notifications claim that the total number of files was 0 in cases where the actual number was very very large. (Kai Uwe Broulik, plasma-workspace #6369)

Fixed a funny bug that made auto-hidden Plasma panels unexpectedly un-hide when the password dialog appeared while the “Dim Screen for Administrator Mode” effect was in use, which it is by default. (Vlad Zahorodnii, KDE Bugzilla #516864)

Frameworks 6.23.1

Worked around a Qt bug that was causing Plasma to repeatedly crash on login for some people. (David Redondo, KDE Bugzilla #514098)

Fixed a bug that caused KDE’s desktop portal implementation to crash when copying certain content in a remote desktop session. (David Edmundson, KDE Bugzilla #515465)

Fixed various inter-related issues with the app database that could make favorite apps disappear from launcher menus and the Task Manager widget under certain circumstances, including when using certain JetBrains apps in auto-start mode. (Harald Sitter, KDE Bugzilla #516426 and KDE Bugzilla #507838)

PulseAudioQt 1.8.0

Fixed a bug that could make Plasma crash when you tried to access certain audio devices’ profiles menus. (Harald Sitter, KDE Bugzilla #496067)

Notable in performance & technical

Plasma 6.6.2

Made the Global Menu widget more robust in the face of apps that lie about having any menus. (Christoph Wolk, plasma-workspace MR#6345)

Plasma 6.6.3

Made KWin’s screencasting feature more robust when using PipeWire 1.6.0 or newer, which imposes stricter requirements compared to earlier versions. (Conn O’Griofa, kwin MR #8939)

Plasma 6.7

Let the kscreen-doctor tool modify the value of screens’ AutoRotatePolicy key. (Xaver Hugl, libkscreen MR #291)

Made the kscreen-doctor tool capable of targeting the active screen, so you don’t need to look up its technical ID. Also made it possible to toggle HDR and wide color gamut support simultaneously. (Yossef Rostaqi, libkscreen MR #294)

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.

Would you like to help put together this weekly report? Introduce yourself in the Matrix room and join the team!

Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. 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 out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.

To get a new Plasma feature or a bug fix mentioned here

Push a commit to the relevant merge request on invent.kde.org.

Friday, 6 March 2026

Make sure you commit anything you want to end up in the KDE Gear 26.04 releases to them

Next Dates:  

  •   March 12 2026: 26.04 Freeze and Beta (26.03.80) tarball creation
  •   March 13 2026: 26.04 Beta (26.03.80) release
  •   March 26 2026: 26.04 RC (26.03.90) tarball creation
  •   March 27 2026: 26.04 RC (26.03.90) Release
  •   April  9 2026: 26.04 tarball creation
  •   April 10 2026: 26.04 packages released to packagers
  •   April 16 2026: 26.04 Release


https://community.kde.org/Schedules/KDE_Gear_26.04_Schedule 

Let’s go for my web review for the week 2026-10.


A new California law says operating systems need to have age verification

Tags: tech, law, surveillance

The stupid idea of age verification keeps spreading with ridiculous laws…

https://www.pcgamer.com/software/operating-systems/a-new-california-law-says-all-operating-systems-including-linux-need-to-have-some-form-of-age-verification-at-account-setup/


System76 on Age Verification Laws

Tags: tech, surveillance, law

Those dangerous and stupid laws keep popping out unfortunately. This is clearly a slippery slope as shown from the New York bill… We need to push back or the demands will keep growing. Let’s hope Free Software communities won’t try to preemptively comply, this would be short sighted and self-sabotage.

https://blog.system76.com/post/system76-on-age-verification


Ex-Meta lobbyist put in charge of EU’s digital rules

Tags: tech, europe, law, politics, gafam

What could possibly go wrong? This is really a weird appointment.

https://www.brusselstimes.com/1992574/ex-meta-lobbyist-put-in-charge-of-eus-digital-rules-tech-oligarchy-writing-its-own-rulebook


Breaking Free

Tags: tech, quality, law

Is Norway about to become one of the first countries to become serious about enshittification? Will more follow? This would be welcome.

https://www.forbrukerradet.no/breakingfree/


AI Translations Are Adding ‘Hallucinations’ to Wikipedia Articles

Tags: tech, wikipedia, ai, machine-learning, gpt, quality

This is concerning, hopefully the amount of issues which get through will be limited.

https://www.404media.co/ai-translations-are-adding-hallucinations-to-wikipedia-articles/


Text is king

Tags: tech, reading, culture, history, social-media

Yes there’s a dip, but this piece presents compelling evidence that it’s not the death of literacy we’re sometimes screaming at. It is also a love letter to reading and writing.

https://www.experimental-history.com/p/text-is-king?ref=DenseDiscovery-378


prek: ⚡ Better pre-commit, re-engineered in Rust

Tags: tech, version-control, git, tools, quality

This looks tempting. I guess I’ll try this one instead of pre-commit when I get the chance.

https://github.com/j178/prek


qman: A more modern man page viewer for our terminals

Tags: tech, documentation, unix, tools, command-line

Didn’t know about this one. Looks like a nice alternative to the venerable man command.

https://github.com/plp13/qman


Message Passing Is Shared Mutable State

Tags: tech, multithreading, reliability

Interesting piece which challenges the shared-memory vs. message-passing dichotomy. It message passing indeed gets rid of data races but nothing more. Of course this is nice already, but that doesn’t mean you can’t have the other families of concurrency bugs creeping in.

https://causality.blog/essays/message-passing-is-shared-mutable-state/


fast-servers

Tags: tech, server, services, performance

We got options beyond poll() nowadays.

https://geocar.sdf1.org/fast-servers.html


Rust zero-cost abstractions vs. SIMD

Tags: tech, rust, optimisation, simd

Yes, Rust like C++ comes with zero cost abstractions. Still they can get in the way of some compiler optimisations. This is an interesting case preventing vectorisation.

https://turbopuffer.com/blog/zero-cost


Hardware hotplug events on Linux, the gory details

Tags: tech, kernel, systemd, hardware

Wondering how udev communicates with the kernel? And then broadcast events? This covers the basics.

https://arcanenibble.github.io/hardware-hotplug-events-on-linux-the-gory-details.html


Log messages are mostly for the people operating your software

Tags: tech, logging

A reminder that logs are not for the developers first but for operation.

https://utcc.utoronto.ca/~cks/space/blog/programming/LogMessagesAreForOperation


Nobody Gets Promoted for Simplicity

Tags: tech, engineering, complexity, management

Rampant complexity in software is also a management issue. Are we sure we’re rewarding the right things?

https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/


Go Beyond the Test Pyramid: Test Desiderata 2.0

Tags: tech, tests, tdd

It’s been a while that I started to consider the test pyramid as fairly limiting for our thinking about tests. The dimensions proposed here give a more comprehensive model to reason about.

https://coding-is-like-cooking.info/2026/02/go-beyond-the-test-pyramid-test-desiderata-2-0/


Use the Mikado Method to do safe changes in a complex codebase

Tags: tech, refactoring, legacy

You probably want to complete this with a higher level plan if the goal is a larger modernization. That being said, it’s a good approach for mid-level to small goals you’d want to tackle.

https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/


The Eternal Promise: A History of Attempts to Eliminate Programmers

Tags: tech, programming, history, ai, machine-learning, copilot

This fantasy regularly comes back. Yet, the tools evolve, might improve some things but the core difficulties of programming don’t change. At each hype cycle our industry over promises and under delivers, this is unnecessary.

https://www.ivanturkovic.com/2026/01/22/history-software-simplification-cobol-ai-hype/


Yes, and…

Tags: tech, programming, engineering, ai, machine-learning, gpt

Very good essay on why the developer profession is not going away. On the contrary we need to double down on essential skills and put in the work. This is long overdue anyway.

https://htmx.org/essays/yes-and/


I’m a philosopher who tries to see the best in others – but I know there are limits

Tags: philosophy, trust

Interesting point, looking for agency seems like a good criteria. It highlights it’s not a simple test though. I’d add that trust matters and that’s built over time.

https://theconversation.com/im-a-philosopher-who-tries-to-see-the-best-in-others-but-i-know-there-are-limits-273446



Bye for now!

Thursday, 5 March 2026

Today we're releasing the third beta of Krita 5.3.0 and Krita 6.0.0.

The bug-squashing continues, We received 63 bug reports in total, of which we managed to resolve 8 for this release, making a total of 22 fixed bugs. Beyond that, the manual has been updated for 5.3 and 6.0, complete with dark theme!

Please keep testing and reporting!

Note that 6.0.0-beta3 has more issues, especially on Linux and Wayland, than 5.3.0-beta3. If you want to combine beta testing with actual productive work, it's best to test 5.3.0-beta3, since 5.3.0 will remain the recommended version of Krita for now.

To learn about everything that has changed, check the release notes!

5.3.0-beta3 Download

Windows

If you're using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the Krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.

[!NOTE] We are no longer making 32-bit Windows builds.

Linux

Note: starting with recent releases, the minimum supported distro versions may change.

[!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting.

MacOS

Note: minimum supported MacOS may change between releases.

Android

Krita on Android is still beta; tablets only.

Source code

See the source code for 6.0.0-beta3

md5sum

For all downloads, visit https://download.kde.org/unstable/krita/5.3.0-beta3/ and click on "Details" to get the hashes.

Key

The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).

6.0.0-beta2 Download

Windows

If you're using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the Krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.

[!NOTE] We are no longer making 32-bit Windows builds.

Linux

Note: starting with recent releases, the minimum supported distro versions may change.

[!WARNING] Starting with recent AppImage runtime updates, some AppImageLauncher versions may be incompatible. See AppImage runtime docs for troubleshooting.

MacOS

Note: minimum supported MacOS may change between releases.

Android

No Krita 6.0.0 for Android for now. Please use the 5.3.0-beta3 APKs.

Source code

md5sum

For all downloads, visit https://download.kde.org/unstable/krita/6.0.0-beta3/ and click on "Details" to get the hashes.

Key

The Linux AppImage and the source tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).

Wednesday, 4 March 2026

Sound-reactive sideboard
Sound-reactive sideboard

A project that I had planned for quite some time came to fruition last year, now I finally found time to document the result. My livingroom sideboard looked messy and kind of boring while not blending in anymore with the updated style of my living room. I wanted to turn it into a striking centerpiece of the room.
The plan was to install a sound-reactive lighting system. I wanted the light effects to be detailed and not disturbed by ambient sound in the living room, i.e. it sound not react to people’s voices, just the music playing.

My living room sideboard is an off-the-shelf product from IKEA that I bought many years ago. It didn’t have doors installed, but I was delighted that I could still buy matching doors with windows in them.
To realize the light effects, I’ve installed frosted plexi glass inside the windows.

Getting technical…

To control the LEDs, I’m using an ESP32-based LED controller with a line-in module and an ADC (analog-digital converter). After some experimenting, I’ve found this board to work well. I’ve connected 6 WS2812B LED strips to 3 pins and installed them with an aluminium profile into the doors. The frosted windows and profiles diffuse the light nicely so you can’t make out individual LEDs really.
On the software side, I’m using a sound-reactive port of the WLED project. WLED is Free and Open Source software, of course. Though its user interface can be a little unwieldy, it’s also very powerful and integrates nicely with homeassistant, so it can be controlled automatically.

Inside view
Inside view

The ESP32, being a rather powerful dual-core microcontroller, can process the incoming audio signal on one core (using fast-fourier transformation) and compute complex LED effects on the other core. Rendering up to 200 frames per second to 2 times 210 LEDs is no problem while power consumption of just the controller stays well under 1W. Pretty impressive! Depending on the LED effects (number of LEDs lit up at a given time and their colors), the whole thing hardly ever reaches 10W of power consumption.

ESP32-based LED controller
ESP32-based LED controller

Another functional goal of this project was to solve cooling issues of my amplifier once and for all. The amp would run really hot and shut off after playing at higher volume for some time. I installed a bunch of 12cm fans which suck air through the amplifier and blow it out on the backside. Both amp and and fans are connected to smartplugs. I turned to my homeassistant and set up an automation which turns the fans on whenever the amp’s power consumption reaches a certain level. This works really nicely, since the fans never spin at lower volumes (when you could hear them through the music) and keep everything cool and running stable at higher volume when it’s necessary — without human interaction.

Cooling system
Cooling system

Walnut finish

The outer shell of the sideboard is made of walnut wooden panels with an oil and varnish finish, thanks to my friend Joris. The oil gives it a darker look and accentuates the grain, matching the speaker system. The matte varnish finish (Skylt, highly recommended for its durability and natural look) allows me to sleep well even if people put their drinks on it.

Done and dusted
Done and dusted

I love it when a plan comes together!

I’m really happy with the result. While I had thought it out for a long time already, it’s always a lot more impressive when you see the final result in action.
The WLED firmware allows me to create interesting light effects. I can run the 3 doors as one, but also easily split them up into segments so each door panel renders its own effect. WLED has ca. 200 different LED effects, many of them react to sound. Each effect can be combined with one of 50 color palettes, some of the palettes are sound-reactive in their own right leading to a very dynamic display.
One cool feature is that the processed sound data can be broadcast across the network (over UDP) and received by other WLED controllers, so I can have multiple LED displays in the house, each rendering their own effect to the music, creating a more immersive experience.



I'm half-way through the Season of KDE 2026 and wanted to share the journey so far.

I had subscribed to the kde-soc mailing list after I returned from IndiaFOSS'25, where I met KDE contributors who really encouraged me to join the community and told me that one can always learn while building. The first step, always, is to start. Then I got carried away with life until I saw "call to action" in my mailbox in January. It was about SoK'26. I had then recently set up Kubuntu and was in awe about what people can build out of passion and by collaborating with others. I felt mentorship was the way to get started. I explored the projects and found Task-3 under Lokalize as something that I can contribute to while learning new skills- programming in CPP, debugging, and exploring an old repo.

Here's everything i did before the season officialy began.

Before Proposal

  • I installed ==Lokalize== and reproduced the bug.
  • Cloned the repo. Used grep to find “Approve and go next” in codebase. Turned out EditorTab::gotoNextFuzzyUntr() is the origin of bug. I thought about "Approve and go prev" and tried that. It was buggy too!
  • Wrote proposal

After Proposal

  • kde-builder failed due to missing libraries. So after lot of fixes, i did ubuntu update to 25.10(has qt6). *Created a test branch and added debug log in forementioned method.

Before 23rd

  • Got myself acquainted with Kate.
  • Fidgeted around files to understand architecture.

Got to know about

  • qDebug()
  • why use .h and .cpp files
  • LSP

The weekly status reports contain links to supoorting documents, commits and MRs.

Week 1

  • Spent more time understanding the repo, the files,classes and methods which were involved in the bug using debug logs, grep and manual look-over.

  • Wrote a few comments to document better.

  • Had an introductory call, was nice to know the contributors.

Week 2

  • Researched past commit to understand the intent of navigational shortcuts.

  • Added SPDX license headers( did not know it was being actively developed in GSOC too). Aided Kumud by sending an email to the KDE i18n mailing list regarding the cyclic traversal on entries for keyboard shortcuts in the Translation Units View. Typically, KDE applications don't use that, as followed from the replies and was not needed.

  • Had a group call for understanding rebase but i still mess up sometimes.

Week 3

While Kumud's implementation addressed gotoNextFuzzyUntr(), analyzed their approach to generalise it to make it work for gotoPrevFuzzyyUntr() and added a parameter to move in either direction for which a new Enum was used instead of magic numbers(they have a name for it T-T). I could see magic numbers used previously in the code and do get it why it isn't preferred.

Week 4

Continued with the week-3's work

Week 5

Worked on fixing other navigational shortcuts in editortab.cpp which implied generalising the function furthermore to take another parameter for entry state. StackOverflow is a saviour(Of course, after my mentor). Throughtout this time, it felt as if things were unravelling themselves to me. New bugs were found and worked upon. Looking back, I mostly improvised upon Kumud's solution but still got to learn a lot on the way.

Week 6

Will work on other bugs identified on the way or scout for new ones! See if I make past this which was primarily the task for SoK.

Tuesday, 3 March 2026

Glaxnimate 0.6.0 is out! This is the first stable release with Glaxnimate as part of KDE.

The biggest benefit of joining KDE is that now Glaxnimate can use KDE's infrastructure to build and deploy packages, greatly improving cross-platform support. This allows us to have releases available on the Microsoft Store and macOS builds for both Intel and Arm chips.

But there is much more...

Screenshot of version 0.6.0

KDE-specific features

Glaxnimate now uses the KDE file recovery system making it more reliable.

Settings and styles also go through the KDE systems, which, among other things, lets you choose from more color themes for the interface.

Translations are also provided by KDE. This makes it easier to keep other languages up to date as Glaxnimate evolves. In fact, the number of available languages has increased from 8 to 26!

The script console has also been enhanced with basic autocompletion making scripting easier.

Timeline

Glaxnimate timeline showing a property with keyframes

The timeline dock now allows effortless scrolling and provides buttons that make moving to different keyframes, and adding and removing them easier too. This contributes to making the animation workflow much smoother.

Hiding and showing layers from the timeline now interacts with the undo/redo system.

You can also quickly toggle keyframe easing without having to navigate menus. Just hold down the Alt key and click on the timeline.

Format Support

Glaxnimate screenshot showcasing the eps tiger, a common example of complex SVG images

SVG import and export has been re-worked, and precompositions are now properly exported and animations improved. You can even export an animation as a sequence of SVG frames.

Editing

We have improved the bezier editing tools, and included the ability to Alt-click on bezier points to cycle between tangent symmetry modes.

The Reverse path action is now implemented and works for all shapes. This is mostly useful when adding the Trim path modifier.

Bug Fixes

Version 0.5.4 included a significant refactoring of internal logic that introduced several bugs. These have now have been fixed.

Packager Section

The source code tarballs are available from the KDE servers:

URL: https://download.kde.org/stable/glaxnimate/0.6.0

Source: glaxnimate-0.6.0.tar.xz

Signed by: 97B71AA02D63EA6C5C44C23B962AC48EF0501F0B Julius Künzel julius.kuenzel@kde.org

"Rocky Linux logo with abstract, green electronic diagram-like designs surrounding it."

Rocky Linux throws its support behind KDE, becoming our latest patron.

Rocky Linux is a stable, community-driven, and production-ready Linux distribution designed to be fully compatible with Red Hat Enterprise Linux. Rocky Linux powers clouds, supercomputers, servers, and workstations around the world.

"Sustainable Open Source depends on great open-source communities supporting each other" said Brian Clemens, Co-founder and Vice President of the Rocky Enterprise Software Foundation. "We do our best to support our upstreams, and backing KDE was an easy choice for us given the popularity of the Rocky Linux KDE spin."

"As a user-first community, KDE creates solutions to address real-world needs" said Aleix Pol, President of KDE e.V.. "We are excited to welcome Rocky Linux as a KDE Patron and see KDE's software shine on Rocky Linux, their enterprise-ready operating system."

Rocky Linux joins KDE e.V.'s other patrons: Blue Systems, Canonical, g10 Code, Google, Kubuntu Focus, Mbition, Slimbook, SUSE, Techpaladin, The Qt Company and TUXEDO Computers, who generously support FOSS and KDE's development through KDE e.V.

Monday, 2 March 2026

About me #

Hi Everyone ,I am Hrishikesh Gohain a third year undergraduate student in Computer Science & Engineering from India. For the past few weeks I have been working as a Season of KDE mentee with my mentors Joseph P. De Veaugh-Geiss ,Aakarsh MJ and Karanjot Singh. This post summarizes the work I have done until Week 5.

About KEcoLab #

KDE Eco is an ongoing initiative by the KDE Community that promotes the use and development of Free , Open Source and Sustainable Software. KEcoLab is a project that allows you to measure energy consumption of your software through ci/cd pipeline using a remote lab.It also generates a detailed report which can further be used to document and review the energy consumed when using one’s software and to obtain Blue Angel eco certification.

About the SOK Project #

The Lab computer on which the software runs for testing was migrated to Fedora 43 recently, which comes with Wayland by default. Writing Standard Usage Scenario scripts, which are needed to emulate user behavior, was previously done with xdotool, but that will not work on Wayland. My work so far has been to port the existing test scripts to a Wayland-compatible tool. For those who want to contribute test scripts to measure their own software , the current scripts can be taken as a reference. My next tasks are to prepare new test scripts to measure energy usage of Plasma Desktop Environmen itself.

Work done so Far #

Week 1 #

In the first week I studied the Lab architecture and how testing of software is done using KEcoLab. The work done by past mentees as part of SOK and GSoC was very helpful for my research which you can read here , here and here. I also set up access to the lab computers through SSH. RDP access had some issues which were solved with the help of my mentors. To replicate the lab environment locally, I set up a Fedora 43 Virtual Machine so that I can test scripts under the same Wayland environment as the lab PC. I also documented and published a blog about the project and shared with my university community to promote the use of Free and Open Source Software and how it relates to sustainability.

Week 2 and Week 3 #

I communicated with my mentors and other community members to decide the new wayland compatible tool. After evaluating different options, we decided to use:

  • ydotool: for key press, mouse clicks and movements (works using the uinput subsystem)
  • kdotool : for working with application windows (focusing, identifying window IDs, etc.)

A combination of tools was required to meet all our requirements. To help future contributors, I published my first blog on Planet KDE explaining how to set up and use ydotool and kdotool . I also imported the repositories into KDE Invent for long term compatibility and wrote setup scripts for easier installation and configuration. These tools did not work out of the box and I had to make some workarounds and setup before usage which i documented in the blog.

Week 4 and Week 5 #

During these weeks, along with my mentors, I installed and set up the required tools on the Lab PC. I then ported the test scripts of Okular from xdotool to ydotool and kdotool and did testing on my local machine first. Currently, the CI/CD infrastructure through which these scripts run on the Lab PC is temporarily broken due to the migration to Fedora 43. Once these issues are fixed, we will test the new Wayland compatible scripts on the actual lab hardware and compare the results with previous measurements.

Next Steps #

I will be working on measuring energy usage of Plasma Desktop Environment itself. It will be more challenging than measuring a normal software application because Plasma is not a single process. It is made up of multiple components such as KWin (compositor), plasmashell, background services, widgets, and system modules. All of these together form the desktop experience.

Unlike normal applications like Okular or Kate, Plasma is always running in the background. So we cannot simply “open” and “close” it like a normal app. Because of this, some changes may be required in the current way of testing using KEcoLab.

To properly design the Standard User Scenario (SUS) scripts for Plasma, I will discuss closely with my mentors and also seek feedback and suggestions from the Plasma community. Defining what should be considered a “standard” usage pattern will require careful discussion and community input.

Lessons learned #

It has been a very amazing journey till now. I learned how to make right choices of tools/software after properly understanding the requirements instead of directly starting implementation.

Thank You Note #

I’d like to take a moment to thank my mentors Aakarsh, Karanjot, and Joseph. I am also thankful to the KDE e.V. and the KDE community for supporting us new contributors in the incredible KDE project.

KEcoLab is hosted on Invent. Are you interested in contributing? You can join the Matrix channels Measurement Lab Development and KDE Eco and introduce yourself.

Thank you!