Skip to content

Saturday, 24 May 2025

Welcome to a new issue of “This Week in Plasma”! Every week we cover the highlights of what’s happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.

This week we really ramped up the focus on bug-fixing in preparation for Plasma 6.4’s release in three weeks. But we also managed to squeeze in a huge feature for the next release too: time-of-day wallpapers! Plasma now supports automatically changing compatible wallpapers between their light and dark versions based on the day/night cycle, and also features some visual polish to make the previews of these dynamic wallpapers look better and be more clearly indicated as dynamic. This was done by Vlad Zahorodnii; thanks a lot Vlad!

Wallpaper configuration window showing the option to switch the colors of dynamic wallpapers based on the time of day

As with last week, don’t worry too much about the high-priority bugs list gaining items, as we’re using this to prioritize fixes during the Plasma 6.4 beta period.

Notable UI Improvements

Plasma 6.4.0

Discover no longer includes wallpapers and other add-ons in its search results unless you initiate the search while on the “Add-Ons” page. This should make most search results much more relevant! (Ismael Asensio, link)

Discover showing search results for “sky” that consists of only relevant-looking apps, and not a trillion crappy wallpapers of the night sky

Did a few rounds of visual polish on the Audio Volume widget, which can get quite complicated-looking when multiple audio devices are present. (Christoph Wolk, link 1, link 2, link 3, and link 4)

Audio Volume widget showing four devices with nice spacing, indentation, and margins

Plasma 6.5.0

Made major UI improvements to the Sticky Note widget to support the use case of having it in your panel: now you can resize them to be much smaller; change the background color from the context menu; and when you choose the “Transparent” background color, the colored sticky note background disappears entirely, tightening up the outer margins significantly if you want to save space. (Kai Uwe Broulik, link)

Small Sticky Note widget with tight margins around the text
Context menu for Stocky Note widget showing color options

If you choose a font with the text “Display” in its name as one of your global fonts, System Settings now warns you that this isn’t a good idea, because these fonts are not intended for display on digital screens. (Nate Graham, link)

The first time you launch Emoji Picker (launchable via to the Meta+. keyboard shortcut by default), it now opens to a page showing everything, rather than the “Recent” page which of course would be empty. (Kai Uwe Broulik, link)

In the Networks widget, the “Hotspot” button is now always visible, but disabled when not available, and hovering over it tells you why it can’t be used right now and what you can do to change that. (Nate Graham, link)

Networks widget showing disabled “Hotspot” button and tooltip explaining that it’s disabled because all wireless radios are in use

All the debugging effects on System Settings’ Desktop Effects page have been removed from there and moved to the KWin debug window instead. Not sure how to access it? Search for “kwin debug” in Kickoff or KRunner! (Oliver Beard, link)

Improved accessibility and general keyboard navigation in the Audio Volume widget, Flatpak page in System Settings, and Updates page in Discover. (Christoph Wolk, link 1, link 2, link 3, link 4, and link 5)

Frameworks 6.15

Opening the “Advanced Options” window from the properties dialog for an item on the Plasma desktop no longer freezes Plasma completely until it’s closed. (Akseli Lahtinen, link)

Improved accessibility and keyboard navigation throughout System Settings, particularly around the topics of passing focus between page content and the window’s sidebars and footers. (Christoph Wolk, link)

When navigating Kirigami-based apps and System Settings pages using a screen reader, it will no longer rather pointlessly announce “LAYERED PANE ZERO ITEMS” all the time. (Christoph Wolk, link)

Notable Bug Fixes

Plasma 6.3.6

Fixed a case where KWin could crash when you disconnect multiple KVM-connected screens. (Xaver Hugl, link)

Fixed a bug that could cause per-widget Edit Mode to not exit properly. (Yu Wang, link)

Opening the “Add Action” window from the clipboard configuration dialog no longer freezes Plasma completely until it’s closed. (Nate Graham, link)

Deleting (not trashing) files from Plasma notifications’ context menus now works. (Kai Uwe Broulik, link)

Changing the screen tearing settings now takes effect immediately, rather than requiring a restart. (Xaver Hugl, link)

Fixed a case where junky graphical glitches could briefly be seen on the screen after logging in but before Plasma’s splash screen or desktop loads. (Xaver Hugl, link)

When XWayland-using apps deliberately ask to open on a specific screen, the screen they open on now more reliably matches the one they wanted. (Xaver Hugl and Vlad Zahorodnii, link 1 and link 2)

Plasma 6.4.0

Fixed a rare but severe issue that could allow bypassing the lock screen’s password prompt and unlocking without a password under certain circumstances. (Marco Martin, link)

Fixed a case where System Settings could crash right after you change a screen’s refresh rate. (David Edmundson, link)

Fixed a case where Plasma could crash when dragging cells from LibreOffice onto the desktop. Now it lets you create a media frame or sticky note out of the contents, as intended. (David Edmundson, link)

Fixed a bug that could cause WINE apps with custom window decorations to freeze when de-maximized. (Rémi Bernon, link)

Now the “Remote control requested” dialog will always tell you what is requesting remote control; at the very minimum, it will now give you the technical ID of the thing making the request if it can’t display a pretty name — rather than displaying nothing. (Stephan Seitz, link)

Fixed several cases where using a color picker to pick a screen color could return a very subtly wrong result when using certain combinations of Night Light, ICC profiles, HDR, 10-bit color, or any other features that globally change all colors on the screen. (Xaver Hugl, link)

Fixed a bug where the resize handles of a custom length panel could go off-screen when there was another panel on an adjacent screen edge. (Marco Martin, link)

In the System monitor app aid widgets, sorting by network speed no longer incorrectly puts processes with no network activity first, and now the “read/write” speeds are correctly displayed once more (Arjen Hiemstra, link 1, link 2)

Using the “Process Table” visualization for blank System Monitor sensor widgets no longer incorrectly makes them think they’re in need of configuration the next time you restart Plasma or the system. (Christoph Wolk, link)

Fixed a bug that caused the colors of the “Horizontal Bars” graph type in System Monitor Widgets to not be set properly the first time you added a widget using it to a panel or desktop. (Christoph Wolk, link)

Fixed a regression that caused the list of file types in a dialog on System Settings’ Default Applications page to overflow when it’s really really really long. (Nate Graham, link)

Row heights in System Monitor table views are once again perfectly identical, after a Qt issue caused this to stop being the case. (David Redondo, link)

When clicking the “Global Theme” Button on System Settings’ Quick Settings page, after it takes you to the Global Themes page as you asked, it also expands the sidebar to show all the child pages, just as if you had navigated there manually. (Marco Martin, link)

Previews in the wallpaper grid view now adjust their aspect ratio in real time if the screen’s own aspect ratio changes — for example due to a change in rotation or resolution. (Vlad Zahorodnii, link)

Frameworks 6.15

Fixed a regression in the new Kirigami icon shader code that caused app-provided system tray icons to sometimes look visually squished. (Vlad Zahorodnii, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.3.6

Adaptive Sync is now disabled by default for new installations (not existing ones), because it exposes too many bugs in graphics drivers to offer a good enough experience for everyone. (Xaver Hugl, link)

Plasma 6.4.0

Made the clipboard popup window you can access using Meta+V faster to appear. (Fushan Wen, link)

Choosing a screen resolution that wasn’t one of the display’s native resolutions no longer incurs a steep performance penalty. (Xaver Hugl, link)

Plasma 6.5.0

Massively improved scrolling performance in Plasma’s wallpaper grid views. (Vlad Zahorodnii, link)

Qt 6.9.2

Implemented delegate recycling for Qt grid views, which offers the potential for improved performance in grid views throughout Plasma and QtQuick-based KDE apps. (Vlad Zahorodnii, link)

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.

You can help KDE by becoming an active community member and getting involved somehow. 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 us by making a donation! Any monetary contribution — however small — will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

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

Friday, 23 May 2025

Here we are in the year 2025 and every company that wants to grab your money now peddles AI.

Even most search engines will now start with some “AI powered” summary.

Unfortunately, what they give you is just some deep learning intelligence fake.

Just imagine, you don’t read the links yourself, but you pass that to some friend/colleague/… that might be a nice person but is known to, if in doubt, not to tell that he did not understand what he should do, but just returns some random stuff that sounds like it could be true.

That is the state of AI.

Naturally one has trained the models to death on standard questions and problems, ask a semi new model why the sky is blue and you get the same answer as on the Wikipedia, more or less.

But try it different: Ask something that for sure is no training question.

My self serving question, just to see if the standard models know something about Kate (and perhaps me). Naturally not just ‘me’ invented Kate, but let’s roll with that.

Who invented the Kate editor?

Let’s ask the gemma3 model:

The Kate editor was primarily developed by Michael Hofmann.

Here’s a breakdown of the key figures and the evolution of Kate:

Michael Hofmann (Lead Developer): Hofmann started working on Kate as a personal tool for editing and exploring Markdown. He initially created it as a command-line tool and gradually built out the features we see today. He’s the driving force behind the project and continues to actively maintain and develop it. Other Contributors: While Hofmann is the central figure, Kate has benefited from significant contributions from a community of developers and designers. Important contributors include: Matt Butcher: Made significant contributions to the UI design and the editor’s overall look and feel. Daniel Wani: Was instrumental in the early development and testing. Key Timeline:

2013-2015: Initial development started by Michael Hofmann as a personal tool. 2015: Kate was released as open-source. 2016: The first desktop version was released. In short, Michael Hofmann is widely considered the inventor of the Kate editor, but it’s a product of a collaborative effort.

You can find more information about the development history on the Kate editor’s website: https://katex.app/

Ok? No idea where that stems from.

Next try, ask llama3.2:

I couldn’t find any information on who specifically “invented” the Kate editor, but it was primarily developed by Michael Hofmann.

The Kate editor is a command-line text editor that was first released in 2005 and has since become popular among programmers and developers. It’s known for its speed, efficiency, and customization options.

If you’re looking for more information on the history of Kate or its development, I’d be happy to try and help!

A bit better, at least some hint that the answer could be useless. Half contradicting the first, given there the same person seem to have invented that close to one decade later.

Next try, ask deepseek-r1:

The Kate editor was not invented by a single individual but is instead an open-source project that was primarily developed and designed by Michael Hofmann in 2005. Since then, it has been actively maintained and improved by a community of contributors who have added features, enhanced its functionality, and worked on its documentation.

Kate is known for its simplicity, speed, and ability to perform complex text transformations quickly. It is widely used in development environments and is often bundled with modern IDEs (Integrated Development Environments) like JetBrains Rider for Java and .NET projects.

If you’re looking for more details about Kate or its history, feel free to ask!

Matching a bit the second answer with more interesting random pseudo facts.

Ok, then let’s try the Brave browser AI search:

Kate Editor Inventor The KDE community developed the KDE Advanced Text Editor, or Kate. It has been a part of the KDE Software Compilation since version 2.2, which was first released in 2001.

That looks at least reasonable.

Let’s put the first sentence of one of the answers in the Brave browser AI search to see what happens then:

The Kate editor was not invented by a single individual but is instead an open-source project that was primarily developed and designed by Michael Hofmann in 2005.

You get back:

The Kate editor is part of the KDE free software community and was not invented by a single individual. Development of Kate began in 2001 with the release of KDE Software Compilation version 2.2. Michael Hofmann is known for his contributions to the project, but he did not single-handedly create it. Kate is an advanced text editor that supports syntax highlighting, code folding, and multiple cursors, among other features.

Now you have Michael Hofmann back, as that was in your search prompt. None of the linked search results tell you a sentences about Michael Hofmann, this was just nicely hallucinated into the summary because it was in the prompt.

I don’t say that AI tooling is useless, deep learning is a very useful tool.

But I am afraid many people will just read the AI summary box above the search results and believe that is a real summary.

No, it is not.

If you rephrase the

The Kate editor was not invented by a single individual but is instead an open-source project that was primarily developed and designed by Michael Hofmann in 2005.

to something different, with a different name and perhaps not that nice achievement, you will likely just get a hallucinated confirmation of your query.

And voila: you asked if some thing you heard somewhere is true and more or less get it confirmed because you asked about it.

We then end up here:

I said it because it is the truth. It is the truth because I said it.

I hope that enough people understand that issue and don’t fall for the trap of only peaking at the AI summary and not actually looking at the search results. But as it is that convenient, and even I often just read that first, I am afraid that will not be the case.

Naturally the search results themselves were never the fully reliable source of information.

They are weighted and sorted via algorithms that will keep in mind a lot of things that might not be in your interest and even without that, perhaps just the found pages are full of half truths or lies (like this one :)

But the AI summary box just adds one level more that can introduce just any kind of error or bias on top of that.

Let’s go for my web review for the week 2025-21.


Interview: Chief maintainer of Qt project on language independence, KDE, and the pain of Qt 5 to Qt 6

Tags: tech, c++, qt

Nice little interview showing what’s brewing in the Qt project and how the relationship with KDE is important.

https://devclass.com/2025/05/16/interview-chief-maintainer-of-qt-project-on-language-independence-kde-and-the-pain-of-qt-5-to-qt-6/


Coding Without a Laptop - Two Weeks with AR Glasses and Linux on Android

Tags: tech, linux, android, ar, mobile

This is a funny setup. It’s not very expensive either.

https://holdtherobot.com/blog/2025/05/11/linux-on-android-with-ar-glasses/


For Algorithms, a Little Memory Outweighs a Lot of Time

Tags: tech, algorithm, complexity, research

Interesting new proof on the relationships between P and PSPACE. Let’s see where this leads.

https://www.quantamagazine.org/for-algorithms-a-little-memory-outweighs-a-lot-of-time-20250521/


We did the math on AI’s energy footprint. Here’s the story you haven’t heard

Tags: tech, ai, machine-learning, gpt, energy, ecology, economics

That’s a good overview of the energy demand, it doesn’t account for all the resources needed of course. Now of course like most articles and studies on the topic, it’s very inaccurate because of the opacity from the major providers in that space. The only thing we know is that the numbers here are likely conservative and the real impact higher. Mass use of those models inferences is already becoming a problem, and it’s bound to get worse.

https://www.technologyreview.com/2025/05/20/1116327/ai-energy-usage-climate-footprint-big-tech/


ChatGPT Heard About Eagles Fans

Tags: tech, ai, machine-learning, gpt, bias

Those hosted models really exhibit weird biases… The control of the context is really key.

https://www.dbreunig.com/2025/05/21/chatgpt-heard-about-eagles-fans.html


I got fooled by AI-for-science hype—here’s what it taught me

Tags: tech, ai, machine-learning, neural-networks, science, research

Or how the current neural networks obsession is poisoning scientific fields. There was already a reproducibility crisis going on and it looks like it’s been getting worse. The incentives are clearly wrong and that shows.

https://www.understandingai.org/p/i-got-fooled-by-ai-for-science-hypeheres


After months of coding with LLMs, I’m going back to using my brain

Tags: tech, ai, machine-learning, copilot, learning, programming, quality

Somehow not surprising… There’s an area where it works OK. That said, I think we don’t have the right UX to exploit it safely and productively. The right practices still need to be found. This isn’t helped by all the hype and crazy announcements.

https://albertofortin.com/writing/coding-with-ai


The Copilot Delusion

Tags: tech, ai, machine-learning, gpt, copilot, quality, learning, hacking, culture, criticism

This is a good rant, I liked it. Lots of very good points in there of course. Again: the area where it’s useful is very narrow. I also nails down the consequences of a profession going full in with those tools.

https://deplet.ing/the-copilot-delusion/


The efficiency trap: Why obsessing over AI productivity will destroy your engineering culture

Tags: tech, ai, machine-learning, gpt, engineering, quality, architecture, problem-solving

You can’t be in the backseat when using those tools. Otherwise you might feel productive by cranking out code but it can’t do the essential tasks for you (most notably actual problem solving or architecture thinking). The quality would clearly suffer.

https://siliconangle.com/2025/04/13/efficiency-trap-obsessing-ai-productivity-will-destroy-engineering-culture/


Is Winter Coming?

Tags: tech, ai, machine-learning, gpt, reliability, business

If the funding dries up… we’ll have another AI winter on our hands indeed.

https://www.datagubbe.se/winter/


Leeks and leaks

Tags: tech, networking, tor

Feels a bit like bad coordination on the Tor project side this one.

https://daniel.haxx.se/blog/2025/05/16/leeks-and-leaks/


Postman is logging all your secrets and environment variables

Tags: tech, networking, tools, security

Seriously… Developers should be ashamed to produce such invasive tools.

https://anonymousdata.medium.com/postman-is-logging-all-your-secrets-and-environment-variables-9c316e92d424


Detecting malicious Unicode

Tags: tech, encodings, unicode, programming, security

Unicode in source code can come with unwanted consequences. Tooling might be required.

https://daniel.haxx.se/blog/2025/05/16/detecting-malicious-unicode/


Dividing an array into fair sized chunks

Tags: tech, programming, multithreading

Nice approach, especially useful if you need to split work to distribute it to threads.

https://lemire.me/blog/2025/05/22/dividing-an-array-into-fair-sized-chunks/


C++ encapsulation for Data-Oriented Design: performance

Tags: tech, data-oriented, architecture, c++, performance

Or how it’s possible to expose an object-oriented like API for a data oriented framework without sacrificing on performances.

https://bannalia.blogspot.com/2015/09/c-encapsulation-for-data-oriented.html


Returning several values from a function in C++ (C++23 edition)

Tags: tech, c++, programming

Friendly reminder that in C++ that case evolved quite a bit all the way to C++23. Please use the more recent constructs in new code. This definitely leads to better patterns.

https://lemire.me/blog/2025/05/18/returning-several-values-from-a-function-in-c-c23-edition/


Using unwrap() in Rust is Okay

Tags: tech, rust, reliability, safety

I find the title misleading. Still, this is a good exploration of how to treat unwrap() and expect() in Rust code.

https://burntsushi.net/unwrap/


Don’t Unwrap Options: There Are Better Ways

Tags: tech, rust, programming

Another trick in Rust to avoid unwrap() calls. The let-else option is indeed particularly elegant.

https://corrode.dev/blog/rust-option-handling-best-practices/


async/await versus the Calloop Model

Tags: tech, architecture, rust, programming, pattern

Apparently this needs pointing out but there’s more than async/await out there. Sometimes what you want is a simple event loop. Here illustrated in the Rust ecosystem.

https://notgull.net/calloop/


Particle Life simulation in browser using WebGPU

Tags: tech, webgpu, gpu, physics, biology, simulation

Nice in depth article on how to run particle simulations using WebGPU. This one has a very life like rendering.

https://lisyarus.github.io/blog/posts/particle-life-simulation-in-browser-using-webgpu.html


Making Video Games in 2025 (without an engine)

Tags: tech, programming, game

There are options indeed. Some of them can be maybe surprising. It of course depends the type of game you’re making.

https://noelberry.ca/posts/making_games_in_2025/


The Door Problem

Tags: tech, game, programming, design

This is indeed an excellent way to understand all the roles and the work behind creating a game.

https://lizengland.com/blog/the-door-problem/


Good Performance for Bad Days

Tags: tech, tests, performance, complexity, system

Or why it’s hard to truly evaluate performance in complex systems. We often test things in the optimistic case.

https://brooker.co.za/blog/2025/05/20/icpe.html


Circuit Breaker

Tags: tech, distributed, design, pattern

Good explanation of an important design pattern as soon as you have remote calls.

https://martinfowler.com/bliki/CircuitBreaker.html


Introduction to the Architecture Decision Canvas

Tags: tech, architecture, collaborative, organization

Another way to approach Architecture Decision Records. A different format to try to foster a more collaborative approach.

https://www.workingsoftware.dev/introducing-the-software-architecture-decision-canvas/


An example of preparatory refactoring

Tags: tech, programming, refactoring

Good reminder that refactoring isn’t necessarily the end of a cycle. It can also be before you add a feature.

https://martinfowler.com/articles/preparatory-refactoring-example.html


Test Desiderata

Tags: tech, tests, tdd

A quick summary of the different properties you want in tests. In practice you’ll likely have to find a tradeoff among them.

https://testdesiderata.com/


The Cycles of TDD

Tags: tech, tests, tdd

This explains quite well how TDD is made of several cycles of different length.

https://blog.cleancoder.com/uncle-bob/2014/12/17/TheCyclesOfTDD.html


3 Reasons Why Your Team Needs Rituals

Tags: tech, agile, management

Rituals are definitely important… if you understand why you’re going through them. If you just “go through the moves” they’re failing.

https://agileweboperations.com/2014/07/10/3-reasons-why-your-team-needs-rituals/


Paying the Cost for More Precise Estimates

Tags: tech, estimates, project-management

Don’t throw estimates out of the window. Keep in mind that the more precise they are the more expensive they become.

https://www.mountaingoatsoftware.com/blog/paying-the-cost-for-more-precise-estimates


Agile and Predictability

Tags: tech, agile, forecasting, estimates, business

Interesting point of view. I’m not sure I fully agree with the classification but it gives something to mull over. For sure the less reliable your estimates the more padding is needed to have some predictability.

https://www.jamesshore.com/v2/blog/2014/agile-and-predictability#_949792


Relationship of Cycle Time and Velocity

Tags: tech, agile, scrum, kanban, estimates, forecasting

This is indeed two sides of the same coin. A good reminder that you need to pick the right approach depending on the context.

https://blog.gdinwiddie.com/2014/12/10/relationship-of-cycle-time-and-velocity/



Bye for now!

Thursday, 22 May 2025

Snaps!

I actually released last week 🙂 I haven’t had time to blog, but today is my birthday and taking some time to myself!

This release came with a major bugfix. As it turns out our applications were very crashy on non-KDE platforms including Ubuntu proper. Unfortunately, for years, and I didn’t know. Developers were closing the bug reports as invalid because users couldn’t provide a stacktrace. I have now convinced most developers to assign snap bugs to the Snap platform so I at least get a chance to try and fix them. So with that said, if you tried our snaps in the past and gave up in frustration, please do try them again! I also spent some time cleaning up our snaps to only have current releases in the store, as rumor has it snapcrafters will be responsible for any security issues. With 200+ snaps I maintain, that is a lot of responsibility. We’ll see if I can pull it off.

Life!

My last surgery was a success! I am finally healing and out of a sling for the first time in almost a year. I have also lined up a good amount of web work for next month and hopefully beyond. I have decided to drop the piece work for donations and will only accept per project proposals for open source work. I will continue to maintain KDE snaps for as long as time allows. A big thank you to everyone that has donated over the last year to fund my survival during this broken arm fiasco. I truly appreciate it!

With that said,  if you want to drop me a donation for my work, birthday or well-being until I get paid for the aforementioned web work please do so here:

Wednesday, 21 May 2025

We're actually going to be using the Do Not Disturb feature in Plasma 6.4.

I say that because previously we had a hack that simply allowed notifications to display over top of fullscreen windows, and do not disturb was only ever used if:

  • Screens are mirrored
  • During screen sharing
  • The user invoked it manually

This was a little odd, and led to some inconsistencies. Plus only Plasma knew about the user's preference to see notifications in fullscreen, and despite notifications being inhibited reading org.freedesktop.Notifications.Inhibited would return false.

I changed this to actually use do not disturb when a fullscreen window is focused. This is more predictable and in-line with what the user would expect, enhancing the UX and communication with other parts of the system and apps.

Screenshot showing the new setting to automatically enable DND when fullscreen windows are focused

As a result, we've discovered several bugs that had gone unnoticed! So far:

My impression is that these bugs were not evident before because few people were actually using the do not disturb feature, thanks to the way we previously handled notifications with fullscreen applications. Everyone has been hard at work getting these fixed and hopefully DND will be more useful, predictable, and reliable! 🎉 😄

Tuesday, 20 May 2025

gcompris 25.1 and 4.3.1

Today we are releasing GCompris version 25.1.

It contains bug fixes and graphics improvements on many activities.

It is fully translated in the following languages:

  • Arabic
  • Bulgarian
  • Breton
  • Catalan
  • Catalan (Valencian)
  • Greek
  • Spanish
  • Basque
  • French
  • Galician
  • Croatian
  • Hungarian
  • Indonesian
  • Italian
  • Lithuanian
  • Latvian
  • Malayalam
  • Dutch
  • Polish
  • Brazilian Portuguese
  • Romanian
  • Russian
  • Sanskrit
  • Slovenian
  • Albanian
  • Swedish
  • Turkish
  • Ukrainian

It is also partially translated in the following languages:

  • Azerbaijani (90%)
  • Belarusian (86%)
  • Czech (98%)
  • German (87%)
  • UK English (99%)
  • Esperanto (99%)
  • Estonian (88%)
  • Finnish (93%)
  • Hebrew (97%)
  • Georgian (86%)
  • Macedonian (83%)
  • Norwegian Nynorsk (92%)
  • Portuguese (87%)
  • Slovak (81%)
  • Swahili (91%)
  • Chinese Traditional (87%)

You can find packages of this new version for GNU/Linux, Windows, Android, and Raspberry Pi on the download page. Also this update will soon be available in the Android Play store, the F-Droid repository and the Windows store.

We are also releasing GCompris version 4.3.1.

This is a maintenance version for 32bit systems which only contains a few backported bug fixes.

Thank you all,
Timothée & Johnny

Monday, 19 May 2025

This week I powered up the StarFive VisionFive v2 board that I have. I figured I would give FreeBSD another whirl on it, in the vague hope that RISC-V boards are a more cohesive family than ARM boards were five years ago. tl;dr: I didn’t get it to work as well as I want it to. Here are some notes.

I mentioned this board when it arrived and documented the serial pinout as well, but it has been languishing while I had other things to do.

F(reeBSD) Around And Find Out

This is what I did. The board is listed as partially supported on the FreeBSD RISC-V Wiki so I’m not entirely surprised it craps out. I’ll update the wiki if I get any further than this.

  • Downloaded a FreeBSD -CURRENT snapshot. The ISO images live here for RISC-V. I picked up the GENERICSD image from May 15th.
  • Wrote the uncompressed image to a micro-SD card with dd.
  • Stuck it in the board, connected serial ports, and powered it up.

The board starts and spits out things over serial, like all SBCs seem to do.

Platform Name             : StarFive VisionFive V2
Platform Features         : medeleg
Platform HART Count       : 5

Note the HART (core) count of 5. That’s relevant later, because this is nominally a quad-core CPU. After a little bit of SBI, we get to a U-Boot layer of the boot process, which tells me this:

U-Boot 2021.10 (Feb 12 2023 - 18:15:33 +0800), Build: jenkins-VF2_515_Branch_SDK_Release-24

CPU:   rv64imacu
Model: StarFive VisionFive V2
DRAM:  8 GiB

That is still consistent with what I think is on my desk. The FreeBSD kernel loads! And then the usual message Hit [Enter] to boot immediately appears. If I go on to boot normally, it invariably fails like this:

sbi_trap_error: hart0: trap handler failed (error -2)
sbi_trap_error: hart0: mcause=0x0000000000000005 mtval=0x0000000040048060

It is remarkably unhelpful to search for this, since the error message is both all over the place, and rarely fully explained or diagnosed. I don’t have a good explanation either, but

That fifth core, hart 0, is a different kind of CPU, and is mislabeled in the FDT that is still being shipped. FreeBSD then tries to set up the CPU in the wrong way, and it dies. The issue is quite descriptive, after you read it like six times to figure out what it actually means. Anyway, instead of hitting \[Enter\], I press some other key, and then use the loader prompt:

OK fdt prop /cpus/cpu@0/status disabled
Using DTB provided by EFI at 0x47ef2000.
OK boot

This subsequently craps out with:

starfive_dwmmc0: <Synopsys DesignWare Mobile Storage Host Controller (StarFive)> mem 0x16020000-0x1602ffff on simplebus0
starfive_dwmmc0: No bus speed provided
starfive_dwmmc0: Can't get FDT property.
device_attach: starfive_dwmmc0 attach returned 6

Followed by:

Mounting from ufs:/dev/ufs/rootfs failed with error 19.

Not even close to workable. The board itself is fine, there is a Debian image for it which just boots on through, does useful things, but that just isn’t what I want to run on this board.

It Helps To Read The Documentation

There’s a long post – someone who wanted to run FreeBSD, hit snags, then tried OpenBSD instead – over here in a GitHub gist that describes most of the process that I went though. And there is a post on the FreeBSD Forum about progress.

So I looked at both, and then went over the instructions more carefully.

  • Write the generic SD-card image to a micro-SD card.
  • Mount the EFI partition from the micro-SD card. Use gpart list da0 to see what GEOM thinks of the card. The card is GPT-partitioned, and the EFI partition is third on the disk in the standard getup. Then mount -t msdosfs /dev/da0p3 /mnt/tmp , and copy “the DTB file” into, say, the root of that filesystem. Scare quotes explained later. I used target name s5v5.dtb to save typing later.
  • Unmount, then move the card to the VisionFive board.
  • Boot, and interrupt SBI. Having remembered that the third partition is the EFI partition, load the DTB and EFI from there:
    load mmc 1:3 ${fdt_addr_r} s5v5.dtb
    load mmc 1:3 ${kernel_addr_r} EFI/boot/bootriscv64.efi
    bootefi ${kernel_addr_r} ${fdt_addr_r}
    
  • This, somewhat to my surprise, chugs right along to a login: . The default credentials are root and root.
  • Along the way, ethernet is detected and DHCP happens and partitions on the SD card are resized.

The scare quotes around “the DTB file” are because there are many DTB files floating around for this, and lots of links to an email message attachment. I downloaded it and this one works for me, so now I have archived it locally under a slightly different name.

Why the different name? Well, investigation at the SBI prompt with env print -a showed a variable fdtfile=starfive/starfive_visionfive2.dtb. I moved the s5v5.dtb file to that location in the EFI partition, and now I don’t need to interrupt SBI because it loads the right DTB file directly.

The lack of eMMC (the controller seems to be found, but the 16MB eMMC module isn’t) and NVMe (there’s an M2 slot, and I have a WD stick in there) means that storage is rather constrained, still, and there’s nothing I would trust a write-heavy load to.

What Would OpenBSD Do?

Going through the same steps with OpenBSD (which suffers from the same kind of “there’s a gazillion ways to put together an SD card for this board”, and not one is canonical or step-by-step) is also successful. More successful, even, because all the storage options are found:

nvme0: WDC WDS240G2G0C-00AJM0, firmware 231050WD, serial 22465R472602
scsibus0 at nvme0: 2 targets, initiator 0
sd0 at scsibus0 targ 1 lun 0: <NVMe, WDC WDS240G2G0C-, 2310>
sd0: 228936MB, 512 bytes/sector, 468862128 sectors
gpiorestart0 at mainbus0
"clk_ext_camera" at mainbus0 not configured
scsibus1 at sdmmc0: 2 targets, initiator 0
sd1 at scsibus1 targ 1 lun 0: <Samsung, AJTD4R, 0000> removable
sd1: 14910MB, 512 bytes/sector, 30535680 sectors
scsibus2 at sdmmc1: 2 targets, initiator 0
sd2 at scsibus2 targ 1 lun 0: <Sandisk, SC32G, 0080> removable
sd2: 30436MB, 512 bytes/sector, 62333952 sectors

That is some serious storage for a tiny board like this.

Takeaways

It helps to read the documentation carefully. I need to update the FreeBSD wiki. The board is usable, but needs additional storage options to be a nice kind of machine for router-and-storage or NAS work.

Kirigami Addons is a collection of supplementary components for Kirigami applications. Version 1.8.0 is a relatively minor release, introducing two new form delegates along with various quality-of-life enhancements.

New Features

I added two new form delegates: FormLinkDelegate (!343) and FormIconDelegate (!355).

The first one is similar to FormButtonDelegate, but it’s used to display an external link. It’s already used on the About page:

 

The second one was upstreamed from Marknote and allows the user to pick an icon and display the selected icon.

I also added a password quality checker to FormPasswordFieldDelegate (!345). This is particularly useful when asking users to create an account:

 

Visual Changes

Kai Uwe Broulik improved avatar rendering. Initials are now always displayed consistently even on small screen (!363).

Kai also fixed an issue on mobile where library information on the About page was being ellipsized (!356).

Balló György fixed several issues when using Kirigami with the QtQuick software rendering backend (!350, !351).

I made the delegates provided by Kirigami Addons now have a slightly larger touch area on mobile (!349). Unfortunately, I also had to remove the small hover animations, as they occasionally caused visual glitches (1d6e84cd).

Convenient New APIs

Joshua Goins added an opened property to ConvergentContextMenu (!352), and I added a close method to allow closing the menu programmatically (!364).

I also added support for trailing items in FormTextFieldDelegate (f996fc6e).

Documentation

Thiago Sueto ported the entire library to QDoc (!354). QDoc provides much better support for QML.

Other Changes

“trapped-in-dreams” significantly improved the performance of the date picker (!360).

Volker Krause updated the project templates to reflect current best practices for Android support (!359).

Packager Section

1.8.0 had an issue with system not having QDoc, but a bug fix release is available as 1.8.1 with the fix for that.

You can find the package on download.kde.org and it has been signed with my GPG key.

We have moved the deadline for talk submission for Akademy 2025 to the end of the month. Submit your talks now! 

https://mail.kde.org/pipermail/kde-community/2025q2/008217.html 

https://akademy.kde.org/2025/cfp/

Sunday, 18 May 2025

I recently made a patch to Konsole terminal emulator, that adds to the current tab layout saving system couple more things:

  • Working directory
  • Size of splits
  • Optional command to run

You can find the patch here: ViewManager: Save columns, lines and working directory to tabLayout (!1095)

It's a feature I've seen in other terminal editors, so I wanted to add it to Konsole as well.

Note that this is not in current version of Konsole, but it will be in the next one: 25.07. Unless it gets backported, of course.

Current tab layouts

In Konsole, you can even in current version save your tab layout:

  1. Open Konsole
  2. Split the current view into multiple ones
  3. Go to Menu -> View -> Save tab layout...

This produces a JSON file like this:

{
    "Orientation": "Vertical",
    "Widgets": [
        {
            "SessionRestoreId": 0
        },
        {
            "SessionRestoreId": 0
        }
    ]
}

Now, as it is currently, it's not that useful. The split sizes won't be saved, for example.

My changes

My changes now allow you to save the size of the splits and the working directories, like this:

{
    "Orientation": "Horizontal",
    "Widgets": [
        {
            "Columns": 88,
            "Command": "",
            "Lines": 33,
            "SessionRestoreId": 0,
            "WorkingDirectory": "/home/akseli/Repositories"
        },
        {
            "Orientation": "Vertical",
            "Widgets": [
                {
                    "Columns": 33,
                    "Command": "",
                    "Lines": 21,
                    "SessionRestoreId": 0,
                    "WorkingDirectory": "/home/akseli/Documents"
                },
                {
                    "Columns": 33,
                    "Command": "",
                    "Lines": 10,
                    "SessionRestoreId": 0,
                    "WorkingDirectory": "/home/akseli"
                }
            ]
        }
    ]
}

As you can see, it saves the Columns, Lines, WorkingDirectory. It also adds empty Command item, which you can write any command in, like ls -la, or keep it empty.

You can try to use the columns and lines sections to modify the size manually, but I've noticed it's easier just to do it inside Konsole.

Now the old layout file will work too, if the field doesn't exist Konsole won't do anything about it.

Note about the command: Konsole basically pretends to type that command in when it loads, so the commands don't need a separate Parameter field or anything like that. You could make the command something like foo && bar -t example && baz --parameter. Konsole then just types that in and presses enter for you. :)

More concrete example

I made this change because I wanted to run Konsole in following layout:

{
    "Orientation": "Horizontal",
    "Widgets": [
        {
            "Orientation": "Vertical",
            "Widgets": [
                {
                    "Columns": 139,
                    "Command": "hx .",
                    "Lines": 50,
                    "SessionRestoreId": 0
                },
                {
                    "Columns": 139,
                    "Command": "",
                    "Lines": 14,
                    "SessionRestoreId": 0
                }
            ]
        },
        {
            "Columns": 60,
            "Command": "lazygit",
            "Lines": 66,
            "SessionRestoreId": 0
        }
    ]
}

With these items I can get the layout splits as I want, with any commands I want.

Then I have a bash script to run this layout in the directory the script is run at:

#!/usr/bin/env bash
konsole --separate --hold --workdir "$1" --layout "$HOME/Documents/helix-editor.json" &

Now when I go to any project folder and run this script, it will open the Helix text editor, lazygit and empty split the way I want it, without having to make these splits manually every time.

Preview of Konsole and splits of editor and git

Sure I could use something like Zellij for this but they have so much things I don't need, I just wanted to split the view and save/load that arrangement.

In future

I would like to add a small GUI tool inside Konsole that allows you to customize these layout easily during save process, such as changing the WorkingDirectory and Command parameters.

But for now, you'll have to do it inside the JSON file, but chances are when you want to do layouts like this, you're comfortable editing these kind of files anyway.

I hope some others will find this useful as well, for things like system monitoring etc.

Hope you like it!