31 Jan 2026

feedPlanet KDE | English

This Week in Plasma: getting 6.6 ready for release

Welcome to a new issue of This Week in Plasma!

This week we reached that part of every Plasma release cycle where the bug fixes and polish for the upcoming release are still coming in hot and heavy, but people have also started to land their changes for the next release. So there's a bit of both here!

Everyone's working really hard to make Plasma 6.6 a high-quality release. It's a great time to help out in one way or another, be it testing the 6.6 beta release and reporting bugs, or triaging those bugs as they come in, or fixing them!

Notable New Features

Plasma 6.7.0

The Emoji Selector window now lets you choose mixed skin tone groupings of emojis using a nice little user-friendly pop-up dialog. (Tobias Ozór, plasma-desktop MR #3426)

You're now able to set a global keyboard shortcut to clear the notification history. (Taras Oleksyn, KDE Bugzilla #408995)

Notable UI Improvements

Plasma 6.6.0

In the Application Dashboard widget, keyboard focus no longer gets stolen by selectable items that happen to be right under the pointer at the moment the widget is opened. (Christoph Wolk, KDE Bugzilla #510777)

Breeze-themed checkboxes now always have an opaque background, which resolves an issue where their unchecked versions could be hard to see when overlaid on top of images. (David Redondo, KDE Bugzilla #511751)

Plasma 6.7.0

System Settings' subcategory back button is now more of a traditional back button, eliminating a source of redundant page titles. There are still too many, but this reduces the count by one! (Nate Graham, systemsettings MR #390)

On System Settings' Notifications page, you can now always preview a notification sound even if sound is currently disabled for that notification. (Thomas Moerschell, plasma-workspace MR #6214)

Plasma's network settings now expose additional L2TP VPN options that were previously unavailable. (Mickaël Thomas, plasma-nm MR #480)

The old Air Plasma style (the light counterpart to the Oxygen style) is back, with fixes and improvements, too! (Filip Fila, oxygen MR #77)

The Oxygen cursor theme received a small visual fix to improve the appearance of the busy cursor. (Filip Fila, oxygen MR #89)

The cursor theme settings now show more accurate previews, which fixes issues like wobbling cursors, and makes the preview grid feel more stable. (Kai Uwe Broulik, plasma-workspace MR #6240)

System Settings' various theme chooser pages are now consistent about whether you can delete the active theme (no), and also let you know why certain themes can't be deleted: because they were installed by the OS, not the "get new stuff" system. (Sam Crawford, plasma-workspace MR #6222)

The Weather Report widget now shows a progress indicator while its popup is open but still loading the weather forecast from the server. (Bogdan Onofriichuk, kdeplasma-addons MR #993)

Frameworks 6.23

Combobox pop-ups through QtQuick-based apps and System Settings pages now use the standard menu styling, rather than a custom style. (Nate Graham, qqc2-desktop-style MR #497)

Added styling for the new upstream SearchField component that was recently added to QtQuick itself. Now it looks like the KDE version that we created years ago before the Qt version existed. (Manuel Alcaraz Zambrano, qqc2-desktop-style MR #500)

Notable Bug Fixes

Plasma 6.5.6

Fixed an issue on operating systems with asserts turned on (like KDE neon) that could sometimes crash Plasma when you launched apps. (David Edmundson, KDE Bugzilla #513312)

Plasma 6.6.0

Fixed a rare issue that could leave KWin without control of the mouse and keyboard at login. (Vlad Zahorodnii, KDE Bugzilla #511611)

Fixed a case where Plasma could crash when moving around a Weather Report widget on the desktop. (Bogdan Onofriichuk, KDE Bugzilla #514200)

Fixed an issue in Discover when launched with Snap support that could prevent it being launched again after previously being closed. (Aleix Pol Gonzalez, KDE Bugzilla #507217)

Fixed a case where the Plasma Bluetooth pairing wizard would fail to pair devices. (David Edmundson, KDE Bugzilla #495615)

The logout screen no longer fails to take focus if you raised the focus stealing level to "Medium" or higher, and manually de-focusing it no longer breaks your ability to re-focus it. (Vlad Zahorodnii, KDE Bugzilla #514204 and Aleksey Rochev, KDE Bugzilla #511258)

The custom size ruler for Plasma panels no longer sometimes appears on the wrong screen of a multi-screen setup. (Vlad Zahorodnii, plasma-workspace MR #6215)

The "X notifications were received while Do Not Disturb was active" notification is no longer inappropriately saved to the notification history. (Kai Uwe Broulik, plasma-workspace MR #6223)

Fixed two semi-related issues with widgets that made them not let you pick the same color after deleting it, or configure the same mouse action after deleting it. (Christoph Wolk, KDE Bugzilla #514983 and KDE Bugzilla #449389)

The global menu on a newly-cloned panel on a different screen now realizes immediately that it's on a new screen. (David Redondo, KDE Bugzilla #514907)

Discover's notification about ongoing updates no longer displays a nonsensically large number of updates under certain circumstances. (Harald Sitter, KDE Bugzilla #513676)

Plasma Browser Integration no longer exports Microsoft Teams calls as controllable media sources; it always omitted them in the past, but Microsoft changed the URL again, so we had to adapt to that once more. (Kai Uwe Broulik, KDE Bugzilla #514870)

You can now move focus from the Application Dashboard widget's search field using arrow keys, and also type accented characters using dead keys or the compose key as the first character in a search while the search field isn't explicitly focused. (Christoph Wolk, KDE Bugzilla #511146 and KDE Bugzilla #510871)

Animated wallpapers explicitly set for the lock screen now play their animation as expected. (Taras Oleksyn, KDE Bugzilla #460910)

Undoing the deletion of a panel widget no longer sometimes positions it far from where it was before. (Marco Martin, KDE Bugzilla #515107)

Ending the renaming of an item on the desktop by clicking on another item no longer starts a drag-selection for no good reason. (Akseli Lahtinen, KDE Bugzilla #514954)

The "Defaults" button on System Settings' Accessibility page now works properly to reset non-default colorblindness modes. (Andrew Gigena, KDE Bugzilla #513489)

Plasma 6.7.0

Fixed a very nasty KWin bug that could, under certain rare circumstances relating to intensive Alt+Tab usage, cause the screen to go black. This change may be backported to Plasma 6.6 if it's deemed safe enough. (Xaver Hugl, KDE Bugzilla #514828)

Frameworks 6.23

Fixed being unable to paste clipboard entries as text that were copied from a LibreOffice Calc spreadsheet cell and then re-arranged in the clipboard history list. (Alexey Rochev, KDE Bugzilla #513701)

Notable in Performance & Technical

Plasma 6.6.0

KRDP (the KDE library for remote desktop support) no longer requires systemd. (David Edmundson, krdp MR #141)

Plasma 6.7.0

KWin now supports the ext-background-effect-v1 Wayland protocol. This adds support for standardized background effects like blur, opening the door for visual consistency across apps using these effects. (Xaver Hugl, KWin MR #4890)

How You Can Help

KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.

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

Beyond that, you can help KDE by directly getting involved in any other projects. Donating time is actually more impactful than donating money. Each contributor makes a huge difference in KDE - you are not a number or a cog in a machine! You don't have to be a programmer, either; many other opportunities exist.

You can also help out by making a donation! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

To get a new Plasma feature or a bugfix mentioned here

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

31 Jan 2026 12:03am GMT

30 Jan 2026

feedPlanet KDE | English

KWallet, SecretService, oo7: the story so far

Continuing previous efforts to update the "secure passwords" story of the Plasma desktop, I've done some integration work between Plasma and oo7.

Oo7 is a relatively recent SecretService provider written in Rust; it's very nice, lightweight and cross-desktop. Very interesting for us supporting it as a first class citizen.

We want in the end to replace completely the old KWallet system with something based on SecretService, have all our applications migrated transparently with user data as well, if possible with a cross-desktop backend implementation.

We also want it to be as transparent as possible for the end user, not having any complicated first time setup, or dialogs that ask for a manual unlock when not needed. For the user, the whole system should be just invisible, except when looking up their passwords or when client applications add passwords to it themselves.

As a first thing several months ago we did a transparent translation layer for the KWallet DBus interface, so now the "KWallet" service became just a translation layer between the kwallet api and the secretservice one.

The old kwalletd service instead became "ksecretd" now providing only the SecretService interface, and that's what we use by default now. however, it can be configured to use a different provider, so it can already be used with gnome-keyring or KeepassXC if the user wishes. In that case the user data will be migrated the first time.

Also I've written a new application called KeepSecret. It is centered around SecretService, with a much more modern UI compared to KWalletManager and works also much better on mobile, so we can have also a modern password manager on Plasma Mobile.

KeepSecret running with the oo7 backend, with a native password dialog

The last thing that we did so far is integration with a new SecretService provider on the block: oo7.

If oo7 is Just another SecretSerive provider, Won't it "just work" in Plasma? Not quite, but that's actually a good thing. Oo7 wants to properly integrate with the environment it runs in, so we need to build that integration.

When you use KWallet, KeepassXC, or gnome-keyring directly, they create their own password dialogs using their own toolkits and styles, therefore potentially looking a bit alien when run in a different environment than the one it it was designed for.

This is not ideal for evaluating options for a possible future replacement of KWallet (which piece by piece we are working towards), as we want the UI part completely integrated with the Plasma desktop.

Instead, oo7 is built on the assumption that the environment it runs on will provide its own dialogs, a bit like the portal system for services like screen sharing and file picking.
This requires active integration both on the Plasma part and the oo7 part, but on the other hand it will look native on Plasma, Gnome, and any other platform that implements the integration hooks. And that's with the added benefit of sharing the password storage if someone every now and then goes desktop environment hopping.

On the Plasma side we decided to employ a very small daemon which is launched only on demand with dbus activation. It will create the needed system dialogs, pass the user input back to oo7 and then quit when not needed anymore, so it won't constantly use up system resources.

This is already available in Plasma 6.6: the code for it is here. It's designed first for oo7, but it can be used by any daemon which wishes to provide native password dialogs, so we might start to use it also from other components in the future, either other SecretService providers or completely different things which have similar needs like Polkit.

On the oo7 part, Harald implemented the integration with its dbus interface, so with oo7 from main branch (or its next release) it can be used in place of KWallet (with all old applications still using the KWallet API using its backend as well), with all data migrated to it, and it will show native UI for its password dialogs… all the pieces of the puzzle slowly falling together 🙂

Needless to say this is still at an experimental stage, but it's an important milestone in getting more independent from the aging KWallet infrastructure.

30 Jan 2026 4:15pm GMT

Web Review, Week 2026-05

Let's go for my web review for the week 2026-05.


Neocities Is Blocked by Bing

Tags: tech, web, search, microsoft, vendor-lockin

Huh? What's going on there? I don't see why they would exclude this domain completely, it makes no sense.

https://blog.neocities.org/blog/2026/01/27/bing-block


The Enclosure feedback loop

Tags: tech, ai, machine-learning, gpt, copilot, enclosure, vendor-lockin

Interesting point. As we see the collapse of public forums due to the usage of AI chatbots, we're in fact witnessing a large enclosure movement. And it'll reinforce itself as the vendors are training on the chat sessions. What used to be in public will be hidden.

https://michiel.buddingh.eu/enclosure-feedback-loop


No, Cloudflare's Matrix server isn't an earnest project

Tags: tech, ai, machine-learning, copilot, matrix, cloudflare, security, failure

Very in depth review of the mess of a Matrix home server vide coded at Cloudflare… all the way to the blog announcing it. Unsurprisingly this didn't go well and they had to cover their tracks several times. The response from the Matrix foundation is a bit underwhelming, it's one thing to be welcoming, it's another to turn a blind eye to such obvious failures. This doesn't reflect well on both Cloudflare and the Matrix Foundation I'm afraid.

https://nexy.blog/2026/01/28/cf-matrix-workers/


I Was Right About ATProto Key Management

Tags: tech, social-media, bluesky, decentralized

Indeed, it just can't be called decentralized…

https://notes.nora.codes/atproto-again/


Microsoft Gave FBI BitLocker Encryption Keys, Exposing Privacy Flaw

Tags: tech, microsoft, security, privacy

Are we surprised? Of course not… As soon as you backup the keys on someone else's server BitLocker can't do anything to ensure privacy.

https://www.forbes.com/sites/thomasbrewster/2026/01/22/microsoft-gave-fbi-keys-to-unlock-bitlocker-encrypted-data/


ICE takes aim at data held by advertising and tech firms

Tags: tech, advertisement, surveillance, politics, privacy

What a surprise… No really who would have expected this could happen? I heard so many times "I have nothing to hide" over the years. When something like this happens you suddenly wish you were a bit more careful with your privacy and the privacy of the people around you.

https://www.theregister.com/2026/01/27/ice_data_advertising_tech_firms/


The Rise of Sanityware

Tags: tech, privacy, surveillance, attention-economy

Those are indeed getting more popular. In a way that's unfortunate, we shouldn't need them so much.

https://thatshubham.com/blog/2026


Blogs Are Back

Tags: tech, rss, blog, tools

Looks like a nice tool to help people to get into RSS.

https://www.blogsareback.com/


Places to Telnet

Tags: tech, networking, funny

Telnet is not dead! We still have fun places to turn telnet clients to.

https://telnet.org/htm/places.htm


10 Years of Wasm: A Retrospective

Tags: tech, web, standard, webassembly, history

Nice retelling of the story behind WebAssembly.

https://bytecodealliance.org/articles/ten-years-of-webassembly-a-retrospective


cppstat - C and C++ Compiler Support Status

Tags: tech, c++, standard, tools

Looks like an interesting tool to follow availability of C++ features in compilers.

https://cppstat.dev/


Why I still teach OpenGL ES 3.0

Tags: tech, graphics, teaching, learning

Good point, it is old but portable and carries the important concepts. This is a good teaching vehicle. Even though it's unlikely you'd use it in the wild much longer.

https://eliasfarhan.ch/jekyll/update/2026/01/27/why-i-teach-opengles.html


SPAs Are a Performance Dead End

Tags: tech, web, frontend, performance

It's a solution for a problem long gone. SPAs should be the exception for highly interactive applications not the norm. Most web applications don't need to be a SPA and would be better off without being one.

https://www.yegor256.com/2026/01/25/spa-vs-performance.html


Functional Core, Imperative Shell

Tags: tech, functional, architecture, tests, tdd

Clearly not a style which works for any and every applications. Still, it's definitely a good thing to aim towards such an architecture. It brings really nice properties in terms of testability and safety.

https://www.destroyallsoftware.com/screencasts/catalog/functional-core-imperative-shell


How I estimate work as a staff software engineer

Tags: tech, estimates, decision-making

The approach is interesting. I wouldn't assume it's doable in every contexts though. What's sure is that you need to embrace the uncertainty and accept to go with the exercise. Estimates are needed to make decisions and help teams to sync.

https://www.seangoedecke.com/how-i-estimate-work/


Is It Worth It?

Tags: tech, failure, organisation, estimates

Solving paper cuts pay off faster than you'd think.

https://griffin.com/blog/is-it-worth-it


Things I've learned in my 10 years as an engineering manager

Tags: tech, engineering, management, leadership

Nice advice, there's a lot of variation on the role. And yet, some things seem to always be there.

https://www.jampa.dev/p/lessons-learned-after-10-years-as


Because coordination is expensive

Tags: tech, team, organisation, communication, complexity

The complexity and cost in organisations is indeed mostly about coordination. This is a difficult problem and largely unsolved in fact.

https://surfingcomplexity.blog/2026/01/24/because-coordination-is-expensive/


Douglas Adams on the English-American cultural divide over "heroes"

Tags: culture

The contrast is indeed very stark. I got my own bias and fondness for heroic failures.

https://shreevatsa.net/post/douglas-adams-cultural-divide/



Bye for now!

30 Jan 2026 1:14pm GMT

Call for Presentations – Qt World Summit 2026 in Berlin

It's that time of year again; another Qt World Summit is approaching! We are looking for speakers, collaborators, and industry thought leaders to share their expertise and insights at the upcoming Qt World Summit 2026 on October 27-28, in Berlin, Germany.

*Please note we are looking for live talks only.

30 Jan 2026 11:59am GMT

December/January in KDE Itinerary

In the past two months since the previous report KDE Itinerary got new vector-based map views and manual control over reservation cancellations, and there has been more work on reverse engineering proprietary train tickets, among many other things.

New Features

Vector maps

The map views can now use a MapLibre-based vector map instead of the previous raster image map. This gives us smoother and continuous zoom, and should also allow localized labels eventually, something particularly important in regions you can't even read the local script.

Screenshot of Itinerary showing a full-screen MapLibre map with two event locations marked on it.
Vector-based map view in Itinerary.

This is enabled in our nightly APK and Flatpak builds, other distribution channels might not have this enabled yet.

Reservation cancellation

It's now possible to manually mark reservations as canceled, rather than just importing that information from documents. This is useful for keeping unused reservations around but not have them considered for transfers, in the maps or for statistics, e.g. because you still need them for refund claims or travel cost reimbursement.

Screenshot of part of Itinerary's reservation editing page, showing a checkbox to toggle the cancellation state.
Manually changeable cancellation status.

Canceled reservations are now also clearly marked as such in the timeline view again, something that had gotten lost in the last timeline restyling.

Infrastructure Work

Ticket barcode reverse engineering

Ticket barcodes can contain machine-readable information about the trip and can therefore be very useful for importing tickets into Itinerary. While ticket barcodes on international trips commonly use openly standardized formats for interoperability between different providers, this is unfortunately often not the case for domestic tickets. For those we have to resort to reverse engineering.

Fortunately though, there's more people interested in what's in those barcodes, e.g. from a privacy or security perspective, and there's increasing collaboration.

Specifically, the understanding of the Hungarian domestic ticket format has significantly increased recently, as the result of three different parties exchanging their observations and evaluating their respective findings against each other's ticket sample pools. A few few magic numbers for product/tariff/discount codes are yet to be figured out, but there's now a pretty complete Kaitai spec able to decode versions 2 to 6 of the current format, e.g. using the Kaitai Web IDE.

Many of the discoveries made there have a resulted in improvements and fixes for MÁV and Volánbusz tickets in Itinerary.

Documentation on ticket barcodes formats is also slowly being consolidated in the Train Ticket Wiki, where available also in appropriate machine-readable formats (Kaitai, Protobuf, ASN.1, etc).

Reverse geocoding for location codes

The work on automatic geocoding for train and bus reservations covered in the last report has been further expanded:

Events

There's two recent events that covered upcoming changes to Transitous, the public transport routing service used by Itinerary:

And more opportunities to meet the Itinerary and Transitous teams are coming up:

Fixes & Improvements

Travel document extractor

All of this has been made possible thanks to your travel document donations!

Public transport data

All of this also directly benefits KTrip.

Itinerary app

How you can help

Feedback and travel document samples are very much welcome, as are all other forms of contributions. Feel free to join us in the KDE Itinerary Matrix channel.

30 Jan 2026 8:45am GMT

This week in Bouncy Ball – new features land

After some more nights spent with our beloved Bouncy Ball, I'm happy to announce that a new version is out on the KDE Store. Last week in Bouncy Ball | KDE Store page Prior to getting down and dirty with it, I again had at a look at how the ball was implemented in KDE4...... Continue Reading →

30 Jan 2026 8:08am GMT

29 Jan 2026

feedPlanet KDE | English

Qt Creator 19 Beta released

We are happy to announce the release of Qt Creator 19 Beta!

You find a selection of improvements and fixes below. Please have a look at our change log for more detailed information.

29 Jan 2026 10:29am GMT

28 Jan 2026

feedPlanet KDE | English

Ooo, what does this disk do?

I have a pile of hard drives. 3.5" Spinning rust. There's like a dozen of them, some labeled cryptically (EBN D2), some infuriatingly (1) and some not-at-all. Probably most of them work. But how to effectively figure out what is on them? FreeBSD to the rescue.

Hotplug Just Works

All the drives are SATA. I do have an IDE drive, I use it for opening beer bottles. And an ST-225 for old-time's sake. But SATA it is, and there's spare SATA data- and power-cables dangling out the side of my PC. This particular machine runs FreeBSD 14.3, and connecting a drive (data first, then power) yields some messages in the system log. Old-school, the command to read these is still dmesg, which prints:

ada3 at ahcich0 bus 0 scbus0 target 0 lun 0
ada3: <WDC WD3200AAKS-00SBA0 12.01B01> ATA-7 SATA 2.x device
ada3: Serial Number WD-WMAPZ0561055
ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada3: Command Queueing enabled
ada3: 305245MB (625142448 512 byte sectors)

That matches information printed on the label of the disk (this drive is from 2007, has a 1 written on it in black marker - it may have been a drive in the English Breakfast Network server back then). It also tells me that the disk is registered with the system as ada3.

FreeBSD's disk subsystem is a stack of "GEOM classes". The geom(4) manpage tells me that it is a modular disk I/O request transformation framework, but the important bit is geom(8), the command to query the disk subsystem. Running geom disk list ada3 tells me what is known about disks involved with ada3. This actually doesn't tell me much I don't already know:

Geom name: ada3
Providers:
1. Name: ada3
Mediasize: 320072933376 (298G)
Sectorsize: 512
Mode: r0w0e0
descr: WDC WD3200AAKS-00SBA0
lunid: 50014ee0aabd8fe3
ident: WD-WMAPZ0561055
rotationrate: unknown
fwsectors: 63
fwheads: 16

Well, actually this tells me that the dmesg and geom output are in mibi- and gibi-bytes, and that they're consistent. How about partitions on this disk, though? geom part list ada3 tells me (here I've removed several partitions, along with many other lines that are not very useful right now; the output is extensive):

Geom name: ada3
scheme: GPT
Providers:
1. Name: ada3p1
Mediasize: 819200 (800K)
efimedia: HD(1,GPT,a43a2da3-bb5f-11e5-8d81-f5e4d894ddb1,0x22,0x640)
label: (null)
type: efi
index: 1
2. Name: ada3p2
Mediasize: 315679277056 (294G)
efimedia: HD(2,GPT,a43c9069-bb5f-11e5-8d81-f5e4d894ddb1,0x662,0x24bff9c0)
label: (null)
type: freebsd-ufs
index: 2

So it is a GPT-partitioned disk, and at least one of the partitions is an "old-fashioned" UFS partition. That's FreeBSD before ZFS became the de-facto standard filesystem (maybe just for me). This disk is simple to deal with (further notes below)!

After I'm done with the disk, I power it down first with camcontrol standby ada3. I can hear the disk stop spinning and then pull out the connectors (power first, then data). And move on to the next disk. After disconnecting, dmesg confirms that I unplugged the correct drive:

ada3 at ahcich0 bus 0 scbus0 target 0 lun 0
ada3: <WDC WD3200AAKS-00SBA0 12.01B01> s/n WD-WMAPZ0561055 detached
(ada3:ahcich0:0:0:0): Periph destroyed

This way I can step through all of the drives in my pile and then jot down what disk does what (or, in rare cases, decide they can be zeroed out and re-used for something else).

Dealing with non-GPT disks

The scheme reported by geom part list is GPT if you're sensible, but of course it is possible to bump into MBR and BSD disklabels as well. The geom subsystem abstracts all that away, and the only realy difference is the names of devices.

Scheme BSD, also known as BSD disklabel, gives you ada3a and ada3d, rather than numbered partitions. It is possible to apply this to a whole disk. It is also possible to have a BSD disklabel inside an MBR partition, but that's a late-90s kind of setup.

Scheme MBR gives you numbered partitions, but FreeBSD calls these slices instead of partitions and so you end up with ada3s1 instead of ada3p1.

Dealing with UFS

UFS partitions are pretty simple: mount them somewhere and things will be OK. I go for read-only, and I have a /mnt/tmp for all my arbitrary-disk-mounting activity. So mount -o ro /dev/ada3p2 /mnt/tmp it is (ada3p2 is the partition name found earlier).

This particular disk turned out to be my main workstation drive around 2017, with a handful of still-interesting files on it. Ones I would not have missed if I hadn't looked, but it was nice to find a presentation PDF I gave to SIDN once-upon-a-time.

After looking, umount /mnt/tmp to unmount and release the disk. After that, power-down and disconnect as described above.

Dealing with ZFS

Slightly newer disks might be ZFS. Here's the partition information for one:

Providers:
1. Name: ada3p1
Mediasize: 250059309056 (233G)
label: backup0
type: freebsd-zfs
index: 1

It's a GPT partition with a label, and ZFS on it. That means it's part of a ZFS pool, and is probably referred to within the pool by its label. Possibly by its ID. In any case, ZFS needs to be imported, not mounted, because the filesystems are contained as part of the storage pool. The command to discover what is available is zpool import , which doesn't actually import anything.

 pool: zbackup
config:
zbackup ONLINE
gpt/backup0 ONLINE

That's encouraging: the pool consists of a single drive and everything is online. To make the filesystems in this pool available, I need to import it. I'll force it (-f, because it was probably untimely ripp'd from whatever machine it was in previously), without mounting any of the filesystems in it (-N), readonly (-o readonly=on) with a temporary name (-t zwhat), like so: zpool import -f -N -o readonly=on -t zbackup zwhat

After importing the pool, zfs list tells me what filesystems are available:

zwhat 36.2G 189G 25K /zwhat
zwhat/home 36.2G 189G 36.0G /tmp/foo/

I can mount a single ZFS filesystem just like a UFS filesystem. The ZFS filesystem knows where it would want to be mounted (/tmp/foo, I have no idea what I was doing back then), but we can treat it like a legacy filesystem: mount -t zfs zwhat/home /mnt/tmp

After looking, umount /mnt/tmp to unmount and release the disk. After that, power-down and disconnect as described above.

Dealing with Linux ext4

If the disk comes from a Linux machine, then it may have an ext4 filesystem on it. I still usually pick that when installing Linuxes. Here's the partition information for one:

scheme: MBR
Providers:
2. Name: ada3s2
Mediasize: 64428703744 (60G)
rawtype: 131
type: linux-data

There is ext4 support in the FreeBSD kernel, although it is named ext2 (and some ext4 filesystems use unsupported features, and then it won't mount). But for simple cases: mount -o ro -t ext2fs /dev/ada3s2 /mnt/tmp does the job.

Dealing with linux-raid

I found two disks, both WD Caviar Blue, labeled EBN D1 and EBN D2 with similar layouts. Those are linux-raid disks, and this is something I can't deal with in FreeBSD. Heck, I'm not confident I can deal with them under Linux anymore, either.

Providers:
1. Name: ada3s1
Mediasize: 493928031744 (460G)
efimedia: HD(1,MBR,0xa8a8a8a8,0x3f,0x398033d3)
rawtype: 253
type: linux-raid

Re-purposing Disks

KDE has a lovely partitioning tool, but I wouldn't be me if I didn't go for the command-line approach. Make sure the disk isn't mounted anywhere, but is powered up.

Zero out the first gigabyte or so of the disk: dd if=/dev/zero of=/dev/ada3 bs=1M count=1024 I guess this isn't strictly necessary, and geom warns during this operation that the GPT is corrupt and the backup GPT (at the other end of the disk) should probably be used. Ignore that.

Destroy the partition table some more: geom part destroy -F ada3 , now it is really dead.

Make a new GPT partition table on the disk: geom part create -s gpt ada3

Start adding partitions to the partition table. I (now) use labels with the last digits of the drive's serial-number. This drive gets a gigabyte of swap (just in case) and the rest is a ZFS partition which I can add to a pool later.

Why the labels-with-serial-numbers? Well, that's so that I can subsequently create a ZFS pool from labeled partitions, and it remains obvious where the parts of the pool come from and also prevents name-collisions from naming everything backup0 and so.

28 Jan 2026 11:00pm GMT

Krita 5.2.15 bugfix release!

Today we're releasing Krita 5.2.15. This is a bug fix release with a number of crash fixes and workarounds to improve use with the Xiaomi Pad.

Changelog

Download

Windows

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

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

Linux

Note: starting with 5.2.11, the minimum supported version of Ubuntu is 22.04.

[!WARNING] Starting with 5.2.11 has updated the AppImage runtime, which is known to be incompatible with the old versions of AppImageLauncher. Developers of the AppImage runtime suggest to remove or update AppImageLauncher. See this report: Issue 121 More AppImage troubleshooting info is available here: FUSE

MacOS

Note: We're not supporting MacOS 10.13 anymore, 10.14 is the minimum supported version.

Android

We consider Krita on ChromeOS as ready for production. Krita on Android is still beta. Krita is not available for Android phones, only for tablets, because the user interface requires a large screen.

Source code

md5sum

For all downloads, visit https://download.kde.org/stable/krita/5.2.15/ and click on "Details" to get the hashes.

Key

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

28 Jan 2026 12:00am GMT

GSoC: differences of expectations between students and organizations

I've been administering KDE's participation in the Google Summer of Code program for the last few years (and mentoring on some). This post is just some personal thoughts on the differences between what the KDE organization expects and what usually the applicants want (I'm not in everybody heads, it's assumptions from my experience). I don't provide any solution (because I don't have any) and there is no judgment (both point of views are valid), just a personal point of view.

Applicants point of view

GSoC is a individual competitive program which can be a huge boost to start a career. There are usually two major reasons for the applicants to participate in GSoC:

There is, for a lot of applicants, no genuine interest in the projects (at least at the beginning, the first interaction is often "I want to start contributing to KDE and prepare for GSoC"), and they mostly want a GSoC slot. Small digression, on one of my projects, two people already asked to contribute and if we were doing GSoC, but after telling them that contributions are welcomed and we will only propose a topic if we feel enough confidence that the contributor would stay after, they told us they preferred to choose another project.

Contributors consider GSoC as an end of their studies, not a project they want to contribute after: there is also a change of life to consider between university life and work life and a balance to achieve when starting the latter (which could be in a different town/country) which may be a reason for the drop of interest.

Organization point of view

GSoC is an opportunity to welcome new contributors to our community. The organization usually expects from GSoC:

GSoC is mostly a step to have contributors learning about the projects, and contribute in the long-term. Long-term is purposely vague; what we expected for the GCompris project was the contributor would contribute at least one year and mentor for the next GSoC (so a loop was present, and applicants would also gain an experience on mentoring, while giving some relief to the other experienced mentors) but it can vary depending on the project.

For the return on investment, mentors do not consider it good having spent more than three months mentoring for projects they could have done in less time they spent to mentor the contributor. Helping someone grow is always personally rewarding but we still hope this person will also show us the results of the teaching by improving our projects in the future.

Impacts of the differences

There is a huge difference on the expectations. What can we do to reach a common ground where everyone is happy?

Another track is to find the projects where contributors stay / don't stay and understand the difference. Most of the big KDE applications don't manage to keep their contributors, while smaller ones do. Maybe as a contributor, it's because it's more difficult to take decisions, feel included/listened on large projects because they have a high maturity level/long-term contributors and a well-defined vision? Whereas on smaller projects, there are fewer constraints from the existing environment and it feels more rewarding and motivating to contribute there?

To conclude, here are the statistics for KDE retention the last years:

Year Started Completed Active after 1 year Active after 2 years Active after 3 years
2018 20 17 5 5 4
2019 24 22 9 8 8
2020 21 19 2 2 1
2021 16 15 8 6 3
2022 7 6 5 1 0
2023 9 7 3 3 2
2024 10 10 4 2 -
2025 15 12 6 - -

That is, an average of 15 people sign up each year, of which

We would of course love having more contributors staying at least one year but it's almost half and a quarter that stay active for a few years!

28 Jan 2026 12:00am GMT

27 Jan 2026

feedPlanet KDE | English

KDE Plasma 6.6 Beta Release

This is second beta of Plasma 6.6, which includes several bugfixes before final release on 17th February 2026.

Here are the new modules available in the Plasma 6.6 beta:

Some important features and changes included in 6.6 beta are highlighted on KDE community wiki page.

View full changelog

27 Jan 2026 12:00am GMT

26 Jan 2026

feedPlanet KDE | English

Qt Creator 18.0.2 released

We are happy to announce the release of Qt Creator 18.0.2!

This release fixes a range of smaller issues like the persistence of the "Always save files before build" option and an issue that occurred when using some custom toolchains with vcpkg. It also updates the wizard templates for the Qt Safe Renderer.

26 Jan 2026 11:01am GMT

25 Jan 2026

feedPlanet KDE | English

Bouncy Ball will always bounce back

Bouncy Ball. A proper KDE 4 classic. Many hymns of praise have been sung about this lovable desktop extension. Do You Remember the KDE Bouncy Ball Widget? Fear not, OMG! Ubuntu! You will bounce again! The KDE Ball Widget Bounces Back to Life It's a widget that lets you play with a bouncy ball on...... Continue Reading →

25 Jan 2026 9:32am GMT

24 Jan 2026

feedPlanet KDE | English

This Week in Plasma: fixing all the things

Welcome to a new issue of This Week in Plasma!

This week the Plasma team focused almost entirely on bug fixing. And let's let the results speak for themselves: we fixed 18 high and very high priority Plasma bugs, or 28% of all open ones! Lots of polishing for Plasma 6.6 to make it a great release.

Notable New Features

Plasma 6.7.0

Added a dedicated setup UI for configuring shared printers on Windows networks. (Mike Noe, KDE Bugzilla #406211)

System Settings’ Printers page showing support for adding Windows shared printers

Notable UI Improvements

Plasma 6.6.0

Desktop switching and Present Windows shortcuts now use the Meta key by default for more consistent system-wide behavior. (Antti Savolainen, kwin MR #8597)

Plasma can now report printers' waste receptacle levels and notify users when they fill up. (Mike Noe, KDE Bugzilla #514525)

KRunner's buttons have been reorganized to be consistent with other Plasma widgets, making the interface feel more familiar and coherent. (Taras Oleksyn, plasma-workspace MR #6203)

KRunner showing settings and pin buttons on the right

Plasma 6.7.0

System Settings' Wi-Fi & Networking page now uses clearer Wi-Fi security labels, correctly showing WPA2 and WPA3 support for both Personal and Enterprise networks. (Lynne Megido, KDE Bugzilla #493238)

There are now keyboard shortcuts for switching virtual desktops and opening the Present Windows effect that use the Meta key, to be consistent with other globally-scoped keyboard shortcuts. (Antti Savolainen, KDE Bugzilla #508187)

Frameworks 6.23

Improved the visual fidelity of thumbnail images in open/save dialogs throughout Plasma and KDE apps. (Méven Car, KDE Bugzilla #489298)

Notable Bug Fixes

Plasma 6.5.6

Fixed an issue that could sometimes make KWin crash after periods of idleness. (Vlad Zahorodnii, KDE Bugzilla #513687)

Fixed an issue that would make Plasma crash when you disabled widgets in the System Tray and clicked the dialog window's "OK" button rather than the "Apply" button. (David Edmundson, KDE Bugzilla #478625)

Fixed an issue that could sometimes make KWin crash after repeatedly pressing the "Activate window demanding attention" shortcut (Meta+Ctrl+A by default) while multiple windows were demanding attention. (Vlad Zahorodnii, KDE Bugzilla #500748)

Fixed a common case where Plasma could crash after certain games crashed first. (David Edmundson, KDE Bugzilla #506562)

Fixed a common case where Plasma could crash when configured with a weather station from the Environment Canada source in its Weather Report widget. (Bohdan Onofriichuk, KDE Bugzilla #514553)

Fixed a case where changing the visibility of the Media Player widget in the System Tray while music was playing could make Plasma crash. (David Edmundson, KDE Bugzilla #514823)

Spectacle once again remembers the location where you last saved a screenshot the next time you save one. (Noah Davis, KDE Bugzilla #511649)

Fixed an issue causing 24" 16:9 aspect ratio monitors to get the wrong default resolution. (Anton Golubev, kwin MR #8681)

Plasma 6.6.0

Fixed a surprisingly common issue whereby KWin could sometimes crash when you frantically wiggled the pointer to try to stop a monitor from going to sleep. (Vlad Zahorodnii, KDE Bugzilla #487660)

Fixed a case where KWin could crash when you deleted a virtual desktop that still had windows on it. (Vlad Zahorodnii, kwin MR #8680)

Fixed another KWin crash, this one more random. (Xaver Hugl, kwin MR #8677)

Fixed a long-standing issue whereby tooltips opened by buttons in Plasma widget popups could move onto the panel and get stuck there after you closed the widget popups. (Marco Martin, KDE Bugzilla #475646)

Fixed an issue that made popups of panel widgets undesirably change their size when you moved their panel to an adjacent screen edge. (Christoph Wolk, KDE Bugzilla #512273)

Fixed an issue making certain sub-menus of Plasma widgets not have transparent backgrounds, which was especially visible with menu blurring turned on. (Marco Martin, KDE Bugzilla #513307)

Fixed an issue in the HDR calibrator tool that made long pieces of text overflow from their boxes. (Nate Graham and David Edmundson, KDE Bugzilla #514687)

Fixed an issue that made Plasma forget the IPSec certificate passwords of L2TP VPNs. (Mickaël Thomas, plasma-nm MR #460)

Fixed an issue causing apps launched using D-Bus activation to be omitted from System Monitor's Applications table. (Arjen Hiemstra, KDE Bugzilla #510235)

Fixed an issue in System Monitor that could make the Applications table's "Details" panel un-scrollable under certain circumstances. (Arjen Hiemstra, KDE Bugzilla #506150)

Fixed an issue in Discover that could sometimes make Flatpak apps' languages packages fail to get grouped with the apps. (Harald Sitter, KDE Bugzilla #513111)

Plasma 6.7.0

Fixed an issue that broke KRunner's Activities plugin from actually finding any activities. (Sam Morris, KDE Bugzilla #514000)

Fixed an issue that caused long boot menu entries to be cut off in the Breeze GRUB Menu styling. (Sébastien Bouchard, KDE Bugzilla #513107)

GRUB screen theme with more space for long text

Frameworks 6.23

Fixed an issue that caused a large variety of crashes in Plasma and KDE apps related to devices appearing and disappearing. (Nicolas Fella, solid MR #232)

Fixed an issue making KWallet crash on OpenSUSE-based operating systems. (Nicolas Fella, KDE Bugzilla #490788)

Fixed an issue in Kirigami-based System Settings pages and apps that made it impossible to return to the first page when using a right-to-left language like Arabic or Hebrew. (Youssef Al-Bor3y, KDE Bugzilla #511295)

Notable in Performance & Technical

Plasma 6.6.0

Plasma's system monitoring infrastructure received further fixes to improve OpenBSD support. (Rafael Sadowski, libksysguard MR #454)

PackageKit 1.3.4

Implemented support for DNF5 in PackageKit, which fixes a huge number of issues relevant to people using Discover on Fedora-based operating systems. (Neal Gompa, packagekit PR #931)

How You Can Help

"This Week in Plasma" still needs your help! Publishing these posts is time-consuming and needs community assistance to be sustainable. Right now there are two ways to help:

Work can be coordinated in the relevant Matrix room.

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 keep KDE bringing Free Software to the world.

To get a new Plasma feature or a bugfix mentioned here

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

24 Jan 2026 12:03am GMT

23 Jan 2026

feedPlanet KDE | English

In praise of memory-leak-detection

Nicolas Fella wrote a bit about enabling memory leak detection in KDE CI, and I thought I'd add some comments from a different software engineering environment (e.g. my work-work).

Guidelines for Memory Management

At work-work, we have a slightly peculiar software environment:

This leads to two guidelines about memory-management in our application:

This does mean that depending on where in the codebase you're working, you either have to be a "C++ purist" (as Nico puts it) or a "Qt pragmatist" (as I'll phrase it). Note that the guideline is not "use smart pointers", because that last guideline can deconstructed a little (it wouldn't surprise me if this was inspired by Klaus Iglberger):

Often that means that memory-management is in the hands of std::unique_ptr, but std::vector does the job also. We have a handful of other classes for resource-management as well, like a wrapper for FILE * for those places where we need to interact with C's stdio library. Granted, FILE * is probably not a source of memory-leaks, but it is a managed resource, and forgetting one will lead to leaking file-descriptors in the long run.

Leaky Libraries

Dealing with memory leaks can be difficult particularly when they happen in libraries not under your control. As an example, I wrote this program ( headers elided for brevity) which is a Qt5 program:

int main(int argc, char **argv)
{
QApplication a(argc, argv);
QTimer::singleShot(5000, qApp, &QApplication::quit);
return a.exec();
}

This is, like, the simplest Qt5 program. It sits there for five seconds and then quits. It also leaks 1662 bytes of memory, in 19 allocations, according to my ASAN output. They leak from allocations done in libQt5Core. Adding a QLabel and displaying some text adds leaks in libfontconfig, and the leaks keep accumulating as more libraries enter the mix.

Granted, none of these leaks are large. I'm not even sure that they are impolite, but they're there and it makes tracking down leaks in my code harder, because there's some baseline of leakage that I need to ignore. Filtering out the noise becomes a serious undertaking.

Takeaway

Chasing all the memory-leaks is hard. Chasing any leaks in KDE Frameworks is something I can only applaud.

23 Jan 2026 11:00pm GMT

Detecting Memory Leaks in KDE CI

Leaking memory is impolite. It's messy, it can suggest logic bugs, and thanks to AI grifters RAM is expensive.

Unfortunately C++ makes it rather easy to leak memory. Fortunately we have tools to find such leaks. One such tool is Leak Sanitizer (LSAN) from the Address Sanitizer (ASAN) family. It's using compiler-based instrumentation for the code to reports any leaks after the program terminates.

KDE's CI infrastructed has ASAN enabled for a while. However the leak sanitizer part was explicitly disabled, so no leaks were reported as part of the CI build and test run. This is because a number of projects have pre-exisiting memory leaks that would cause the C build to fail. Of course those should be fixed eventually, but in order to do that we need to know where they are. Also, for projects that currently don't have any leaks we want to enforce keeping it that way.

A few lines of Python later KDE's CI system now allows to enable LSAN on a per-project basis. The .kde-ci.yml file that governs CI builds in KDE gained a new option enable-lsan. It is off by default for now for compatibility, but we may consider enabling it by default eventually.

If enabled and any memory leak in a test is detected, that test and therefore the whole CI pipeline will fail.

Now once we found a leak, what can we do about it? There's several options:

LSAN is now enabled for some Frameworks CI builds, but ideally it would be enabled for all KDE projects. And of course any leaks found along the way should be fixed.

Happy leak-fixing!

23 Jan 2026 9:00pm GMT