The KDE community will again participate in the Open Source Promotion Plan (OSPP), a program
in which students can contribute to open source projects. Burgess Chang, is the KDE
community contact.
Unlike the Google Summer of Code, where stipends are funded
by a company, stipends are primarily funded by the Chinese government with options for open source communities
to contribute additional stipends if they wish to have more students participate in their projects than they get
allocated. It is good that there is recognition that contributing
to open source software is a skill that students should acquire.
The range of contributions that can be made in OSPP is not
just limited to programming, contributions to other aspects that improve the open source software ecosystem such as
translation and documentation are welcome. As it is a government funded program, there is a little more oversight
to ensure tax payer funds are well spent. In particular, for most projects, contributions should be made to a
publicly available repository associated with the project and that student participants are selected primarily based on
their project application.
The plan aims to increase the programming and
software engineering skills of students by encouraging them to participate in real world projects during their
vacation period. While it is funded by the Chinese people, open source projects with contributors from
all over the world apply to participate, and students from any part of the world can also apply to participate.
Mandarin and English are the official communication languages for the program, knowledge of one of these
is sufficient to participate in the program.
The OSPP website lists the dates for each phase of the program. Important
dates for this year are:
04 April - 04 May: Project submission period for approved open source communities
09 May - 09 June: Student project application period
01 July - 30 September: Coding and development period for accepted projects
Kaidan 0.12.1 fixes some bugs.
Have a look at the changelog for more details.
Changelog
Bugfixes:
Do not highlight unpinned chats when pinned chat is moved (melvo)
Fix deleting/sending voice messages (melvo)
Fix crash during login (melvo)
Fix opening chat again after going back to chat list on narrow window (melvo)
Increase tool bar height to fix avatar not being recognizable (melvo)
Fix width of search bar above chat list to take available space while showing all buttons (melvo)
Fix storing changed password (melvo)
Fix setting custom host/port for account registration (melvo)
Fix crash on chat removal (fazevedo)
Move device switching options into account details to fix long credentials not being shown and login QR code being temporarily visible on opening dialog (melvo)
Allow setting new password on error to fix not being able to log in after changing password via other device (melvo)
Fixed an issue in apparmor preventing QT6 webengine applications from starting.
Beta testing!
KDE Snaps:
Updated Qt6 to 6.8.2
Updated Kf6 6.11.0
Rolling out 25.04 RC applications! You can find them in the –candidate channel!
Life:
I have decided to strike out on my own. I can’t take any more rejections! Honestly, I don’t blame them, I wouldn’t want a one armed engineer either. However, I have persevered and accomplished quite a bit with my one arm! So I have decided to take a leap of faith and with your support for open source work and a resurrected side gig of web development I will survive. If you can help sponsor my work, anything at all, even a dollar! I would be eternally grateful. I have several methods to do so:
Twinimation Studios have released a new Krita workshop, and we wanted to give
them a chance to introduce their new offering to Krita's users:
Greetings everyone! Entering the art world is sometimes seen as an
expensive endeavor. From art schools to subscription based software,
artists across different fields tend to have notable expenses. But have you
ever wondered if you can become an artist without spending a fortune?
Twinimtion Studios is back to answer the question with our very first full
workshop! Becoming an Artist on a Budget is a specialty made guide guide to
help aspiring artists begin their artistic journey WITHOUT breaking the
bank. This workshop consists of 9 main videos bundled into one easy to
digest package, along with some special bonus showcase videos as well.
Included is also a bonus freebie list of numerous artistic products ideas
to begin a paid art hobby or career.
Within this workshop, we provide tips and tricks on how one can begin their
art journey for completely free. After reviewing a list of affordable
resources to learn art skills, we recommend numerous free art programs with
a special spotlight on Krita! We explain how versatile Krita is, and how it
can be used across numerous different art fields, such as animation,
comics, and painting! Following some other drawing tutorials, the workshop
concludes with a special lesson on entrepreneurship, where we explain how
aspiring artists can create a paid hobby or full business through their
artwork while remaining on a budget.
With so many people wanting to enter the art scene and build a career from
it, we hope this workshop will be a helpful guide for all of those who wish
to create their own artistic brand. Additionally, we have many other Krita
focused animation courses on our website!
Twinimation Studios was founded by instructors Andria and Arneisha Jackson;
MFA graduates who've studied animation for 9 years and want to share their
professional knowledge with the world. We provide tutorials on different
styles of animation, character design, illustration, film creation and so
much more! Look forward to our future tutorials and workshops where we will
continue to expand our repertoire to fit several different art fields.
Plasma's login experience is an area that we know requires some improvement — it works OK in the basic case, but it's very barebones and doesn't handle anything beyond that.
As a complete desktop experience, it's our job to provide support for the edge cases too.
What we want
Great out-of-box experience in multi-monitor and high DPI and HDR
Screen readers for blind people (which then means volume control)
Pairing trusted bluetooth devices
Login to known Wi-Fi for remote LDAP
Remote (VNC/RDP) support from startup
A brief history
In Plasma 5, we retired our own bespoke display manager KDM, in favour of SDDM. A display manager started for multiple lightweight Qt Desktops. It was modern at the time making use of new QML for the front and as a big selling point at a time when Plasma was also making use of it.
SDDM's Big Architecture Problem
We ran into a problem, though. SDDM is designed to show a single greeter window, loading arbitrary QML from the specified theme.
Whilst this all sounded great for Plasma, the abstraction is at the wrong level — for our wishlist we need a lot more tight integration from our login screen than just a window showing sessions and users.
With SDDM, power management is reinvented from scratch with bespoke configuration. We can't integrate with Plasma's network management, power management, volume controls, or brightness controls without reinventing them in the desktop-agnostic backend.
SDDM was already having to duplicate too much functionality we have in KDE, which was very frustrating when we're left maintaining it.
The Competition
GNOME's GDM is the gold-standard of display managers, and it achieves this higher level of quality by running half of a Gnome session.
SDDM got closer when it added Wayland support — it had to use a compositor such as KWin. But because the project tries to be agnostic between desktops, it has to support any compositor. There aren't compositor-agnostic ways to do even simple things like set the keyboard layout, so in the end this compositor agnosticism goal simply didn't work.
Theme Problems
A major mistake we made throughout Plasma 5 was conflating "writing UI in a high level scripting language" with "it's themable" as the same thing — they are not. QML does make it easy to modify and iterate without programming skills, but it still contains business logic. It should not be the primary method of customisation that we expose to users.
Ultimately, this was poor for end users. We pushed back on adding support for configurable theme options, because building a theme engine within a theme was wasteful! But often people want to just change a few things. Choosing a theme meant finding a combination that had everything. The store filled up with themes that are 99.9% identical code-wise; most are just wallpaper mods.
It was also poor for theme developers. Not only do they have to modify the visuals, but also re-implement focus handling, accessibility, and the same boring logic again. They can't benefit from widespread testing so regressing these functionalities is common. Reddit is full of screenshots of broken SDDM themes.
Finally, it's poor for us Plasma developers: theme support holds us back from adding new features or tidying code; if we want to add a new feature that in any way affects existing UIs, the situation get very messy very fast. The end result is that features just don't land, and the end user is the one that misses out.
So, what's the plan?
It's worth stressing nothing is official or set in stone yet, whilst it has come up in previous Plasma online meetings and in the 2023 Akademy. I'm posting this whilst starting a more official discussion on the plasma-devel mailing list.
Oliver Beard and I have made a new mutli-process greeter, that uses the same startup mechanism as the desktop session. It doesn't have all the features that we propose at the start of the blog, but an architecture where features and services can be slowly and safely added.
For customisation we intend to expose the same familiar settings that exist in Plasma and bring the design more in-line with the existing screenlocker where we also dropped arbitrary QML years ago. We'll make the wallpaper configurable with any existing wallpaper plugins, and expose the existing plasma theme and colour settings. Syncing will be a case of copying files, not re-inventing things.
The backend
When starting work on this, I tried to explore all alternative backends out there even with fully working implementations, however in practice nothing was maintained that matched our requirements. SDDM has been proven in the real world, so we have taken that and stripped it down to cover what we want moving forwards. I also aim to incubate it into the KDE ecosystem to have full autonomy over the project and merging stuck patches.
Current State
All of this has been implemented as two new repositories. Plasma Login Manager a continuation of SDDM and Plasma Login for front end and KCM (settings) code. These might be merged at some point.
The new code all works, and is at roughly feature parity with what we're replacing. A screenshot looks roughly the same as a stock Plasma SDDM setup. Whilst this is at a state where developers can opt-in, I would not want distros to be packaging things at this point.
Please do reach out if this sounds interesting, either directly or in the Plasma Matrix room - or with merge requests!
KdeGuiTest (previously called KdeEcoTest) is an automation and testing tool which allows one to record and simulate user interactions with the GUI of an application. It is being developed as part of the KDE Eco initiative to create usage scenario scripts for measuring the energy consumption of software. The main goals in Season of KDE 2025 are (i) to debug remaining issues, and (ii) to make KdeGuiTest more user-friendly by creating a Graphical User Interface so it is easier to create, edit, and run emulation scripts.
Progress of the KDE season so far:
Creation of a 4-cross PDF to be used for testing shift coordination.
Detection of the issues affecting shift coordination.
Fixed “Platform supported” error due to pynput.
Integration of KdeGuiTest with its own newly-built Graphical User Interface.
SHIFT COORDINATION ERROR
There is a difference between what is recorded when creating a script and what is played when running the script.
How I planned to fix this:
Identify the root of the shift error by creating a script to click on four target crosses, and then running the script to locate and solve differences.
Develop and implement a correction mechanism to accurately map recorded coordinates to playback positions.
My progress so far on the shift error:
Creation of the 4-crosses PDF to test shift error: A target PDF is created with 4 crosses horizontally and vertically opposite each other.
Created a test script on the target PDF to detect shift error: I created a test script that clicks on the four crosses. I tested the KdeGuiTest tool on the target PDF and identified the issues affecting the shift error, namely:
Difference in mouse coordinates when scripts are created and playback
Screen position
Screen resolution
I am still working on a fix for this. See my comments at the end of this post for more.
FIXED “PLATFORM NOT SUPPORTED” ERROR DUE TO PYNPUT
While creating a script with KdeGuiTest we encountered the error “Platform not supported”. It was not recognizing the pynput backend in the code, which is the main technology used in KdeGuiTest to simulate user interactions in software applications. pynput is a Python library that allows you to control and monitor input devices. It is used for interacting with your keyboard and mouse through Python code. Read more from Mohamed Ibrahim in SoK23 here, Athul Raj K in SoK24 here, and Amartya Chakraborty in SoK24 here.
GRAPHICAL USER INTERFACE FOR KDEGUITEST USING PyQt5
One of the main goals in Season of KDE 2025 is to make KdeGuiTest more user-friendly and have it be easier to create, edit, and run final scripts using a Graphical User Interface.
To better understand the idea of the interface Emmanuel had in mind, I presented a prototype in one of our weekly meetings. Fortunately, it fit the proposed idea! To implement the prototype, I built the GUI from scratch with some feedback from my mentor Emmanuel. PyQt5 is used for creating graphical user interfaces with Python. It's a powerful and versatile toolkit that allows developers to build desktop applications that look and feel native on various operating systems, including Windows, macOS, and GNU/Linux.
The GUI has the following features:
Create script interface
Buttons for the following commands:
dw - define window
ac - add clicks
sc - stop add clicks
ws - write to the screen
wtl - write test timestamp to log
wmtl - write message to log
Action buffer widget
Final script widget
A run script interface
File dialog
You can see the current version of the scripting interface below.
First, fixing the shift error: The main shift error identified is due to differences in mouse coordinates. The mouse coordinates are recorded in the GUI in order to track them. I will then develop and implement a correction mechanism to accurately map recorded coordinates to playback positions.
Second (time-permitting), developing three test scripts in collaboration with KEcoLab to compare energy consumption of PDF readers:
Change to different view modes (single page, continuous)
Measure annotation and highlighting features
Document energy consumption metrics
Windows + Okular script:
Replicate testing scenarios from GNU/Linux + Okular script
Adapt window management code for Windows environment
Collect equivalent energy consumption data points
Windows + Adobe Acrobat Script:
Mirror the same testing scenarios as Okular script for a direct comparison
Account for Adobe Acrobat's specific UI elements and behaviors
Test comparable features (navigation, search, annotations)
Measure energy consumption patterns
Interested In Contributing?
KdeGuiTest is hosted here. If you are interested in contributing, you can join the Matrix channels KdeGuiTest, KDE Eco, and Measurement Lab Development and introduce yourself. Thank you to the Season of KDE 2025 admin and mentorship team, the KDE e.V., and the incredible KDE community for supporting this project.
Please feel free to contact me here: <@oree_x:matrix.org>
Stability improvements in KDE PIM-land, and polls in NeoChat
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.
We had a busy week in PIM land with various stability improvements. We also did a small mini sprint on Saturday in Carl's kitchen where we worked and discussed about online accounts, KDE PIM, Itinerary, and Transitous, among others.
(Only photo we made during the sprint)
Due to a personal vacation, during which I will enjoy a three-week break from computers, this is my last "This Week in KDE Apps" blog post until April 20.
General
Stefan fixed several memory issues in the KDE mobipocket support library, which is used in Baloo and Okular. (Stefan Brüns, 25.04.0. Link)
Krzysztof fixed a crash when opening an email with a calendar invitation. (Krzysztof Nowicki, 25.04.0, Link)
Krzysztof also fixed the reauthentication and OAuth credentials storage of the EWS support in Akonadi. (Krzysztof Nowicki, 25.04.0. Link)
Carl hid the mail-specific caching options from calendar and contact folder options. (Carl Schwan, 25.04.0. Link)
Merkuro Calendar Manage your tasks and events with speed and ease
A new contributor, Pablo Ariño, fixed a bug in which double-tapping in the calendar failed to open the event creation dialog. Pablo also fixed a bug that occurred when clicking on the "New Event" button on mobile. (Pablo Ariño, 25.04.0. Link 1 and link 2)
Tobias ported the dialog that lets you see and edit the calendar settings from QWidgets to QML, redesigning the whole dialog at the same time. This is currently only available in the Calendar app, but also expected to be added to the Contact and Mail app soon. (Tobias Fella, 25.04.0. Link)
Tobias and Carl worked on preventing the user from removing the "local folder" resources, which Merkuro Mail requires to work correctly. (Tobias Fella & Carl Schwan, 25.04.0. Link 1, link 2 and link 3).
Tobias also fixed a crash when trying to open some folders. (Tobias Fella, 25.04.0. Link)
Carl reworked the list of contacts; similar to the email list in Merkuro Mail, the contact list now supports multiple selection as well as applying actions to all selected contacts. The code was also cleaned up a bit, and the avatar of the icon is now displayed at higher resolution. (Carl Schwan, 25.04.0. Link)
KOrganizer KOrganizer is a calendar and scheduling application
Allen added a new date picker that allows navigating faster to a selected date. (Allen Winter, 25.08.0. Link)
Allen also improved the tooltip of the search fields. (Allen Winter, 25.08.0. Link)
Volker fixed the display of coach/seat numbers when having a separate seat reservation or multiple travelers with different seat reservations. (Volker Krause, 25.04.0).
Carl added support for events' ticket emails from Universe (e.g. Lollapalooza) in English. (Carl Schwan, 25.04.0. Link)
The "Open Terminal" and "Open Terminal Here" actions will now use the icon of your default terminal instead of the generic utilities-terminal icon. (Angus McLean, 25.08.0. Link).
Two weeks ago we announced a new style for the location bar. As with most very visible changes, the response to this was mixed. We are currently working on options that will hopefully make everyone happy.
Kai excluded the state configuration folder (i.e. $XDG_STATE_HOME) from the set of files to back up, as this only includes machine-specific settings. (Kai Uwe Broulik, 25.08.0. Link)
Andreas fixed a crash when trying to open a broken or missing document. (Andreas Cord-Landwehr, 25.08.0 but a backport request was created for 25.04.0. Link)
Andreas also finished porting Artikulate to Qt 6, building on earlier work started by Grigoris Pavlakis. (Andreas Cord-Landwehr and Grigoris Pavlakis, 25.08.0. Link)
Carl adapted the query page from Itinerary to be used in KTrip, significantly improving the UI while also exposing the mode of transportation. More UI sharing between Itinerary and KTrip is also planned. (Carl Schwan, 25.04.0. Link)
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.