Skip to content

Tuesday, 4 November 2025

Image of a yellow star with an orange circle centered in the star and within the star the text "</>" representing Google summer of code next to a plus sign next to a three quarter gear with a K representing KDE

This year we again participated in Google Summer of Code and we had 12 successful projects.

Akonadi/Merkuro

Merkuro is a modern groupware solution and uses Akonadi as backend. This year we had two mentees working on Akonadi, and in particular on how the resources and their configuration dialogs interact with Merkuro on mobile.

  • Pablo Ariño worked on improving the memory usage of the Akonadi agents and resources. He did that by ensuring the configuration dialogs of the agents is moved to a separate plugin which is then loaded on demand by the application, instead of having the agents being GUI processes which handle their configuration dialogs directly.

  • Shubham Shinde worked on the UI side of things by writing the infrastructure for config dialogs to be written in QML. This is extremely important to get mobile optimized dialogs on mobile and is also a good occasion to clean the dialog code up. All the major code changes can be found on the following merge requests: Akonadi and KDE PIM Runtime.

Kdenlive

Kdenlive brings you all you need to edit and put together your own movies. We had 1 project for KDE's full-featured video editor:

  • Ajay Chauhan improved the supported for timeline markers in Kdenlive. Previously, we only supported single point markers, which can be used to mark a specific point in time. Ajay added support for duration-based markers that define a clear start and end time.

ISO Image Writer

  • Akki Singh worked on a port of ISO Image Writer from QtWidgets to Kirigami. Akki also added a bunch of features to the app such as allowing you to download ISO images for some of the more popular KDE distributions, or from an URL automatically.

OSS-Fuzz Integration

OSS-Fuzz is a program by Google were our code is fuzzed by them in search for vulnerabilities.

  • Azhar Momin focused his work on improving the OSS-Fuzz integration in the KDE libraries. Azhar moved our configuration to our repos, making them easier to maintain, and the fuzzer now scans many thumbnails formats (e.g. poppler, syntax highligted text, krita archives, mobipocket and many more). He also fixed some of the bugs detected by the fuzzer like a memory leak in the blender thumbnail extractor.

KDE Linux / Karton

  • Derek Lin worked on the new virtual machine manager from KDE named Karton. He implemented, among other things, keyboard input support, basic SPICE viewer (non hardware accelerated) and audio support.

Since the end of GSoC, he has also added hardware acceleration to the playback and you can find more information about that on his blog.

GCompris

GCompris is KDE's educational suite for children learning at home or school. It comes with around 200 activities to learn while having fun. The next iteration of the suite adds a teacher panel to follow the progress of children and provide customised exercises to focus on specific topics.

Mankala

The Mankala engine is a project that was started during last year's GSoC. The project is still in review and is pending integration into KDE.

  • Srisharan V S worked on a cross platform GUI for MankalaEngine. On the desktop, it is possible to play Mankala games against a remote opponent provided both players have XMPP accounts. The GUI uses QXmpp for networking. The GUI works on both desktop and mobile, though network play is not yet available on mobile as support for this needs to be re-enabled in the QXmpp library.

Krita

Krita is KDE's free and open source cross-platform application for creating digital art files from scratch.

  • Ross Rosales worked on improving Krita's usability by adding a UI to display common selection actions after selecting a layer. More details on Ross journey are available on his blog. The feature request was opened in 2022 and will be available in the upcoming 5.3 version of Krita.

Cantor

Cantor is a powerful mathematical and statistical computing front-end within the KDE ecosystem. Two contributors worked on improving Cantor this year:

  • ZhengJiahong added features to improve Python support. Once the merge request is finished, users will be able to switch Python virtual environments to improve the user experience.

  • Lv Haonan worked on integrating KTextEditor in Cantor to replace the custom made spreadsheets. This has several advantages: the current spreadsheets lack some features (auto-indent, code completion, spell checks...), they require extra maintenance from developers where a better solution already exists within KDE, and it will bring consistency between the different backend editors.

Mentorship Portal

One of the current KDE Goals is to improve the long term sustainability of KDE by recruiting and keeping more newcomers.

  • Anish Tak worked on extending the current mentorship website to make it cleaner and with more information for newcomers.

KWin

KWin is an easy to use, but flexible, window manager and compositor for the KDE Plasma desktop. It controls how windows are drawn, moved, and displayed, handles input (keyboard, mouse, touch, etc.).

Yelsin 'Yorisoft' Sepulveda worked on adding game controller input support to KWin. By using input libraries like libevdev he was able to add a option in Plasma System Settings that enables awareness of game controllers and detects their input. This was essential for adding features, such as:

  • Mapping Game Controller inputs to Keyboard and Mouse
  • Navigating Plasma Desktop with Game Controllers
  • Preventing Sleep/Suspend when gaming with controller and leaving keyboard/mouse idle

Next Steps

The 2025 GSoC period is finally over for KDE. A big thank you to all the mentors and contributors who have participated in GSoC! We look forward to your continuing participation in free and open source software communities and in contributing to KDE.

Monday, 3 November 2025

Qt WebEngine Custom Server Certificates

In this blog post, we’re having a look at how we added support for custom server certificates to Qt WebEngine. This way an application can talk to a server using a self-signed TLS certificate without adding it to the system-wide certificate store.

Continue reading Qt WebEngine Custom Server Certificates at basysKom GmbH.

FLOSS/fund badge

Zerodha created FLOSS/fund to support free and open source software projects, and one of the projects FLOSS/fund supports is Krita! We were part of the first tranche: FLOSS/fund first tranche: $325k to 9 projects.

The $50,000 the Krita Foundation has received has been earmarked for improving Krita on Android. We've already started working on the project, in cooperation with Drawpile.

Thank you, FLOSS/fund!

Friday, 31 October 2025

KWin, our fantastic and flexible window manager and Wayland compositor, can not just drive your session but also run in windowed mode for development purposes:

$ dbus-run-session kwin_wayland --exit-with-session kwrite

Et voila, a windowed KWin appears, running KWrite. The separate DBus session is important so it doesn’t mess with your running session, notably trying to take over your global shortcuts.

A black window “KDE Wayland Compositor” containing a KWrite editor window
KWrite running inside KWin Wayland running inside KWin Wayland

Speaking of shortcuts: when grabbing the mouse (press right Ctrl), it now blocks the session’s global shortcuts. This makes it behave more like a full “input grab” on X11. As a result, you can now use global shortcuts in your windowed KWin, for instance to more easily trigger the Overview effect (Meta+W), if you want to work on it without affecting your running session.

KWin also includes a debug console that lets you inspect open windows, see input devices and events, the state of the clipboard, load and unload desktop effects, and so on. We particularly moved developer-facing desktop effects (like the “Compositing” indicator or FPS effect that isn’t a benchmark™) from System Settings to the debug console. You can access it by typing “kwin” in KRunner and selecting “KWin Debug Console”. Mind that it’s a developer tool, so function definitely outdoes form.

After a recent bug report about a blurry window icon in the Alt+Tab window switcher, I noticed that we didn’t include any information about the window’s icon. It would have been helpful to see the icon name used, if any, and what sizes were available. In fact, there were a couple of window properties using custom types that the debug console didn’t know how to visualize. I therefore added a couple of custom converters to the tree model:

  • QIcon, (e.g. window icon): Display the icon, its name, and list of available sizes. Generally, for properties of Window type, such as dialog parent (transient parent), also show the window icon
  • KWin::Output: the name of the output, its geometry, and scale factor
  • KWin::Tile (quick tile and custom tiles): its geometry, shape (e.g. floating) and/or quick tile mode (e.g. left/right)
  • KWin::VirtualDesktop: its name
  • QPalette (e.g. window color scheme): show a 2×2 grid of important theme colors, similar to the application color scheme selector we have in many apps
KWin’s Debug Console showing a list of window properties (color scheme, desktop file name, height, icon, etc)
A lot more value in the debug console window list

With that, the list of windows becomes much more useful and nicer looking. For those who prefer a command-line tool, David Redondo added a little kwindowprop application similar to xwininfo that prints information about a given window.

Wednesday, 29 October 2025

For a while now, probably two years, I wanted to have support for high-contrast colorschemes in KDE Plasma.

Technically, this was already doable, by just modifying your colorscheme to such colors. However one thing was lacking: Outlines were calculated automagically with hardcoded value.

Well, no more! Now you can set your own frame contrast value! And you may ask "Why not change the color completely?" which is a good question and I will answer that later.

This feature will be in Plasma 6.6. Hopefully. Or if you use KDE Linux you can already try it out. :)

The settings

This is how the settings will look like.

This setting used to be a slider.. And guess what, it did nothing in Breeze style. It was leftover from Oxygen times. Do not worry though if you use Oxygen style, the slider value is just percentage now and it will be converted to the value Oxygen uses.

Desktop examples

Some examples how it might look like in desktop setting.

All items are updated to follow this:

  • QtQuick windows (qqc2-desktop-style)
  • QtWidgets style and decorations (Breeze)
  • Plasma SVG files (Anything using class: ColorScheme-Frame )

There's still some bugs with panels not always updating immediately, though we're working on fixing them.

Why not change the whole color?

Currently across all of our apps and styles, we do the following:

  • Take background color and foreground color
  • Mix them with previously hardcoded frameContrast value, which was 0.2
  • Use that as the color for all the frames

If we wanted this to be recolorable completely, we would have to go through every single occurence of this color mixing. Most apps luckily rely on the styling, but some may have custom things, for example custom QtQuick Controls that are doing this manually, using the Kirigami.Theme.frameContrast value.

I think we most likely would have gotten away with it for most apps, but then rest of them would look wrong, and some of them may not even be KDE apps but are using Kirigami.. So we would need to tell everyone to do this update, or risk things look broken.

This was the compromise solution: Allow users to change the Kirigami.Theme.frameContrast value to whatever they wish, even turn it off. :)

A lot of work

This was a lot of work. In total, it was 8 merge requests that had to work together and be merged in correct order, etc..

And this is why modifying Breeze in our current stack is so difficult. You have to do many many changes across the platform.. And make sure that nothing breaks in the process!

My first draft: Use kdeglobals

First step for me was trying to make this a global configuration value only in ~/.config/kdeglobals, which every platform would watch for modifications for this particular value.

It worked fine, but it was quite messy, and I had to make sure all the default values across the stack would be synced. That is annoying for anyone who wants to maybe modify the default value later. On top of that, I felt like different platforms constantly watching the config file for changes just was not a good idea..

Second draft: Use KColorScheme

After chatting with people, we decided it would be best to just add this as a new value into our KColorScheme library. Instead of all the platforms looking for this configuration change, only the KColorScheme library did it.

This allowed me to simplify the implementation significantly.

Summary of changes

All in all, I had to do the following:

  • Update KColorScheme to load this value from kdeglobals/current colorscheme | Link
  • Update the settings for plasma-workspace to allow users to change this value | Link
  • Update Breeze window decorations and QtWidgets style to use this value | Link
  • Update Kirigami platformtheme to notify any platforms that use it about the changes | Link
  • Update the libplasma library to actually listen for changes to this contrast value and change accordingly | Link
  • Update qqc2-desktop-style (QtQuick style) to listen for changes to this value and change accordingly | Link
  • Update KSvg library so that the Plasma styles can now use ColorScheme-Frame class to load correct color | Link
  • Update kde-gtk-config to make sure the Breeze GTK theme also updates correctly when value is changed | Link

Yeah. It's a lot. This took me about a week to work on.

A week to make one number user modifiable.

Now imagine how long it would have taken if I had made the whole color modifiable!

And remember, there's tons of legacy code here which rely on each other, so I could not take shortcuts at places without possibly breaking everything.

And that's why Union was born

This is why Union is such an important project when it comes to styling, and which is why we are most likely NOT going to modify Breeze much further, aside maintenance: A lot of work for even small changes.

Union lets us have a "single source of truth." We can change things only in one place and (hopefully) see the visuals update everywhere, be it QtQuick, QtWidgets or Plasma style or whatever we decide to support! Which means easier to work on styling and iterate on it, designers have easier time collaborating because changes do not take days.. Etc.

So I am putting more effort in Union from now on.

Summary and future

I felt this was important change due to accessibility reasons, so I did it. And I am happy that I did, even if it was tons of work. (And there's more left with bugfixing lol.) This will also help alleviate issues where people feel like our apps are too "framey." You can now turn them off (well, you can make their color same as the background color) by setting the contrast to 0%. I must warn you that setting the value to 0% will probably look broken at some places, so we will probably have to add a warning to the color editor that "hey this is not optimal but you can do it lol."

In short-term future, I want this to be tied to the desktop portal interface for high-contrast accessibility preference: When user has this enabled, be they on Plasma desktop or not, the applications will maximize this frame contrast value automatically.

And then, there's bug hunting and finding out any weird inconsistencies. If you spot any, please report them to https://bugs.kde.org!

In long-term, this whole color thing will be rewritten to something much more robust, shinier, fancier and it will work with Union and everything is nice and beautiful. At least, that's what I hope.

I hope people will like this feature, especially those who need high-contrast colors.

Thanks for reading.

Tuesday, 28 October 2025

Fedora 43 has been released! 🎉 So let’s see what is included in this new release for the Fedora Atomic Desktops variants (Silverblue, Kinoite, Sway Atomic, Budgie Atomic and COSMIC Atomic).

Note: You can also read this post on the Fedora Magazine.

Changes for all variants

zstd compressed initrds

Alongside the rest of Fedora, we are now compressing our initrds with the Zstandard (zstd) algorithm. This should make the initrd a bit smaller and the boot a bit faster.

See the Fedora Change request and the tracking issue atomic-desktops-sig#34.

2 GB boot partition

Alongside the rest of Fedora, systems will install with a 2GB /boot partition. This should make things easier with the growing initrd sizes (mostly due to firmwares). Existing systems will require a backup and re-install to benefit from this change.

See the Fedora Change request.

wireguard-tools added

We are adding the wireguard-tools to all variants. Users can still use the graphical interface in their desktop environment to configure WireGuard connections. However, it should now be easier to debug issues using the wg tool. This change was decided too late to be included in the installation ISO but it will come via an update.

See silverblue#390 and kde-sig#381.

plocate removed

We removed plocate from all variants.

See atomic-desktops-sig#81.

What’s new in Silverblue

GNOME 49

Fedora Silverblue comes with the latest GNOME 49 release.

For more details about the changes that alongside GNOME 49, see What’s new in Fedora Workstation 43 on the Fedora Magazine.

Workaround for Third Party page hang

We temporarily removed the Third Party page shown during the first boot as it was causing issues. Users will be asked if they want to enable Third Party repositories when then open GNOME Software.

It will be re-enabled once we figure out where the bug is.

See silverblue#650 and atomic-desktops-sig#74.

openssl added for GSConnect

We added the openssl command line tool to Silverblue, to make the GSConnect extension work without having to resort to package layering or sysexts.

See silverblue#201.

What’s new in Kinoite

KDE Plasma 6.4, with 6.5 coming soon

Fedora Kinoite ships with Plasma 6.4, Frameworks 6.18 and Gear 25.08.

The update to Plasma 6.5 is ready should become available soon after the release.

See also What’s New in Fedora KDE Plasma Desktop 43? on the Fedora Magazine.

Weekly automatic updates by default

Updates are now automatically applied on a weekly basis, for Flatpaks and the system. You can configure the frequency or disable auto-updates in the system settings.

See the Fedora Change request and the tracking issue kde-sig#342.

What’s new in Sway Atomic

Fedora Sway Atomic comes with the latest 1.11 Sway release.

What’s new in Budgie Atomic

Fedora Budgie Atomic comes with the latest 10.9.3 Budgie release. Budgie 10.9.3 is a bug-fix and GNOME 49 compatibility release.

What’s new in COSMIC Atomic

Fedora COSMIC Atomic comes with the latest beta release of the COSMIC desktop.

Changes in unofficial images

XFCE Atomic & LXQt Atomic dropped in Fedora 43

Starting with Fedora 43, we will no longer build XFCE Atomic & LXQt Atomic unofficial images.

Universal Blue, Bluefin, Bazzite and Aurora

Our friends in the Universal Blue project (Bazzite, Bluefin, Aurora) have prepared the update to Fedora 43. Look for upcoming announcements in their Discourse.

As always, I heavily recommend checking them out, especially if you feel like some things are missing from the Fedora Atomic Desktops and you depend on them (NVIDIA drivers, extra media codec, out of tree kernel drivers, etc.).

What’s next

Roadmap to Bootable Containers

The next major evolution for the Atomic Desktops will be to transition to Bootable Containers. See also the Fedora bootc documentation.

We have established a roadmap (atomic-desktops-sig#26) and we need your help to make this a smooth transition for all of our existing users.

New home for the Fedora sysexts

We have moved the systemd system extensions (sysexts) to a new GitHub organization. The sysexts are now split between those built exclusively from Fedora packages and those built from various community sources. Make sure to update your systemd-sysupdate configs to point to the new URLs.

Moving to Fedora’s new Forge based on Forgejo

Now that Fedora’s new forge is available, we will start moving our repos there. You can find the new organization at forge.fedoraproject.org/atomic-desktops. We will likely start by moving the documentation and then issue tracker and the sources.

Where to reach us

We are looking for contributors to help us make the Fedora Atomic Desktops the best experience for Fedora users.

Monday, 27 October 2025

Level up your tabletop RPG experience with Dice Roller 3D!
Whether you’re deep into D&D, Pathfinder, or your favorite homebrew system, DicelyVerse gives you all the power of physical dice and more—right in your pocket.

https://play.google.com/store/apps/details?id=org.rolisteam.dicelyverse


🚀 Core Features

🌀 3D Dice Rolling Engine
Feel the thrill of real dice physics with stunning 3D visuals. Roll multiple dice with satisfying animations.

💬 Roll Dice with Commands
Type d20+5 or any custom command to get your results instantly. Supports advanced syntax for complex rolls!
The command engine is DiceParser.
See the documentation here.

🔁 Reroll with Ease
Need a second chance? Reroll instantly without retyping your command or resetting your dice.

📦 Macros – One Tap Commands
Save your favorite or frequently used dice rolls as macros for quick access. Perfect for initiative rolls, attack rolls, and spell damage!

✍ Aliases – Shortcuts for Long Commands
Tired of long roll strings? Set up aliases to keep your gameplay fast and your input clean.

📖 Character Sheet Integration
Store your character’s stats, modifiers, and abilities directly in the app. Pull values into rolls on the fly.

👥 Multiple Profiles
Play multiple campaigns or characters? No problem. Create separate profiles to keep everything organized.

🌘 Dark Mode
Change the UI to dark mode or light mode on the fly (no need to restart).

🌐 Translation
DicelyVerse
has translations available now: English, German, French, Italian, Spanish and Portuguese.


🎥 Watch it in Action!

📺 Check out our YouTube demo video showcasing the app’s features and real-time gameplay experience:

 

 


📱 Download Now on Android!

Simplify your tabletop experience. Make every roll count—with flair.

https://play.google.com/store/apps/details?id=org.rolisteam.dicelyverse


Early this year I got asked by Martin Wolf from Golem.de if I want to appear on their German podcast in respect to my work on Kate and the experience on maintaining it for 2 decades.

During the Akademy at Berlin the stuff got taped at the Golem office at Berlin and now it is online on the 'Besser Wissen' podcast site.

The podcast is in German like the text on the page. There is a full transcript of the podcast on the site, I guess your preferred browser can translate it, if you are interested :)

Comments?

A matching thread for this can be found on r/KDE.

KDE e.V. held its annual general meeting online. During the AGM, elections for two vacancies on the board of directors were held. Members Carl Schwan and David Redondo were elected and take a seat on the board.

We would like to thank Nate Graham and Adriaan de Groot for serving on the board during their terms.

Sunday, 26 October 2025

Tellico 4.1.4 is available, with several fixes and improvements. I appreciate all the feedback coming in and the bug reports being filed.

Improvements

  • Added configurable image size to OpenLibrary data source.
  • Updated OpenLibrary source to find covers for books without ISBN (Bug 507912).
  • Updated OpenLibrary source to update via OLID, if available (Bug 508897).
  • Updated OpenLibrary source to fetch notes (Bug 509062).
  • Updated OpenLibrary source to fetch plot (Bug 509124).
  • Updated CSV importer to load images.
  • Added option for image links to CSV importer (Bug 508666).
  • Added option for image links to GCstar importer (Bug 508665).
  • Updated GCstar importer to read external collection models (Bug 508664).
  • Added KDE shortcut keys for previous/next tab (Bug 508789).
  • Updated iTunes source for better movie results.
  • Updated iTunes source to allow specifying country.

Bug Fixes

  • Fixed crashing bug for opening truncated files (Bug 509364).
  • Fixed crashing bug for collections without a title field.
  • Fixed bug in location for saving images for temporary entry (Bug 508902).
  • Fixed bug in location for saving images for new collections (Bug 509245).
  • Fixed bug with matching entries with 979 ISBN prefixes (Bug 510329).