<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet href="/html-rss.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Planet KDE | English</title><link>https://planet.kde.org/</link><description>Planet KDE | English</description><image><link>https://planet.kde.org/</link><title>Planet KDE</title><url>https://planet.kde.org/img/planet.png</url><height>48</height><width>48</width></image><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>2026-03-14T22:43:27+00:00</lastBuildDate><atom:link href="https://planet.kde.org/index.xml" rel="self" type="application/rss+xml"/><item><title>This month in KDE Linux</title><link>https://pointieststick.com/2026/03/14/this-month-in-kde-linux/</link><pubDate>Sat, 14 Mar 2026 22:43:27 +0000</pubDate><guid isPermaLink="true">http://pointieststick.com/?p=26001</guid><description>&lt;p class="wp-block-paragraph"&gt;Another month has gone by since &lt;a target="_blank" href="https://pointieststick.com/2026/02/06/busy-months-in-kde-linux/"&gt;the last time&lt;/a&gt; I wrote about &lt;a target="_blank" href="https://kde.org/linux/"&gt;KDE Linux&lt;/a&gt;, KDE&amp;#8217;s upcoming new operating system. The project hasn&amp;#8217;t stood still! Here&amp;#8217;s an assortment of what&amp;#8217;s gone on recently:&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Real sizes for system updates&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Aleix Pol Gonzalez and Harald Sitter built the machinery to allow update sizes to be calculated for delta updates. This means the sizes listed in Discover are no longer &amp;#8220;Unknown&amp;#8221;. Instead, you&amp;#8217;ll see a real number:&lt;/p&gt;
&lt;figure class="wp-block-image size-full"&gt;&lt;img data-attachment-id="26003" data-permalink="https://pointieststick.com/2026/03/14/this-month-in-kde-linux/real-update-sizes/" data-orig-file="https://pointieststick.com/wp-content/uploads/2026/02/real-update-sizes.png" data-orig-size="1118,357" data-comments-opened="1" data-image-meta="&amp;#123;&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}" data-image-title="real-update-sizes" data-image-description="" data-image-caption="" data-medium-file="https://pointieststick.com/wp-content/uploads/2026/02/real-update-sizes.png?w=300" data-large-file="https://pointieststick.com/wp-content/uploads/2026/02/real-update-sizes.png?w=1024" src="https://pointieststick.com/wp-content/uploads/2026/02/real-update-sizes.png" alt="" class="wp-image-26003" /&gt;&lt;/figure&gt;
&lt;h2 class="wp-block-heading"&gt;Better tools for extending the OS&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Lasath Fernando started building out the new &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kapsule"&gt;Kapsule&lt;/a&gt; system, which is a tool for installing software in long-lived containers with great integration with Konsole and the rest of the OS. Before this, we experimented multiple options for experts to extend the system — including Homebrew, Distrobox, and Nix — but none really hit the sweet spot. They were too limited, too dangerous, too complex, too ephemeral, or too something else.&lt;/p&gt;
&lt;p class="wp-block-paragraph"&gt;Kapsule deeply integrates with Konsole, which makes sense because a terminal window is a major interface for touching or extending the system in this way. Integrations with Kate and Discover are planned, too. In other words, we want to go all in on this promising new technology for the &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/issues/443"&gt;&amp;#8220;extending the system&amp;#8221; story&lt;/a&gt; for experts and software developers.&lt;/p&gt;
&lt;p class="wp-block-paragraph"&gt;You can read more about Kapsule in &lt;a target="_blank" href="https://blog.lasath.org/2026/02/kapsule-completing-kde-linux.html"&gt;these&lt;/a&gt; &lt;a target="_blank" href="https://blog.lasath.org/2026/02/kapsule-it-shipped-and-nobody-died.html"&gt;blog&lt;/a&gt; &lt;a target="_blank" href="https://blog.lasath.org/2026/02/kapsule-v021-sponsored-by-my-wifes.html"&gt;posts&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Moving to better infrastructure&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Harald did a lot of work to upload KDE Linux images to a better location, in preparation for far higher server loads in the future as the OS gains users and rolls out a user-focused edition.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Pre-installed backup system&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;I &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/work_items/254"&gt;pre-installed KDE&amp;#8217;s Kup&lt;/a&gt; backup system, which is really quite nice! Basic documentation &lt;a target="_blank" href="https://kde.org/linux/docs/backup/"&gt;can be found here&lt;/a&gt;.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;APFS filesystem support&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Hadi Chokr &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/merge_requests/401"&gt;turned on support&lt;/a&gt; for reading from and writing to disks formatted with Apple&amp;#8217;s APFS filesystem.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Safer Homebrew, ydotool, and AMD GPUs&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;renner03 &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/merge_requests/408"&gt;put in place a safety mechanism&lt;/a&gt; that prevents Homebrew packages from breaking the system in case you install Homeberew and any of its packages would otherwise conflict with system files. Now, the Homebrew packages break instead.&lt;/p&gt;
&lt;p class="wp-block-paragraph"&gt;Note that we still don&amp;#8217;t recommend Homebrew. But now you can use it without endangering the rest of the system.&lt;/p&gt;
&lt;p class="wp-block-paragraph"&gt;I made the &lt;code&gt;ydotool&lt;/code&gt; automation tool safer; &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/merge_requests/420"&gt;now it&amp;#8217;s an off-by-by-default system service&lt;/a&gt; you need to authenticate to turn on.&lt;/p&gt;
&lt;p class="wp-block-paragraph"&gt;I also &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/merge_requests/431"&gt;put in place a workaround&lt;/a&gt; for total system freezes affecting AMD GPU users. This &lt;a target="_blank" href="https://gitlab.freedesktop.org/drm/amd/-/issues/4831"&gt;stubborn AMD driver issue&lt;/a&gt; has been unfixed for months, so a workaround here is appropriate.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;More languages in pre-installed Flatpak apps&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Guilherme Marçal Silva &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/merge_requests/412"&gt;fixed an issue&lt;/a&gt; that made the pre-installed Flatpak apps only usable in English.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Longer time for installation&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Jonar Harer &lt;a target="_blank" href="https://invent.kde.org/kde-linux/kde-linux/-/commit/053a8722fd5e748a0081b6d7a199b512f1c826b7"&gt;bumped the installation timeout from 30 minutes to 1 hour&lt;/a&gt; to account for slower devices.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Outstanding issues&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;KDE Linux is still an alpha product with lots of bugs and rough edges. We had our &lt;a target="_blank" href="https://community.kde.org/KDE_Linux/Calls#2026-03-13"&gt;second dev call&lt;/a&gt; yesterday and discussed the road to a &lt;a target="_blank" href="https://invent.kde.org/groups/kde-linux/-/milestones/2#tab-issues"&gt;beta release&lt;/a&gt;, which will include user builds. We&amp;#8217;re going to be focusing on a number of &lt;a target="_blank" href="https://invent.kde.org/groups/kde-linux/-/issues?sort=created_date&amp;amp;state=opened&amp;amp;milestone_title=Beta&amp;amp;label_name%5B%5D=High%20priority&amp;amp;first_page_size=100"&gt;high priority issues&lt;/a&gt; and will consider &lt;a target="_blank" href="https://invent.kde.org/groups/kde-linux/-/issues?sort=created_date&amp;amp;state=opened&amp;amp;milestone_title=Beta&amp;amp;not%5Blabel_name%5D%5B%5D=High%20priority&amp;amp;first_page_size=100"&gt;the other beta-milestoned issues&lt;/a&gt; to be done on an &amp;#8220;if we can&amp;#8221; basis.&lt;/p&gt;
&lt;h2 class="wp-block-heading"&gt;Get Involved!&lt;/h2&gt;
&lt;p class="wp-block-paragraph"&gt;Progress on KDE Linux is steady but nonetheless rather slow. Help is greatly appreciated. In addition to &lt;a target="_blank" href="https://kde.org/linux/install/"&gt;installing it&lt;/a&gt; and reporting issues, there are lots of development task that need doing:&lt;/p&gt;
&lt;ul class="wp-block-list"&gt;
&lt;li&gt;&lt;a target="_blank" href="https://invent.kde.org/groups/kde-linux/-/issues?sort=created_date&amp;amp;state=opened&amp;amp;milestone_title=Beta&amp;amp;label_name%5B%5D=High%20priority&amp;amp;first_page_size=100"&gt;High priority tasks for technical experts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="https://invent.kde.org/groups/kde-linux/-/issues?sort=created_date&amp;amp;state=opened&amp;amp;milestone_title=Beta&amp;amp;not%5Blabel_name%5D%5B%5D=High%20priority&amp;amp;first_page_size=100"&gt;Other tasks to make the user builds better&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="https://invent.kde.org/groups/kde-linux/-/issues?sort=created_date&amp;amp;state=opened&amp;amp;label_name%5B%5D=Newcomer&amp;amp;first_page_size=100"&gt;Tasks for newcomers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><author>Nate Graham</author></item><item><title>Personal Digital Sovereignty</title><link>https://blog.cornelius-schumacher.de/2026/03/personal-digital-sovereignty.html</link><pubDate>Sat, 14 Mar 2026 18:05:00 +0000</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5317236015572973172.post-4214863484065124664</guid><description>&lt;h2 class="code-line" data-line="2" dir="auto" id="we-feel-how-dependencies-can-hurt" style="border-bottom: 1px solid rgba(0, 0, 0, 0.18); border-left-color: rgba(0, 0, 0, 0.18); border-right-color: rgba(0, 0, 0, 0.18); border-top-color: rgba(0, 0, 0, 0.18); color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; line-height: 1.25; margin-bottom: 16px; margin-top: 24px; padding-bottom: 0.3em; position: relative;"&gt;&lt;span style="font-weight: normal;"&gt;We feel how dependencies can hurt&lt;/span&gt;&lt;/h2&gt;&lt;p class="code-line" data-line="4" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;There is a lot of talk about digital sovereignty. Being able to act as a state or as a company is obviously important. But there are real dependencies, and given the current geopolitical dynamics, there are real risks. Unfortunately, there are no easy answers. Digital sovereignty matters, but so do stability, efficiency, and innovation. Fortunately, there are options and some good examples of how to deal with it. I collected some material in an awesome list on&amp;nbsp;&lt;a data-target="_blank" href="https://github.com/cornelius/awesome-digital-sovereignty" target="_blank" href="https://github.com/cornelius/awesome-digital-sovereignty" style="color: #006ab1; text-decoration-line: none;"&gt;digital sovereignty&lt;/a&gt;.&lt;/p&gt;&lt;p class="code-line" data-line="6" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;While it is complex at the state level, it is merely complicated at the personal level. Reaching something like personal digital sovereignty is possible. If you are informed about the technical landscape, you probably already have a good intuition about it. You feel the pain of having to stop using a service because the provider decided to discontinue it without you having a say. You can decide whether it feels right to upload your personal diary to a server in a jurisdiction you do not control.&lt;/p&gt;&lt;h2 class="code-line" data-line="8" dir="auto" id="free-software-provides-a-path" style="border-bottom: 1px solid rgba(0, 0, 0, 0.18); border-left-color: rgba(0, 0, 0, 0.18); border-right-color: rgba(0, 0, 0, 0.18); border-top-color: rgba(0, 0, 0, 0.18); color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; line-height: 1.25; margin-bottom: 16px; margin-top: 24px; padding-bottom: 0.3em; position: relative;"&gt;&lt;span style="font-weight: normal;"&gt;Free Software provides a path&lt;/span&gt;&lt;/h2&gt;&lt;p class="code-line" data-line="10" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;There is a clear path to personal digital sovereignty. The goal is nicely expressed in&amp;nbsp;&lt;a data-target="_blank" href="https://community.kde.org/KDE/Mission" target="_blank" href="https://community.kde.org/KDE/Mission" style="color: #006ab1; text-decoration-line: none;"&gt;KDE's mission&lt;/a&gt;: "A world in which everyone has control over their digital life and enjoys freedom and privacy." The path is provided by Free Software. The freedoms to use, study, share, and improve give you exactly what you need to be in control.&lt;/p&gt;&lt;p class="code-line" data-line="12" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;For software you run yourself, this works well. Running Free Software on your personal computer gives you control. It feels good. It becomes more complicated when you use services you do not and cannot run yourself. The software freedoms do not transfer easily. There are a lot of services, which are mostly based on Free Software, but only the service providers enjoy the freedoms, not their users. I have written about this before when working on my&amp;nbsp;&lt;a data-target="_blank" href="https://fairwebservices.org" target="_blank" href="https://fairwebservices.org/" style="color: #006ab1; text-decoration-line: none;"&gt;Fair Web Services&lt;/a&gt;&amp;nbsp;project.&lt;/p&gt;&lt;p class="code-line" data-line="14" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;A good testament to personal digital sovereignty is the&amp;nbsp;&lt;a data-target="_blank" href="https://www.blauer-engel.de/en/productworld/software" target="_blank" href="https://www.blauer-engel.de/en/productworld/software" style="color: #006ab1; text-decoration-line: none;"&gt;Blue Angel for software&lt;/a&gt;. Its focus on resource and energy efficiency is one side of responsible software use. Maybe even more important is its emphasis on user autonomy: being able to use software without ads being forced on you, being able to choose what to install, and having transparency about what you run. These are the ingredients of personal digital sovereignty.&lt;/p&gt;&lt;h2 class="code-line" data-line="16" dir="auto" id="finding-the-balance" style="border-bottom: 1px solid rgba(0, 0, 0, 0.18); border-left-color: rgba(0, 0, 0, 0.18); border-right-color: rgba(0, 0, 0, 0.18); border-top-color: rgba(0, 0, 0, 0.18); color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; line-height: 1.25; margin-bottom: 16px; margin-top: 24px; padding-bottom: 0.3em; position: relative;"&gt;&lt;span style="font-weight: normal;"&gt;Finding the balance&lt;/span&gt;&lt;/h2&gt;&lt;p class="code-line" data-line="18" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;Freedom is one side, but convenience is another. Sometimes it is easier to just use something a vendor has invested heavily in providing, even if you pay with your data and some independence. It is also a question of where you spend your time: do you build something for yourself, or do you use something that already exists? And sometimes it is about the limits what you can do yourself. Powerful tools can give you leverage so you can focus on your actual mission.&lt;/p&gt;&lt;p class="code-line" data-line="20" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;So it is also about compromise. One very important aspect for me is that I am still able to choose. That is the core of personal digital sovereignty. Sovereignty does not mean doing everything yourself. It means preserving the ability to leave, even if you choose not to.&lt;/p&gt;&lt;p class="code-line" data-line="22" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;Federated services make it easy to migrate. For git, for example, it does not matter so much where the server is or who runs it, because switching is as simple as changing the remote. For a proprietary note-taking service, this looks different. You may need special exports, format conversions, and you might lose functionality because it is not based on open standards. Choose your dependencies wisely.&lt;/p&gt;&lt;p class="code-line" data-line="24" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;It is important to remember that dependencies are not bad per se. We know this from Free Software. We know what it feels like to stand on the shoulders of giants. We rely on the collective strength of a global community. It is not about rejecting all dependencies or doing everything on your own. It is about creating alternatives and shaping an ecosystem based on openness, so that we can choose and act on our own terms.&lt;/p&gt;&lt;h2 class="code-line" data-line="26" dir="auto" id="my-personal-stack" style="border-bottom: 1px solid rgba(0, 0, 0, 0.18); border-left-color: rgba(0, 0, 0, 0.18); border-right-color: rgba(0, 0, 0, 0.18); border-top-color: rgba(0, 0, 0, 0.18); color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; line-height: 1.25; margin-bottom: 16px; margin-top: 24px; padding-bottom: 0.3em; position: relative;"&gt;&lt;span style="font-weight: normal;"&gt;My personal stack&lt;/span&gt;&lt;/h2&gt;&lt;p class="code-line" data-line="28" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;I am quite happy with my personal stack, which gives me the control I need. My 12-year-old desktop runs Linux and KDE. I pay to host my own email, Nextcloud, and git services. One project I particularly like is&amp;nbsp;&lt;a data-target="_blank" href="https://gitjournal.io/" target="_blank" href="https://gitjournal.io/" style="color: #006ab1; text-decoration-line: none;"&gt;GitJournal&lt;/a&gt;, which gives me control over my note-taking across all my devices. This covers the core of my computing needs, with my family, my friends, and what I decide to keep private.&lt;/p&gt;&lt;p class="code-line" data-line="30" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;To stay connected to the wider world, there is no way around being present on large networks. GitHub and LinkedIn are the compromises that give me reach without requiring me to abandon all my principles. I would not publish my writing only on LinkedIn, though, because I want to own what I produce.&lt;/p&gt;&lt;p class="code-line" data-line="32" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;AI is a difficult question right now. It is easy to switch between services, and with rapid development it is changing quickly what the best choice is. And it can provide tremendous leverage. So it remains an evolving compromise. An ideal future would offer open models powerful enough to serve your needs and that you can run locally.&lt;/p&gt;&lt;h2 class="code-line" data-line="34" dir="auto" id="building-digital-sovereignty" style="border-bottom: 1px solid rgba(0, 0, 0, 0.18); border-left-color: rgba(0, 0, 0, 0.18); border-right-color: rgba(0, 0, 0, 0.18); border-top-color: rgba(0, 0, 0, 0.18); color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; line-height: 1.25; margin-bottom: 16px; margin-top: 24px; padding-bottom: 0.3em; position: relative;"&gt;&lt;span style="font-weight: normal;"&gt;Building digital sovereignty&lt;/span&gt;&lt;/h2&gt;&lt;p class="code-line" data-line="36" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;On a personal level, you can decide for yourself. There are limitations, and you will have to build on the environment available to you. But there are alternatives, and you can choose to build your personal digital sovereignty.&lt;/p&gt;&lt;p class="code-line" data-line="38" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;At the corporate and state level, it is more difficult. The systems are more intertwined, but the pain of dependencies you cannot control and the risks of others making decisions for you are just as real. Alternatives exist there as well, often the same ones available on a personal level. It can be worth taking bold decisions.&lt;/p&gt;&lt;p class="code-line" data-line="40" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;Digital sovereignty at the state level is about national security. At the personal level, it is about personal freedom. Free Software provides a powerful path to maintaining control over our digital lives.&lt;/p&gt;&lt;p class="code-line" data-line="42" dir="auto" style="color: #657b83; font-family: -apple-system, &amp;quot;system-ui&amp;quot;, &amp;quot;Segoe WPC&amp;quot;, &amp;quot;Segoe UI&amp;quot;, system-ui, Ubuntu, &amp;quot;Droid Sans&amp;quot;, sans-serif; font-size: 14px; margin-bottom: 16px; margin-top: 0px; position: relative;"&gt;I am not arguing for tools. I am arguing for agency.&lt;/p&gt;</description><author>Cornelius Schumacher</author></item><item><title>This Week in Plasma: Press-and-Hold for Alternative Characters</title><link>https://blogs.kde.org/2026/03/14/this-week-in-plasma-press-and-hold-for-alternative-characters/</link><pubDate>Sat, 14 Mar 2026 00:00:01 +0000</pubDate><guid isPermaLink="true">https://blogs.kde.org/2026/03/14/this-week-in-plasma-press-and-hold-for-alternative-characters/</guid><description>&lt;!-- ![](thumbnail.png) --&gt;
&lt;!--
&lt;section class="swiper d-flex mb-5" aria-label="Screenshots" role="list"&gt;
&lt;div class="swiper-wrapper d-flex my-3" role="listitem"&gt;
&lt;/div&gt;
&lt;div class="swiper-pagination" style="bottom: 0"&gt;&lt;/div&gt;
&lt;div class="swiper-button-prev"&gt;&lt;/div&gt;
&lt;div class="swiper-button-next"&gt;&lt;/div&gt;
&lt;/section&gt;
--&gt;
&lt;!--
&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
&lt;video controls&gt;&lt;source src="%25!s%28%3cnil%3e%29something.mp4" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;
--&gt;
&lt;p&gt;Welcome to a new issue of &lt;em&gt;This Week in Plasma!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This week something very special landed for Plasma 6.7: the ability to type characters not on your physical keyboard by pressing-and-holding the keys that it does have:&lt;/p&gt;
&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
&lt;video controls&gt;&lt;source src="https://blogs.kde.org/2026/03/14/this-week-in-plasma-press-and-hold-for-alternative-characters/character-palette-popup.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;
&lt;p&gt;The feature lives in the &lt;code&gt;plasma-keyboard&lt;/code&gt; module, so you’ll need to have that installed and turned on in System Settings &amp;gt; Keyboard &amp;gt; Virtual Keyboard. After that, just press-and-hold keyboard keys!&lt;/p&gt;
&lt;p&gt;Kristen McWilliam wrote &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-keyboard/-/merge_requests/83"&gt;this wonderful feature&lt;/a&gt;, and it’ll ship with Plasma 6.7. Kristen has &lt;a target="_blank" href="https://merritt.codes/blog/2026/03/13/2026/_plasma-keyboard-funding-diacritics"&gt;written a whole blog post about it&lt;/a&gt; if you want to know more.&lt;/p&gt;
&lt;p&gt;But that’s not all! We’ve got some more features, a lot of user interface polishing, and some bug-fixing and performance work. All in all, a good week!&lt;/p&gt;
&lt;h2 id="other-notable-new-features"&gt;Other notable new features&lt;/h2&gt;
&lt;!-- Can find some with https://invent.kde.org/groups/plasma/-/merge_requests/?sort=merged_at_desc&amp;state=merged&amp;label_name%5B%5D=Feature&amp;first_page_size=20 --&gt;
&lt;h3 id="plasma-67"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;You can now install custom sound themes from downloaded files. (Sam Crawford, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6115"&gt;plasma-workspace MR #6115&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The Global Menu widget now shows menus for the active window even if it’s on another screen. This is configurable and can be turned off if you preferred the old behavior. (Trevor Jex, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=420418"&gt;KDE Bugzilla #420418&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="notable-ui-improvements"&gt;Notable UI improvements&lt;/h2&gt;
&lt;!-- Can find some with https://invent.kde.org/groups/plasma/-/merge_requests/?sort=merged_at_desc&amp;state=merged&amp;label_name%5B%5D=Enhancement&amp;first_page_size=20 --&gt;
&lt;h3 id="plasma-663"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;Did a round of polish on the “Add Widgets” sidebar to make sure the widget count numbers are always correct and the on-demand delete button disappears the moment it’s no longer useful. (Tobias Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6378"&gt;plasma-workspace MR #6378&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The “Configure” button on an unconfigured desktop widget now always fits within it, even if it’s very, very small. (Tobias Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6374"&gt;plasma-workspace MR #6374&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The Clipboard widget no longer shows you QR codes for non-text items, for which they didn’t actually work. (Tobias Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6392"&gt;plasma-workspace MR #6392&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Browsing through categories in Discover now highlights the active one in the sidebar as expected. (Akseli Lahtinen, &lt;a target="_blank" href="https://invent.kde.org/plasma/discover/-/merge_requests/1280"&gt;discover MR #1280&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made Spectacle’s magnifier better at being pixel-aligned. (Noah Davis, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=517274"&gt;KDE Bugzilla #517274&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;In System Tray’s Clipboard and Networks widgets, the normal back button now lets you go back a page, so sub-pages no longer have two back buttons. (Tobias Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6393"&gt;plasma-workspace MR #6393&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6391"&gt;plasma-workspace MR #6391&lt;/a&gt;, and &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-nm/-/merge_requests/542"&gt;plasma-nm MR #542&lt;/a&gt;)&lt;/p&gt;
&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
&lt;video controls&gt;&lt;source src="https://blogs.kde.org/2026/03/14/this-week-in-plasma-press-and-hold-for-alternative-characters/unified-back-button.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;
&lt;p&gt;Plugging in a USB printer now shows only one notification about it, not two. (Mike Noe, &lt;a target="_blank" href="https://invent.kde.org/plasma/print-manager/-/merge_requests/312"&gt;print-manager #312&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The “Kate Sessions” KRunner plugin no longer advertises results if Kate isn’t installed or is installed as a Flatpak where its functionality doesn’t currently work — though that could change in the future. (Nicolas Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/1018"&gt;kdeplasma-addons MR #1018&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Quick tiling two adjacent windows now centers them in the available area excluding any panels, rather than squeezing the window closest to the panels. (Anthony Flammia, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=484975"&gt;KDE Bugzilla #484975&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="notable-bug-fixes"&gt;Notable bug fixes&lt;/h2&gt;
&lt;!--Can find some with https://tinyurl.com/bdepnh4v --&gt;
&lt;h3 id="plasma-663-1"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;Fixed an issue that could prevent the system stats collector from working properly on Raspberry Pi devices. (Ben Murdoch, &lt;a target="_blank" href="https://invent.kde.org/plasma/ksystemstats/-/merge_requests/127"&gt;ksystemstats MR #127&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a few sources of glitchy behavior when resizing widgets on the desktop. (Tobias Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6373"&gt;plasma-workspace MR #6373&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Worked around a bug in Samsung LS24D60xU monitors (yes really, a bug in the monitors themselves) that made them turn on and off again in a loop. (Xaver Hugl, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516605"&gt;KDE Bugzilla #516605&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a stubborn issue causing the Arch/CachyOS updaters’ System Tray context menus to sometimes be mis-positioned. (Vlad Zahorodnii, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=517093"&gt;KDE Bugzilla #517093&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;It’s now possible to change the keyboard shortcut used for KWin’s Mouse Mark effect. (Nicolas Fella, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=501537"&gt;KDE Bugzilla #501537&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The reset button in System Settings’ SDDM configuration page now resets a few more things it had missed in the past. (Chandradeep Dey, &lt;a target="_blank" href="https://invent.kde.org/plasma/sddm-kcm/-/merge_requests/103"&gt;sddm-kcm MR #103&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Implemented a fix in Plasma code to prevent Electron apps’ System Tray icons from all following each others’ settings. This is an upstream bug in Electron which has been fixed, but most Electron apps haven’t yet been updated to include the fix, so for them, this new Plasma-side fix should also stop the issue from happening. (Nekto Oleg, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6400"&gt;plasma-workspace MR #6400&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="wxwidgets-333"&gt;wxWidgets 3.3.3&lt;/h3&gt;
&lt;p&gt;Fixed a bug in the wxWidgets library that broke certain copy-paste operations in wxWidgets apps, such as KiCad and Audacity. (David Edmundson, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=514317"&gt;KDE Bugzilla #514317&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="notable-in-performance--technical"&gt;Notable in performance &amp;amp; technical&lt;/h2&gt;
&lt;h3 id="plasma-663-2"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;Reduced CPU and GPU load for full-screen windows (also known as “direct scan-out”) for screens using more fractional scale factors. (Błażej Szczygieł, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=517264"&gt;KDE Bugzilla #517264&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-3"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Improved the robustness with which sandboxed apps can initiate screencasting and remote desktop requests. (Gabriel Maizo, &lt;a target="_blank" href="https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/526"&gt;xdg-desktop-portal-kde MR #526&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;If you happen to have multiple GPUs and any of them don’t actually support OpenGL 3D acceleration, this no longer prevents the more capable ones from providing 3D acceleration. (Xaver Hugl, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=441409"&gt;KDE Bugzilla #441409&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="how-you-can-help"&gt;How you can help&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Would you like to help put together this weekly report? Introduce yourself in &lt;a target="_blank" href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a target="_blank" href="https://community.kde.org/Promotion/This_week_in_KDE"&gt;join the team&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Beyond that, you can help KDE by directly &lt;a target="_blank" href="https://community.kde.org/Get_Involved"&gt;getting involved&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;You can also help out by &lt;a target="_blank" href="https://kde.org/donate"&gt;making a donation&lt;/a&gt;! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.&lt;/p&gt;
&lt;h2 id="to-get-a-new-plasma-feature-or-a-bug-fix-mentioned-here"&gt;To get a new Plasma feature or a bug fix mentioned here&lt;/h2&gt;
&lt;p&gt;Push a commit to &lt;a target="_blank" href="https://invent.kde.org/websites/blogs-kde-org/-/merge_requests/?label_name%5B%5D=This%20Week%20in%20Plasma"&gt;the relevant merge request on invent.kde.org&lt;/a&gt;.&lt;/p&gt;</description><author>Nate Graham</author></item><item><title>Marknote 1.5</title><link>https://blogs.kde.org/2026/03/13/marknote-1.5/</link><pubDate>Fri, 13 Mar 2026 15:30:00 +0000</pubDate><guid isPermaLink="true">https://blogs.kde.org/2026/03/13/marknote-1.5/</guid><description>&lt;p&gt;It’s been a busy few months for the development team! We’ve been focusing
heavily on turning Marknote into a much more robust knowledge base while
keeping the interface as clean and distraction-free as possible. Today,
we're releasing version 1.5, and it’s packed with major additions and
quality-of-life improvements.&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="Marknote v1.5" src="https://blogs.kde.org/2026/03/13/marknote-1.5/Intro.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;p&gt;Here is a rundown of what we’ve added to this release.&lt;/p&gt;
&lt;h2 id="source-mode"&gt;Source Mode&lt;/h2&gt;
&lt;p&gt;One of the most highly requested features is finally here: Source Mode.
Thanks to some fantastic work from our Season of KDE (SoK) contributor,
Siddharth Chopra, you can now bypass the rich-text WYSIWYG interface
entirely. If you’re the type of person who prefers looking at the raw
Markdown syntax while structuring your thoughts, you can now seamlessly
toggle into a dedicated source editing view.&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="Marknote v1.5" src="https://blogs.kde.org/2026/03/13/marknote-1.5/Source-Mode.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h3 id="note-links"&gt;Note links&lt;/h3&gt;
&lt;p&gt;Notes are rarely isolated thoughts, so we’ve added internal wiki-style links with
cross-notebook lookup. You can now easily link documents to one another,
making it much simpler to build out a connected web of ideas.&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="Link your notes" src="https://blogs.kde.org/2026/03/13/marknote-1.5/Link-Notes.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h3 id="note-management"&gt;Note management&lt;/h3&gt;
&lt;p&gt;We made it easier to manage your growing number of notes. Each notebook will now show you how many notes it contains. If you need to move notes between notebooks, it is now easy to do that via drag and drop. And finally, we added a new “Duplicate Note” action to make it simple to create templates and copy existing notes.&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="Duplicate notes" src="https://blogs.kde.org/2026/03/13/marknote-1.5/Duplicate.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h3 id="krunner-plugin"&gt;KRunner plugin&lt;/h3&gt;
&lt;p&gt;To help you get to those ideas faster, we also added a KRunner plugin.
You don't even need to have Marknote open—just pull up KRunner on your Plasma
desktop, type what you’re looking for, and jump straight into your note.&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="KRunner Plugin in action" src="https://blogs.kde.org/2026/03/13/marknote-1.5/KRunner-Plugin.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h3 id="search-and-replace"&gt;Search and replace&lt;/h3&gt;
&lt;p&gt;Full-text search and replace functionality is also here to make your life much easier.&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="Search for text" src="https://blogs.kde.org/2026/03/13/marknote-1.5/Search.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h3 id="ui-polish-and-under-the-hood-work"&gt;UI polish and under-the-hood work&lt;/h3&gt;
&lt;p&gt;We added beautiful, all-new animations for note and notebook items, for the search bar, and brought back the smooth sidebar transitions to make navigation feel dynamic.&lt;/p&gt;
&lt;p&gt;We added full Undo/Redo functionality to the Quick Sketch dialog.&lt;/p&gt;
&lt;p&gt;We added several improvements to table formatting and actions to make managing grids much less frustrating.&lt;/p&gt;
&lt;p&gt;On the technical side, we bumped our Kirigami Addons dependency to 1.11.0, fixed an annoying issue where opening a note updated its modification timestamp, and resolved a Flatpak bug that prevented notes from opening via file managers.&lt;/p&gt;
&lt;h3 id="try-it-out"&gt;Try it out&lt;/h3&gt;
&lt;p&gt;Marknote 1.5 is rolling out now! You can grab it on Linux via &lt;a target="_blank" href="https://flathub.org/en/apps/org.kde.marknote"&gt;Flatpak&lt;/a&gt; and &lt;a target="_blank" href="https://snapcraft.io/marknote"&gt;Snapcraft&lt;/a&gt;. A massive thank you to everyone who contributed code, translations, and bug reports for this cycle. Happy note-taking!&lt;/p&gt;</description><author>Valentyn Bondarenko</author></item><item><title>Web Review, Week 2026-11</title><link>https://ervin.ipsquad.net/blog/2026/03/13/web-review-week-2026-11/</link><pubDate>Fri, 13 Mar 2026 11:24:38 +0000</pubDate><guid isPermaLink="true">https://ervin.ipsquad.net/blog/2026/03/13/web-review-week-2026-11/</guid><description>&lt;p&gt;Let&amp;rsquo;s go for my web review for the week 2026-11.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="joint-statement-of-scientists-and-researchers-on-age-assurance"&gt;Joint statement of scientists and researchers on Age Assurance&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, law, surveillance&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is (IMNSHO) a very important open letter. This confirms to me that the whole set of age verification laws we&amp;rsquo;re seeing popup everywhere is severely misguided. Had my suspicions before of course but it&amp;rsquo;s getting clearer with this one. We should stay clear from those laws as a profession, it&amp;rsquo;s important to not comply, it&amp;rsquo;d be a disservice to our users.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://csa-scientist-open-letter.org/ageverif-Feb2026"&gt;https://csa-scientist-open-letter.org/ageverif-Feb2026&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="secure-communication-buried-in-a-news-app"&gt;Secure Communication, Buried In A News App&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, cryptography, security, privacy, journalism&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Not sure it&amp;rsquo;ll keep being efficient if the political heat keeps going up. Still this is a nice idea.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://hackaday.com/2026/03/09/secure-communication-buried-in-a-news-app/"&gt;https://hackaday.com/2026/03/09/secure-communication-buried-in-a-news-app/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="libreoffice-criticizes-eu-commission-over-proprietary-xlsx-formats"&gt;LibreOffice criticizes EU Commission over proprietary XLSX formats&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, data, foss, law, europe&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We should indeed put an end to those proprietary formats. It&amp;rsquo;s sad to see the EU Commission contradict itself there.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.heise.de/en/news/LibreOffice-criticizes-EU-Commission-over-proprietary-XLSX-formats-11202165.html"&gt;https://www.heise.de/en/news/LibreOffice-criticizes-EU-Commission-over-proprietary-XLSX-formats-11202165.html&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="is-legal-the-same-as-legitimate-ai-reimplementation-and-the-erosion-of-copyleft"&gt;Is legal the same as legitimate: AI reimplementation and the erosion of copyleft&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, foss, ai, machine-learning, copilot, values, commons, law&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Excellent piece, indeed legal is not the same as legitimate. More often than not the law is lagging behind and things might be wrongly &amp;ldquo;fixed&amp;rdquo; at a later date. In that interval that&amp;rsquo;s when our communities need to build its own tools to protect the commons. We&amp;rsquo;re clearly reaching such an inflection point. Interestingly, I think there&amp;rsquo;s is a difference of reaction between the people with a Free Software culture and the ones with an Open Source culture.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://writings.hongminhee.org/2026/03/legal-vs-legitimate/"&gt;https://writings.hongminhee.org/2026/03/legal-vs-legitimate/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="do-the-illegible"&gt;Do the Illegible&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, programming, engineering, ai, machine-learning, copilot&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Obviously the essay from Peter Naur keeps popping up lately. It feels like an important piece, especially in the current atmosphere of vibe coding. This article lays out quite well why vibe coding is the opposite of what we should be doing.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://ashwinsundar.com/posts/legibility-and-programming/"&gt;https://ashwinsundar.com/posts/legibility-and-programming/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="moonforge"&gt;Moonforge&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, linux, embedded&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;An initiative to monitor I guess. There&amp;rsquo;s clearly a need for a more &amp;ldquo;opinionated&amp;rdquo; setup for Yocto based embedded systems, this is going in that direction.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://moonforgelinux.org/"&gt;https://moonforgelinux.org/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="the-hidden-compile-time-cost-of-c26-reflection"&gt;The hidden compile-time cost of C++26 reflection&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, c++, reflection, metaprogramming&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Interestingly the issue for the compile time is not so much the feature itself but the STL headers required. It makes PCH pretty much mandatory.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://vittorioromeo.com/index/blog/refl_compiletime.html"&gt;https://vittorioromeo.com/index/blog/refl_compiletime.html&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="how-to-stop-fighting-with-coherence-and-start-writing-context-generic-trait-impls"&gt;How to stop fighting with coherence and start writing context-generic trait impls&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, rust, type-systems&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Looks like an interesting approach to lift some of the limitations around the Rust trait system. The learning curve doesn&amp;rsquo;t look too great though, clearly requires effort to get into.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://contextgeneric.dev/blog/rustlab-2025-coherence/"&gt;https://contextgeneric.dev/blog/rustlab-2025-coherence/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="parametricity-or-comptime-is-bonkers"&gt;Parametricity, or Comptime is Bonkers&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, zig, rust, type-systems, generics&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Interesting look at Zig&amp;rsquo;s comptime feature. It&amp;rsquo;s not a purely Zig post though, does a good job of explaining parametricity and the implications of loosing it.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://noelwelsh.com/posts/comptime-is-bonkers/"&gt;https://noelwelsh.com/posts/comptime-is-bonkers/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="ensuring-correctness-through-the-type-system"&gt;Ensuring correctness through the type system&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, type-systems, safety&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A good illustration of making illegal states unrepresentable. This definitely helps with code safety.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://lindbakk.com/blog/ensuring-correctness-through-the-type-system"&gt;https://lindbakk.com/blog/ensuring-correctness-through-the-type-system&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="spa-vs-hypermedia-real-world-performance-under-load"&gt;SPA vs. Hypermedia: Real-World Performance Under Load&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, web, frontend, complexity&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Probably somewhat self serving so the numbers would need to be confirmed with other experiments. That said that case gives a good idea of the price in terms of complexity and resources when choosing to go for an SPA.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://zweiundeins.gmbh/en/methodology/spa-vs-hypermedia-real-world-performance-under-load"&gt;https://zweiundeins.gmbh/en/methodology/spa-vs-hypermedia-real-world-performance-under-load&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="fontcrafter-create-your-handwriting-font-for-free"&gt;FontCrafter: Create Your Handwriting Font for Free&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, fonts&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is definitely a cool project. I like the idea.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://arcade.pirillo.com/fontcrafter.html"&gt;https://arcade.pirillo.com/fontcrafter.html&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="code-reviews-do-find-bugs"&gt;Code Reviews Do Find Bugs&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, codereview, science&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In praise of code reviews. This article does a good job showing all the advantages &lt;em&gt;if&lt;/em&gt; properly managed. Teams have to pay attention to latency but otherwise you get lots of benefits for not so much time spent.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://entropicthoughts.com/code-reviews-do-find-bugs"&gt;https://entropicthoughts.com/code-reviews-do-find-bugs&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="on-the-need-for-understanding"&gt;On The Need For Understanding&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, programming, culture, hacking, debugging, complexity, foss&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yes, we have lots of layers nowadays. But you can read them to figure out when something doesn&amp;rsquo;t work like you expect. This is one of the most important skills of the trade.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://blog.information-superhighway.net/on-the-need-for-understanding"&gt;https://blog.information-superhighway.net/on-the-need-for-understanding&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="the-story-of-one-of-my-worst-programming-failures"&gt;The story of one of my worst programming failures&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, system, programming, failure&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s always an interesting lesson in this kind of failures. Here clearly it is in part a story of unchecked trust, and not planning for a bigger system. It came with real consequences too.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://utcc.utoronto.ca/~cks/space/blog/programming/DevelopedTooSmallFailure"&gt;https://utcc.utoronto.ca/~cks/space/blog/programming/DevelopedTooSmallFailure&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="prioritize-relatively"&gt;Prioritize Relatively&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: leadership, management, project-management&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The point is interesting. Priorities are indeed relative and dynamic. It&amp;rsquo;s impossible to put an &amp;ldquo;absolute priority value&amp;rdquo; on what needs to be done.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://boz.com/articles/prioritize-relatively"&gt;https://boz.com/articles/prioritize-relatively&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="autonomy-and-clarity-in-leadership-styles"&gt;Autonomy and Clarity in Leadership Styles&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: leadership, management, organisation&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Interesting framework of different leadership styles. They all come with their own pros and cons of course.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://bjorg.bjornroche.com/management/autonomy-vs-clarity/"&gt;https://bjorg.bjornroche.com/management/autonomy-vs-clarity/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;hr&gt;
&lt;p&gt;Bye for now!&lt;/p&gt;</description><author>Kevin Ottens</author></item><item><title>KDE Ships Frameworks 6.24.0</title><link>https://kde.org/announcements/frameworks/6/6.24.0/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://kde.org/announcements/frameworks/6/6.24.0/</guid><description>&lt;p&gt;Friday, 13 March 2026&lt;/p&gt;
&lt;p&gt;KDE today announces the release of KDE Frameworks 6.24.0.&lt;/p&gt;
&lt;p&gt;This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.&lt;/p&gt;
&lt;h2 id="new-in-this-version"&gt;New in this version&lt;/h2&gt;
&lt;details open="true" id="Attica"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/attica"&gt;Attica&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;QtPlatformDependent: hide static thread local var in accessor. &lt;a target="_blank" href="https://commits.kde.org/attica/c817543f75d01a81401276ae84a33cebde009448"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Delete QtPlatformDependent if needed. &lt;a target="_blank" href="https://commits.kde.org/attica/fc0a9fc4298552083f65de7c7464ff606c174cac"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;QtPlatformDependent: Simplify NAM handling. &lt;a target="_blank" href="https://commits.kde.org/attica/553012de340069624a71cf29afee1bb66330afd6"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Baloo"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/baloo"&gt;Baloo&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;[Extractor] Remove Document from FailedIdDb on success. &lt;a target="_blank" href="https://commits.kde.org/baloo/ccb94d3d860cdb3ecf8b860cf2257764d383b31a"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Extractor] Open the DB in ReadWrite mode from the beginning. &lt;a target="_blank" href="https://commits.kde.org/baloo/1a80af307dfc8ea07a2a4623a2e6078c90ecdd2b"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/515918"&gt;#515918&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[Engine] Protect against opening a ReadOnly database in ReadWrite mode. &lt;a target="_blank" href="https://commits.kde.org/baloo/a5714ff070e4f6f8d80d54d6ee913f397986c786"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add missing include for syscall(). &lt;a target="_blank" href="https://commits.kde.org/baloo/3c6c4ab9aac7734d57bbfa49cc413343ce819fc1"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Breeze Icons"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/breeze-icons"&gt;Breeze Icons&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Fix kleopatra-symbolic icon. &lt;a target="_blank" href="https://commits.kde.org/breeze-icons/19d4c14acfaea516900f69ef31f98080f69f4bd2"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Create symbolic version of krfb icon. &lt;a target="_blank" href="https://commits.kde.org/breeze-icons/01a28d105240ff64d9f4d50fd862f9092c05734f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Extra CMake Modules"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/extra-cmake-modules"&gt;Extra CMake Modules&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;With get_filename_component use DIRECTORY instead of legacy alias PATH. &lt;a target="_blank" href="https://commits.kde.org/extra-cmake-modules/862b5b0ed8b2413a6c0e524a13640495dc5bb0d3"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KDECompilerSettings: Add option to force asserts. &lt;a target="_blank" href="https://commits.kde.org/extra-cmake-modules/58b39045d3f1a671d74e61fa72b906badc1273b1"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KArchive"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/karchive"&gt;KArchive&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;7zip: insert al the values at once instead of one by one. &lt;a target="_blank" href="https://commits.kde.org/karchive/1b3fa2dcc3271cf0a2d8e55d7a6419f4f1244acf"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KCompressionDevice: avoid asserting on using unbuffered open. &lt;a target="_blank" href="https://commits.kde.org/karchive/9ddb3b52722fbd0c92577c55c49a6153d3baa404"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KAuth"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kauth"&gt;KAuth&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Fix memory leaks in BackendsManager. &lt;a target="_blank" href="https://commits.kde.org/kauth/2ab05e6098fe566a03a646f3bc7534f006694d77"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enable LSAN in CI. &lt;a target="_blank" href="https://commits.kde.org/kauth/7334bbc1b27d75c834e3d50ea10474f60bf882fd"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KCalendarCore"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kcalendarcore"&gt;KCalendarCore&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;With get_filename_component use DIRECTORY instead of legacy alias PATH. &lt;a target="_blank" href="https://commits.kde.org/kcalendarcore/07f6e39810658ef881d7995e3711f59996da2c87"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix wrong iCal component parenting when serializing timezone information. &lt;a target="_blank" href="https://commits.kde.org/kcalendarcore/f420b79c7ddb2fea894b12ba5e242741b835dc6f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix memory leaks in unit tests. &lt;a target="_blank" href="https://commits.kde.org/kcalendarcore/90e4418c56f53428d54724f84ee39a68b5f177d2"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KCMUtils"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kcmutils"&gt;KCMUtils&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Mark Kirigami QML module as dependency. &lt;a target="_blank" href="https://commits.kde.org/kcmutils/aa07c6820c701084a228d2d51c9ff94b38ff0427"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KCodecs"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kcodecs"&gt;KCodecs&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;[KEncodingProber] Replace nsCharSetProber raw pointer with unique_ptr. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/e0e0e52d448b7d6ba626476b24b2ff672a3ee457"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Replace SMModel external with internal linkage. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/3a43585771ef46dae89f3f2d7928ebab0fbe527b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Replace nsCodingStateMachine raw pointer with unique_ptr. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/cb832ac59b811615e7d063bf062504e822d8016e"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Remove unused header files. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/bb1d1ba0a797cb10caed8e3b008f2d83d1f4f9e9"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharsets] Remove no longer used include. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/06231c9ba64b2085df12b272789af71ef57bb1cb"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharsets] Verify entity table is sorted at build time. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/732906710fbffc3f5a416e48f2e8d71b010db963"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharsets] Fix sort order in entity table. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/03c7ce704ee6ab54e33c17ae888d044365583df1"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharsets] Add benchmark for entity lookup. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/d26e6746f49ec34208a026826136bdcfbc0e3f1d"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharSets] Specify the &lt;code&gt;fromEntity&lt;/code&gt; input format more explicitly. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/ed3d1682115603f72aa0fa121b603ab5b4e3ef0f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharSets] Fix numeric encoding for &lt;code&gt;toEntity(...)&lt;/code&gt;. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/ba83dd44cbeea11cd715a18b4ce802d2953562c0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KCharSetsTest] Move test class declaration to implementation file. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/9277d3358c228fb6d3aba8c288652bd54037c852"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Switch state machine tables to plain uint8_t. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/39e5bd0310dd65d014b2153f0f923a2603e78a04"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Remove runtime unpack state machine. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/9e964960fad78e8e4a11c12e785a42b985ae2c5d"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Use same class table for UTF16 BE and LE state models. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/7178785aed26dc4f106867ec382fb5c11caee93f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Fix reset() method. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/7d007567aef24b613d815fea2a3cf91e929dffac"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Actually check if reset() works. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/2b86f3bde059b7dee551c37617a38ff5ccd49057"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Reduce variable scope. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/fbd8e30176b99fd5182762d1c6b14bd01d4e1b1b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remember where to re-try RFC 2047 word decoding. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/dd638582b1ff4b0862f0fa29bd90c0fefa62351b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Default empty constructors/desctructors. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/5168d75160dc1c8262856f1840b4aed155c6928f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Remove unused unexported member functions. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/bfda3650d4982646d196f56c72da2fca67c80d46"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Remove unused member variable. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/312f0542b77954f42fbd3b5a187da89edb5647eb"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Remove no longer used include. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/8d58ac14bc48fe9d173f3e76c6f6f84030085990"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;[KEncodingProber] Drop declaration of unused GetDistribution method. &lt;a target="_blank" href="https://commits.kde.org/kcodecs/7365db2295a5ba9fccc216b50f3774ae69fbd5e7"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KConfig"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kconfig"&gt;KConfig&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Fix bounds check in KConfigPrivate::expandString. &lt;a target="_blank" href="https://commits.kde.org/kconfig/e861fffcbe64033ba27b5c3f6cb0404da52132e0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kdesktopfile: do not needlessly cascade desktop files. &lt;a target="_blank" href="https://commits.kde.org/kconfig/18e4027bd9a7e432dd14847d5cbab560c2780356"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add oss-fuzz integration. &lt;a target="_blank" href="https://commits.kde.org/kconfig/1c9d068ef5e131f73823bc824930c70d71932ec0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remove old, commented out code. &lt;a target="_blank" href="https://commits.kde.org/kconfig/a4ad363fe0248076f7234064aef0974d17b538ca"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;With get_filename_component use DIRECTORY instead of legacy alias PATH. &lt;a target="_blank" href="https://commits.kde.org/kconfig/e838d3f0c20f79498b99463a1d0c37d54744c634"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KDesktopFileTest: Update testActionGroup. &lt;a target="_blank" href="https://commits.kde.org/kconfig/4fa04e1e41428e8f30dcc6f3b4762a8ee2fa3d40"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KDesktopFile: Check for Name since it is required field. &lt;a target="_blank" href="https://commits.kde.org/kconfig/0b3ec30a666fb6b5737c17489a1dcb45fc7db1c4"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/515694"&gt;#515694&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KConfigWidgets"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kconfigwidgets"&gt;KConfigWidgets&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;ShortcutStyleDelegate: Init styleOption. &lt;a target="_blank" href="https://commits.kde.org/kconfigwidgets/e134df74e307e56c409e9c3e28cd6560190c48a7"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KRecentFilesAction: Avoid temporary allocations. &lt;a target="_blank" href="https://commits.kde.org/kconfigwidgets/c7f55bfd8c7cb279ca99c14a840878d9bb97c3c4"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KRecentFilesAction: Avoid allocation when reading/writing config. &lt;a target="_blank" href="https://commits.kde.org/kconfigwidgets/7b2758e3652630c04a3f41548d7069881876941e"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KCoreAddons"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kcoreaddons"&gt;KCoreAddons&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Autotests: increased safety margins for unstable tests. &lt;a target="_blank" href="https://commits.kde.org/kcoreaddons/f6dcf265bef7fd329ed7e5a8ded91191c18ebb7c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KCrash"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kcrash"&gt;KCrash&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Metadata: make sure the KCrashComplete group has an entry. &lt;a target="_blank" href="https://commits.kde.org/kcrash/8df6a1c8d392b1cb30a65c000a201cbdff56dff9"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/516658"&gt;#516658&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Avoid using qEnvironmentVariableIntegerValue. &lt;a target="_blank" href="https://commits.kde.org/kcrash/840b3be4679657945216a9f2fab396becab3ef11"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KDeclarative"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kdeclarative"&gt;KDeclarative&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Ungrab the pointer when the widget goes disabled or invisible. &lt;a target="_blank" href="https://commits.kde.org/kdeclarative/033cd4362218b1ec75eaa1cb32d1a9779a0040f1"&gt;Commit.&lt;/a&gt; See bug &lt;a target="_blank" href="https://bugs.kde.org/509859"&gt;#509859&lt;/a&gt;. See bug &lt;a target="_blank" href="https://bugs.kde.org/416909"&gt;#416909&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KFileMetaData"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kfilemetadata"&gt;KFileMetaData&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Ffmpegextractor: Extract Artist metadata. &lt;a target="_blank" href="https://commits.kde.org/kfilemetadata/b4e8d1d464c17615ec9421a6ef00c9cc141072e6"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix finding of poppler-version.h (Bad include). &lt;a target="_blank" href="https://commits.kde.org/kfilemetadata/51ddcb7f67abdaa30b5eb109982ff74dcd57f3a0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KGuiAddons"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kguiaddons"&gt;KGuiAddons&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Clipboard: Use buffered writes for data transfer. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/c43abe7587c2018facef7ca2f16cd1c5480586b7"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add manual large clipboard tests. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/ef778ab0521024b2a3b60b4f7192129e5268325f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ksysteminhibitor: Support Windows through PowerCreateRequest API. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/1292625f65bc60b7cde286db1391aa0ac9a144d9"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remove unneeded Qt version check. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/dff9c35612523fa12f7052ccec7050095f08a747"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kiconutils: remove now unnecessary Qt version check. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/d149bc08b077a0047e8aa8ad55cc4b6e931d5369"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Clipboard: Hold mutex before dispatching any wayland events. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/4a9d7ea381cd437422de9cf69d57eb8b88579b87"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/515465"&gt;#515465&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mark WindowInsetsController as singleton in the documentation. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/1983a61a4229acc034ee20d9e3fec97a68ad5c79"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;CMake: Find Qt6::GuiPrivate when USE_DBUS is enabled. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/41674ffb8343499704f8278b39ccabe03328e050"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KKeySequenceRecorder: Accept some more keys that can be used with Shift. &lt;a target="_blank" href="https://commits.kde.org/kguiaddons/abb887e4b767a85d0586af64deea6295654bf923"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KHolidays"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kholidays"&gt;KHolidays&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Add more holidays to Bulgaria. &lt;a target="_blank" href="https://commits.kde.org/kholidays/2b8eb29614c1ca028b66be05b484f265b74302a9"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Quiet compiler warnings using inline pragmas. &lt;a target="_blank" href="https://commits.kde.org/kholidays/15a4a7aa5694ae57cdd049ed76f2efcf0a3fdd0e"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DE: From 1954 to 1990, there was a “Tag der deutschen Einheit” (note the lowercase “d” in “deutschen”) in West Germany. &lt;a target="_blank" href="https://commits.kde.org/kholidays/06f0b2df60629c9c37f4ec9c5f76d6d24e0f05a8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DE: Before 1990, there was no &amp;quot;Tag der Deutschen Einheit&amp;quot;. &lt;a target="_blank" href="https://commits.kde.org/kholidays/5e9756d868d80e9d66153676e19271eceadf1cad"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;DE: Before 1990, there was no &amp;quot;Tag der Deutschen Einheit&amp;quot;. &lt;a target="_blank" href="https://commits.kde.org/kholidays/ff6c89d281f87e7e4af5ada00cec6c579c8f5468"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Generate the bison/flex code. &lt;a target="_blank" href="https://commits.kde.org/kholidays/1ee5478d2acde836cbe469d0ce8a1c694fd45498"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KI18n"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/ki18n"&gt;KI18n&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;KI18N_WRAP_UI macro: drop now unneeded support for unique image data names. &lt;a target="_blank" href="https://commits.kde.org/ki18n/a855492993b193cc55a797573fbbce76e986587a"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KI18N_WRAP_UI macro: inject klocalizedstring.h include by uic argument. &lt;a target="_blank" href="https://commits.kde.org/ki18n/6a0e3149477fc6d8c6f0b1d966d92354498f9dac"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KIdletime"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kidletime"&gt;KIdletime&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Remove unneeded Qt version check. &lt;a target="_blank" href="https://commits.kde.org/kidletime/1a55457d9f86f30742e250261ac766a26494a911"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KImageformats"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kimageformats"&gt;KImageformats&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;JP2: fix possible Undefined-shift. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/836e0a53bb96e29c557a1f20a9d71195303633a9"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IFF: fix buffer read overflow. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/5eb09116b0abe750c9d549ebd82259329b46fe0c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix Heap-buffer-overflow WRITE. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/92368ca58f92b8e2aaaeea412a42fad57e3e77ad"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fixed excessively frequent warning messages. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/a91c7ef72fa2d53c13bec2af0ab55ee21c827ca9"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ossfuzz: update aom, libavif, openjpeg. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/ea2a4aafabe989d5937b89e20099189f747bb0e5"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ANI: fix possible QByteArray allocation exception. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/c25487578072a3775d39c8dddbe58201a5f8dba7"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Jxl: adjust metadata size limits. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/f3de2e77c175acb617f4573847c3000fb027f33f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RGB: fix a possible exception on the new. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/1ef779f3709dd43a5065a14a0f928eed0b51515c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;TGA: fix Undefined-shift. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/ebf77ccdf5a49ac9e35bf08db44c84affc51cc87"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;PSD: improve conversion sanity checks. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/359cb039d2f9dd9f7fb1f9f4766441801e6f2e76"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;IFF: fix compilation warnings. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/f4b91d8a546b0c688512bc825c7502b4d5f44b14"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ANI: check for array allocation size. &lt;a target="_blank" href="https://commits.kde.org/kimageformats/263b5a88e2e2457ae6a4094dfc19a1066c2c8f58"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KIO"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kio"&gt;KIO&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Refactor and improve paste dialogs. &lt;a target="_blank" href="https://commits.kde.org/kio/878aba0ff2b48e2a270df49c31a7ac58900b1c0b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add title for dialogs opened when pasting content. &lt;a target="_blank" href="https://commits.kde.org/kio/cf2874247f8f5aea91a10d31783caba67dff7924"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KNewFileMenu: Strip proper ellipsis, too. &lt;a target="_blank" href="https://commits.kde.org/kio/58383532d4911b0822ec427f152349a4b8a6d728"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KFileItemDelegate. &lt;a target="_blank" href="https://commits.kde.org/kio/1383fad29ce6a35a8cccc85079f00f3ed76da6ab"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Trash: fix typo and use correct device id for home dev. &lt;a target="_blank" href="https://commits.kde.org/kio/2dca5baafb4414688c46f7d62ec08b02b9f0c74c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Visual changes to KFileWidgets to bring it closer to Dolphin. &lt;a target="_blank" href="https://commits.kde.org/kio/5a9a1760aec7625b474cc5df3409ba12b0047c49"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/516063"&gt;#516063&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Widgets: Make use of nanosecond timestamps when appropriate. &lt;a target="_blank" href="https://commits.kde.org/kio/a419a85f154734d218c29a6d0e60b5dd747e17f0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Workers: Populate nanosecond timestamps in KIO workers. &lt;a target="_blank" href="https://commits.kde.org/kio/eee990a13d0665e380d8b33eee34bfb08df19ee6"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Core: Extend UDSEntry with nanosecond precision timestamps. &lt;a target="_blank" href="https://commits.kde.org/kio/431453b7c809e1a71a3367102a674030e521b181"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;FilePreviewJob: Stat MountId and use it to look up the mount. &lt;a target="_blank" href="https://commits.kde.org/kio/f9ad1118778f358c3bd18485b14de95dbec1b442"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KMountPoint: Add findByMountId. &lt;a target="_blank" href="https://commits.kde.org/kio/df99babd815c6e2071674ab8b86dfd7a3d77e4ac"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Filewidgets/placesview: add mountpoint tooltips for network mounts. &lt;a target="_blank" href="https://commits.kde.org/kio/aeb0dcf8aeee8388ebffb47a5b0f6677519ac487"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KFileItemActions: Use OpenUrlJob::isExecutableFile for &amp;quot;Run executable&amp;quot;. &lt;a target="_blank" href="https://commits.kde.org/kio/a1eb3d62c3c913bfeaab85195f337f4c1ce674de"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kfileitemactions: Add i18n context inmenu. &lt;a target="_blank" href="https://commits.kde.org/kio/16805184e38726cf8ee07558965665c2570854cc"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Trashimpl: use mnt_id as trashId instead of dev_id. &lt;a target="_blank" href="https://commits.kde.org/kio/5e98d7d0fe8a2b0c80ed450193ffcbd2c95378d6"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/513350"&gt;#513350&lt;/a&gt;. Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/386104"&gt;#386104&lt;/a&gt;. See bug &lt;a target="_blank" href="https://bugs.kde.org/490247"&gt;#490247&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kmountpoint: expose mnt_id_unique and isPseudoFs. &lt;a target="_blank" href="https://commits.kde.org/kio/089402feef724812d3d842da46ac08fb1e173521"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KFileItemActions: Add API for service menu keyboard shorcut. &lt;a target="_blank" href="https://commits.kde.org/kio/afe6df24a3f948a33f7415b459d2f1f3eaf0ffdb"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drop Worker::workerProtocol. &lt;a target="_blank" href="https://commits.kde.org/kio/4614e51110c55d46c7a4d44f3b507ae05b7d2784"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kpropertiesdialog: Use MIME type we already have for default icon. &lt;a target="_blank" href="https://commits.kde.org/kio/57c994d8d4863a38fe76e4e209b01becdacae5d3"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Core: Drop unused code. &lt;a target="_blank" href="https://commits.kde.org/kio/38ff2a1abfe0e3bd0d2d8fdd50767eafc4d3348c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Filepreviewjob: Add timeout. &lt;a target="_blank" href="https://commits.kde.org/kio/9c41937fc01072218d3f7e328b585853740f1ccf"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/504067"&gt;#504067&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Deleteortrashjob: Remember whether AutoErrorHandling was enabled. &lt;a target="_blank" href="https://commits.kde.org/kio/f527ddb3e1902d651527c426c727fd3fe902e90d"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Deleteortrashjob: Don't overwrite job delegate, if it exists. &lt;a target="_blank" href="https://commits.kde.org/kio/e2dfcab461902564f5f0e9a6de426d2725ecace4"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Gui/openurljob: Stops job on missing Type in desktop files. &lt;a target="_blank" href="https://commits.kde.org/kio/912ffd252b2500a42ca0740c2eb72e0c6799738d"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Core/mimetypefinderjob: Fix missing early return in KIO::MimeTypeFinderJobPrivate::scanFileWithGet. &lt;a target="_blank" href="https://commits.kde.org/kio/6c51dccaecaaedd6226a2f1d2e2077dd538ddcad"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Trashsizecache: Fix look up of directory size cache. &lt;a target="_blank" href="https://commits.kde.org/kio/03b9e6ceeb7e65fc0d9af0241f0f24811e97a616"&gt;Commit.&lt;/a&gt; See bug &lt;a target="_blank" href="https://bugs.kde.org/434175"&gt;#434175&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drop WorkerConfig::setConfigData. &lt;a target="_blank" href="https://commits.kde.org/kio/4e3b37dfa3f03e8868ac208650601841a6cc2a73"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Simplify SimpleJob::slotMetaData. &lt;a target="_blank" href="https://commits.kde.org/kio/efaa4943a31c64869aa6be853274ec3c2931925c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Drop special handling for internal metadata. &lt;a target="_blank" href="https://commits.kde.org/kio/07a59daa15ab516addc1e6783b901a99f06db974"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Storedtransferjob: Drop secret OverriddenPorts option. &lt;a target="_blank" href="https://commits.kde.org/kio/7f4327c14226c58d57f9228eb15e0c2419c0f032"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Kirigami"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kirigami"&gt;Kirigami&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Workaround crash due to QTBUG-144544. &lt;a target="_blank" href="https://commits.kde.org/kirigami/a6278dbe7969823c174f872494310b818107b87f"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/514098"&gt;#514098&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Deprecate PlatformTheme::useAlternateBackgroundColor. &lt;a target="_blank" href="https://commits.kde.org/kirigami/4f814a632698d1a387ef63603a1b9468ba5097d4"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Move useAlternateBackgroundColor from Theme to StyleHints. &lt;a target="_blank" href="https://commits.kde.org/kirigami/f0b42627c59ba8005e1f9c29de57bde53b4f8877"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Introduce StyleHints as common API for extra style behaviour. &lt;a target="_blank" href="https://commits.kde.org/kirigami/80f9893df20ef59696e9a9f0a4f4d0f1b51aaf69"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;InlineViewHeader: Create a template and utilize it. &lt;a target="_blank" href="https://commits.kde.org/kirigami/e344ae00d6c08bd1946d83961fb31271964f78ff"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;NavigationTab Bar/Button: Create templates. &lt;a target="_blank" href="https://commits.kde.org/kirigami/cdf2b3e5558680d49a533631fd8610387238530a"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Heading: Create a template, base control on top of it. &lt;a target="_blank" href="https://commits.kde.org/kirigami/c222bf551a7838653ad804c492a3dd043b90c661"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mark QML singletons in documentation. &lt;a target="_blank" href="https://commits.kde.org/kirigami/ec8153310858ddd7f53538e7343cf99a871f2b79"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remove duplicate since documentation. &lt;a target="_blank" href="https://commits.kde.org/kirigami/803348bfeb1d6dbaa9a1be0df1fbe9bf87e55fce"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Add missing documentation module dependency. &lt;a target="_blank" href="https://commits.kde.org/kirigami/02f9f2c947e2372dafeb8d149fc8dbc4ce2dac59"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Autotests: Mark test_absolutepath_recoloring of tst_icon.qml as skipped. &lt;a target="_blank" href="https://commits.kde.org/kirigami/ceb9c723117e809b627f820e59aa1480821faf97"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Controls: Port kirigamicontrolsplugin to use Qt::StringLiterals. &lt;a target="_blank" href="https://commits.kde.org/kirigami/a4f72d0f61e3f5b7282b58268d679998c50cbf97"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Controls: Use componentUrlForModule for looking up controls files. &lt;a target="_blank" href="https://commits.kde.org/kirigami/c78d0e97c3afb537a0983de878913b4c72c5ca25"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Port BasicTheme to use StyleSelector::componentUrlForModule. &lt;a target="_blank" href="https://commits.kde.org/kirigami/dd9e2b6ea11ba5499f0150c94c2a1a29f493aca2"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Greatly simplify StyleSelector::styleChain. &lt;a target="_blank" href="https://commits.kde.org/kirigami/6229469b99e8c7a8b6ba222299de664d95143b92"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Deprecate componentUrl, rootPath and resolveFileUrl in StyleSelector. &lt;a target="_blank" href="https://commits.kde.org/kirigami/c4bea0d4938fe62a51dd978f8fe1da332e86538e"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Simplify StyleSelector::resolveFilePath. &lt;a target="_blank" href="https://commits.kde.org/kirigami/083c1f9f7eab007d9ac025489cdf166a184b92a3"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platform: Add StyleSelector::componentUrlForModule. &lt;a target="_blank" href="https://commits.kde.org/kirigami/f7c101a41d774e8e8439ae2460d592044a55a207"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Move all controls in own import. &lt;a target="_blank" href="https://commits.kde.org/kirigami/a1bccfc60d849dc215db0c4e52bc233ed0be13af"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix Kirigami.InputMethod.willShowOnActive. &lt;a target="_blank" href="https://commits.kde.org/kirigami/05920b8107f48e5d02cf74883c4e25ba2a29e640"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix placeholder. &lt;a target="_blank" href="https://commits.kde.org/kirigami/36ec595104a47336b0cfe9f5bfdff058f684eba9"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Reduce text duplication for shortcut tooltips in action toolbar. &lt;a target="_blank" href="https://commits.kde.org/kirigami/f5cff1ca14f3905a96781069b0cdeb611e638678"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/515958"&gt;#515958&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Show keyboard shortcut in action toolbar tooltips. &lt;a target="_blank" href="https://commits.kde.org/kirigami/eaf78e70743f7cab051e8a138fad1ac2360912ca"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Work around Qt bug causing kirigami components to not load when multiple qml engines are involved. &lt;a target="_blank" href="https://commits.kde.org/kirigami/a58a911a11143015cbe17174d8d125f287ad5cde"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KJobWidgets"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kjobwidgets"&gt;KJobWidgets&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Don't show empty error notifications in KNotificationJobUIDelegate. &lt;a target="_blank" href="https://commits.kde.org/kjobwidgets/31b9e002886388196454d12857e202ee0866da85"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KService"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kservice"&gt;KService&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Make updateHash slightly faster. &lt;a target="_blank" href="https://commits.kde.org/kservice/a4f851374b889b57506b145580d09507d32b8356"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ksycoca: do not allow for recursive repairs. &lt;a target="_blank" href="https://commits.kde.org/kservice/2de8b433550f5614778394f441f6635769c9613f"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/516426"&gt;#516426&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kservice: correctly type the unused legacy field as 8 bits. &lt;a target="_blank" href="https://commits.kde.org/kservice/5c3e634031ccf1ba04c7c0858ec45e1bae76e6c7"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ksycocafactory: do not crash when failing to find a factory stream. &lt;a target="_blank" href="https://commits.kde.org/kservice/1a2c38c1797061c445ed60f1cb6149bfdb708a21"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ksycocafactory: guard against integer underflow. &lt;a target="_blank" href="https://commits.kde.org/kservice/c3769d85c9aa120057fe2f4d128dd5eb81c9dee8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enable LSAN in CI. &lt;a target="_blank" href="https://commits.kde.org/kservice/8df96355194c36776d938a93a1899cba469ffea8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix KServiceAction+KService memory leak. &lt;a target="_blank" href="https://commits.kde.org/kservice/ee9d41acf41d5aa1534752ee444be56cbe337cfb"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KTextEditor"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/ktexteditor"&gt;KTextEditor&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Search: add a way to clear the history. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/e548010e84640b382c3739423a97677dfea3f0ec"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/503327"&gt;#503327&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enable Werror on CI. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/21c711e012451edd8f9cbf717ff5afd8d73944f0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Reduce QLatin1Char noise. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/05a1e2e8403860546ccc8ace956aea1e1f668552"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix clipboard warning, check if QClipboard::Selection is supported. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/284eee724f1a14cf2d47b3bbfaf1df8288340358"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ensure we write a BOM if wanted for empty files, too. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/c666df65d65c26aa4b6465afec300077e3461561"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Avoid temporary allocations when saving the file. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/d3241e36501b46a7b93093b165c5fb17bf6742f1"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Properly pass parent pointer for document. &lt;a target="_blank" href="https://commits.kde.org/ktexteditor/dfaaafbf751ec4bf9d95277248b2daa45658e0a2"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KTextTemplate"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/ktexttemplate"&gt;KTextTemplate&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;With get_filename_component use DIRECTORY instead of legacy alias PATH. &lt;a target="_blank" href="https://commits.kde.org/ktexttemplate/5e96da7468b2f21cc793de4549f77c7f0c382a1d"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KUserFeedback"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kuserfeedback"&gt;KUserFeedback&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Don't report nonsensical screen information. &lt;a target="_blank" href="https://commits.kde.org/kuserfeedback/8e2820cb9c8e6ae2fa39fe0fe56cf6cc25daa285"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KWallet"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kwallet"&gt;KWallet&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Fix TRANSLATION_DOMAIN. &lt;a target="_blank" href="https://commits.kde.org/kwallet/adbdaf1bbb8ef5bf33f2471313a66cb9b14c59c0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix Messages.sh to cover all of src/runtime. &lt;a target="_blank" href="https://commits.kde.org/kwallet/faf5b480ee864868e451df17cdc797f4714952ae"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Added translation_domain. &lt;a target="_blank" href="https://commits.kde.org/kwallet/1d2003d8eeb74d9473843132cec16bb40a44d5cb"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KWidgetsAddons"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons"&gt;KWidgetsAddons&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Kacceleratormanager: Avoid unnecessary allocations when searching for used shortcuts. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/132db826e0d846d07f2f506cc3b732591721e4c1"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kactionmenu: Be more forgiving about menu ownership. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/260b2e0e5e732db76ff3f6f46f78fd308bbe5109"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kactionmenu: Fix ownership of default menu. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/8042df5bb04b4d33f395936cb71b83b3d5c63b45"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enable LSAN in CI. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/24fd7b0de22fee2bd9226f7d20b9f576f0063625"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Avoid mem-leak in KDateTimeEditTest::testDateMenu. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/425118ba160a12728d5cae75512c069a739c8e32"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;KAcceleratorManager: Avoid unnecessary allocation. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/fcab7e7d425c5476d303d49de80a555f82f17055"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Kmimetypechooser.h: Remove default arguments from an overlapping constructor and mark it as deprecated for 6.24. &lt;a target="_blank" href="https://commits.kde.org/kwidgetsaddons/67d1dd91f971cd28aa985c172e5bd09487399364"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="KWindowSystem"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/kwindowsystem"&gt;KWindowSystem&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Remove unused include. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/73cdb5128df49059039991e1ab0e39690fd30f16"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Port createRegion to QNativeInterface. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/e45caae96685d808c2ef2f919133426ee3b9e9d8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Port surfaceForWindow to QNativeInterface. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/8d96926ccdc643c11aed9bb1e8dc1fb857c2c025"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wayland: Don't try to export window that isn't xdg_toplevel. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/ef5cef982d56d7927974234b90c93017d19c271e"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/516994"&gt;#516994&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Port xdgToplevelForWindow to QNativeInterface. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/a9bfe8598e486966c41db12fd27da35d04ea6da1"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wayland: Fix importing window that's not exposed but already has surface role. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/c7d630409393c0feb6f0133a5951d89f0eae26aa"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Remove unneeded Qt version check. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/ae4d1bd21883db863f3d1615de3031e2f4098cf3"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platforms/wayland: Manage blur, contrast, and slide globals with std::unique_ptr. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/e873d640dc3338a57c1f5da445d0d10450cec845"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platforms/wayland: Add missing initialize(). &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/320529e76869d85e12ef25098712c351a52b4997"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platforms/wayland: add missing blur capability with ext-background-effect. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/0e7fa3d1a9a633e68a4488dd6154150f66edb71c"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Wayland: implement background effect protocol. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/623055765c6b9db17d3967a635b1dadf63992ecd"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Platforms/wayland: ensure we always react to surface destruction. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/8d4120d4ec51a40364dbc131f9bd8f799012e290"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Run clang-format on all files. &lt;a target="_blank" href="https://commits.kde.org/kwindowsystem/f7fe8e0cfeced46afb1e08894c4f5bec7bc6b881"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Modem Manager Qt"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt"&gt;Modem Manager Qt&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Add new cell broadcast interfaces from MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/c8eebda2e1aa94e6eb9df333022ef6a37828aacd"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update modem firmware interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/a13f4f059ad86773f5077def0efd2b53a212a9ba"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update modem voice interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/a31b81bb6c002ec5c8b5b24c33456c2a20221ac6"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update call interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/178eb07a1176c1b46b89c818d5f40aac28db54c0"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update modem interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/1b2819c5be7d909f7a6431b8cb5c8fed444077a4"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update bearer interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/84205a55113c9c53a8de114a776db9ac4766c68b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update modem messaging interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/12ccbef5097519cdfa20cb87d2495eeee802cc5b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update modem signal interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/60191de5c55caa247bca44e23b3a32d7c99a68d4"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Update modem location interface to latest MM API. &lt;a target="_blank" href="https://commits.kde.org/modemmanager-qt/972f47d7c07eff332d40ebe2d97fda4a737bfe9b"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Prison"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/prison"&gt;Prison&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Bump minimum ZXing version from 1.2.0 to 1.4.0. &lt;a target="_blank" href="https://commits.kde.org/prison/1a8cf9aac89d924bdf2951d2abc1f31a845604a4"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Make zxing and libdmtx required dependencies by default. &lt;a target="_blank" href="https://commits.kde.org/prison/839ab64d77870419238ae1d1aa0883bd834f0b67"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Purpose"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/purpose"&gt;Purpose&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Add missing CI dependencies. &lt;a target="_blank" href="https://commits.kde.org/purpose/b5d290b15c70a5173c601fcf7e9d95cfd163cd5f"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fix QML module dependencies. &lt;a target="_blank" href="https://commits.kde.org/purpose/46442236fabb60cebec7a474735e173c523e28be"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="QQC2 Desktop Style"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style"&gt;QQC2 Desktop Style&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Use Kirigami.StyleHints for tick marks in Slider. &lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style/3fe09864d24caeb1a3dd65d782d4382b0b454ac8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use Kirigami.StyleHints for useAlternateBackgroundColor in list item background. &lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style/4a66ef9dc71776be76c531c50a09be0606921aa3"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use Kirigami.StyleHints for icons in ComboBox. &lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style/47794c58bdb27205a9f8e6fe1d66e3c2246771e8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use Kirigami.StyleHints to determine ScrollView background visibility. &lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style/5e6a0cc3ba8d1c8826a82eb1e7f936d03084d8d2"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Menu: make sure implicitWidth/height is never 0. &lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style/6d79bb7309352c4f77980ed1c68c984c074745f1"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/516151"&gt;#516151&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Make sure that the default behaviours of onPressed and onLongPressed are not trigger if the even is accepted. &lt;a target="_blank" href="https://commits.kde.org/qqc2-desktop-style/8b6dbd4cc4d26979f4d3e19778b22bac4f92ecc8"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Solid"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/solid"&gt;Solid&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Devicemanager.cpp replace &amp;quot;Ok&amp;quot; with &amp;quot;OK&amp;quot;. &lt;a target="_blank" href="https://commits.kde.org/solid/32ce77a331ecd000e6ffa2edaf6c005d5ef0ace2"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Mark network mounts as ignored if user is missing rights for it. &lt;a target="_blank" href="https://commits.kde.org/solid/5d368887928f4f2d7d97edfaf82ab7a798edb727"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fstabhandling: add static wrapper method for '_k_isFstabNetworkFileSystem'. &lt;a target="_blank" href="https://commits.kde.org/solid/bcfc9001d7d83ab121f250b79d35887ddeb72aeb"&gt;Commit.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Use directory name as displayName for fstabdevices. &lt;a target="_blank" href="https://commits.kde.org/solid/23820d6dc1ef5ee4ce563603d6c78aee301110a6"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/501658"&gt;#501658&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;details open="true" id="Syntax Highlighting"&gt;
&lt;summary class="h4"&gt;&lt;a target="_blank" href="https://commits.kde.org/syntax-highlighting"&gt;Syntax Highlighting&lt;/a&gt;&lt;/summary&gt;&lt;ul&gt;
&lt;li&gt;Move comment after white space for some shells and Perl. &lt;a target="_blank" href="https://commits.kde.org/syntax-highlighting/b43b587d2ca225764668dd9ffc127dc0288bb6e7"&gt;Commit.&lt;/a&gt; Fixes bug &lt;a target="_blank" href="https://bugs.kde.org/510666"&gt;#510666&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;</description><author>KDE Community</author></item><item><title>Plasma Keyboard: FLOSS/Fund, diacritics, and more</title><link>https://merritt.codes/blog/2026/03/13/2026/_plasma-keyboard-funding-diacritics</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://merritt.codes/blog/2026/03/13/2026/_plasma-keyboard-funding-diacritics</guid><description>&lt;p&gt;Plasma Keyboard has interesting news to share!&lt;/p&gt;
&lt;p&gt;Plasma Keyboard started out life as KDE's virtual / on-screen keyboard, and now
it is evolving to also support tools and features for our physical keyboards.&lt;/p&gt;
&lt;h2 class="anchor anchorWithStickyNavbar_LWe7" id="flossfund"&gt;FLOSS/Fund&lt;a target="_blank" href="https://merritt.codes/blog/2026/03/13/2026/_plasma-keyboard-funding-diacritics#flossfund" class="hash-link" aria-label="Direct link to FLOSS/Fund" title="Direct link to FLOSS/Fund"&gt;​&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Plasma Keyboard was granted funding from the FLOSS/Fund program's second
tranche, for which we are very grateful! This funding has ensured we will be
able to put some sustained effort towards refining and improving the project —
and I have been doing just that for the past couple of months.&lt;/p&gt;
&lt;p&gt;I began by getting more familiar with the codebase, lists of open bugs, and
feature requests. I also did some refactoring and cleanup, improved the CI and
MR review process, etc.&lt;/p&gt;
&lt;h2 class="anchor anchorWithStickyNavbar_LWe7" id="diacritics"&gt;Diacritics&lt;a target="_blank" href="https://merritt.codes/blog/2026/03/13/2026/_plasma-keyboard-funding-diacritics#diacritics" class="hash-link" aria-label="Direct link to Diacritics" title="Direct link to Diacritics"&gt;​&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-keyboard/-/merge_requests/83" target="_blank" rel="noopener noreferrer"&gt;https://invent.kde.org/plasma/plasma-keyboard/-/merge_requests/83&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The first feature I tackled is the first one that is for physical keyboards
rather than virtual/on-screen keyboards: diacritics — the variants of a
character that indicate a difference in pronunciation, such as ç, ñ, or ü.
Though it is more than just diacritics, because it also supports common/popular
symbols, such as ™, — (em-dash), →, ¡, ‽, ¼, ≥, ≠, etc.&lt;/p&gt;
&lt;p&gt;&lt;img decoding="async" loading="lazy" alt="Diacritics light theme screenshot" src="https://merritt.codes/assets/images/diacritics-light-994a0058d01a3e5603bbbd64afc9f4c5.png" width="614" height="203" class="img_ev3q"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img decoding="async" loading="lazy" alt="Diacritics dark theme screenshot" src="https://merritt.codes/assets/images/diacritics-dark-b745cd649a722fd9f2a8ec24e7e36df9.png" width="614" height="203" class="img_ev3q"&gt;&lt;/p&gt;
&lt;!-- --&gt;
&lt;video controls="" width="100%"&gt;&lt;source src="//merritt.codes/assets/medias/diacritics-demo-dd7d7feae5ea576400d425c847323a1c.webm" type="video/webm"&gt;&lt;/video&gt;
&lt;p&gt;If you'd like an idea of which diacritics and symbols are currently included,
you can check out the
&lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-keyboard/-/blob/6896669297df5df2e8fe7e07b1c6000e2ee939c6/src/overlay/diacritics/base.json" target="_blank" rel="noopener noreferrer"&gt;base mapping json&lt;/a&gt;.
Further mappings are included depending on which language(s) you have enabled
for Plasma Keyboard in your system settings.&lt;/p&gt;
&lt;p&gt;This feature allows users to long-press a key on their physical keyboard to
access a popup menu of diacritics and symbols related to that key, and select
one to input it. This is a common feature on mobile keyboards, and I personally
think this is a great improvement over using something like a compose key for
the same purpose.&lt;/p&gt;
&lt;p&gt;Selecting an option from the popup menu can be done multiple ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pressing the associated keyboard number key shown below the option&lt;/li&gt;
&lt;li&gt;Clicking on the option with the mouse&lt;/li&gt;
&lt;li&gt;Using the arrow keys to navigate to the option and pressing &lt;code&gt;Enter&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was pretty challenging to implement; I previously had no experience with
Wayland protocols or input methods, so it required a lot of research, reading,
learning, and experimentation to figure it out. Difficult, but rewarding!&lt;/p&gt;
&lt;p&gt;One of the really cool things about Plasma Keyboard is that it is available as a
Flatpak — so if you are adventurous and want to try out the diacritics feature
before it is released to the stable version, you can do so with the nightly
Flatpak builds!&lt;/p&gt;
&lt;div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-background-color:hsl(230, 1%, 98%);--prism-color:hsl(230, 8%, 24%)"&gt;&lt;div class="codeBlockContent_biex"&gt;&lt;pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="background-color:hsl(230, 1%, 98%);color:hsl(230, 8%, 24%)"&gt;&lt;code class="codeBlockLines_e6Vv"&gt;&lt;span class="token-line" style="color:hsl(230, 8%, 24%)"&gt;&lt;span class="token plain"&gt;flatpak install --user --or-update https://cdn.kde.org/flatpak/plasma-keyboard-nightly/org.kde.plasma.keyboard.flatpakref&lt;/span&gt;&lt;br&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="buttonGroup__atx"&gt;&lt;button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"&gt;&lt;span class="copyButtonIcons_eSgA" aria-hidden="true"&gt;&lt;svg viewBox="0 0 24 24" class="copyButtonIcon_y97N"&gt;&lt;path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;svg viewBox="0 0 24 24" class="copyButtonSuccessIcon_LjdS"&gt;&lt;path fill="currentColor" d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Then simply enable Plasma Keyboard in &lt;code&gt;System Settings&lt;/code&gt; → &lt;code&gt;Keyboard&lt;/code&gt; →
&lt;code&gt;Virtual Keyboard&lt;/code&gt;! 🤯 If you already have a version of Plasma Keyboard
installed, a quick restart or log out/in might be needed for the new version to
take effect.&lt;/p&gt;
&lt;h2 class="anchor anchorWithStickyNavbar_LWe7" id="future-plans"&gt;Future Plans&lt;a target="_blank" href="https://merritt.codes/blog/2026/03/13/2026/_plasma-keyboard-funding-diacritics#future-plans" class="hash-link" aria-label="Direct link to Future Plans" title="Direct link to Future Plans"&gt;​&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In addition to the diacritics feature itself, I also laid the groundwork with it
for future features that will make use of the same overlay/popup system and
physical keyboard integration — stay tuned for more news on that! 😉&lt;/p&gt;
&lt;p&gt;There are a bunch of other plans for features and improvements that we'd like to
work on, for example: swipe typing, voice typing, making the on-screen keyboard
movable and resizable, adding tests and improving performance and reliability,
etc.&lt;/p&gt;
&lt;p&gt;There is a lot of work to be done, and we are excited to keep improving Plasma
Keyboard and making it even more powerful and user-friendly — just like the rest
of Plasma! 🚀&lt;/p&gt;
&lt;p&gt;If you are interested in contributing, please check out the project on KDE's
GitLab: &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-keyboard" target="_blank" rel="noopener noreferrer"&gt;https://invent.kde.org/plasma/plasma-keyboard&lt;/a&gt;&lt;/p&gt;</description><author>Kristen McWilliam</author></item><item><title>What's new in QML tooling in Qt 6.11, part 2: new qmllint warnings</title><link>https://www.qt.io/blog/whats-new-in-qml-tooling-for-qt-6.11-part-2</link><pubDate>Thu, 12 Mar 2026 16:07:23 +0000</pubDate><guid isPermaLink="true">https://www.qt.io/blog/whats-new-in-qml-tooling-for-qt-6.11-part-2</guid><description>&lt;p&gt;&lt;span&gt;The latest Qt release, Qt 6.11, is just around the corner. This short blog post series presents the new features that QML tooling brings in Qt 6.11. You can find part 1 on new qmlls features &lt;a target="_blank" href="https://www.qt.io/blog/whats-new-in-qml-language-server-in-6.11?hsLang=en"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;img src="https://track-eu1.hubspot.com/__ptq.gif?a=149513&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fwww.qt.io%2Fblog%2Fwhats-new-in-qml-tooling-for-qt-6.11-part-2&amp;amp;bu=https%253A%252F%252Fwww.qt.io%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</description><author>Qt Dev Loop</author></item><item><title>Qt Creator 19 released</title><link>https://www.qt.io/blog/qt-creator-19-released</link><pubDate>Thu, 12 Mar 2026 11:50:55 +0000</pubDate><guid isPermaLink="true">https://www.qt.io/blog/qt-creator-19-released</guid><description>&lt;div class="hs-featured-image-wrapper"&gt;
&lt;a target="_blank" href="https://www.qt.io/blog/qt-creator-19-released?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://www.qt.io/hubfs/QtCreator19-ReleaseFeatured-1200x628.webp" alt="Qt Creator 19 released" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt;
&lt;/div&gt;
&lt;h5&gt;We are happy to announce the release of Qt Creator 19!&lt;/h5&gt;
&lt;p&gt;Release 19 for the &lt;a target="_blank" href="https://www.qt.io/development/tools/qt-creator-ide?hsLang=en"&gt;Qt Creator IDE&lt;/a&gt; adds a minimap for text editors, easier configuration of remote devices, a basic MCP server, lightweight support for various project types for various languages, and many more improvements.&lt;/p&gt;
&lt;img src="https://track-eu1.hubspot.com/__ptq.gif?a=149513&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fwww.qt.io%2Fblog%2Fqt-creator-19-released&amp;amp;bu=https%253A%252F%252Fwww.qt.io%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</description><author>Qt Dev Loop</author></item><item><title>2026 Krita Roadmap</title><link>https://krita.org/en/posts/2026/roadmap-2026/</link><pubDate>Thu, 12 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://krita.org/en/posts/2026/roadmap-2026/</guid><description>&lt;p&gt;In two sessions, the Krita developers discussed what they want to work on in 2026, after Krita 5.3 and Krita 6.0 are released. That is, actually, one release, but one version is built with Qt5 and one with Qt6. The release is planned for next month.&lt;/p&gt;
&lt;h2 id="krita-sketch-user-interface"&gt;Krita Sketch User Interface&lt;/h2&gt;
&lt;p&gt;Last year, Timotheé created a &lt;a target="_blank" href="https://invent.kde.org/graphics/krita/-/merge_requests/2417"&gt;prototype for a mobile user interface for Krita&lt;/a&gt; (there is an APK you can install to play with). At the same time Wolthera finished her work on the new text shape and text tools. Both projects use the QML and QtQuick features of Qt to implement the user interface.&lt;/p&gt;
&lt;p&gt;This year, we intend to work on replacing the tool option dockers with QML so we can use those both in the mobile and in the desktop version of Krita.&lt;/p&gt;
&lt;p&gt;Alvin Wong experimented in 2025 with embedding an OpenGL based canvas inside a QML application. Dmitry and Carsten will continue that work and see whether we can use Krita's canvas to show an image inside Timotheé's prototype.&lt;/p&gt;
&lt;p&gt;Agata has already started work to make the current user interface more suitable for tablet use.&lt;/p&gt;
&lt;h2 id="working-with-files"&gt;Working with Files&lt;/h2&gt;
&lt;p&gt;There are a couple of plans we have with regards to file handling. On Android, working with the file sandboxing is seriously complicated, and we're looking into a solution for that.&lt;/p&gt;
&lt;p&gt;The Krita .kra file format is pretty old by now (not 25 years, since it came into being a few years after Krita started being developed). It can, obviously, load and save everything Krita can handle, but it is not a particular fast file format. Carsten proposed to look into an SQLlite based file format. This could potentially mean that we could save the image after every change without the user noticing, making saving completely transparent.&lt;/p&gt;
&lt;p&gt;Agata is already working on improving the autosave dialog. There is already &lt;a target="_blank" href="https://krita-artists.org/t/unnamed-autosave-dialog-gets-a-glow-up-mockup-for-new-gui-inside/127551"&gt;a mockup for this&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ivan is looking into sharing settings and resources across a user's devices, ideally in a cross-platform way.&lt;/p&gt;
&lt;h2 id="color-management"&gt;Color Management&lt;/h2&gt;
&lt;p&gt;While Krita supports HDR displays, there are issues with the user interface. Wolthera wants to start improving there.&lt;/p&gt;
&lt;p&gt;Now that Qt 6 includes support for color management, CMYK and higher-bit depth images, it should be possible to add color management to Krita's vector layers, and that's something we are eager to implement.&lt;/p&gt;
&lt;p&gt;We also discussed Wayland. We now support color management on Wayland on Linux, but there are plenty of problems there. We decided to only support the &lt;a target="_blank" href="https://kde.org/plasma-desktop/"&gt;KWin Wayland&lt;/a&gt; compositor that comes with KDE Plasma for now.&lt;/p&gt;
&lt;h2 id="performance"&gt;Performance&lt;/h2&gt;
&lt;p&gt;Dmitry wants to work on &amp;quot;region based updates&amp;quot;, and &lt;a target="_blank" href="https://invent.kde.org/graphics/krita/-/merge_requests/2578"&gt;has already started on that&lt;/a&gt;: this will make working with large images faster.&lt;/p&gt;
&lt;p&gt;Ivan and Wolthera are interested in using vectorization in filters, possibly replacing the use of LittleCMS for color transformations.&lt;/p&gt;
&lt;h2 id="continuous-integration"&gt;Continuous integration&lt;/h2&gt;
&lt;p&gt;Continuous integration is how we build Krita: after changes, Krita is built automatically for every platform. Now that we've access to Windows ARM hardware, we need to find a way to extend our builds to Windows ARM, but the CI factory doesn't have an ARM builder, so we'd need to cross build.&lt;/p&gt;
&lt;p&gt;We also intend to update all Krita's dependencies to the latest version, but only after we release Krita 5.3 and Krita 6.0. And of course, we intend to keep releasing bugfix and feature releases this year! For now, Krita 5.3 is the standard release, and 6.0 is considered experimental, but that should have changed by the end of the year.&lt;/p&gt;</description><author>Krita News</author></item><item><title>Qt World Summit 2026: Going Virtual</title><link>https://www.qt.io/blog/call-for-presentations-qt-world-summit-2026-in-berlin</link><pubDate>Wed, 11 Mar 2026 07:15:00 +0000</pubDate><guid isPermaLink="true">https://www.qt.io/blog/call-for-presentations-qt-world-summit-2026-in-berlin</guid><description>&lt;div class="hs-featured-image-wrapper"&gt;
&lt;a target="_blank" href="https://www.qt.io/blog/call-for-presentations-qt-world-summit-2026-in-berlin?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://www.qt.io/hubfs/Other%20or%20Webinar%20Images%20-%20Nghi/QtWS26-CfP-Featured-Image-1.png" alt="Qt World Summit 2026: Going Virtual" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Qt World Summit 2026 is moving to a virtual format. After careful evaluation with key stakeholders, we've decided to transition the event from an in-person gathering in Germany to an online experience.&lt;/p&gt;
&lt;img src="https://track-eu1.hubspot.com/__ptq.gif?a=149513&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fwww.qt.io%2Fblog%2Fcall-for-presentations-qt-world-summit-2026-in-berlin&amp;amp;bu=https%253A%252F%252Fwww.qt.io%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</description><author>Qt Dev Loop</author></item><item><title>Release GCompris 26.1</title><link>https://www.gcompris.net/newsall-en.html#2026-03-11</link><pubDate>Tue, 10 Mar 2026 23:00:00 +0000</pubDate><guid isPermaLink="true">https://www.gcompris.net/newsall-en.html#2026-03-11</guid><description>&lt;div class="newscontent"&gt;&lt;img alt="gcompris 26.1" class="col-xs-12 col-md-4" onclick="window.open('https://gcompris.net/news/images/r26.1.png')" src="https://gcompris.net/news/images/r26.1.png" style="float: right; padding-left: 10px; cursor: pointer;"/&gt; &lt;p&gt;Today we are releasing GCompris version 26.1.&lt;/p&gt; &lt;p&gt;It contains bug fixes and improvements on many activities.&lt;/p&gt; &lt;p&gt;It is fully translated in the following languages:&lt;/p&gt; &lt;ul&gt; &lt;li class="puce"&gt;Arabic&lt;/li&gt; &lt;li class="puce"&gt;Bulgarian&lt;/li&gt; &lt;li class="puce"&gt;Breton&lt;/li&gt; &lt;li class="puce"&gt;Catalan&lt;/li&gt; &lt;li class="puce"&gt;Catalan (Valencian)&lt;/li&gt; &lt;li class="puce"&gt;Greek&lt;/li&gt; &lt;li class="puce"&gt;Spanish&lt;/li&gt; &lt;li class="puce"&gt;Basque&lt;/li&gt; &lt;li class="puce"&gt;French&lt;/li&gt; &lt;li class="puce"&gt;Hebrew&lt;/li&gt; &lt;li class="puce"&gt;Croatian&lt;/li&gt; &lt;li class="puce"&gt;Italian&lt;/li&gt; &lt;li class="puce"&gt;Lithuanian&lt;/li&gt; &lt;li class="puce"&gt;Latvian&lt;/li&gt; &lt;li class="puce"&gt;Malayalam&lt;/li&gt; &lt;li class="puce"&gt;Dutch&lt;/li&gt; &lt;li class="puce"&gt;Polish&lt;/li&gt; &lt;li class="puce"&gt;Brazilian Portuguese&lt;/li&gt; &lt;li class="puce"&gt;Russian&lt;/li&gt; &lt;li class="puce"&gt;Slovenian&lt;/li&gt; &lt;li class="puce"&gt;Albanian&lt;/li&gt; &lt;li class="puce"&gt;Swedish&lt;/li&gt; &lt;li class="puce"&gt;Turkish&lt;/li&gt; &lt;li class="puce"&gt;Ukrainian&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;It is also partially translated in the following languages:&lt;/p&gt; &lt;ul&gt; &lt;li class="puce"&gt;Azerbaijani (87%)&lt;/li&gt; &lt;li class="puce"&gt;Belarusian (83%)&lt;/li&gt; &lt;li class="puce"&gt;Czech (98%)&lt;/li&gt; &lt;li class="puce"&gt;German (93%)&lt;/li&gt; &lt;li class="puce"&gt;UK English (96%)&lt;/li&gt; &lt;li class="puce"&gt;Esperanto (96%)&lt;/li&gt; &lt;li class="puce"&gt;Estonian (86%)&lt;/li&gt; &lt;li class="puce"&gt;Finnish (92%)&lt;/li&gt; &lt;li class="puce"&gt;Galician (97%)&lt;/li&gt; &lt;li class="puce"&gt;Hungarian (97%)&lt;/li&gt; &lt;li class="puce"&gt;Indonesian (98%)&lt;/li&gt; &lt;li class="puce"&gt;Georgian (88%)&lt;/li&gt; &lt;li class="puce"&gt;Kannada (85%)&lt;/li&gt; &lt;li class="puce"&gt;Macedonian (81%)&lt;/li&gt; &lt;li class="puce"&gt;Norwegian Nynorsk (89%)&lt;/li&gt; &lt;li class="puce"&gt;Portuguese (85%)&lt;/li&gt; &lt;li class="puce"&gt;Romanian (97%)&lt;/li&gt; &lt;li class="puce"&gt;Sanskrit (97%)&lt;/li&gt; &lt;li class="puce"&gt;Slovak (78%)&lt;/li&gt; &lt;li class="puce"&gt;Swahili (88%)&lt;/li&gt; &lt;li class="puce"&gt;Tamil (84%)&lt;/li&gt; &lt;li class="puce"&gt;Chinese Traditional (85%)&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;You can find packages of this new version for GNU/Linux, Windows, Android, and Raspberry Pi on the &lt;a target="_blank" href="https://gcompris.net/downloads-en.html"&gt;download page&lt;/a&gt;. Also this update will soon be available in the Android Play store, the F-Droid repository and the Windows store.&lt;/p&gt; &lt;p&gt;Thank you all, &lt;br/&gt;Timothée &amp;amp; Johnny&lt;/p&gt; &lt;div&gt;&lt;/div&gt; &lt;/div&gt;</description><author>GCompris</author></item><item><title>REST Better with the Support of OpenAPI in Qt 6</title><link>https://www.qt.io/blog/rest-better-with-the-support-of-openapi-in-qt-6</link><pubDate>Tue, 10 Mar 2026 10:03:45 +0000</pubDate><guid isPermaLink="true">https://www.qt.io/blog/rest-better-with-the-support-of-openapi-in-qt-6</guid><description>&lt;div class="hs-featured-image-wrapper"&gt;
&lt;a target="_blank" href="https://www.qt.io/blog/rest-better-with-the-support-of-openapi-in-qt-6?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://www.qt.io/hubfs/entry_page.webp" alt="REST Better with the Support of OpenAPI in Qt 6" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Some of you are following our works to improve connectivity of Qt-based apps. For example, in &lt;a target="_blank" href="https://www.qt.io/blog/restful-client-applications-in-qt-6.7-and-forward?hsLang=en"&gt;this blogpost&lt;/a&gt; we explained enhacements in the Qt's network stack for more efficient use of RESTful APIs starting with Qt 6.7. So, it might sound we are done with REST. Why bother about &lt;a target="_blank" href="https://www.openapis.org"&gt;OpenAPI&lt;/a&gt;&amp;nbsp;then? Well, while around 70% of all web services run on REST, around 20-30% of them use code generated from &lt;a target="_blank" href="https://www.openapis.org"&gt;OpenAPI&lt;/a&gt; specification. How could Qt leave that out without helping our users to code less and create more?&amp;nbsp;&lt;/p&gt;
&lt;p style="line-height: normal; font-variant-emoji: normal; color: #0a0d20;"&gt;The new Qt 6 OpenAPI module will become available with Qt 6.11 as a Technical Preview. The module introduces the Qt 6 OpenAPI generator, which generates Qt HTTP clients using Qt Network RESTful APIs.&lt;/p&gt;
&lt;p style="line-height: normal; font-variant-emoji: normal; color: #0a0d20;"&gt;It is important to note here that an OpenAPI generator for Qt 5 has been originally developed by the OpenAPI community. We took it into Qt 6, refactored it, and extended it.&lt;/p&gt;
&lt;p style="line-height: normal; font-variant-emoji: normal; color: #0a0d20;"&gt;In this blog post, you will learn about the new OpenAPI generator in Qt 6 and see how the new module can be used to implement a simple, Qt-based ChatGPT client application using specification of its API provided in the OpenAPI format.&lt;/p&gt;
&lt;img src="https://track-eu1.hubspot.com/__ptq.gif?a=149513&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fwww.qt.io%2Fblog%2Frest-better-with-the-support-of-openapi-in-qt-6&amp;amp;bu=https%253A%252F%252Fwww.qt.io%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</description><author>Qt Dev Loop</author></item><item><title>Upgrades to Frontier LLMs – Qt AI Assistant 0.9.9 for Qt Creator Released!</title><link>https://www.qt.io/blog/upgrades-to-the-latest-frontier-llms-qt-ai-assistant-0.9.9-for-qt-creator-released</link><pubDate>Tue, 10 Mar 2026 08:28:14 +0000</pubDate><guid isPermaLink="true">https://www.qt.io/blog/upgrades-to-the-latest-frontier-llms-qt-ai-assistant-0.9.9-for-qt-creator-released</guid><description>&lt;div class="hs-featured-image-wrapper"&gt;
&lt;a target="_blank" href="https://www.qt.io/blog/upgrades-to-the-latest-frontier-llms-qt-ai-assistant-0.9.9-for-qt-creator-released?hsLang=en" title="" class="hs-featured-image-link"&gt; &lt;img src="https://www.qt.io/hubfs/QtAIAssistant_LLM099.png" alt="Upgrades to Frontier LLMs – Qt AI Assistant 0.9.9 for Qt Creator Released!" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt;
&lt;/div&gt;
&lt;p style="line-height: normal; color: #151515;"&gt;To make it easier to access the latest AI capabilities, we have updated pre-configured LLMs to newer variants.&lt;/p&gt;
&lt;img src="https://track-eu1.hubspot.com/__ptq.gif?a=149513&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fwww.qt.io%2Fblog%2Fupgrades-to-the-latest-frontier-llms-qt-ai-assistant-0.9.9-for-qt-creator-released&amp;amp;bu=https%253A%252F%252Fwww.qt.io%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</description><author>Qt Dev Loop</author></item><item><title>What is the best way to identify software? Introducing SWHID</title><link>https://toscalix.com/2026/03/10/what-is-the-best-way-to-identify-software-introducing-swhid/</link><pubDate>Tue, 10 Mar 2026 07:00:00 +0000</pubDate><guid isPermaLink="true">http://toscalix.com/?p=3098</guid><description>Modern software is assembled from hundreds of components that organizations often did not write and do not fully control. Identifying those components reliably is becoming a legal requirement. This article introduces SWHID, an open standard for identifying software artifacts.</description><author>Agustín Benito Bethencourt</author></item><item><title>KDE Plasma 6.5.6, Bugfix Release for March</title><link>https://kde.org/announcements/plasma/6/6.5.6/</link><pubDate>Tue, 10 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://kde.org/announcements/plasma/6/6.5.6/</guid><description>&lt;p&gt;Tuesday, 10 March 2026. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.5.6.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://kde.org/announcements/plasma/6/6.5.0/"&gt;Plasma 6.5&lt;/a&gt; was released in October 2025 with many feature refinements and new modules to complete the desktop experience.&lt;/p&gt;
&lt;p&gt;This release adds two months’ worth of new translations and fixes from KDE’s contributors. The bugfixes are typically small but important and include:&lt;/p&gt;
&lt;a target="_blank" href="https://kde.org/announcements/changelogs/plasma/6/6.5.5-6.5.6"&gt;View full changelog&lt;/a&gt;</description><author>KDE Community</author></item><item><title>Kdenlive 25.12.3 released</title><link>https://kdenlive.org/news/releases/25.12.3/</link><pubDate>Mon, 09 Mar 2026 08:00:00 +0000</pubDate><guid isPermaLink="true">https://kdenlive.org/news/releases/25.12.3/</guid><description>&lt;p&gt;The last maintenance release of the 25.12 series is out with the usual batch of stability fixes and workflow improvements. Highlights include small interface refinements such as better dock widget behavior, improved shortcut handling in fullscreen mode, logically grouped marker menu items, and a new option to disable timeline effects in the hamburger menu. The release also brings improvements to multistream clip handling and ripple editing, as well as fixing small memleak in the render widget and a crash in the curve editor. See the &lt;a target="_blank" href="https://kdenlive.org/news/releases/25.12.3/#full-changelog"&gt;changelog&lt;/a&gt; below for more details.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The macOS versions will be available at a later time due to technical issues while generating the packages.&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="kdenlive-needs-your-support"&gt;Kdenlive needs your support&lt;/h3&gt;
&lt;p&gt;Our small team has been working for years to build an intuitive open source video editor that does not track you, does not use your data, and respects your privacy. However, to ensure a proper development requires resources, so please consider a &lt;a target="_blank" href="https://kdenlive.org/fund"&gt;donation&lt;/a&gt; if you enjoy using Kdenlive - even small amounts can make a big difference.&lt;/p&gt;
&lt;p&gt;For the full changelog &lt;a target="_blank" href="https://kdenlive.org/news/releases/25.12.3/#full-changelog"&gt;continue reading on kdenlive.org&lt;/a&gt;.&lt;/p&gt;</description><author>Kdenlive</author></item><item><title>This Week in KDE Apps</title><link>https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/</link><pubDate>Sun, 08 Mar 2026 07:20:35 +0000</pubDate><guid isPermaLink="true">https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/</guid><description>&lt;h4&gt;New Glaxnimate release, source mode in Marknote and S3 support in Dolphin&lt;/h4&gt;&lt;p&gt;Welcome to a new issue of &amp;quot;This Week in KDE Apps&amp;quot;! Every week (or so) we cover as much as possible of what's happening in the world of &lt;a target="_blank" href="https://apps.kde.org/"&gt;KDE apps&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="office-applications"&gt;Office Applications&lt;/h2&gt;
&lt;h3 id="marknote"&gt;&lt;a target="_blank" href="https://apps.kde.org/marknote"&gt;Marknote&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Write down your thoughts&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;It's been a busy week in Marknote again. Valentyn Bondarenko extensively reworked tables to fix rendering issues (&lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/143"&gt;office/marknote MR #143&lt;/a&gt; and &lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/169"&gt;office/marknote MR #169&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/marknote-table.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;p&gt;Valentyn Bondarenko also added a new dialog to add note links more easily (&lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/161"&gt;office/marknote MR #161&lt;/a&gt;) and added subtle animations to various parts of the UI (&lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/162"&gt;office/marknote MR #162&lt;/a&gt; and &lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/168"&gt;office/marknote MR #168&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/marknote-link.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;p&gt;Shubham Shinde extended the search function of Marknote to also be able to replace text (&lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/154"&gt;office/marknote MR #154&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/marknote-replace.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;p&gt;Siddharth Chopra added a source mode to Marknote, for people who prefer to edit Markdown using a plain text editor (&lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/118"&gt;office/marknote MR #118&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Carl Schwan improved the context menu, making it appear directly underneath the button and fixing some accessibility issues (&lt;a target="_blank" href="https://invent.kde.org/office/marknote/-/merge_requests/166"&gt;office/marknote MR #166&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/marknote-contextmenu.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;p&gt;Finally, there was quite a bit of polish and refactoring done by the whole team in preparation for the release planned next week.&lt;/p&gt;
&lt;h3 id="kmymoney"&gt;&lt;a target="_blank" href="https://apps.kde.org/kmymoney"&gt;KMyMoney&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Personal finance manager based on double-entry bookkeeping&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Ralf Habacker added a way to list all your unsaved reports and to delete multiple reports at the same time (&lt;a target="_blank" href="https://invent.kde.org/office/kmymoney/-/merge_requests/322"&gt;office/kmymoney MR #322&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="pim-applications"&gt;PIM Applications&lt;/h2&gt;
&lt;h3 id="merkuro.calendar"&gt;&lt;a target="_blank" href="https://apps.kde.org/merkuro.calendar"&gt;Merkuro Calendar&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Manage your tasks and events with speed and ease&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Yuki Joou redesigned the schedule view to be less crowded and more concise (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/573"&gt;pim/merkuro MR #573&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/merkuro-calendar-schedule.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;p&gt;Yuki made it possible to set a start date also for tasks and not only for events (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/611"&gt;pim/merkuro MR #611&lt;/a&gt;). She also fixed the sort button state in the todo view (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/612"&gt;pim/merkuro MR #612&lt;/a&gt;), among other various small issues (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/579"&gt;pim/merkuro MR #579&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/609"&gt;pim/merkuro MR #609&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/610"&gt;pim/merkuro MR #610&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Zhora Zmeikin fixed a crash when editing or creating a new event (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/608"&gt;pim/merkuro MR #608&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="merkuro.mail"&gt;&lt;a target="_blank" href="https://apps.kde.org/merkuro.mail"&gt;Merkuro Mail&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Read and write emails&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Yuki Joou also worked on Merkuro Mail and fixed various issues when sending emails (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/615"&gt;pim/merkuro MR #615&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="merkuro.contact"&gt;&lt;a target="_blank" href="https://apps.kde.org/merkuro.contact"&gt;Merkuro Contact&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Manage your contacts with speed and ease&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Finally, Yuki added a way to copy phone numbers from a contact book entry easily (&lt;a target="_blank" href="https://invent.kde.org/pim/merkuro/-/merge_requests/614"&gt;pim/merkuro MR #614&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="kmail2"&gt;&lt;a target="_blank" href="https://apps.kde.org/kmail2"&gt;KMail&lt;/a&gt; &lt;small class="h6 text-muted"&gt;A feature-rich email application&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Albert Astals Cid refactored how temporary files are stored so they are no longer stored in &lt;code&gt;/tmp&lt;/code&gt;. This mostly helps in case multiple users use the same machine (&lt;a target="_blank" href="https://invent.kde.org/pim/messagelib/-/merge_requests/334"&gt;pim/messagelib MR #334&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="kleopatra"&gt;&lt;a target="_blank" href="https://apps.kde.org/kleopatra"&gt;Kleopatra&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Certificate manager and cryptography app&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Thomas Friedrichsmeier changed the font used by plain text email signatures in the Kleopatra and GpgOL.js email viewers to be monospaced, as many signatures depend on that (&lt;a target="_blank" href="https://invent.kde.org/pim/mimetreeparser/-/merge_requests/91"&gt;pim/mimetreeparser MR #91&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="creative-applications"&gt;Creative Applications&lt;/h2&gt;
&lt;h3 id="glaxnimate"&gt;&lt;a target="_blank" href="https://apps.kde.org/glaxnimate"&gt;Glaxnimate&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Vector Animation Editor&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;This week we celebrated the &lt;a target="_blank" href="https://glaxnimate.org/news/releases/0.6.0/"&gt;first release of Glaxnimate&lt;/a&gt; as part of KDE. Welcome to the family! The big highlights of this release are better integration with KDE in terms of theming, improvements in the animation timeline, and better SVG export and import. Read more in the &lt;a target="_blank" href="https://glaxnimate.org/news/releases/0.6.0/"&gt;full announcement&lt;/a&gt;.&lt;/p&gt;
&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
&lt;video muted autoplay controls&gt;&lt;source src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/theme_sequence.webm" type="video/webm" /&gt;&lt;/video&gt;&lt;/figure&gt;
&lt;p&gt;In the development branch, Mattia Basaglia continued to improve Glaxnimate. This includes a brand new rendering engine based on &lt;a target="_blank" href="https://www.thorvg.org/"&gt;ThorVG&lt;/a&gt; (&lt;a target="_blank" href="https://invent.kde.org/graphics/glaxnimate/-/merge_requests/84"&gt;graphics/glaxnimate MR #84&lt;/a&gt;). This means the rendering is now hardware accelerated, which is faster than the old QPainter-based renderer. Additionally, Mattia improved the backend (&lt;a target="_blank" href="https://invent.kde.org/graphics/glaxnimate/-/merge_requests/86"&gt;graphics/glaxnimate MR #86&lt;/a&gt;) and built an experimental WASM renderer based on it for the web (&lt;a target="_blank" href="https://invent.kde.org/graphics/glaxnimate/-/merge_requests/87"&gt;graphics/glaxnimate MR #87&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="multimedia-applications"&gt;Multimedia Applications&lt;/h2&gt;
&lt;h3 id="kphotoalbum"&gt;&lt;a target="_blank" href="https://apps.kde.org/kphotoalbum"&gt;KPhotoAlbum&lt;/a&gt; &lt;small class="h6 text-muted"&gt;KDE image management software&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Randall Rude updated the documentation (&lt;a target="_blank" href="https://invent.kde.org/graphis/kphotoalbum/-/merge_requests/73"&gt;graphis/kphotoalbum MR #73&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="developers-applications"&gt;Developers Applications&lt;/h2&gt;
&lt;h3 id="kate"&gt;&lt;a target="_blank" href="https://apps.kde.org/kate"&gt;Kate&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Advanced text editor&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Leia uwu fixed Kate so that when renaming a file, any open tabs with this file will also be updated accordingly (&lt;a target="_blank" href="https://invent.kde.org/utilities/kate/-/merge_requests/2043"&gt;utilities/kate MR #2043&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="kdevelop"&gt;&lt;a target="_blank" href="https://apps.kde.org/kdevelop"&gt;KDevelop&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Featureful, plugin-extensible IDE for C/C&amp;#43;&amp;#43; and other programming languages&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Martin Bednar added support for noexcept in the autocompletion model of KDevelop (&lt;a target="_blank" href="https://invent.kde.org/kdevelop/kdevelop/-/merge_requests/858"&gt;kdevelop/kdevelop MR #858&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="network-applications"&gt;Network Applications&lt;/h2&gt;
&lt;h3 id="neochat"&gt;&lt;a target="_blank" href="https://apps.kde.org/neochat"&gt;NeoChat&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Chat on Matrix&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;James Graham continued working this week on improving and polishing the new rich text editor in NeoChat (&lt;a target="_blank" href="https://invent.kde.org/network/neochat/-/merge_requests/2730"&gt;network/neochat MR #2730&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/network/neochat/-/merge_requests/2729"&gt;network/neochat MR #2729&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/network/neochat/-/merge_requests/2722"&gt;network/neochat MR #2722&lt;/a&gt;, ...)&lt;/p&gt;
&lt;p&gt;Joshua Goins disabled the search feature in encrypted rooms as the server is not able to search in them (&lt;a target="_blank" href="https://invent.kde.org/network/neochat/-/merge_requests/2724"&gt;network/neochat MR #2724&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id="kaidan"&gt;&lt;a target="_blank" href="https://apps.kde.org/kaidan"&gt;Kaidan&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Modern chat app for every device&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Melvin Keskin improved the usability of the emoji picker and mentioning participants in a group chat (&lt;a target="_blank" href="https://invent.kde.org/network/kaidan/-/merge_requests/1522"&gt;network/kaidan MR #1522&lt;/a&gt;).&lt;/p&gt;
&lt;h2 id="system-applications"&gt;System Applications&lt;/h2&gt;
&lt;h3 id="dolphin"&gt;&lt;a target="_blank" href="https://apps.kde.org/dolphin"&gt;Dolphin&lt;/a&gt; &lt;small class="h6 text-muted"&gt;Manage your files&lt;/small&gt;&lt;/h3&gt;
&lt;p&gt;Albert Mkhitaryan added keyboard shortcut support for service menu actions (&lt;a target="_blank" href="https://invent.kde.org/system/dolphin/-/merge_requests/1167"&gt;system/dolphin MR #1167&lt;/a&gt;). So now you can assign a shortcut to the context menu actions provided by other applications or user scripts. &lt;a target="_blank" href="https://develop.kde.org/docs/apps/dolphin/service-menus/"&gt;See doc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nicolai Sehrt added an option for forcing all tabs in Dolphin to have the same width (&lt;a target="_blank" href="https://invent.kde.org/system/dolphin/-/merge_requests/1154"&gt;system/dolphin MR #1154&lt;/a&gt;). Méven Car also updated Dolphin so that, by default, tab widths are automatically determined by their title length (&lt;a target="_blank" href="https://invent.kde.org/system/dolphin/-/merge_requests/1170"&gt;system/dolphin MR #1170&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Méven Car also centered most settings pages to be a bit more consistent with System Settings (&lt;a target="_blank" href="https://invent.kde.org/system/dolphin/-/merge_requests/1192"&gt;system/dolphin MR #1192&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Nekto Oleg improved support for the &lt;a target="_blank" href="https://en.wikipedia.org/wiki/Amazon_S3"&gt;S3 protocol&lt;/a&gt; in KIO-enabled applications like Dolphin. While S3 is commonly associated with Amazon Web Services (AWS), the implementation now also supports custom endpoints and is no longer limited to AWS-compatible services (&lt;a target="_blank" href="https://invent.kde.org/network/kio-s3/-/merge_requests/7"&gt;network/kio-s3 MR #7&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/network/kio-s3/-/merge_requests/8"&gt;network/kio-s3 MR #8&lt;/a&gt; and &lt;a target="_blank" href="https://invent.kde.org/network/kio-s3/-/merge_requests/9"&gt;network/kio-s3 MR #9&lt;/a&gt;). Additionally, a new System Settings page makes it possible to configure multiple S3 providers at the same time (&lt;a target="_blank" href="https://invent.kde.org/network/kio-s3/-/merge_requests/9"&gt;network/kio-s3 MR #9&lt;/a&gt; and &lt;a target="_blank" href="https://invent.kde.org/network/kio-s3/-/merge_requests/10"&gt;network/kio-s3 MR #10&lt;/a&gt;).&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" src="https://blogs.kde.org/2026/03/08/this-week-in-kde-apps/s3-dialog.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h2 id="and-everything-else"&gt;…And Everything Else&lt;/h2&gt;
&lt;p&gt;This blog only covers the tip of the iceberg! If you’re hungry for more, check out &lt;a target="_blank" href="https://blogs.kde.org/categories/this-week-in-plasma/"&gt;This Week in Plasma&lt;/a&gt;, which covers all the work being put into KDE's &lt;a target="_blank" href="https://kde.org/plasma-desktop/"&gt;Plasma desktop environment&lt;/a&gt; every Saturday.&lt;/p&gt;
&lt;p&gt;For a complete overview of what's going on, visit &lt;a target="_blank" href="https://planet.kde.org"&gt;KDE's Planet&lt;/a&gt;, where you can find all KDE news unfiltered directly from our contributors.&lt;/p&gt;
&lt;h2 id="get-involved"&gt;Get Involved&lt;/h2&gt;
&lt;p&gt;The KDE organization has become important in the world, and your time and
contributions have helped us get there. As we grow, we're going to need
your support for KDE to become sustainable.&lt;/p&gt;
&lt;p&gt;You can help KDE by becoming an active community member and &lt;a target="_blank" href="https://community.kde.org/Get_Involved"&gt;getting involved&lt;/a&gt;.
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. There are many things
you can do: you can help hunt and confirm bugs, even maybe solve them;
contribute designs for wallpapers, web pages, icons and app interfaces;
translate messages and menu items into your own language; promote KDE in your
local community; and a ton more things.&lt;/p&gt;
&lt;p&gt;You can also help us by &lt;a target="_blank" href="https://kde.org/donate"&gt;donating&lt;/a&gt;. Any monetary
contribution, however small, will help us cover operational costs, salaries,
travel expenses for contributors and, in general, keep KDE continue bringing Free
Software to the world.&lt;/p&gt;
&lt;p&gt;To get your application mentioned here, please ping us in &lt;a target="_blank" href="https://invent.kde.org/websites/blogs-kde-org/-/merge_requests?label_name[]=This%20Week%20In%20KDE%20Apps"&gt;invent&lt;/a&gt; or in &lt;a target="_blank" href="https://go.kde.org/matrix/#/%23this-week-kde-apps:kde.org"&gt;Matrix&lt;/a&gt;.&lt;/p&gt;</description><author>This Week in KDE Apps</author></item><item><title>digiKam 9.0.0 is released</title><link>https://www.digikam.org/news/2026-03-08-9.0.0_release_announcement/</link><pubDate>Sun, 08 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://www.digikam.org/news/2026-03-08-9.0.0_release_announcement/</guid><description>&lt;p&gt;&lt;img src="https://via.placeholder.com/1200x600" alt="digiKam 9.0.0 Running Under Linux"&gt;&lt;/p&gt;
&lt;p&gt;Dear digiKam fans and users,&lt;/p&gt;
&lt;p&gt;After months of intensive development, bug triage, and feature integration, the digiKam team is thrilled to announce the stable release of &lt;strong&gt;digiKam 9.0.0&lt;/strong&gt;. This major version introduces groundbreaking improvements in performance, usability, and workflow efficiency, with a strong focus on modernizing the user interface, enhancing metadata management, and expanding support for new camera models and file formats.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#new-features-and-major-changes"&gt;New Features and Major Changes&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#general-updates-and-porting"&gt;General Updates and Porting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#bundles-component-versions"&gt;Bundles Component Versions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#raw-camera-support"&gt;Raw Camera Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#user-interface-and-usability"&gt;User Interface and Usability&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#metadata-and-tag-management"&gt;Metadata and Tag Management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#preview-and-media-support"&gt;Preview and Media Support&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#new-survey-tool"&gt;New Survey Tool&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#editor-and-plugins"&gt;Editor and Plugins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#new-advanced-search--and-sorting-options"&gt;New Advanced Search and Sorting Options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#geolocation-editor"&gt;Geolocation Editor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#performance-and-stability"&gt;Performance and Stability&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#notable-bug-fixes"&gt;Notable Bug Fixes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#internationalization"&gt;Internationalization&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#future-plans"&gt;Future Plans&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#final-words"&gt;Final Words&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h1 id="new-features-and-major-changes"&gt;New Features and Major Changes&lt;/h1&gt;
&lt;h2 id="general-updates-and-porting"&gt;General Updates and Porting&lt;/h2&gt;
&lt;p&gt;digiKam 9.0.0 marks a significant milestone with the core code now fully ported to &lt;strong&gt;Qt 6.10.1&lt;/strong&gt; for the AppImage and macOS bundles, ensuring improved performance, security, and compatibility with modern operating systems. The Windows Qt6 bundle also benefits from the latest &lt;strong&gt;Qt 6.9.1&lt;/strong&gt; and &lt;strong&gt;KDE Frameworks 6.20.0&lt;/strong&gt;.&lt;/p&gt;</description><author>digiKam</author></item><item><title>FOSDEM 2026</title><link>https://jonas.jakstys.lt/fosdem2026/</link><pubDate>Sat, 07 Mar 2026 12:00:00 +0000</pubDate><guid isPermaLink="true">https://jonas.jakstys.lt/fosdem2026/</guid><description>&lt;h1&gt;FOSDEM 2026&lt;/h1&gt;
&lt;p&gt;
This year I had the chance to attend my first ever FOSDEM. My main objective there was the
GCompris workshop in FOSDEM Junior track. It was an experimental one with the initiative
from the organizer since it was only the third year that this track existed.
&lt;/p&gt;
&lt;p&gt;
The workshop had way more adult attendees interested in GCompris for their children than
children themselves. So, naturally, it turned more into a dev room than a workshop.
&lt;/p&gt;
&lt;p&gt;
Me, together with the organizers came to a conclusion that GCompris isn't fit for the
FOSDEM Junior, at least not in the form of: short presentation -&gt; hands free experience.
&lt;/p&gt;
&lt;a target="_blank" href="https://jonas.jakstys.lt/fosdem2026/FOSDEM2026Workshop.jpeg" target="_blank"&gt;
&lt;img src="https://jonas.jakstys.lt/fosdem2026/FOSDEM2026Workshop.jpeg"
alt="Image from the workshop"
style="max-width:50%; cursor: zoom-in;"&gt;
&lt;/a&gt;
&lt;p&gt;
The FOSDEM, for me, was very overwhelming. The amount of people in one place as well as
having to choose from many different topics, navigating an unfamiliar city had me drained
by the end of the first day. Mostly because of that, on the second day I had my workshop
and attended only one talk.
&lt;/p&gt;
&lt;p&gt;
Despite that, it was awesome to meet the people of KDE, experience solo travelling for the
first time and get to know the core of open source.
&lt;/p&gt;</description><author>Jonas Jakštys</author></item><item><title>This Week in Plasma: Polish and Stability</title><link>https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/</link><pubDate>Sat, 07 Mar 2026 00:00:01 +0000</pubDate><guid isPermaLink="true">https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/</guid><description>&lt;!-- ![](thumbnail.png) --&gt;
&lt;!--
&lt;section class="swiper d-flex mb-5" aria-label="Screenshots" role="list"&gt;
&lt;div class="swiper-wrapper d-flex my-3" role="listitem"&gt;
&lt;/div&gt;
&lt;div class="swiper-pagination" style="bottom: 0"&gt;&lt;/div&gt;
&lt;div class="swiper-button-prev"&gt;&lt;/div&gt;
&lt;div class="swiper-button-next"&gt;&lt;/div&gt;
&lt;/section&gt;
--&gt;
&lt;!--
&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
&lt;video controls&gt;&lt;source src="%25!s%28%3cnil%3e%29something.mp4" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;
--&gt;
&lt;p&gt;Welcome to a new issue of &lt;em&gt;This Week in Plasma!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This was another week of focusing on bug-fixing and UI polishing. Not massively flashy stuff, but critical for the long-term stability of the platform. Check out the work:&lt;/p&gt;
&lt;h2 id="notable-ui-improvements"&gt;Notable UI improvements&lt;/h2&gt;
&lt;!-- Can find some with https://invent.kde.org/groups/plasma/-/merge_requests/?sort=merged_at_desc&amp;state=merged&amp;label_name%5B%5D=Enhancement&amp;first_page_size=20 --&gt;
&lt;h3 id="plasma-662"&gt;Plasma 6.6.2&lt;/h3&gt;
&lt;p&gt;The arrows in Discover’s “See More” buttons are now in the right place and point in the right direction for both left-to-right and right-to-left languages. (Nate Graham, &lt;a target="_blank" href="https://invent.kde.org/plasma/discover/-/merge_requests/1275"&gt;discover MR #1275&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-663"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;The &lt;em&gt;Panel Spacer&lt;/em&gt; Widget no longer appears in the widgets sidebar, because it only makes sense to put on panels, and there’s already a dedicated button to do that. (Tobias Fella, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6376"&gt;plasma-workspace MR #6376&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Allowed some labels in the &lt;em&gt;Task Manager&lt;/em&gt; widget’s tooltips to become multi-line instead of eliding. (Nate Graham, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3598"&gt;plasma-desktop MR #3598&lt;/a&gt;)&lt;/p&gt;
&lt;section class="swiper d-flex mb-5" aria-label="Screenshots" role="list"&gt;
&lt;div class="swiper-wrapper d-flex my-3" role="listitem"&gt;
&lt;div class="swiper-slide swiper-slide-active"&gt;
&lt;img src="https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/tooltip-wrap-after.png" alt="After" lazy class="rounded"&gt;
&lt;a class="d-block text-center mt-2" target="_blank" href="https://kde.org"&gt;After&lt;/a&gt;
&lt;/div&gt;
&lt;div class="swiper-slide"&gt;
&lt;img src="https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/tooltip-wrap-before.png" alt="Before" lazy class="rounded"&gt;
&lt;a class="d-block text-center mt-2" target="_blank" href="https://kde.org"&gt;Before&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="swiper-pagination" style="bottom: 0"&gt;&lt;/div&gt;
&lt;div class="swiper-button-prev"&gt;&lt;/div&gt;
&lt;div class="swiper-button-next"&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;h3 id="plasma-67"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Trying to save a color scheme with the name of an existing system color scheme no longer shows an accusatory and unclear error message; now it tells you you’ll need to choose a different name, and then prompts you to do so. (Akseli Lahtinen, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6316"&gt;plasma-workspace MR #6316&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Enabled the “Global Shortcuts” KRunner plugin by default. (Nate Graham, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3590"&gt;plasma-desktop MR #3590&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
&lt;img class="img-fluid" alt="KRunner finding the “Toggle Overview” global shortcut" src="https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/global-shortcuts-plugin.png"
style="max-width: 100%; height: auto"
/&gt;
&lt;/figure&gt;
&lt;h2 id="notable-bug-fixes"&gt;Notable bug fixes&lt;/h2&gt;
&lt;!--Can find some with https://tinyurl.com/bdepnh4v --&gt;
&lt;h3 id="plasma-662-1"&gt;Plasma 6.6.2&lt;/h3&gt;
&lt;p&gt;Fixed a bug that made KWin crash if you used the &lt;code&gt;kscreen-doctor&lt;/code&gt; tool to create a custom modeline while already using a different custom modeline. (Vlad Zahorodnii, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516452"&gt;KDE Bugzilla #516452&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Spectacle no longer crashes when you try to share a rectangular region screenshot using KDE Connect. (Noah Davis, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516717"&gt;KDE Bugzilla #516717&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed various issues with Plasma’s remote desktop server when accessed from a client running Microsoft Windows. (Nicolas Blackburn, &lt;a target="_blank" href="https://invent.kde.org/plasma/krdp/-/merge_requests/148"&gt;krdp MR #148&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/plasma/krdp/-/merge_requests/149"&gt;krdp MR #149&lt;/a&gt;, &lt;a target="_blank" href="https://invent.kde.org/plasma/krdp/-/merge_requests/150"&gt;krdp MR #150&lt;/a&gt;, and &lt;a target="_blank" href="https://invent.kde.org/plasma/krdp/-/merge_requests/152"&gt;krdp MR #151&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a regression that made bridged Ethernet networks show an inappropriate icon in the Networks widget. VLANs &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516709"&gt;still show the wrong icon&lt;/a&gt; though; hopefully that’ll be fixed next week. Networking is complicated! (Nate Graham, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516712"&gt;KDE Bugzilla #516712&lt;/a&gt;)&lt;/p&gt;
&lt;section class="swiper d-flex mb-5" aria-label="Screenshots" role="list"&gt;
&lt;div class="swiper-wrapper d-flex my-3" role="listitem"&gt;
&lt;div class="swiper-slide swiper-slide-active"&gt;
&lt;img src="https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/networks-icon-correct.webp" alt="Plasma 6.6.2: correct" lazy class="rounded"&gt;
&lt;a class="d-block text-center mt-2" target="_blank" href="https://kde.org"&gt;Plasma 6.6.2: correct&lt;/a&gt;
&lt;/div&gt;
&lt;div class="swiper-slide"&gt;
&lt;img src="https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/networks-icon-before-and-noticeable.webp" alt="Plasma 6.6.0: incorrect and noticeable" lazy class="rounded"&gt;
&lt;a class="d-block text-center mt-2" target="_blank" href="https://kde.org"&gt;Plasma 6.6.0: incorrect and noticeable&lt;/a&gt;
&lt;/div&gt;
&lt;div class="swiper-slide"&gt;
&lt;img src="https://blogs.kde.org/2026/03/07/this-week-in-plasma-polish-and-stability/networks-icon-before-but-not-noticeable.webp" alt="Plasma 6.5 and earlier: also incorrect, but less noticeable" lazy class="rounded"&gt;
&lt;a class="d-block text-center mt-2" target="_blank" href="https://kde.org"&gt;Plasma 6.5 and earlier: also incorrect, but less noticeable&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="swiper-pagination" style="bottom: 0"&gt;&lt;/div&gt;
&lt;div class="swiper-button-prev"&gt;&lt;/div&gt;
&lt;div class="swiper-button-next"&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;p&gt;Fixed a bug that made day names in the &lt;em&gt;Digital Clock&lt;/em&gt; widget’s tooltip not be capitalized with certain languages. (Alessio Bonfiglio, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6289"&gt;plasma-workspace MR#6289&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-663-1"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;Fixed a case where KWin could crash when using the &lt;code&gt;kscreen-doctor&lt;/code&gt; tool to change the resolution of a virtual screen in certain ways. (Xaver Hugl, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=517198"&gt;KDE Bugzilla #517198&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a bug that could make Plasma crash on login with certain multi-monitor setups. (Dobry Nikolov, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516937"&gt;KDE Bugzilla #516937&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a regression that prevented certain monitors from automatically dimming at the right times. (Xaver Hugl, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516867"&gt;KDE Bugzilla #516867&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a regression that made Spectacle sometimes crash when quitting, instead of quitting cleanly. (Noah Davis, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=517064"&gt;KDE Bugzilla #517064&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a regression that could cause long-presses on desktop widgets to unexpectedly trigger interactive controls on them. (Marco Martin, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=517040"&gt;KDE Bugzilla #517040&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed two visual glitches affecting on/off switches in Plasma when using non-default Plasma styles. (Filip Fila, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=504116"&gt;KDE Bugzilla #504116&lt;/a&gt; and &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516542"&gt;KDE Bugzilla #516542&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Fixed a somewhat common way that Plasma would quit (not crash, actually quit) with a Wayland protocol error when certain monitors woke from sleep. (Vlad Zahorodnii, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=507691"&gt;KDE Bugzilla #507691&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a bug that made Plasma’s file transfer progress notifications claim that the total number of files was 0 in cases where the actual number was very very large. (Kai Uwe Broulik, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6369"&gt;plasma-workspace #6369&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a funny bug that made auto-hidden Plasma panels unexpectedly un-hide when the password dialog appeared while the “Dim Screen for Administrator Mode” effect was in use, which it is by default. (Vlad Zahorodnii, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516864"&gt;KDE Bugzilla #516864&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-6231"&gt;Frameworks 6.23.1&lt;/h3&gt;
&lt;p&gt;Worked around a Qt bug that was causing Plasma to repeatedly crash on login for some people. (David Redondo, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=514098"&gt;KDE Bugzilla #514098&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a bug that caused KDE’s desktop portal implementation to crash when copying certain content in a remote desktop session. (David Edmundson, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=515465"&gt;KDE Bugzilla #515465&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed various inter-related issues with the app database that could make favorite apps disappear from launcher menus and the &lt;em&gt;Task Manager&lt;/em&gt; widget under certain circumstances, including when using certain JetBrains apps in auto-start mode. (Harald Sitter, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=516426"&gt;KDE Bugzilla #516426&lt;/a&gt; and &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=507838"&gt;KDE Bugzilla #507838&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="pulseaudioqt-180"&gt;PulseAudioQt 1.8.0&lt;/h3&gt;
&lt;p&gt;Fixed a bug that could make Plasma crash when you tried to access certain audio devices’ profiles menus. (Harald Sitter, &lt;a target="_blank" href="https://bugs.kde.org/show_bug.cgi?id=496067"&gt;KDE Bugzilla #496067&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="notable-in-performance--technical"&gt;Notable in performance &amp;amp; technical&lt;/h2&gt;
&lt;h3 id="plasma-662-2"&gt;Plasma 6.6.2&lt;/h3&gt;
&lt;p&gt;Made the Global Menu widget more robust in the face of apps that lie about having any menus. (Christoph Wolk, &lt;a target="_blank" href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6345"&gt;plasma-workspace MR#6345&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-663-2"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;Made KWin’s screencasting feature more robust when using PipeWire 1.6.0 or newer, which imposes stricter requirements compared to earlier versions. (Conn O’Griofa, &lt;a target="_blank" href="https://invent.kde.org/plasma/kwin/-/merge_requests/8939"&gt;kwin MR #8939&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Let the &lt;code&gt;kscreen-doctor&lt;/code&gt; tool modify the value of screens’ &lt;code&gt;AutoRotatePolicy&lt;/code&gt; key. (Xaver Hugl, &lt;a target="_blank" href="https://invent.kde.org/plasma/libkscreen/-/merge_requests/291"&gt;libkscreen MR #291&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made the &lt;code&gt;kscreen-doctor&lt;/code&gt; tool capable of targeting the active screen, so you don’t need to look up its technical ID. Also made it possible to toggle HDR and wide color gamut support simultaneously. (Yossef Rostaqi, &lt;a target="_blank" href="https://invent.kde.org/plasma/libkscreen/-/merge_requests/294"&gt;libkscreen MR #294&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="how-you-can-help"&gt;How you can help&lt;/h2&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Would you like to help put together this weekly report? Introduce yourself in &lt;a target="_blank" href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a target="_blank" href="https://community.kde.org/Promotion/This_week_in_KDE"&gt;join the team&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Beyond that, you can help KDE by directly &lt;a target="_blank" href="https://community.kde.org/Get_Involved"&gt;getting involved&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;You can also help out by &lt;a target="_blank" href="https://kde.org/donate"&gt;making a donation&lt;/a&gt;! This helps cover operational costs, salaries, travel expenses for contributors, and in general just keeps KDE bringing Free Software to the world.&lt;/p&gt;
&lt;h2 id="to-get-a-new-plasma-feature-or-a-bug-fix-mentioned-here"&gt;To get a new Plasma feature or a bug fix mentioned here&lt;/h2&gt;
&lt;p&gt;Push a commit to &lt;a target="_blank" href="https://invent.kde.org/websites/blogs-kde-org/-/merge_requests/?label_name%5B%5D=This%20Week%20in%20Plasma"&gt;the relevant merge request on invent.kde.org&lt;/a&gt;.&lt;/p&gt;</description><author>Nate Graham</author></item><item><title>KDE Gear 26.04 branches created</title><link>https://tsdgeos.blogspot.com/2026/03/kde-gear-2604-branches-created.html</link><pubDate>Fri, 06 Mar 2026 21:45:00 +0000</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-7523589.post-6898363392747626584</guid><description>&lt;p&gt;Make sure you commit anything you want to end up in the KDE Gear 26.04 releases to them&lt;br /&gt;&lt;br /&gt;Next Dates:&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/p&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&amp;nbsp; March 12 2026: 26.04 Freeze and Beta (26.03.80) tarball creation&lt;/li&gt;&lt;li&gt;&amp;nbsp; March 13 2026: 26.04 Beta (26.03.80) release&lt;/li&gt;&lt;li&gt;&amp;nbsp; March 26 2026: 26.04 RC (26.03.90) tarball creation&lt;/li&gt;&lt;li&gt;&amp;nbsp; March 27 2026: 26.04 RC (26.03.90) Release&lt;/li&gt;&lt;li&gt;&amp;nbsp; April&amp;nbsp; 9 2026: 26.04 tarball creation&lt;/li&gt;&lt;li&gt;&amp;nbsp; April 10 2026: 26.04 packages released to packagers&lt;/li&gt;&lt;li&gt;&amp;nbsp; April 16 2026: 26.04 Release&lt;/li&gt;&lt;/ul&gt;&lt;p style="text-align: left;"&gt;&lt;br /&gt;&lt;a target="_blank" href="https://community.kde.org/Schedules/KDE_Gear_26.04_Schedule"&gt;https://community.kde.org/Schedules/KDE_Gear_26.04_Schedule&lt;/a&gt;&amp;nbsp;&lt;/p&gt;</description><author>Albert Astals Cid</author></item><item><title>Web Review, Week 2026-10</title><link>https://ervin.ipsquad.net/blog/2026/03/06/web-review-week-2026-10/</link><pubDate>Fri, 06 Mar 2026 11:10:38 +0000</pubDate><guid isPermaLink="true">https://ervin.ipsquad.net/blog/2026/03/06/web-review-week-2026-10/</guid><description>&lt;p&gt;Let&amp;rsquo;s go for my web review for the week 2026-10.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="a-new-california-law-says-operating-systems-need-to-have-age-verification"&gt;A new California law says operating systems need to have age verification&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, law, surveillance&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The stupid idea of age verification keeps spreading with ridiculous laws&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.pcgamer.com/software/operating-systems/a-new-california-law-says-all-operating-systems-including-linux-need-to-have-some-form-of-age-verification-at-account-setup/"&gt;https://www.pcgamer.com/software/operating-systems/a-new-california-law-says-all-operating-systems-including-linux-need-to-have-some-form-of-age-verification-at-account-setup/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="system76-on-age-verification-laws"&gt;System76 on Age Verification Laws&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, surveillance, law&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Those dangerous and stupid laws keep popping out unfortunately. This is clearly a slippery slope as shown from the New York bill&amp;hellip; We need to push back or the demands will keep growing. Let&amp;rsquo;s hope Free Software communities won&amp;rsquo;t try to preemptively comply, this would be short sighted and self-sabotage.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://blog.system76.com/post/system76-on-age-verification"&gt;https://blog.system76.com/post/system76-on-age-verification&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="ex-meta-lobbyist-put-in-charge-of-eus-digital-rules"&gt;Ex-Meta lobbyist put in charge of EU&amp;rsquo;s digital rules&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, europe, law, politics, gafam&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;What could possibly go wrong? This is really a weird appointment.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.brusselstimes.com/1992574/ex-meta-lobbyist-put-in-charge-of-eus-digital-rules-tech-oligarchy-writing-its-own-rulebook"&gt;https://www.brusselstimes.com/1992574/ex-meta-lobbyist-put-in-charge-of-eus-digital-rules-tech-oligarchy-writing-its-own-rulebook&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="breaking-free"&gt;Breaking Free&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, quality, law&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Is Norway about to become one of the first countries to become serious about enshittification? Will more follow? This would be welcome.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.forbrukerradet.no/breakingfree/"&gt;https://www.forbrukerradet.no/breakingfree/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="ai-translations-are-adding-hallucinations-to-wikipedia-articles"&gt;AI Translations Are Adding ‘Hallucinations’ to Wikipedia Articles&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, wikipedia, ai, machine-learning, gpt, quality&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This is concerning, hopefully the amount of issues which get through will be limited.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.404media.co/ai-translations-are-adding-hallucinations-to-wikipedia-articles/"&gt;https://www.404media.co/ai-translations-are-adding-hallucinations-to-wikipedia-articles/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="text-is-king"&gt;Text is king&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, reading, culture, history, social-media&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yes there&amp;rsquo;s a dip, but this piece presents compelling evidence that it&amp;rsquo;s not the death of literacy we&amp;rsquo;re sometimes screaming at. It is also a love letter to reading and writing.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.experimental-history.com/p/text-is-king?ref=DenseDiscovery-378"&gt;https://www.experimental-history.com/p/text-is-king?ref=DenseDiscovery-378&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="prek--better-pre-commit-re-engineered-in-rust"&gt;prek: ⚡ Better &lt;code&gt;pre-commit&lt;/code&gt;, re-engineered in Rust&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, version-control, git, tools, quality&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This looks tempting. I guess I&amp;rsquo;ll try this one instead of pre-commit when I get the chance.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://github.com/j178/prek"&gt;https://github.com/j178/prek&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="qman-a-more-modern-man-page-viewer-for-our-terminals"&gt;qman: A more modern man page viewer for our terminals&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, documentation, unix, tools, command-line&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Didn&amp;rsquo;t know about this one. Looks like a nice alternative to the venerable man command.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://github.com/plp13/qman"&gt;https://github.com/plp13/qman&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="message-passing-is-shared-mutable-state"&gt;Message Passing Is Shared Mutable State&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, multithreading, reliability&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Interesting piece which challenges the shared-memory vs. message-passing dichotomy. It message passing indeed gets rid of data races but nothing more. Of course this is nice already, but that doesn&amp;rsquo;t mean you can&amp;rsquo;t have the other families of concurrency bugs creeping in.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://causality.blog/essays/message-passing-is-shared-mutable-state/"&gt;https://causality.blog/essays/message-passing-is-shared-mutable-state/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="fast-servers"&gt;fast-servers&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, server, services, performance&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;We got options beyond &lt;code&gt;poll()&lt;/code&gt; nowadays.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://geocar.sdf1.org/fast-servers.html"&gt;https://geocar.sdf1.org/fast-servers.html&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="rust-zero-cost-abstractions-vs-simd"&gt;Rust zero-cost abstractions vs. SIMD&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, rust, optimisation, simd&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yes, Rust like C++ comes with zero cost abstractions. Still they can get in the way of some compiler optimisations. This is an interesting case preventing vectorisation.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://turbopuffer.com/blog/zero-cost"&gt;https://turbopuffer.com/blog/zero-cost&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="hardware-hotplug-events-on-linux-the-gory-details"&gt;Hardware hotplug events on Linux, the gory details&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, kernel, systemd, hardware&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Wondering how udev communicates with the kernel? And then broadcast events? This covers the basics.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://arcanenibble.github.io/hardware-hotplug-events-on-linux-the-gory-details.html"&gt;https://arcanenibble.github.io/hardware-hotplug-events-on-linux-the-gory-details.html&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="log-messages-are-mostly-for-the-people-operating-your-software"&gt;Log messages are mostly for the people operating your software&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, logging&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;A reminder that logs are not for the developers first but for operation.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://utcc.utoronto.ca/~cks/space/blog/programming/LogMessagesAreForOperation"&gt;https://utcc.utoronto.ca/~cks/space/blog/programming/LogMessagesAreForOperation&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="nobody-gets-promoted-for-simplicity"&gt;Nobody Gets Promoted for Simplicity&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, engineering, complexity, management&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Rampant complexity in software is also a management issue. Are we sure we&amp;rsquo;re rewarding the right things?&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/"&gt;https://terriblesoftware.org/2026/03/03/nobody-gets-promoted-for-simplicity/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="go-beyond-the-test-pyramid-test-desiderata-20"&gt;Go Beyond the Test Pyramid: Test Desiderata 2.0&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, tests, tdd&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s been a while that I started to consider the test pyramid as fairly limiting for our thinking about tests. The dimensions proposed here give a more comprehensive model to reason about.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://coding-is-like-cooking.info/2026/02/go-beyond-the-test-pyramid-test-desiderata-2-0/"&gt;https://coding-is-like-cooking.info/2026/02/go-beyond-the-test-pyramid-test-desiderata-2-0/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="use-the-mikado-method-to-do-safe-changes-in-a-complex-codebase"&gt;Use the Mikado Method to do safe changes in a complex codebase&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, refactoring, legacy&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You probably want to complete this with a higher level plan if the goal is a larger modernization. That being said, it&amp;rsquo;s a good approach for mid-level to small goals you&amp;rsquo;d want to tackle.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/"&gt;https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="the-eternal-promise-a-history-of-attempts-to-eliminate-programmers"&gt;The Eternal Promise: A History of Attempts to Eliminate Programmers&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, programming, history, ai, machine-learning, copilot&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;This fantasy regularly comes back. Yet, the tools evolve, might improve some things but the core difficulties of programming don&amp;rsquo;t change. At each hype cycle our industry over promises and under delivers, this is unnecessary.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://www.ivanturkovic.com/2026/01/22/history-software-simplification-cobol-ai-hype/"&gt;https://www.ivanturkovic.com/2026/01/22/history-software-simplification-cobol-ai-hype/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="yes-and"&gt;Yes, and&amp;hellip;&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: tech, programming, engineering, ai, machine-learning, gpt&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Very good essay on why the developer profession is not going away. On the contrary we need to double down on essential skills and put in the work. This is long overdue anyway.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://htmx.org/essays/yes-and/"&gt;https://htmx.org/essays/yes-and/&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;h4 id="im-a-philosopher-who-tries-to-see-the-best-in-others--but-i-know-there-are-limits"&gt;I’m a philosopher who tries to see the best in others – but I know there are limits&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;Tags: philosophy, trust&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Interesting point, looking for agency seems like a good criteria. It highlights it&amp;rsquo;s not a simple test though. I&amp;rsquo;d add that trust matters and that&amp;rsquo;s built over time.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="https://theconversation.com/im-a-philosopher-who-tries-to-see-the-best-in-others-but-i-know-there-are-limits-273446"&gt;https://theconversation.com/im-a-philosopher-who-tries-to-see-the-best-in-others-but-i-know-there-are-limits-273446&lt;/a&gt;&lt;/p&gt;
&lt;br/&gt;
&lt;hr&gt;
&lt;p&gt;Bye for now!&lt;/p&gt;</description><author>Kevin Ottens</author></item><item><title>What's new in QML Tooling in 6.11, part 1: QML Language Server (qmlls)</title><link>https://www.qt.io/blog/whats-new-in-qml-language-server-in-6.11</link><pubDate>Thu, 05 Mar 2026 08:57:17 +0000</pubDate><guid isPermaLink="true">https://www.qt.io/blog/whats-new-in-qml-language-server-in-6.11</guid><description>&lt;p&gt;The latest Qt release, Qt 6.11, is just around the corner. This short blog post series presents the new features that QML tooling brings in Qt 6.11, starting with qmlls in this part 1. Parts 2 (available &lt;a target="_blank" href="https://www.qt.io/blog/whats-new-in-qml-tooling-for-qt-6.11-part-2?hsLang=en"&gt;here&lt;/a&gt;) and 3 will present newly added qmllint warnings since the &lt;a target="_blank" href="https://www.qt.io/blog/whats-new-in-qml-language-server-qmlls-shipped-with-qt-6.6?hsLang=en"&gt;last blog post on QML tooling&lt;/a&gt; and context property configuration support for QML Tooling.&lt;/p&gt;
&lt;img src="https://track-eu1.hubspot.com/__ptq.gif?a=149513&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fwww.qt.io%2Fblog%2Fwhats-new-in-qml-language-server-in-6.11&amp;amp;bu=https%253A%252F%252Fwww.qt.io%252Fblog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</description><author>Qt Dev Loop</author></item><item><title>KDE Gear 25.12.3</title><link>https://kde.org/announcements/gear/25.12.3/</link><pubDate>Thu, 05 Mar 2026 00:00:00 +0000</pubDate><guid isPermaLink="true">https://kde.org/announcements/gear/25.12.3/</guid><description>&lt;p&gt;Over 180 individual programs plus dozens of programmer libraries and feature plugins are released simultaneously as part of KDE Gear.&lt;/p&gt;
&lt;p&gt;Today they all get new bugfix source releases with updated translations, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;kdeconnect: Fix clicking on plugin's row doesn't change plugin's status (&lt;a target="_blank" href="https://commits.kde.org/kdeconnect-kde/91317d1f4b72c99fcfed55644aa16227eafd7ca1"&gt;Commit&lt;/a&gt;, fixes bug &lt;a target="_blank" href="https://bugs.kde.org/514923"&gt;#514923&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;neochat: Don't scroll the timeline when reacting to messages (&lt;a target="_blank" href="https://commits.kde.org/neochat/b18c12f149b7abf8d854c72a545a65b5b82cc2f7"&gt;Commit&lt;/a&gt;, fixes bug &lt;a target="_blank" href="https://bugs.kde.org/515306"&gt;#515306&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;umbrello: Fix crash when deleting a complete scene (&lt;a target="_blank" href="https://commits.kde.org/umbrello/c8c1ad7a636945d8b7722154a539c2a1330bc0d0"&gt;Commit&lt;/a&gt;, fixes bug &lt;a target="_blank" href="https://bugs.kde.org/516457"&gt;#516457&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Distro and app store packagers should update their application packages.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a target="_blank" href="https://community.kde.org/KDE_Gear/25.12_Release_notes"&gt;25.12 release notes&lt;/a&gt; for information on tarballs and known issues.&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="https://community.kde.org/Get_KDE_Software_on_Your_Linux_Distro"&gt;Package download wiki page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="https://kde.org/info/releases-25.12.3/"&gt;25.12.3 source info page&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a target="_blank" href="https://kde.org/announcements/changelogs/gear/25.12.3/"&gt;25.12.3 full changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><author>KDE Community</author></item></channel></rss>