10 Nov 2026
Planet KDE | English
HDR part 2: Tone and Gamut mapping
One of the big things I wanted to achieve during this HDR project is to have a decent tone and gamut map filter, something Krita never had all these years, in spite of us having unbounded floating point editing as well as color management via LCMS that works with this unbounded floating point.
The unbounded floating point allows us to have values that might be (0.0, 0.5, 1.0) in linear rec2020, and then when converted to linear sRGB this becomes (-0.37, 0.56, 1.0). Now, the range of each channel here is [0 1], so if we try to represent that as an inbounds sRGB colour (which we need to do if we want to save for web), the default behaviour is to clip the out-of-bounds values, so we get (0.0, 0.56, 1.0). This changes the proportion between the blue and the red and green channels, meaning the hue and saturation will shift. In some cases, it can cause colours to gradually shift to values like (0.0, 1.0, 1.0). This is, for example, why your phone camera won't shoot that lovely orange sunset just right: The colors are too colourful and get pushed towards yellow due clipping. So to combat this, you do gamut mapping: you shift the colour in bounds by a certain algorithm before or after doing the conversion.
Gamut Mapping
The most common gamut mapping algorithm is chroma-reduction. This assumes that the target space and the source space have their greys at the same location (taking into account white point adaptation). Then, the colors are converted to a third space, a opponent color space that also has its greys in the same location.
Opponent color spaces are spaces where the luminosity are separate from the chromacity and hue, and the chromacity and hue themselves are expressed as a red-green and a yellow-blue contrast, following the opponent theory of human color vision. A typical example of an opponent color space is LAB, but there's many others, like YCbCr, ICtCp and OkLAB. These opponent colorspaces can then be translated to a Hue, Chroma and Luminosity space by treating the red-green and blue-yellow contrasts as Carthesian coordinates, and converting those to polar coordinates, giving us hue as the angle, and chroma as the length.
Then, for chroma reduction, you do a binary search to find the edge of the gamut, with each iteration, increasing the chroma or decreasing it, until the difference between the desaturated color, and the clipped version of the color is below a significant difference. That significant difference is called the minimum delta E, E being the name given to color difference by itself.


Shown above: a slice of LAB chromacity plane, with a black-to-white gradient diagonally. The first image is plain clipping to sRGB, while the second uses chroma reduction gamut mapping. In the first image, the chroma of the colors bottomleft and topright are so bright that when clipping they end up way with the wrong luminosity than they should have in reality. By doing chroma reduction, we pull these colours so far back in that their luminosity is preserved.
Krita implements CSS-4's chroma reduction method, and offers it with 3 different opponent spaces: LAB, ICtCp and OkLAB.
This is because the delta E calculation for LAB is a little off, in particular, LAB is known to give weird results with the blue, with bright blues looking a little purple in LAB. ICtCp and OkLAB are much more modern and are particularly designed to have much better handling of the blue hues, which is visible in the gamut mapping:

ICtCp and OkLAB also had the advantage of being possible to implement in an ad-hoc manner starting from XYZ, so I didn't need to integrate them directly into our color management system yet.
Besides binary search, there's the cusp method. Here, you figure out the luminosity and maximum chroma of a given hue (the cusp), and use that to approximate the gamut boundary. There's two ways to calculate the cusp:
The first is to use 6 polynomials, but that method only works with OkLAB as the opponent space and target RGB spaces that are matrix shapers. This in turns had to do with the simplicity of OkLAB as a colour space compared to other opponent spaces.
The second is to create a look up table of cusps per hue. Here, you take the known cusps in the target colour space and convert them to the opponent space to get their chroma and luminosity. This works for both CMYK and RGB spaces, as we know the likely cusps for those: Red, Yellow, Green, Cyan, Blue and Magenta and the interpolations between those. It also works with LAB, ICtCp and OkLAB equally. I went with this second method for now, but the first method is going to be more precise, and is worth investigating.
With the cusp for a given hue, you can then draw a triangle, going from black, to the cusp, to the reference white of the target space (important to keep in mind when combined with ICtCp-pq!), and back to black. The maximum chroma for a given lightness can then be derived by calculating the intersection between the current chroma and luminosity, and the zero chroma (grey) version of said luminosity.
Both the CSS4 gamut edge seeker algorithm and Ottoson's algorithm use a curved top (cusp to reference white) section for the triangle here, but I am skeptical that this is strictly necessary. The colour only needs to be pushed into gamut enough so that once you clip it doesn't cause massive hue and luminosity changes.
The interesting thing about the cusp method is that with the location of the cusp, you can decide to not just intersect with the grey of a given luminosity, but instead draw the line slightly towards the luminosity of the cusp. Bjorn Ottoson has a blogpost with experiments demonstrating this, and while not right now implemented in Krita, I would like to give it a go in the future as it can give more chromatic results.
There's other methods. Scaling ("chroma compression") methods, for example, generate a histogram of chromacity and lightness at a given hue-angle in the input image, and then the same for the target gamut. The resulting algorithm then doesn't need to do any binary search, but can just scale the chromacity of the input by taking the maximum source chroma and scaling it by the maximum target chroma. This is also not yet implemented in Krita, but it might be interesting for CMYK output. Technically this is what ICC's perceptual and saturation intents are all about, but those suffer from being too generic: a desaturated image that is fully in-gamut for the target space will get treated with the same lookup table as a fully saturated image, leading to odd results. A image-specific filter might give much better results.
Finally, when the target space is greyscale, we don't bother with either method and just set the saturation to 0.

Tone Mapping
Tone mapping is a subset of gamut mapping, where we only try to get the full range of tones (luminosity) into a target range. This is used to prepare HDR images for SDR output.
This is typically done by applying a so-called "filmic" curve. The name "filmic" derives from these curves mimicking real world chemical film's tone properties, which when mapped onto a graph somewhat resembles a flattened "S". The top part of this S-shape is referred to as the "shoulder" and the bottom part the "knee", or, because it is quite tiny compared to the "shoulder", the "toe".

In the following section I'll be using a picture of a blue orb on a grey background with some sparkles. I drew the original image on an HDR display, and it's brightest highlights are around 8.0 (8 times higher than the reference white). Because most people don't own a HDR display, I'm not going to try and share the image. Instead, I'm sharing the above image with two different exposures: The first is 0 exposure, it just clips all the colors. The second is with -2 exposure, showing how the highlights are supposed to look, but now the shadows are too dark. What we are looking for in the following images is that the sparkles are distinct from the highlight on the orb. That the blues look nice and don't hue shift too much and that the shadows are not too light or too dark.
When looking for curves to implement, I wanted to have curves that were user configurable. So the first curve I implemented was the extended Reinhard curve. This is a pretty well known solution and the curve allows selecting the maximum white that gets mapped to 1.0. While it has a nice shoulder, it doesn't have a knee or toe of any kind, which means it loses the contrast that is present in the HDR image.

I then briefly looked at the Hermetic Filmic Curve as described by bt 2390-8, which has both a shoulder and knee. However, that one is applied in the PQ transfer instead of linear light, and the PQ transfer requires decisions about the brightness of the reference white, so I wasn't sure how to do that one properly.
Then, I came across John Hable's Piecewise Filmic Curve: A very configurable curve which has various parameters for editing the shoulder and toe. It takes a bit to configure, but as you can see, once configured, it preserves the contrast quite well:

I implemented both curves on top of LAB, and xyY. This means that they're applied to the luminance channel only.
Frequently, you will see the discussion on whether to apply the tone mapping to individual channels, or to apply it to a Luminance channel only. The base argument for using individual channels is that it'll give chroma reduction as the colour will get lighter. The argument for applying it on a luminance channel is that it is more radiometrically correct. Though, it is correct that the bright colors now become more chromatic.
This is because to get the luminance channel, the colors need to be converted to a opponent space (typically, xyY, for easy conversion). But, when dealing with 'hdr' colours, like (3.0, 2.0, 0), it is not just the brightness that is high, but also the chroma. When tone mapping in an opponent space, the chroma is untouched. This leads to overly chromatic colours near the bright highlights, and these chromatic colours differ per opponent color model:


However, we already have a solution to reduce chroma: chroma reduction gamut mapping. So if you apply that after applying the tone mapping, the chromatic highlights get fixed:

Is this better than per-channel tone mapping? I think it depends on the application. Gamut mapping can be quite slow, and isn't exactly shader friendly, so I can imagine why real-time applications (game engines), would prefer per-channel tone mapping (which more or less does its own form of gamut mapping). Meanwhile, the results of luminance channel tone mapping plus gamut mapping afterwards gives much more chromatic results, which might be more interesting for illustrative works.
Similarly, per-channel mapping only works in a RGB context, and Krita has more models than that to support. By doing our tone mapping in an opponent space, we get the same results regardless of what colour space the image is in, which should make it nice and predictable to work with.
This is one of the reasons that Krita's tone and gamut mapping filter share the same dialog (they can still be applied separately). The other reason is that we can reduce the amount of colour space conversions if we clump together the two transforms. Furthermore, experience tells me that illustrative artists tend to prefer a single filter here.
OCIO Lut baking
While I was pretty happy with the tone and gamut mapping filter, we were still missing something:
OCIO is the colour management library used by the vfx industry, and it's strength lies in a big portable configuration that can be much more easily designed that a library of icc profiles. Due this, a well made OCIO configuration often has its own tone mapping solutions, and it would be good if Krita could use these too.
The first thing to decide is what we're exactly baking. OCIO can be quite flexible, but the way it is implemented in Krita is that we have the standard pipeline provided by OCIO, where we…
- start off in the assigned color space
- go to the config's preferred linear color space
- Apply the exposure.
- Apply the looks.
- Go to the display color space, apply the view transform.
- Apply the channel swizzle.
- Apply the gamma.
This made things a little tricky, as it is impossible to go from the display colour space back to the assigned image colour space. Furthermore, ideally we'd apply all transforms, including the view transform, so that we get an image that looks exactly like the one you see.
Initially I thought of reducing the scope, and creating a baking transform that applies everything in the config's preferred linear space, except the view transform. This didn't work out, as the gamma transform being applied linearly was too unintuitive.
So then, the next attempt was to apply the whole pipeline. This in turn means that the result is in the display color space. This too has some issues, as it requires the display space to be the exact same as the one selected in the preferences. Now, this is required anyway on wayland, as we have no way to determine from a given ocio display what we need to tag the wayland output as. But on the flip side, the default OCIO PQ transform is tied to 100 nits, and we do not yet have the ability to configure the nits level of Krita's rec2100 PQ surfaces, so the look will remain a little off when using HDR output until we do have that kind of support.
For this reason though, we ask whether you want to convert from the display colour space to the image colour space, or keep the display colour space. That way, the baked result can be quickly saved as an untagged image, like png, and then wrangled by some external script.

Above: Image baked with blender's current ocio config, using the sRGB display device and the 'aces 2.0' view transform.
We've had this "Baking" of the config on our wishlist since OCIO was first integrated, so I'm pretty pleased we managed to get it in, even though it still has some papercuts.
Further Work
So, right now, Krita has a built-in tone and gamut mapping filter, which works on luminance, and OCIO lut baking, where the tone mapping generally works per channel. Overall, the OCIO lut baking is probably going to be best for film workflows, while the built-in filter is going to be useful for non-ocio workflows, or when the artist prefers the more chromatic results of the built-in filter.
Because the colourfulness is going to be the key quality of the built-in filter, it'll be interesting to look at the other gamut mapping options, especially the adjustment-towards-the-cusp.
For CMYK workflows, the gamut mapping filter isn't too useful right now, as most artists work in sRGB, and the clipping errors towards CMYK there are very rare. Chroma compression might be interesting to experiment with here, but that requires generating a histogram of the chroma over hue, and I'll need to figure out how to do that while keeping the UI performant.
The built-in filter also doesn't have adjustment layers enabled just yet. This is because once we allow it as an adjustment layer, we'll need to always support it. And because there's a ton of tone-mapping curves out there, and I want to have a period of experimentation before we commit to a particular set.
In the future, I might need to seriously look at splitting up the gamut and tone mapping filters. Benefits here are for example allowing per-channel filter anyway (which is now impossible because the filter tries to find a space that can both gamut and tone map). From further experimentation, I get the feeling that the desaturated results I got tie in strongly with the configuration of the curve, so with a user configurable curve it might get better results. Other things to consider is to allow other models for tone mapping besides LAB and xyY, as that leads to different chromatic colors being applied. At the same time, I don't want to make this initial filter too complicated.
There's also some image-aware tone mapping techniques out there. I haven't investigated them enough though, so I have no idea if they're useful for Krita's purposes.
As for which of these is the correct one? That depends on the artist. Tone and gamut mapping are generally considered to be artistic operations, because there's always trade-offs and only the artist can tell which trade-offs and qualities are acceptable. Hence why I am trying to find a good set of tools for artists to work with.
Appendix
Manually tone mapping.
So, you can sort of manually tone map in Krita, because it supports unbounded workflows. It is a little annoying however, with some pitfalls.
Firstly, you will want to take an HDR image, and scale it's range into a [0 1] range. You do this by first color picking or using the HDR metadata tab to find the brightest pixel.
Then, you go into the select-a-color dialog by clicking the dual color button at the top. There, you type in the brightest channel value into each channel input. With your HDR color in hand, create a new layer, and fill it with this color. Then set the layer's blending mode to "divide". Now the whole image is in a [0 1] range. Then, you can either use the color adjustment filter or the levels filter to make everything visible again, but you will need to use the RGB adjustment, and not the lightness one, as the later goes through lab, and somehow that means everything gets desaturated.

This generally desaturates the whole image a little, as it is a form of per-channel tone mapping, so I personally pump up the saturation after my levels corrections.
The other pitfall here is that it becomes really hard to get a good curve the higher the brightest white is, because the curve needs to be fine-tuned more and more to both get nice shadows and nice highlights at the same time. The tone mapping filter is easier to use, in this case.
10 Nov 2026 10:56am GMT
How the most relevant terms of the AI Openness conversation relate to each other
Tagoross released AI Openness: How The Terms Relate, package 3 of 5. Its document and diagram show how AI openness terms differ, conflict and build on each other. It helps non-experts evaluate vendor lock-in and sovereignty risks of AI models.
10 Nov 2026 7:00am GMT
KDE Plasma 6.8.3, Bugfix Release for November
Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.8.3.
Plasma 6.8 was released in October 2026 with many feature refinements and new modules to complete the desktop experience.
This release adds two weeks' worth of new translations and fixes from KDE's contributors. The bugfixes are typically small but important and include:
10 Nov 2026 12:00am GMT
09 Nov 2026
Planet KDE | English
Qt Champions 2026
Dear Qt community!
With only seven weeks left before 2026 gets branched into maintenance mode, we are pleased to open the nomination period for the Qt Champion 2026 award.
It has been one of those years! We've launched Qt Bridges, held an inspiring Qt Contributor Summit in Oslo and released Qt 6.12 - our first fully CRA compliant release. Through all of it, our community kept answering questions, reviewing patches, sharing knowledge, and generally holding the Qt universe together while the rest of us were busy rearranging the furniture.
Please help us recognize those outstanding contributors by nominating your favorite candidates:
https://wiki.qt.io/Qt_Champions_2026
We look forward to reading your nominations!
Cheers,
Axel
![]()
09 Nov 2026 4:27pm GMT
Google Summer of Code 2026 Conclusion

This year we again participated in Google Summer of Code and we had 11 successful projects.
These are the projects that were completed successfully:
Drawy
Drawy lets you create ideas, diagrams, and visual notes on an infinite whiteboard with a smooth and responsive canvas.
- Abdelhadi Wael implemented the support for Rich Text as part of the Google Summer of Code. His work has been merged to master.

join.kde.org
One of the current KDE Goals is to improve the long term sustainability of KDE by recruiting and keeping more newcomers.
- Ansh Singhal worked on creating a new website which would be the KDE's primary contributor entry point and central hub, routing users to the right resource. The website is not officially published but its source code can be found here.

Lokalize
Lokalize is the localization tool for KDE software and other free and open source software. It has been improved a lot during last months to provide new features for translators.
- Navya Sai Sadu worked on redesigning Lokalize's Translation Memory Tab to help translators use it. Multiple reworks such as integrating the TM Manager into the TM Tab, enabling multi-TM selection and modifying search query in TM Tab to use the selected TMs were done and are still waiting to be merged MR.

Okular
Okular is KDE's universal document viewer and Poppler is a PDF rendering library it uses.
- Ojas Maheshwari implemented font subsetting in Poppler.
Instead of embedding the full font file inside the PDF whenever adding an annotation or filling a form, we subset the font file to get a newer version containing only the required mappings and embed that. This makes the file much smaller saving space on disk.
KStars
KStars is the KDE astronomy software providing an accurate graphical simulation of the night sky, from any location on Earth, at any date and time. KStars also helps astrophotographers point and adjust their telescopes and photographic equipment to take the best astronomical pictures through a framework called Ekos.
- Pavan Kumar S G added an AI guiding assistant to Ekos that learns the systematic error signature of the user's own mount and issues predictive, feed forward corrections alongside the existing guider.

Marknote
Marknote is a rich text notebooks organizer.
Prayag Jain introduced a robust, commonmark compliant block editor inspired by popular editors like Notion.
digiKam
digiKam is an advanced open-source digital photo management application which provides a comprehensive set of tools for importing, managing, editing, and sharing photos and raw files.
Srirupa Datta added a natural-language input to digiKam's Advanced Search so users can describe queries such as "landscape photos with red labels taken in Paris last summer," which will then be converted into editable search criteria such as tags, labels, dates, and locations.

Kdenlive
Kdenlive is a free and open source video editor created by KDE contributors that let's you cut, and edit your movies, documentaries and family videos.
Yash Bavadiya worked on improving the effect widget system, which covered replacing the channel dropdown with a tab-based interface so each color channel (RGB, Red, Green, Blue, Alpha, Luma) has its own independent curve; building a standalone gradient widget with support for arbitrary draggable color stops; adding bezier curve handles to the time remapping panel so speed transitions can ease in and out smoothly.

KeepSecret
KeepSecret is a password manager for viewing, editing, creating, or deleting passwords.
Roshani Kumari worked on improving the user experience and adding new features such as import/export of passwords, adding a built-in password generator, and much more.

Mankala
Mankala is a two-player board game containing multiple variants.
Sayandeep Dutta developed a tournament interface for Mankala Engine, utilizing QXMPP to pair users and computerized opponents and create a leaderboard page to display rankings.
Sayandeep's implementation includes such fancy features as bots, in game chat and real-time voice chat.
Plasma Mobile
Tushar Gupta reworked networking modules (KCM) to make them more mobile friendly. Among other things, Tushar implemented the Wi-Fi connection configuration in QML; complete Wi-Fi security support, including enterprise networks; Wired and Hotspot connection configuration; and VPN configuration using QML.

Next Steps
The 2026 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.
Help Fund Further Development
You too can support KDE software development. Donate to our fundraiser and help our community thrive!
09 Nov 2026 12:00am GMT
08 Nov 2026
Planet KDE | English
Chessament 1.0.0 released
Chessament 1.0.0 has been released. Chessament is a chess tournament manager. It supports individual Swiss-system tournaments.

Chessament allows to run a full tournament, from registering the players to calculating the standings. To ease the entering of players you can use the rating list of the International Chess Federation.
Chessament aims to be backwards compatible with tournaments created with previous versions of the program as long as possible.
Packagers
The package is available on download.kde.org and it's signed with my PGP key.
Binary releases for Windows and Linux (as Flatpak) will be available soon.
08 Nov 2026 3:00pm GMT
Dolphin gets a Columns view again
I am happy to announce that Dolphin has a new view mode: Columns. Each column shows one folder. Select a folder and its content opens in the next column, so the path from the folder you opened down to your selection stays on screen. This layout is known as Miller columns, after Mark S. Miller, who created it in 1980.

It is now in the master branch of Dolphin, not yet in Dolphin 26.12. We can still bring it into 26.12 until November 12th, if the testers find it ready. Otherwise it will ship in Dolphin 27.04. Either way it needs testers, so read on.
A bit of history
Dolphin had a column view from KDE 4.0, built on Qt's QColumnView. When Peter Penz moved the views to the new KItemViews engine for Dolphin 2.0 in 2011, the column view was not ported, and it was gone. Bug 387455, "Column view in Dolphin", was opened in 2017. With 32 people in CC, it has been one of the most requested features. It is now closed.
Sebastian's start
In February 2026 Sebastian Englbrecht opened MR !1185, a first Miller columns view built on KItemViews. After a few weeks of review he handed it over to me, and I continued it until MR !1524 was merged. He wrote:
Yeah, thank you very much meven for taking this to and over the finish line. I came to my limits and wouldn't have been able to polish it this well.
Thank you Sebastian, without your first version this would not exist.
What it does
- The folder that you open is the first column. Up, Back and the breadcrumb add its parent in front.
- A folder or an archive that you select opens the next column. Left, Right and Return move between the columns.
- The location bar, the window title, New Folder, Paste and the terminal panel follow the last column.
- Columns fit their content by default, or use a fixed width. Drag a handle to resize a column, double click it to fit the columns.
- Sort, grouping, hidden files, zoom and previews apply to every column, and a restored session brings back the open columns.
- Ctrl+4 switches to the mode, and Settings > View > Columns has its options.
The Columns mode is in the Dolphin application only for now. Konqueror and other apps that embed Dolphin's file view do not offer it yet.
The testers
The view behaves the way it does because people tried it and told us what was wrong, in more than 600 comments. Lluc Pallejà tested nearly every interaction and filed over a hundred comments with screencasts. Nate Graham did the UX review. Roke Julian Lockhart Beedell, Alexander Wilms, Karol, Kai Uwe Broulik, Leopold Luley, Akseli Lahtinen, Felix Ernst, Blenux, Ke, Linux ForAll and others found bugs and argued the details. Kudos to all of you.
Please test it
Whether the view goes into Dolphin 26.12 is decided on November 12th, see the KDE Gear 26.12 schedule. Until then, it needs people using it on their own folders, with their own habits.
On Arch Linux, the dolphin-git package from the AUR builds Dolphin from master. On any distribution, kde-builder can build it:
kde-builder dolphin
kde-builder --run dolphin
If your distribution ships a recent KDE Frameworks, as Arch Linux or Fedora do, add --no-include-dependencies to build Dolphin alone. Then switch to Columns with Ctrl+4.
Try your daily navigation, the keyboard, long names, large or remote folders, drag and drop, and resizing the window. Tell us also how it feels that the first column is the folder that you opened, as reviewers disagreed on this.
Please report bugs in the view-engine: columns mode component of Dolphin, with the steps and a screenshot or screencast when you can. General impressions are welcome in the comments of this post.
That's all, folks.
08 Nov 2026 2:25pm GMT
Building ghostty (for Kwi) with kde-builder
Eike's lovely new terminal Kwi depends on the latest releases of ghostty-vt library. This means you should probably build it yourself as distros will often be slower than Eike. :)
Ghostty is written in Zig, but it supports cmake and is, therefore, buildable by kde-builder, just add the following lines to your kde-builder.yaml:
project ghostty:
repository: https://github.com/ghostty-org/ghostty.git
It surprises me how many non-KDE projects I have in my kde-builder.yaml every time I open it.
08 Nov 2026 1:49pm GMT
07 Nov 2026
Planet KDE | English
Kdenlive 26.08.3 released
The last maintenance release of the 26.08 series is out with the usual batch of stability fixes and workflow improvements. Project management is more robust, with improvements to recovering corrupted projects, autosave behavior, and handling of archived projects. Other highlights include fixes to several crashes and freezes, keyframe copying, custom effects and improved undo/redo performance.
Under the hood, we fixed compatibility with Qt 6.12 and added improvements to the regression test suite and packaging build-related fixes. This version also includes a fix on MacOS for a Qt related startup crash triggered by the latest MacOS updates.
Kdenlive needs your support
Our small team has been working for years to build an intuitive open source video editor that does not track you, does not use your data, and respects your privacy. However, to ensure a proper development requires resources, so please consider a donation if you enjoy using Kdenlive - even small amounts can make a big difference.
For the full changelog continue reading on kdenlive.org.
07 Nov 2026 9:10am GMT
KDE Gear 26.12 branches created
Make sure you commit anything you want to end up in the KDE Gear 26.12 releases to them
Next Dates:
November 12, 2026, 23:59 UTC: 26.12 Freeze and Beta (26.11.80) tarball creation
November 13, 2026: 26.12 Beta (26.11.80) release
November 26, 2026, 23:59 UTC: 26.12 RC (26.11.90) tarball creation
November 27, 2026: 26.12 RC (26.11.90) Release
December 3, 2026, 23:59 UTC: 26.12 tarball creation
December 4, 2026: 26.12 packages released to packagers
December 10, 2026: 26.12 Release
https://community.kde.org/Schedules/KDE_Gear_26.12_Schedule
07 Nov 2026 8:22am GMT
This Week in Plasma: Widgets Widgets Widgets
Welcome to a new issue of This Week in Plasma!
This week many widgets shipped with Plasma got quite a bit of polish. Feature work and performance work were also notable this week… really, a bit of everything! Have a look:
Notable new features
Plasma 6.9
There's a new picture of the day wallpaper plugin that displays art made by noted FOSS artist David Revoy. (Guillermo Villafuerte, kdeplasma-addons MR #1150)

You can now choose the position of OSD popups on the screen, if the default position doesn't work for you. (Mathias Schuh, KDE Bugzilla #501654)

Running systemd-ask-password --no-tty in systemd-257 or higher now shows a nice KDE-style password prompt. (Daan De Meyer, plasma-workspace #6433)
Plasma Browser Integration now supports the Glide browser. (Jan Buchar, plasma-browser-integration MR #178)
Notable UI improvements
Plasma 6.6.8
You can now click to focus the Calculator widget and then interact with it using the keyboard as expected. (Christoph Wolk, kdeplasma-addons MR #1191)
The Media Frame widget now changes the image displayed in its compact form immediately when the slideshow displayed in the popup advances to the next image, rather than after a delay. (Christoph Wolk, kdeplasma-addons MR #1199)
Plasma 6.8.3
Opening the font dialog from the Digital Clock widget now pre-selects the currently-used font. (Niccolò Venerandi, plasma-workspace MR #7348)
Plasma 6.9
Widgets added to the desktop are now created at a size that makes them large enough to be useful without any cut-off content. (Felix Desyatirikov, plasma-workspace MR #7342 and bluedevil MR #274)
Spinning a mouse wheel over a scrollable horizontal row of Task Manager thumbnails now scrolls them, as expected. (Christoph Wolk, KDE Bugzilla #448504)
The way multiple panels interact with one another at screen corners has been improved in a variety of ways. (Niccolò Venerandi, plasma-workspace MR #7330)


Multiple graph styles used in System Monitor widgets are now presented in a nicer and more appropriate way when used on a panel. (Niccolò Venerandi, libksysguard MR #498)
The Calculator widget now animates the buttons being pressed when you interact with it using the keyboard rather than the pointer. (Christoph Wolk, kdeplasma-addons MR #1190)
The Dictionary, Disk Quota, and Konsole Profiles widgets now use up-to-date behaviors and styling for their list views. (Christoph Wolk, kdeplasma-addons MR #1192, kdeplasma-addons MR #1193, and kdeplasma-addons MR #1220)
Launcher menus now use "natural sorting", meaning something like "Transformers 10" is shown after "Transformers 9", rather than after "Transformers 1". (Peder Bergan, KDE Bugzilla #524466)
Searching for a keyboard layout on System Settings' Keyboard Layouts page now works a lot more intuitively. (Tobias Fella, plasma-desktop MR #4060)
You can now use the "Forward" button on your fancy mouse to trigger actions on the desktop. (Niccolò Venerandi, KDE Bugzilla #494216)
You can now open the clipboard settings from its Meta+V popup, just like you already can from its panel widget popup. (Kai Uwe Broulik, plasma-workspace MR #7345)

Frameworks 6.32
When using a non-integer scale factor, icons throughout Plasma and Kirigami-based apps are now a little bit less blurry and pixelated, and also don't wiggle around so much while their parent window is being resized. (Arjen Hiemstra, Ilya Fedin, and Eike Hein, KDE Bugzilla #522336, KDE Bugzilla #527335, and kirigami MR #2225 respectively)
Notable bug fixes
Plasma 6.6.8
Keyboard navigation within the list of timers in the Timers widget now works as expected. (Christoph Wolk, kdeplasma-addons MR #1247)
The "Timer finished" message you can configure the Timer widget to show is no longer hardcoded to English by default. (Christoph Wolk, KDE Bugzilla #413374)
Plasma 6.8.3
Fixed a recent regression that made KWin crash when a DisplayLink screen was connected. (Xaver Hugl, KDE Bugzilla #527984)
Fixed a case where System Monitor could crash when you scrolled around after killing some processes. (Arjen Hiemstra, KDE Bugzilla #502879)
Plasma no longer lets you use scripting to set a panel's spacing value to 0, since that would make Plasma freeze when its widgets were dragged to rearrange them. (Niccolò Venerandi, KDE Bugzilla #528228)
Using the Pager widget's "Selecting current virtual desktop: Shows the desktop" setting no longer triggers rapid flashing when you scroll over it. (Niccolò Venerandi, KDE Bugzilla #471241)
Using the Minimize All widget to minimize and then restore all windows now restores focus to the previously-focused window as well. (Niccolò Venerandi, KDE Bugzilla #450137)
Fixed an issue that could make icon positions sometimes get scrambled on multi-screen setups when one screen was disconnected at the same time as another one was connected. (Błażej Szczygieł, plasma-desktop MR #4163)
Fixed an issue that could break the layout on System Settings' Display Configuration page if you used it to turn off a screen and then immediately reverted that change. (Błażej Szczygieł, KDE Bugzilla #527131)
Timers saved in the Timer widget can once again be dragged around to re-order them. (Christoph Wolk, kdeplasma-addons MR #1224)
Plasma 6.9
Fixed an issue that could freeze an RDP stream initiated from the very confusingly-named "Windows App" RDP client app for macOS. (Chris Maria, krdp MR #289)
Opening the color dialog from the Color Picker widget no longer makes Plasma freeze while it's open. (Madhur Dhillon, KDE Bugzilla #525094)
When the Timer widget is placed in a vertical panel, it no longer acts as a trap for the Up and Down arrow keys when focusing widgets with the keyboard. (Christoph Wolk, kdeplasma-addons MR #1225)
Rapidly clicking on the "Previous Image" and "Next Image" buttons on the Media Frame widget no longer sometimes tries to open the current image in an external app. (Niccolò Venerandi, KDE Bugzilla #371832)
Notable in performance & technical
Plasma 6.8.3
Spectacle's "background mode" feature is now a little bit faster to launch and consumes less memory. (Frog Chen, spectacle MR #621)
Plasma 6.9
Plasma no longer leaks a little bit of memory when you right-click on files or folders on the desktop. (Zühtü Eren İncekara, plasma-desktop MR #4152)
Fixed a couple of memory leaks in System Monitor. (Méven Car, libksysguard MR #479)
Spectacle is now faster to launch in general. (Kai Uwe Broulik, spectacle MR #618, spectacle MR #619, and spectacle MR #620)
System Settings' Accessibility page is now much faster to load. (Tobias Fella, plasma-desktop MR #4183)
System Settings' Spell Check page was ported to Qt Quick, giving it a more modern UI and opening the door for faster and easier future improvements. (Tobias Fella, plasma-desktop MR #3975)

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.
KDE's annual fundraiser has raised 35% of the funds we're hoping for, but with two months left in the year, we need your help to get it over the finish line! If you can, consider making a donation.
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.
07 Nov 2026 12:00am GMT
06 Nov 2026
Planet KDE | English
Desktop icon behavior survey results
Here's the data!
A script element has been removed to ensure Planet works properly. Please find it in the original post.
Thank you all for filling the survey I mentioned in my other post here. We got 1518 full responses total, which is a lot!
Without further ado, here's the data in charts.
FYI: I am not a data scientist, just a random guy trying to piece up something.
General usage statistics
First I want to go through some general usage stuff.
What is your desktop icon usage like?
In general, people tend to actually not use them much. They still may have some icons, but they get mostly ignored.
A lot of people use the desktop as a place to store temporary files they're working on, then presumably move them somewhere else when done with them. As a to-do list of sorts.
Then there's shortcuts to applications people use a daily.
Lastly, not as many store files on desktop regularly.
So to me it seems that people ignore them most of the time, but use them as shortcuts for apps to do work, or just need a temporary place for something they're working on.
Note that this was a multichoice question. I allowed people to pick "I don't really use desktop icons", because I believed all these could be true at the same time: People don't necessarily think about them often, but they use them.
Raw data
| What is your desktop icon usage like? | Count |
|---|---|
| I add shortcuts to applications I use daily | 394 |
| I use desktop as a temporary place for things I'm actively working on | 649 |
| I store files on my desktop regularly | 259 |
| I don't really use desktop icons | 819 |
Average desktop icon amount
I calculated the average of the icon values, and it seems the average of everyone is 9 icons on desktop.
There were some people typing in 128937128973987 or similar so I removed those. Sorry, I don't believe you! Send me proof!
But the largest amount I'm willing to believe was 150 icons. That's a lot!
Automatic or manual sorting?
This is surprisingly even. I expected way more people move icons around, but it's literally 60/40 situation.
Raw data
| Do you use automated arrangement or position the icons manually? | Count |
|---|---|
| Automatic | 605 |
| Manual | 913 |
Icons on side of monitor when screen changes
Here's the real juicy parts: How do we want icons to behave when something happens?
When icons are placed on the side of the monitor, and screen resolution changes, we did not really know what users want the icons to actually do.. Until now!
The survey had users to make choice between example images. I have added the images here as a refresher.
Monitor resolution expands
Leave icons at current position.
Move icons to the new resolution.
Overwhelming majority of you want the icons to move to the new resolution and not stay in the current position, which I find interesting, as some might find that a bit jarring! But in a way, it makes sense.
Raw data
| Monitor resolution expands. | Count |
|---|---|
| Leave icons at current position | 244 |
| Move them to the new resolution | 1274 |
Monitor resolution shrinks
Rearrange icons to fit the new resolution in their original form.
Rearrange them automatically to new position, from start.
This had even more overwhelming majority! Only 71 of you want the automated arrangement. So this preference is quite clear!
Raw data
| Monitor resolution shrinks. | Count |
|---|---|
| Rearrange icons to fit the new resolution in their original form | 1447 |
| Rearrange them automatically to new position, from start | 71 |
Monitor resolution shrinks, but the area where you move new icons has already some icons
Move all icons, to make room for the others.
Rearrange them automatically to new position, from start.
Here 1/3 of the people wanted them to be automatic and start over from the beginning. Moving all icons makes sense, but I think it's going to be more difficult to make and more bug prone.
Raw data
| Monitor resolution shrinks, but the area where you move new icons has already some icons. | Count |
|---|---|
| Move all icons, to make room for the others | 1052 |
| Rearrange them automatically to new position, from start | 466 |
Desktop is full of icons
You have added so many files on the desktop that it's full, then you add some more! We wanted to know what should happen in this case.
Add a scrollbar so you can scroll for more icons!
Tell user the desktop cant show more icons, but they can be found from Desktop folder.
Show user an "overflow menu" that has the icons that do not fit inside a popup.
Most of you seem to want the popup, which makes sense as this is very much what happens on mobile: When there's a lot of icons on the screen, and you try to add more, they turn into folders instead.
I was surprised the scrollbar was the second choice, as that's already what happens on Plasma, and I have heard so many times that it's confusing.
My personal favorite, the warning, is at third. It's my favorite because it's the least complex. :)
Raw data
| How should the desktop adapt? | Count |
|---|---|
| Add a scrollbar so you can scroll for more icons! | 467 |
| Tell user the desktop cant show more icons, but they can be found from Desktop folder. | 309 |
| Show user an "overflow menu" that has the icons that do not fit inside a popup | 742 |
Monitor is changed to vertical mode
A usecase I very rarely encounter, but felt like we should look into anyway.
Keep icons where they are, just rotate them in place.
Rearrange icons so that they are somewhat close to the original arrangement.
Most of you want a rearrangement, though rotating in place seems to fit many as well. I would prefer rotating in place as implementor as it's the simplest, since we do not have to relayout everything.
Raw data
| How should icons on your desktop adapt to rotating your screen? | Count |
|---|---|
| Keep icons where they are, just rotate them in place | 557 |
| Rearrange icons so that they are somewhat close to the original arrangement | 961 |
Monitor disconnection
This is one of the most difficult ones to solve, as screens often behave weirdly when plugged/unplugged. Sometimes we do not know fully if the screen is ready or not, reporting back weird resolution, etc..
As a note for this question, the reverse would happen: The icons would be back on the reconnected screen.
They move to the remaining screen.
They aren't visible on the remaining screen.
I was expecting most to vote for the moving to the remaining screen, and I was right! However, I did not expect it to be this small divide.. A lot of you are fine with the icons not showing on the remaining screen!
Raw data
| What should happen to the icons on that screen? | Count |
|---|---|
| They aren't visible on the remaining screen | 626 |
| They move to the remaining screen | 892 |
Conclusions
Most of these things are what I expected, though I did not expect as much divide: I was expecting 90/10 divisions, not 60/40!
But thank you all for answering to the survey. I will have to properly mull over and plan now with all this data in my hands.
Note that this data does not decide anything, but it works as a guidance for us.
There's a lot of writing for me to read about the icons, so I will go through that over time. But thank you for these responses, as it will help us KDE folk figure out how to fix the desktop icon situation, as it's still bit flakey.
No promises when, but I want to get into it when I have gotten more Union bug fixes done.
Thank you again! Your help has been very valuable. <3
ps. Hope you don't mind my crappy charts. I am using chartjs for it, but if you have javascript off, you should see the images I took instead.
A script element has been removed to ensure Planet works properly. Please find it in the original post.
06 Nov 2026 7:52pm GMT
Web Review, Week 2026-45 (double issue)
I didn't post last week, but I did read a bit. Between this and some catching up this week… Behold the web review double issue for the week 2026-45!
Reading in decline? Barnes & Noble is un-Daunt-ed
Tags: tech, book
Bookshops still have a future and it can be bright. It looks like ebooks can't displace regular books further.
https://chadcomello.com/reading-in-decline-barnes-noble-is-un-daunt-ed/
I discovered a sound that leaks your exact location (and it's everywhere)
Tags: tech, physics, mathematics, osint
Very impressive stuff. This is an extremely powerful OSINT method to narrow down where some sound might have been recorded.
https://www.youtube.com/watch?v=UytYrhYLOKI
Serbia just elected the world's brainiest parliament
Tags: politics, science, sociology
I guess this will be an interesting social experiment to follow in the coming years.
https://www.science.org/content/article/serbia-just-elected-world-s-brainiest-parliament
Overgrown, when plants invade your abandoned tabs
Tags: tech, browser, funny
This is a funny browser extension idea.
https://charliegerard.dev/blog/overgrown-extension/
Walker Playground
Tags: tech, web, funny
This is really cool. Makes me want to play Lemmings again.
https://markblah.github.io/lemmings/
Mastodon, The Only Good Choice
Tags: tech, social-media, fediverse
Of course it has some of the social media flaws bit the Fediverse is the only good option. At least it can't seems to enshittify due to corporate capture.
https://www.tbray.org/ongoing/When/202x/2026/07/05/Choose-Mastodon
This $48 e-paper display can be whatever you want it to be
Tags: tech, hardware, self-hosting
Interesting device. The self-hosting of the server part seems a bit involved still. It gives plenty of ideas of cool things to try though.
https://arstechnica.com/gadgets/2026/11/this-48-e-paper-display-can-be-whatever-you-want-it-to-be/
Why big tech stopped building useful stuff
Tags: tech, innovation, business
The reasons invoked definitely make sense. It's kind of the age of mediocrity and it's really boring.
https://www.rubenerd.au/why-big-tech-stopped-building-useful-stuff/
Now Entering: The Era Of Bleh
Tags: tech, ai, machine-learning, gpt, innovation, business, organisation, craftsmanship
Interesting essay. It's not really a differentiating productivity which businesses will find but a clear homogenization. When everyone will come up with the same ideas, everything will be tasteless and mediocre. Will we properly notice? Will it be an era where craftsmanship will be back?
https://www.noemamag.com/now-entering-the-era-of-bleh/
Why Wikimedia Is Speaking Up in a Major AI Copyright Case
Tags: tech, ai, machine-learning, gpt, wikipedia, copyright, law
Important statement from Wikimedia. The brief is likely to have quite some impact in the ongoing copyright cases around the LLM industry.
https://diff.wikimedia.org/2026/10/30/why-wikimedia-is-speaking-up-in-a-major-ai-copyright-case/
Navigating Open Source Software Development in the Generative AI Era
Tags: tech, ai, machine-learning, copilot, foss, community
Interesting report showing the impact of LLM based contributions on communities. Note the obvious limit of this survey being declarative. It gives some food for thought though.
https://www.linuxfoundation.org/research/oss-development-gen-ai-era-2026?hsLang=en
Webinar: Copyrightability of LLM-generated code
Tags: tech, ai, machine-learning, gpt, copilot, copyright, foss, law
Very interesting webinar. Lots of food for thought regarding LLM produced code being de facto public domain and the consequences. A bit frustrated it glances a bit over copyright infringement during the talk part but it's explored more during the Q&A. Clearly it shows that there are still quite a few blurry lines so the legal risks are real. It looks like we'll have to wait for court rulings and/or laws being clarified.
https://nlnet.nl/events/20261029/index.html
AI: EU Member States approve "digital expropriation" of Europeans for AI companies
Tags: tech, europe, law, privacy, ai, machine-learning, gpt
There's really a problem with the EU Commission and Council… How can they swing positions like this?
https://noyb.eu/en/ai-eu-member-states-approve-digital-expropriation-europeans-ai-companies
Why I Resist Generative "AI"
Tags: tech, ai, machine-learning, gpt, criticism, ethics, ecology, cognition, politics
A good summary of everything that is wrong with the current LLM industrial complex.
https://estherweidauer.com/articles/why-resist-generative-ai.html
US data centers could wipe out 15 years' worth of progress in greenhouse gas emissions
Tags: tech, infrastructure, ecology
Let's hope most of the new data centers just won't be built or get on line…
AI Isn't Replacing SREs. It's Deskilling Them.
Tags: tech, ai, machine-learning, copilot, reliability, learning, engineering
The question is explored from the SRE angle but it applies more widely. The deskilling in teams which automate as much as possible is real. What can you do them when you encounter something novel not covered by the automation? You're quickly stuck.
https://newsletter.signoz.io/p/ai-isnt-replacing-sres-its-deskilling
Security advisory: openssh-server password authentication bypass
Tags: tech, ssh, security
OK, this is a really bad one. Check your alpine based machines and containers.
https://www.alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/
Be Aware of What's in Your Logs
Tags: tech, debugging, logging, privacy
A bit lengthy but that point stands. When you send application logs it has privacy implications every time. Developers can and should try to limit the risks though.
https://fireborn.mataroa.blog/blog/be-aware-of-whats-in-your-logs/
UUIDv7 doesn't have the properties you think it does
Tags: tech, uuid
Don't just blindly use it. Lots of properties will depend on the exact generator you use.
https://alexsci.com/blog/uuidv7-is-weird/
We can do better than line-buffered output
Tags: tech, terminal, system, performance
Indeed there are other approaches which can give better result.
https://nullprogram.com/blog/2026/11/05/
It's the memory latency, stupid
Tags: tech, rust, memory, performance
Another illustration than the memory access patterns are the most important factor for performance.
https://pivotlake.io/blog/its-the-memory-latency-stupid/
Go concurrency distilled
Tags: tech, go, multithreading, asynchronous
Nice reference material on the Go concurrency primitives.
https://antonz.org/go-concurrency-distilled/
Avoid Public Functions Calling Other Public Functions
Tags: tech, programming, design, api
This is indeed a good guideline to follow when designing interfaces.
https://matklad.github.io/2026/10/29/pub-calls-pub.html
Thinking in Traits
Tags: tech, rust, type-systems
The writing is maybe lacking structure a bit. Still that gives a worthwhile tour of all the nice features one can build with a trait system and carefully designed APIs.
https://corrode.dev/blog/thinking-in-traits/
C++26 DIS failed, how does C++ survive?
Tags: tech, c++, standard
This is of course a big deal. Will the deadlock be solved? Will the language be able to move forward again with the bases of the institution quite shaken? Only time will tell.
https://andreasfertig.com/blog/2026/11/cpp26-dis-failed-how-does-cpp-survive/
In C++, = default and {} are not the same constructor
Tags: tech, c++, performance
Different safety profile but also different performance depending on the compiler. To keep in mind if there's too much performance pressure.
https://lemire.me/blog/2026/11/02/default-and-braces-are-not-the-same-constructor/
Modern C++ Is a Mindset, Not a Standard
Tags: tech, c++, safety
Indeed there's an educational problem. Too much C++ code is wrote "the old way".
https://www.modernescpp.com/index.php/cpp-and-memory-safety-part-2/
Pele · Mermaid diagrams as themeable SVG
Tags: tech, diagrams, tools
Looks like a very nice alternative to Mermaid.
Using maths to balance your heading styles
Tags: tech, typography, text, fonts, web, css
Interesting scale for headers in text content. The approach gives clearly good results.
https://www.craigabbott.co.uk/blog/2026/using-maths-to-balance-your-heading-styles/
The Polyglot's Dilemma: Conformance Testing a Dozen Specs in as Many Languages
Tags: tech, tests, databases
Interesting approach used for MongoDB drivers. I'm not sure I'd have banked on YAML but having conformance tests in a single language is clearly a good bet.
https://emptysqua.re/blog/polyglots-dilemma/
Simple ways to prepare before facilitating a meeting
Tags: meetings, facilitation
Definitely looks like good advice if you need to facilitate a meeting.
https://www.improvesomething.today/simple-ways-to-prepare-before-facilitating-a-meeting/
The Real Kevin Bacon
Tags: tech, data-visualization, movie
Very nice exploration of the Hollywood movies social graph. It was believed Kevin Bacon was the centre of it all. The story is way more nuanced.
https://pudding.cool/2026/10/kevin-bacon/
How I Survived Late-Stage Cancer (A Fun Story)
Tags: health, medecine, science
Wondering how chemotherapy works? Here is one example.
https://m.youtube.com/watch?v=5_Fayfx2NUM
Bye for now!
06 Nov 2026 2:06pm GMT
Kirigami Addons 1.16.1
Kirigami Addons 1.16.1 is out! Kirigami Addons is a growing collection of nice components you can use in your Kirigami and QML applications.
This release mainly includes small bugfixes and two visual chances.
AboutPage
The about page provided by Kirigami Addons now display the release information more prominently (if any is available).

Time Picker
The time picker was completely redesigned. If you belonged to the minority who liked the tumbler timer picker, well bad news, it's not that anymore.
The new design is directly inspired by the one from android.

Packager section
The actualy tarbal might take up to 24 hours to be published as it need to be processed by sysadmin, I just announced this before going in vacation.
You can find the package on download.kde.org (kirigami addons) as soon as it is available and it has been signed with my GPG key.
06 Nov 2026 1:00pm GMT
Renovate for KDE
Renovate is a helpful tool that updates your dependencies automatically. This is cool, because it means you don't have to track updates to your dependencies manually, which let's be honest never really work. Renovate will just create a new merge request as soon as it detects an update.
This is particularly relevant now, with more and more vulnerabilities being detected in our software supply chain every day.
Setting things up
Renovate is super easy to set up by using its CLI in a GitLab pipeline.
The only particular point is that this needs to run in a repo that not everyone has access to, as it uses a GitLab access token to create MRs, so it is now in the sysadmin/renovate-bot in invent.
Rust
Renovate supports Cargo as a package manager by default, so the configuration is extremely short and the repos with Rust just need to be listed in kde-renovate.
If you maintain a Rust project, feel free to open a merge request to list your project there.
Craft
Craft is the most interesting project to benefit from this, as it is used to build our binaries for Android, Windows, macOS and more. It is also the most complex, as Renovate doesn't natively support Craft, nor does it have a way to retrieve updates from Anitya, only from GitLab, GitHub, pip and other sources.
Adding Anitya support was easy with a custom data source:
"customDatasources": {
"release-monitoring": {
"defaultRegistryUrlTemplate": "https://release-monitoring.org/api/v2/versions/?project_id={{{packageName}}}",
"format": "json",
"transformTemplates": [
"{\"releases\": [stable_versions.{\"version\": $}]}"
]
}
},
This uses the releaseManagerId from the blueprints to match each blueprint to a project on Anitya.
Updating the blueprints is trickier, as they are written in Python, so I had to write a small script using Python's ast module to modify them. It is a bit cursed, but it works as long as the blueprints follow the common structure with for ver in ["x.x.x", "y.y.y"]:.
The next step is to make sure all Craft blueprints contain a releaseManagerId, and this is where help would be much appreciated also checking that the PRs created by Renovate are correct and the new updated package build on every of our platforms.
Huge thanks to Ben and Hannah for setting this up and happy hacking!
06 Nov 2026 10:00am GMT
This Week in Kwi: Liftoff
Has it really been just one week? The public announcement of Kwi last weekend has resulted in a flurry of activity both inside and outside the project!
First of all, thank you all very much! There's been a lot of positive and kind feedback, a lot of excitement, and very useful bug reports from so many of you.
Let's take stock together of what's been happening. The rough plan is to do this once week from now on, unless life/travel get in the way. Usually towards or on the weekends.
Getting Noticed
Kwi was the talk of KDE town for the week!
- Reactions and lively discussion on r/kde, r/linux, lobste.rs and Hacker News
- Articles and comments on Phoronix, 9to5 Linux, XDA Developers, Linux News (German) and many others
- A YouTube video by well-known YouTuber Brodie
Additionally, Kwi is seeing early interest by packagers active in the Fedora, Arch Linux, NixOS and other communities. Packaging uptake of course will require an actual, versioned release! More on our plans for that further below.
Progress
Kwi's users have been busy putting our brand-new app through its paces. A decent smattering of papercuts and teething issues has surfaced, along with a thankfully small number of more serious defects.
We've been able to keep up with the reports quite well so far. At the time of publication, Kwi has no open defect tickets.
Tickets: Implemented Feature Requests This Week
- Option to create a new tab after the current one
- Go back to a previous tab on tab closure
- Option to configure initial terminal size
Tickets: Closed Defects This Week
- Fallback glyphs are not rendered
- Dragging tabs to re-arrange them requires precision
- Retain selection on tab switch
- Option to not show URL at the bottom on mouse hover
- Major issue with character rendering
- Double-click drag select breaks on empty lines
- Right clicking while context menu is open closes both context menus
- Navigation on the nav/numpad layer on a Neo2 keyboard layout does not work
- Ctrl modifier is not forwarded to zellij
- 'Close All Terminals' dialogue isn't shown and focused
- alt+arrow-left and alt+arrow-right key-presses are not sent to a program
- Ctrl+click-to-open for file paths doesn't work with the default permissions specified in the Flatpak manifest
- About Kwi should attribute Ghostty as a library
- Allow Alt+n to pass through when there's only one tab
- Ctrl+Q is closing the terminal, even when not set the as the keybind in settings
- Search runs every time when switching tabs
This is not all! Alongside your reports, regular development of Kwi proceeds at pace, and many of the largest items in this week's changelog happened outside the ticket process.
Important Changes This Week:
- Terminal:
- Hover decorations for links
- Improvements to geometric and powerline symbols, both adding more of them and making them look more pleasing, and fixing a few bugs in double-line corners
- Better support for placing complex underlines and other text decorations, including rendering underlines behind descenders
- Improved appearance for text decorations
- Not showing one blank terminal frame during window closing
- UI:
- Revamping the search experience
- A better location for the search bar
- Colored feedback in the search field background for match/miss
- A more stable, flicker-free search UI
- Improved support for screen readers
- Adding support for switching tabs by using the mouse wheel
- Adding more keyboard shortcuts, aligning some shortcuts with familiar Konsole ones, and fixing other minor bugs in keyboard shortcut handling
- Various other small UI refinements and consistency improvements, e.g. in the hamburger menu and other toolbar buttons
- Coalescing terminal updates during window resize (this improves performance, but also happens to work around a newer bug on width/height-only resizes in newer bash versions)
- Fixing a small visual glitch at the bottom of the tab bar when using fractional scaling
- Revamping the search experience
- Support for running each tab's processes in a systemd scope (unlike in Konsole, in a way that's free of races and works from within Flatpak)
- Making Kwi show up in GNOME's Notification Center
- Project bits:
- Landing API documentation for Kwi's public QML API
- Landing Kwi's test suite and enabling it on CI
- Enabling additional quality checks on CI
Additionally, because Kwi is built on KDE's latest technologies, we sometimes get to find and fix bugs upstream of the project, or contribute new features needed by Kwi.
Upstream This Week - by Kwi, for everyone:
- We contributed support for theming the backgrounds of text fields to KDE's new work-in-progress Union theming system, used for visual feedback in our new search experience (Qt Quick MR, QWidget MR).
- We fixed icon placement at fractional scale in Kirigami apps (visible on our tab bar).
Road to Release
All of this progress, and yet Kwi remains officially unreleased! Hopefully not for much longer.
Kwi is presently undergoing KDE Review, a quality gate in the KDE community that graduates new projects from being experiments into official KDE projects. This is well underway; we have already completed the required checklist. Subsequently, KDE's awesome community of translators will start contributing translations to the project. The project will then also gain access to KDE's release infrastructure. An official, tagged and tarball'd Kwi v0.1 release is planned to follow soon after.
Together with the v0.1 release, will also send our Flatpak package out into the wider world via publication on Flathub.
In the weeks and months after, we plan to stay on top of your bug reports, as well as begin to address some feature requests.
Looking further out, our very important upstream the Ghostty project is gearing up to make independent releases of libghostty-vt, which serves as our terminal emulation backend. An ABI/API-stable v1.0 is planned within the next couple of months. (Well, that was faster than expected - shoutout to the ever-busy mitchellh!) This is also the timeline we roughly have in mind for a Kwi v1.0 release. There will be several interim releases to deliver improvements to you at a faster pace.
What's Next
Kwi development will continue to focus mainly on staying on top of early defect reports in the next few weeks. However, we do also have two bigger irons in the fire!
Making it easy to switch classic KDE apps to embed Kwi
Many users enjoy using a terminal not just via the traditional standalone apps like Kwi, but also via alternative UIs like Yakuake, or embedded into apps like Dolphin and Kate. All of these currently exclusively depend on Konsole, via a public plugin that is installed alongside it.
Indeed, How can I use this in Yakuake? was the most-often-heard feedback item we received this past week!
It arguably flew a bit under the radar in our announcement last week, but Kwi already provides a drop-in replacement for the Konsole plugin these apps could load instead. Which is the snag: They need a one-line code change to do so, or need the user to get crafty with a symlink, overriding Konsole's plugin manually.
That's not a great user experience at all. Landing an elegant mechanism in Plasma that lets users manage their preferred embedding terminal is therefore a high priority for Kwi. We have a plan there that we think can work, and will run it by the maintainers of the components involved soon.
Split Panes
The other high-in-demand missing feature in Kwi is that it currently does not yet have any support for split panes. We're happy to announce that we do plan to support them!
However, we want to take our time to get it right, and ultimately offer the pragmatic mix of familiar functionality, KDE HIG-adherence and state of the art in this space that we want Kwi to be generally known for. Rest assured, Kwi will gain this functionality before v1.0.
Thank you for reading, and see you in a week!
06 Nov 2026 12:00am GMT


















