Skip to content

Thursday, 6 November 2025

A new version of Plasma Camera and Plasma Settings have been released

We have a new release of Plasma Camera and Plasma Settings!

Plasma Camera changes:

  • Timestamp EXIF data is now added to photos (MR)
  • Fix log of libcamera property names (MR)
  • Don't default to first pixel format by libcamera (MR)
  • Selectable filename pattern and output path (MR)
  • New translations

Plasma Settings gained the ability to show all settings modules (for all platforms, such as desktop) under a toggle. It now supports the ability to show an "Apply" button for settings modules that do not want settings to save automatically. The header being misaligned on category pages is now fixed.

  • Use custom page stack (MR)
  • Have larger delegates on mobile (MR)

Visit /info/independent-releases-25-11 for the tarballs.

Please note: most Plasma Mobile software is now shipped under the Plasma or KDE Gear release cycles.

Wednesday, 5 November 2025

This post is about how we met KITE‘s team and visited some schools during our family visit trip in Kerala. For those who don’t know, KITE stands for “Kerala Infrastructure and Technology for Education”; they are in charge among other things of the GNU/Linux distribution for Kerala schools and training teachers to use it. GCompris is used a lot there, as it is the main software used in their ICT curriculum textbooks for classes I to IV. The widespread and official use of Free Software in Kerala schools really is an awesome model.

Some names from left to right: 1st is Abdul Hakeem, 3rd is my wife Aiswarya, 4th is Anvar Sadath K., 5th is me.

The connection with KITE happened thanks to Aiswarya’s sister’s husband, Karunraj K. He recently got hired by KITE, so even before going we knew we would try to meet some of their team. During some discussions with him, I understood they did some small customization to their GCompris package to fit their specific needs, but most importantly they added translations and voices for Tamil and Kannada languages. They need those with Malayalam and English as the Kerala state shares borders with Karnataka and Tamil Nadu, so they have many pupils in border areas speaking those languages. Of course my first reaction was to look for their sources to upstream those translations and voice files missing from our GCompris package. Sadly, after searching through their distribution and online, the sources were nowhere to be found, the only way to get them was to ask for it. This was one more motivation to get in touch with their team.

From right to left: Karunraj, Aiswarya, me, Surendran, and two other KITE team members in Kannur

Karunraj invited us to visit KITE’s office of Kannur district, where we were warmly greeted by the local team. We met Surendran Aduthila (head of the local team), with whom we could start discussing several topics, including how to get their translation files. He made some calls to investigate the issue, and soon enough we got in contact with KITE’s CEO Anvar Sadath who invited us for a meeting at KITE’s headquarters in Trivandrum a few days later.

Everyone is listening…

For this meeting, they also invited several team members from various districts involved in their GNU/Linux distribution and software development projects. First, I explained how important it is to publish their sources, especially for customized Free Software packages, ideally using both some public git repositories and the standard way to publish source packages for debian-based distributions. Using public git repositories could also help them to organize their work, and allow some external contributions. It seems they understood it clearly, and decided to follow this path.

I showed them for reference the French education forge portal, which includes a dedicated gitlab instance for teachers to host and share their projects (mostly software and tutorials), and a dedicated instance of matrix chat server for internal communications. They looked very interested, and discussed about how they could do something similar and reuse some of the educational content available from this forge. I also showed them the work from Primtux, the French GNU/Linux distribution for primary schools, which has a lot in common with their own distribution.

We discussed about how we could collaborate, like how it would be better for their translation team to work directly with us, or how we could develop some new activities together. We also discussed especially about how GCompris is used for children with special needs, and how the coming “GCompris-teachers” (a new side application we are working on, allowing teachers to create customized datasets and analyze pupils results) could be useful for this use case. And I spent some time with the head of their GNU/Linux distribution project, Abdul Hakeem, giving various tips, especially to improve their customized packaging of GCompris. And of course I could get those wanted translation and voice files from his computer, with all the necessary info to add them to our repositories 🙂

Discussions…

Also, I gave them some tips about how to turn some of their in-house software into proper Free Software projects, as it is something they were interested to do but were missing some insights about how to proceed.

Finally, Aiswarya shared her experience with Kerala’s Free Software based education and how it helped her to build her career. Also, she helped me a lot during the meeting when translating some things to and from Malayalam was needed.

Globally it was a very tight-scheduled session, but I think we could cover all the most important topics. I’m very happy of this meeting, and looking forward to future collaborations.

It was covered by the press, and an article was published in The Hindu newspaper the next day (original article behind a paywall).

Article in The Hindu newspaper

Two days later, I was invited to Kannur district’s “IT MELA” (IT Fair), a yearly school event with some competitions on IT topics. On this day was the digital painting contest, which I was very interested to attend: pupils had one hour to paint an image on a given subject, using either Krita or GIMP and a mouse(!). Digital painting without a graphic tablet is super difficult, so I was very impressed to see what those pupils could achieve this way. There was also a Malayalam typing contest (using a special in-house software to track typing), and a web design contest. Again I was super impressed to see what some pupils could produce in one hour with pure HTML+CSS (no frameworks allowed).

A laptop used for the digital painting contest, with the event’s wallpaper

This time again my visit was covered by the press, and the next day almost all local Malayalam newspapers had an article about it.

A Malayalam newspaper
Another Malayalam newspaper

Finally, I had the chance to visit Kuttiattoor’s primary school where I made a little speech to pupils about the importance of Free Software in education. The teachers showed me the ICT “PLAYBOX” textbooks, and gave me an English hard copy of the book for class I.

The ICT textbook for class I (1st Standard)

I’d like to thank again all those who were involved in the meeting organization, the IT MELA visit and the school visit. And thanks a lot to our family in India for the support!

Introduction

I finally have a good desktop computer for streaming, and I have been testing streaming KDE documentation work on Twitch (with occasional Silksong speedrunning) while using a bunny avatar.

It’s time to announce it: I now stream mondays to fridays at 8 PM UTC (5 PM UTC-3 / Brasilia time) on twitch.tv/herzenschein. Come and say hi, ask about KDE stuff there!

Tuesday, 4 November 2025

Blog post describing the evolution of my "remote office" set up in the last couple of years.

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!

Saturday, 1 November 2025

Last week I attended the 2025 edition of the CAP Implementation Workshop in Rome, Italy, a three day conference around the use of the CAP protocol for emergency warnings.

Common Alerting Protocol (CAP)

The Common Alerting Protocol (CAP) is an OASIS standard for exchanging emergency alerts between altering authorities (meteorological or hydrological institutes, civil protection authorities, etc.) and alert dissemination channels (mobile network operators, media broadcast, sirens, etc.).

Common Alerting Protocol (CAP)

As that’s very widely used all over the world, including for global aggregation of alerts (e.g. by Google or by us), there’s the yearly CAP Implementation Workshop as a forum for exchange between all those stakeholders. Besides alerting authorities and aggregators/distributors this also included NGOs helping with and pushing for setting up early warning systems for weather, climate or geophysical emergencies as well as equipment vendors and researchers.

Alert Aggregators

With the FOSS Public Alert Server we have implemented and operate a CAP alert aggregation service, which receives alerts from more than 200 sources.

This means we get to deal with alert feeds becoming temporarily unavailable, feeds changing their URL, different interpretations of the data formats and other interesting issues in the alert data. All of that needs continuous monitoring, investigating and working on resolving issues with the alert publishers or, when that’s not possible, implementing technical workarounds.

We aren’t facing this alone though, it’s the same for all aggregators. In order to at least avoid duplicated efforts there’s now plans to improve collaboration and establish a communication channel between the aggregators.

Perfectly timed we discovered a new issue during the conference which was triggering problems on our server as well, caused by an alert feed reusing identifiers that were meant to be permanently unique.

Talk

Our talk on Thurday afternoon mainly focused on our observations and experiences with data availability, data quality (particularly from an end-user perspective) and CAP standard ambiguities (slides).

Photo of us on stage at the CAP Implementation Workshop, after finishing the talk.
Q&A after the talk

This includes:

  • Alert feeds being inaccessible for automatic access due to captchas, geo-blocking, paywalls or outright denial of access.
  • Alert feeds preventing redistribution with license or copyright restrictions.
  • Alert feeds where the corresponding geocode geometry isn’t published.
  • Excessively detailed geometry and confusion between affected and to be alerted areas.
  • Different ways of implementing multi-lingual alerts.

The most important user-facing issue however is probably alerts stopping at borders while the corresponding emergencies or disasters don’t, and we weren’t the only ones pointing that out. That’s not a technical issue though, but a very political one.

A map showing a elliptic area affected by a toxic smoke cloud, which has the area of a neighboring state clipped out.
Alert area for a toxic smoke cloud being clipped to state borders.

Alerting Authorities

The alerting authorities on the other hand have a very different view on this, being legally prohibited from alerting outside of their corresponding jurisdiction. This is also part of the reason for excessively detailed area geometries and additional technical complexity like device-based geofencing for more precise cell broadcast targeting, ie. things I’d even consider counter-productive in many cases.

It’s not like this problem isn’t recognized by some alerting authorities at least, there’s e.g. some promising collaboration for cross-border alerting between Belgium, Germany and the Netherlands.

There were other topics we were able to discuss with representatives from alert producers as well, such as:

  • Obtaining access to feeds we currently don’t have, such as non-weather alerts in Belgium or volcano warnings in Iceland.
  • Finally resolved an issue with wrong categories on non-weather alerts in Germany.
  • Meteoalarm’s upcoming rollout of ETL category codes, avoiding us having to deal with custom CAP extensions.

Standards and common practices

I had so far underestimated how much the Common Policies and Practices document is relied upon to clarify room for interpretation and corner cases of the CAP standard, such as:

  • Polygon winding order and thus how to deal with geometry crossing the anti-meridian.
  • 0-radius circles.
  • Alert content licensing.
  • Category and ETL event code translations.

Those are things we had encountered as well, so this helps. However, since those are merely common practices and not requirements of the standard, we can’t rely on this and thus it’s not a viable solution for the anti-meridian crossing geometry problem at least, as that remains ambiguous.

The other aspect that still needs a proper solution (which is in the works) is the ETL versioning issue, that I at least only realized to the full extent while discussing this at the conference: There’s a draft version with completely different meanings of the event codes and which due to a misunderstanding appears to have the higher version number.

To make matters worse, the key for those values is the same (OET:v1.0), so they aren’t distinguishable at all, which practically means we can’t distinguish whether a warning is about a dust storm or a drug supply issue, nor whether it’s about the fall of snow or space debris, for example. That currently renders all existing ETL codes practically useless unfortunately.

Outlook

It’s always good to meet everyone involved in person, and this helped a lot with getting a better understanding of the views and priorities of different stakeholders as well as with clarifying a number of details of CAP usage. Let’s see what we can get going in terms of closer collaborations with other aggregators here.

Welcome to a new issue of This Week in Plasma!

This week we worked really hard on fixing bugs! Overall, Plasma 6.5’s rollout went smoothly. But there were some regressions, and we’ve been working on fixing them as quickly as possible. Hopefully the release of 6.5.2 on Tuesday should have all the important stuff sorted.

In addition, several features that have been in development for a while were merged for release in Plasma 6.6 in a couple of months. And with the urgency for madly fixing bugs receding, a bunch of UI improvements managed to make an appearance as well. There’s some really cool stuff here! Check it all out:

Notable New Features

Plasma 6.6.0

You can now configure your preferred level of visual boldness for the frames and outlines around Breeze-themed UI elements, or even turn them off entirely. This supports people who like everything to blend into everything else or only be separated by different background colors, as well as people who need high contrast accessibility-oriented color schemes. To learn more, see Akseli’s blog post on the topic. (Akseli Lahtinen, link)

0% frames
10% frames
20% frames (current default value)
35% frames
100% frames

When using hardware that supports it and version 6.19 or later of the Linux kernel, you’ll be able to adjust the visual “sharpness” of all content on the screen. (Adarsh G M, link 1, link 2, link 3, link 4)

Implemented the USB portal, which allows sandboxed apps to request access to USB devices. (David Redondo, link)

Notable UI Improvements

Plasma 6.5.2

Improved KRunner’s search result ordering, as the fuzzy feature introduced in Plasma 6.5 exposed and worsened some pre-existing deficiencies. Now KRunner will prioritize exact matches of names and keywords, substring matches anchored to the beginning of the name or caption, and substring matches in the middle, all before moving onto any fuzzy matches. (Harald Sitter, link 1, link 2, and link 3)

KRunner showing “Visual Studio Code” as the first result for a search using the term “code”
KRunner showing GNU Image Manipulation Program” as the first result for a search using the term “gimp”

Changed the blur implementation in Plasma 6.5 to be more like it was in Plasma 6.4: now the “background contrast” effect is off by default and needs to be opted into, and the Breeze Plasma style does opt into it. This should resolve issues with blurs appearing brighter than intended, especially with dark color schemes and Plasma styles, and “fully transparent” Plasma styles. (Marco Martin, Vlad Zahorodnii, and Niccolò Venerandi, link)

Kickoff widget showing a dark blur

Plasma 6.6.0

The slideshow wallpaper thumbnail grid that appears in a few places now has “Select All” and “Deselect All” buttons. (Adam S., link)

Slideshow wallpaper view with “Select All” and “Select None” buttons

Improved the way some of the Info Center pages display their content. (Michał Kula, link)

The Breeze GTK theme has dispensed with button gradients, as the Breeze theme for Qt apps did a while ago. (Someone going by “chocolate image”, link)

All the sliders on System Settings’ Display & Monitor page now have the same width. (Vsevolod Stopchanskyi, link)

System Settings’ Bluetooth page has received some tweaks to better conform to the KDE Human Interface Guidelines: list item buttons are framed, the “Connect” buttons have visible text, and the page for the active device closes when Bluetooth is disabled. (Nate Graham and Ivan Tkachenko, link 1, link 2, and link 3)

System Settings’ Bluetooth page showing framed buttons in the list view

You can now re-check for updates in Discover after existing updates have finished being installed and the app is prompting you to reboot. (Nate Graham, link)

Added a bit of needed padding to the top of the single-monitor layout on System Settings’ Wallpaper page. (Nate Graham, link)

Adequate top padding on the Wallpaper page

You can now launch System Settings with Meta+I, which may be familiar to Windows refugees. (Méven Car, link)

Added “dxdiag” to the list of keywords that will let you find Info Center’s graphical info pages. Note to certain Phoronix commenters: the beatings will continue until morale improves. (Michał Kula, link)

Plasma’s text fields now use standard-style buttons for their inline actions, which improves visual consistency and accessibility. This change is also coming to KDE’s Kirigami-based apps in Frameworks 6.20. (Nate Graham, link)

Frameworks 6.20

The “starred/un-starred” icons used throughout Plasma and KDE apps now have margins that match other icons. (Nate Graham, link)

Row of icons in the Clipboard popup showing a star icon that’s roughly the same size as the other ones

Notable Bug Fixes

Plasma 6.4.6

Fixed one of the only two known data loss issues in Plasma: where the text of a Sticky Note widget on the desktop could get lost if the note is created via middle-click-paste and never clicked in to focus it, or when Plasma crashed or the system lost power while the note had active focus with unsaved changes. Now the text is continuously auto-saved 10 seconds after the last change. (Nate Graham, link)

Screencasts of rectangular regions no longer lose resolution on screens using a scale factor higher than 100%. (David Redondo, link)

When using numberpad-based pointer movement and holding down the “5” key to simulate a press-and-hold, moving the pointer using a pointing device like a mouse no longer releases the drag prematurely. (David Redondo, link)

Fixed an issue that made wallpapers with certain symbols in their filenames fail to display thumbnail previews. (Kai Uwe Broulik, link)

Plasma 6.5.1

Fixed a case where KWin could crash when you disconnected a screen. (Xaver Hugl, link)

Fixed a bug preventing the “Swap Memory” column from showing up in System Monitor. (Arjen Hiemstra, link)

Fixed another source of the bug that made System Monitor widgets using the “Text Only” style appear empty after a restart. (Arjen Hiemstra, link)

Fixed a bug making the switch to enable and disable the firewall still interactive when no firewall backend is installed. (Kai Uwe Broulik, link)

Plasma 6.5.2

Fixed a case where KWin could crash after moving the pointer on certain external screens plugged into certain laptops with certain graphics drivers. (Xaver Hugl, link)

Fixed a case where the screen chooser could crash when you asked it to create a new virtual output. (Xaver Hugl, link)

Fixed a case where Discover could crash when accessing the “Installed” page on distros with asserts turned on that ship firmware files in their main repos. (Aleix Pol Gonzalez, link)

Fixed a regression that made it impossible to paste clipboard contents into WINE apps. (Vlad Zahorodnii, link)

Fixed a regression that broke copy-paste from certain apps to certain VMs. (Vlad Zahorodnii, link)

Fixed a regression that broke Spectacle’s options to exclude window shadows, borders, and titlebars from window screenshots. (Xaver Hugl, link)

Fixed a regression that could make the pointer get stuck in games played using WINE in native Wayland mode. (Xaver Hugl, link)

Fixed a regression that made the loopback interface visible in the Networks widget. (Nate Graham, link)

Fixed a regression that broke the Quick Launch widget’s off-by-default popup feature. (Nicolas Fella, link)

Fixed an issue that made Plasma inappropriately send notifications about loopback and other special connections after waking from sleep. (Kai Uwe Broulik, link)

Fixed an issue affecting the day/night color change feature with sunset times after midnight. (Vlad Zahorodnii, link)

Frameworks 6.20

Fixed one of the top 10 Plasma crashes which could happen to people using lots of System Monitor widgets. (Arjen Hiemstra, link)

Fixed a bug that made the open/save dialog not show any files when invoked by certain Flatpak apps that specified their supported mimetypes using file globbing. (David Redondo, link)

Qt 6.10.1

Fixed the most common Plasma crash in Qt. (Ulf Hermann, link)

Fixed a regression that made the glow effect for screen edges and corners not use the right color. (Hatem ElKharashy, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.6.0

The virtual desktop limit has been raised from 20 to 25, allowing you to create perfect 5x5 grids if that’s the way you roll. (Blazer Silving, link)

Frameworks 6.20

Made a technical change to the way config file locking happens, which aims to prevent a rare case where Plasma could hang forever on login when using an LDAP-administrated home directory on an NFS share. (Sebastian Sauer, link)

How You Can Help

Donate to KDE’s 2025 fundraiser! It really makes a big difference. We’ve officially hit our €50k goal and are now working towards the stretch goal of €75k! This is the time of year when KDE does over half its fundraising, evidence of all your incredible generosity. Thank you everyone for helping to keep the lights on!

If money is tight, you can help KDE by directly getting involved. 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.

To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.

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.