<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>KDE Blogs</title><link>https://blogs.kde.org/</link><description>Recent content on KDE Blogs</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 08 May 2026 14:45:22 -0600</lastBuildDate><atom:link href="https://blogs.kde.org/index.xml" rel="self" type="application/rss+xml"/><item><title>This Week in Plasma: ICC profiles ❤️ HDR</title><link>https://blogs.kde.org/2026/05/09/this-week-in-plasma-icc-profiles-%EF%B8%8F-hdr/</link><pubDate>Sat, 09 May 2026 00:00:01 +0000</pubDate><author>Nate Graham, and John Veness</author><guid>https://blogs.kde.org/2026/05/09/this-week-in-plasma-icc-profiles-%EF%B8%8F-hdr/</guid><description>&lt;!-- Example wording for a change, MR version. (Developer Name, [repo-name MR #xxx](https://invent.kde.org/plasma/repo-name/-/merge_requests/xxx)) --&gt;
&lt;!-- Example wording for a change, Bugzilla version. (Developer Name, [KDE Bugzilla #xxx](https://bugs.kde.org/show_bug.cgi?id=xxx)) --&gt;
&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;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 saw a lot of lower-level technical improvements made throughout Plasma’s software stack. Not super flashy, but super important.&lt;/p&gt;
&lt;p&gt;Nevertheless, two color-related features did manage to sneak in! And as Plasma 6.7’s feature period comes to a close, expect more polishing and bug-fixing for the next month or so.&lt;/p&gt;
&lt;p&gt;Without further ado:&lt;/p&gt;
&lt;h2 id="notable-new-features"&gt;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 use an ICC profile while HDR mode is active! (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=514239"&gt;KDE Bugzilla #514239&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now disable or control the intensity of the “adaptive backlight modulation” feature of many AMD laptops, which changes screen colors at low brightness levels to try to improve visibility. If you don’t like it, you can now turn it off! (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=511801"&gt;KDE Bugzilla #511801&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-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Improved Discover’s ability to de-duplicate apps present in both system and user Flatpak installations. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1316"&gt;Discover MR #1316&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The temperature values on Info Center’s Sensors page now reflect the units you have configured system-wide, rather than always using Celcius. (Chandradeep Dey, &lt;a href="https://invent.kde.org/plasma/kinfocenter/-/merge_requests/294"&gt;kinfocenter MR #294&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now remove apps from the Kickoff Application Launcher’s Favorites view by dragging them out of the view and over any part of the rest of the widget. (Christoph Wolk, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3662"&gt;plasma-desktop MR #3662&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/05/09/this-week-in-plasma-icc-profiles-%EF%B8%8F-hdr/drag-to-remove-favorites.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;The Printers widget now shows badges indicating the number of active and queued print jobs on each printer. Useful for large institutional environments with a lot of printers! (Mike Noe, &lt;a href="https://invent.kde.org/plasma/print-manager/-/merge_requests/324"&gt;print-manager MR #324&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Printers widget showing “2” badge on a printer, indicating two queued or active jobs" src="https://blogs.kde.org/2026/05/09/this-week-in-plasma-icc-profiles-%EF%B8%8F-hdr/more-printer-badges.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:
- HI and VHI bugs fixed: https://tinyurl.com/bdepnh4v
- All bugs fixed: https://invent.kde.org/groups/plasma/-/merge_requests/?sort=merged_at_desc&amp;state=merged&amp;label_name%5B%5D=Bugfix&amp;first_page_size=20
--&gt;
&lt;h3 id="plasma-665"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Fixed an issue that made the power buttons vanish from launcher menus for some people with version 260 of systemd, which changed around some things we were relying on. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518174"&gt;KDE Bugzilla #518174&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue that caused periodic freezes and stutters on some systems with multiple discrete GPUs. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519461"&gt;KDE Bugzilla #519461&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue that could make Discover crash on some distros while changing the priorities of Flatpak repos. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1318"&gt;discover MR #1318&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The portal-based dialog to add launchers now actually works. (Nate Graham, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519631"&gt;KDE Bugzilla #519631&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Using window rules to move a window partially off-screen using a negative position property no longer makes the window disappear and become unreachable. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=466119"&gt;KDE Bugzilla #466119&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed one source of a tricky issue that could make secondary screens inappropriately remain dimmed after waking from sleep. (Patryk Ludwikowski, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=513809"&gt;KDE Bugzilla #513809&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a recent visual regression in the hover highlighting effects applied to the Printers widget. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518705"&gt;KDE Bugzilla #518705&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Fixed an issue that could sometimes cause custom non-default global shortcuts to be reset during software updates on specific distros that uninstall and re-install apps as part of their upgrade processes. (Vlad Zahorodnii, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=484597"&gt;KDE Bugzilla #484597&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-67-3"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Improved performance and power efficiency for software that uses CPU rendering, such as most QtWidgets-based Qt and KDE apps. Read more about this on &lt;a href="https://zamundaaa.github.io/wayland/2026/05/06/making-wl-shm-fast.html"&gt;Xaver’s blog&lt;/a&gt;! (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9178"&gt;kwin MR #9178&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved KWin’s heuristics for when it can use the “direct scan-out” feature to improve performance and save power for full-screen windows. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=515784"&gt;KDE Bugzilla #515784&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>Gestures in Graz, and beyond</title><link>https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/</link><pubDate>Sun, 03 May 2026 09:55:00 +0000</pubDate><author>Jakob Petsovits</author><guid>https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/</guid><description>&lt;p&gt;KDE's Mega Sprint 2026 in Graz brought a group of about 20 KDE contributors together in early April, to discuss technical challenges, make decisions, and get stuff done. With travel support from KDE e.V. (thanks to &lt;a href="https://kde.org/donate/"&gt;your donations&lt;/a&gt;), I was able to join the group there.&lt;/p&gt;
&lt;p&gt;Other blogs have reported on their experiences of what happened in Graz: &lt;a href="https://mxdarkwater.com/2026/04/10/kde-in-graz/"&gt;Kieryn Darkwater&lt;/a&gt;, &lt;a href="https://tsdgeos.blogspot.com/2026/04/a-week-in-graz-kde-megasprint-and.html"&gt;Albert Astals Cid&lt;/a&gt;, &lt;a href="https://merritt.codes/blog/2026/04/15/2026/_kde_mega_sprint"&gt;Kristen McWilliam&lt;/a&gt;, &lt;a href="https://www.volkerkrause.eu/2026/04/18/kde-sprint-linuxtage-graz-2026.html"&gt;Volker Krause&lt;/a&gt;, and &lt;a href="https://nmariusp.blogspot.com/2026/04/kde-mega-sprint-2026-graz.html"&gt;Raresh Rus&lt;/a&gt;. A &lt;a href="https://community.kde.org/Sprints/MegaSprint/2026"&gt;large variety of topics&lt;/a&gt; were on the agenda, people were wearing multiple hats to help each other out.&lt;/p&gt;
&lt;p&gt;I, on the other hand, went to Graz with one sole purpose: figure out the best way to merge gesture customization.&lt;/p&gt;
&lt;h2 id="dude-whats-taking-you-so-long"&gt;Dude, what's taking you so long&lt;/h2&gt;
&lt;p&gt;Quick recap. Since &lt;a href="https://blogs.kde.org/2025/05/14/input-handling-in-spring-2025/#funding-for-input-handling-improvements"&gt;NLnet approved a grant&lt;/a&gt; last year, we've &lt;a href="https://community.kde.org/Goals/Input/Triggers_and_Actions"&gt;published requirements&lt;/a&gt;, &lt;a href="https://invent.kde.org/teams/vdg/issues/-/issues/99"&gt;designed settings UIs&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kwin/-/issues/298"&gt;proposed config file formats&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/7620"&gt;ported my earlier mouse gesture prototype to KWin&lt;/a&gt;, and &lt;a href="https://blogs.kde.org/2025/12/08/i-didnt-think-id-be-at-akademy-2025/"&gt;presented at Akademy 2025&lt;/a&gt;. Then I got injured for a while, hit a slump through the fall and winter, and didn't make much progress until more recently.&lt;/p&gt;
&lt;p&gt;Meanwhile, as an actual Plasma user, you have benefited from exactly none of this prep work. For example, a representative sentiment from the comment section of Brodie Robertson's recent &lt;a href="https://www.youtube.com/watch?v=npKb9UAxDxQ"&gt;Plasma 6.7 upcoming features video&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Yet again it looks like configurable touchpad gestures have slipped....&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To be fair, we haven't actually promised any particular Plasma release for this to land in. But I get it. It's been weighing on me probably harder than it's been weighing on you. So I finally emerged from the slump with a set of experimental patches that allowed real-time (&amp;quot;one to one&amp;quot;) gestures like Overview to be reassigned to a different gesture via config file options.&lt;/p&gt;
&lt;h2 id="quick-architectural-primer"&gt;Quick architectural primer&lt;/h2&gt;
&lt;p&gt;There are several KDE components that work together to handle keyboard shortcuts:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;KGlobalAccel&lt;/strong&gt;: This KDE Framework is used by an app or desktop component to register actions and their preferred global shortcuts. KGlobalAccel doesn't actually do much by itself, it just sends requests to a background service (via D-Bus) and tells the app what shortcut actually got assigned for each action. Then it just waits for a signal from the background service that the shortcut was pressed and the action should be performed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;KGlobalAccelD&lt;/strong&gt;: This is the background service! Part of any Plasma desktop. It listens for global shortcut requests from apps, looks for additional shortcuts in &lt;code&gt;*.desktop&lt;/code&gt; files, and reads from and writes to &lt;code&gt;~/.config/kglobalshortcutsrc&lt;/code&gt; to manage shortcut assignments. It can check if a given key combination will trigger a registered action. If it does, it tells the corresponding app to perform the action. On Wayland, KGlobalAccelD is embedded into KWin, giving KWin access to functionality that isn't available over D-Bus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;KWin&lt;/strong&gt;: Plasma's compositor which we all know and love. It manages windows and puts their contents on screen, but it also has exclusive access to libinput on Wayland. So any key presses, mouse clicks, touch taps, and pointer movement will go through KWin. Most of these just get relayed to the current app. But some of them are intercepted. For global shortcuts, KWin asks its KGlobalAccelD service to check if it should eat up the shortcut and fire a global shortcut instead of sending it to the currently focused app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;System Settings / &amp;quot;Shortcuts&amp;quot; page&lt;/strong&gt;: An independent app that asks the KGlobalAccelD service for all components with registered shortcut actions. If the user changes a shortcut assignment, it tells the KGlobalAccelD service about it. As a result, KGlobalAccelD notifies the app that its shortcut has changed.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;XDG Desktop Portal KDE&lt;/strong&gt;: Only tangentially involved. It implements the &lt;a href="https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.GlobalShortcuts.html#org-freedesktop-portal-globalshortcuts-bindshortcuts"&gt;Global Shortcuts portal&lt;/a&gt;, so that any app can register global shortcuts, even if they aren't using KDE Frameworks. All it does is to translate an app's portal requests to requests for KGlobalAccelD.&lt;/p&gt;
&lt;p&gt;The consensus is that gestures are much like keyboard shortcuts, so gesture configuration should be implemented in similar ways, using the same components. There are important differences of course. How to deal with those isn't quite trivial. That's where sprint discussions come in.&lt;/p&gt;
&lt;h2 id="back-to-graz"&gt;Back to Graz&lt;/h2&gt;
&lt;p&gt;Having a functional prototype is a good start, but it's still a couple of steps removed from getting it merged into Plasma. I arrived with a number of technical questions to hash out the exact plan and get agreement. All the minutious details can be found &lt;a href="https://community.kde.org/Sprints/MegaSprint/2026/Notes#Gestures"&gt;in the sprint notes wiki page&lt;/a&gt;, but the short version is that the implementation plans became very clear. There were three breakthroughs in particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We don't need to expose gesture details through KGlobalAccel: System Settings can link against KGlobalAccelD directly, so we can put the new trigger class in there without worrying about backwards compatiblility for apps.&lt;/li&gt;
&lt;li&gt;Natalie, Nate, Kristen and I sat down for a long UX design session, improving on our previous UX proposal together.&lt;/li&gt;
&lt;li&gt;Nicolas Fella provided wise advice on config syntax, leading to a better trade-off between readability, clean code, and migration concerns.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Xaver Hugl deserves a special mention, he was generous with all the other technical questions that I kept pestering him about.&lt;/p&gt;
&lt;p&gt;Of course I also got involved in a few other discussions, as well as daily dinner outings. It's a good group. But you've read about this on other blogs already, so I won't bore you except with a few more pictures.&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/05/03/gestures-in-graz-and-beyond/2026-04-10-project-room.jpg" alt="Proof I was there" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Proof I was there&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/2026-04-07-konqi.jpg" alt="I bought an amigurumi Konqi" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;I bought an amigurumi Konqi&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/2026-04-07-styrian-food.jpg" alt="One of many food outings" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;One of many food outings&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/2026-04-10-buschenschank-mountain.jpg" alt="Walking to a rustic restaurant on a hill" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Walking to a rustic restaurant on a hill&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/2026-04-10-buschenschank-sattler.jpg" alt="Snackies" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Snackies&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/03/gestures-in-graz-and-beyond/2026-04-11-konqi.jpg" alt="Konqi at Linuxtage Graz" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Konqi at Linuxtage Graz&lt;/span&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;I spent the remainder of April improving my previous patches. The result is a series of MRs that are finally ready for code review by KWin and KF6 maintainers (&lt;a href="https://invent.kde.org/frameworks/kglobalaccel/-/merge_requests/137"&gt;1&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kglobalacceld/-/merge_requests/95"&gt;2&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9100"&gt;3&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kglobalacceld/-/merge_requests/96"&gt;4&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9062"&gt;5&lt;/a&gt;). This will allow assigning touchpad and touchscreen gestures for global actions by editing the &lt;code&gt;kglobalshortcutsrc&lt;/code&gt; config file. Schedules were tight, so this didn't make the cut for Plasma 6.7 anymore. Let's see if we can get it into 6.8 though.&lt;/p&gt;
&lt;p&gt;Based on this work, my work-in-progress changes to support &lt;del&gt;mouse gestures&lt;/del&gt; &lt;del&gt;stroke gestures&lt;/del&gt; line shape gestures have been improved as well (&lt;a href="https://invent.kde.org/plasma/kglobalacceld/-/merge_requests/97"&gt;1&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/7620"&gt;2&lt;/a&gt;). Autotests and more code polish are needed before this can go into code review, but it's now quite functional: path simplification, shape recognition, action configuration, and a neat little visualization effect are all in place.&lt;/p&gt;
&lt;h2 id="other-recent-input-highlights"&gt;Other recent input highlights&lt;/h2&gt;
&lt;p&gt;Plasma Keyboard was also heavily discussed in Graz, spearheaded by Kristen who put some serious polishing work into it. Kristen introduced a &lt;a href="https://blogs.kde.org/2026/03/14/this-week-in-plasma-press-and-hold-for-alternative-characters/"&gt;long-press diacritic selection pop-up&lt;/a&gt; for Plasma 6.7, a killer feature in my opinion. Meanwhile, on a different continent, Devin Lin has been hard at work to prepare an architectural overhaul of Plasma Keyboard, which would facilitate much-requested improvements to the on-screen keyboard experience (this won't make it into 6.7 though).&lt;/p&gt;
&lt;p&gt;Quinten Kock's changes to &lt;a href="https://invent.kde.org/graphics/okular/-/commit/2ed4df7c7d3e7a983285bd823880d8cc92f193ee"&gt;make touchpad pinch zoom gestures work in Okular&lt;/a&gt; are now available with the recent KDE Gear 26.04 release. This bug was pointed out &lt;a href="https://phabricator.kde.org/T17433#308227"&gt;in the discussion on our Input Goal proposal&lt;/a&gt;, all the way back in 2024, so it's great to see it fixed. If you're a developer, have a look at the commit and use &lt;code&gt;QNativeGesture&lt;/code&gt; events to support touchpad pinch. Shout-out also to Taufeeque Sifat, who's been &lt;a href="https://invent.kde.org/graphics/okular/-/merge_requests/1355"&gt;improving Okular's text selection behavior&lt;/a&gt; including &lt;a href="https://invent.kde.org/graphics/okular/-/merge_requests/1308"&gt;triple-click line selection&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Kai Uwe Broulik &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3544"&gt;modernized the code for mouse and touchpad settings pages&lt;/a&gt;. This is not a user-visible change, but future changes to these settings become easier thanks to Kai Uwe's work. I'm excited because it paves the way to a unified Mouse &amp;amp; Touchpad settings page in future releases. Alexander Wilms tweaked System Settings to &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3436"&gt;hide Mouse, Touchpad, and Game Controller settings pages&lt;/a&gt; when no such devices are connected. Also notable is &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3569"&gt;work on a custom pointer acceleration curve editor&lt;/a&gt;, which is not ready to ship yet but hopefully can get there eventually.&lt;/p&gt;
&lt;p&gt;Joshua Goins added an &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3233"&gt;option for the stylus cursor&lt;/a&gt; to stay in sync with the mouse pointer. David Redondo &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519600"&gt;fixed the stylus button assignment lines looking weird&lt;/a&gt; in the Drawing Tablet page in System Settings.&lt;/p&gt;
&lt;p&gt;Vlad Zahorodnii &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8771"&gt;added support&lt;/a&gt; for &lt;a href="https://who-t.blogspot.com/2025/05/libinput-and-lua-plugins.html"&gt;libinput plugins&lt;/a&gt; to KWin, allowing technical users to work around otherwise unfixable input hardware quirks. Xuetian Weng and Nicolas Fella improved the behavior of key repeats &lt;a href="https://invent.kde.org/plasma/kwin/-/commit/6be62bb9077034476feb025f507cbc805f41a3a4"&gt;for input methods&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/kwin/-/commit/60bb46893553ab1e65a4e4c6e4b83efe78908227"&gt;screen readers&lt;/a&gt;. David Edmundson fixed an &lt;a href="https://bugs.kde.org/show_bug.cgi?id=514688"&gt;issue with pointer positions for mirrored touchscreen displays&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to everyone who has worked on &lt;a href="https://kde.org/goals/"&gt;KDE's Input Goal&lt;/a&gt; in the past! At this year's &lt;a href="https://akademy.kde.org/2026/"&gt;Akademy in Graz&lt;/a&gt;, we should see a new set of goals elected, so we're in the final stretch for this one.&lt;/p&gt;
&lt;h2 id="onward-to-germany"&gt;Onward to Germany&lt;/h2&gt;
&lt;p&gt;I wrote this blog post while riding a long-distance train, on the way to another gesture customization mini-sprint with Natalie. The plan is to focus on implementing the new settings pages that will let regular users reassign (or unassign) gestures. Thanks again to KDE e.V. for travel support for another week of in-person collaboration. Let's see how much stuff we can get squared away - it's not just settings forms, but more infrastructure on the KWin and KGlobalAccelD side is also still needed to make everything fit together.&lt;/p&gt;
&lt;p&gt;There will be another blog post to follow up on this later. Until then!&lt;/p&gt;</description></item><item><title>Dolphin 26.04 release</title><link>https://blogs.kde.org/2026/05/03/dolphin-26.04-release/</link><pubDate>Sun, 03 May 2026 00:00:00 +0000</pubDate><author>Méven Car</author><guid>https://blogs.kde.org/2026/05/03/dolphin-26.04-release/</guid><description>&lt;p&gt;I want to highlight a few changes that came to Dolphin 26.04 and add some nuance to the release announcement.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://kde.org/announcements/gear/26.04.0/"&gt;the KDE Gear 26.04 release announcement&lt;/a&gt; mentions:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In version 26.04, Dolphin lets you add keyboard shortcuts to nearly any option in any menu, plugin or extension.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This refers to this MR: &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1167"&gt;Add keyboard shortcut support for service menu actions&lt;/a&gt;.
This change made it possible to add shortcuts to the &lt;a href="https://store.kde.org/browse?cat=102&amp;amp;ord=latest"&gt;beloved&lt;/a&gt; &lt;a href="https://develop.kde.org/docs/apps/dolphin/service-menus/"&gt;service menus&lt;/a&gt; and closed a &lt;a href="https://bugs.kde.org/260266"&gt;highly-requested feature&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In other words, this allows you to add shortcuts to custom actions that can be run on currently-selected files or folders in Dolphin.&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Shortcut edition for context menu custom actions" src="https://blogs.kde.org/2026/05/03/dolphin-26.04-release/context-menu-shortcuts.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;This was implemented by a new contributor &lt;a href="https://invent.kde.org/mitalbert"&gt;Albert Mkhitaryan&lt;/a&gt;, who also did the necessary &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2135"&gt;library work&lt;/a&gt; with my assistance. Kudos to Albert.&lt;/p&gt;
&lt;p&gt;Most of Dolphin's UI could already benefit from shortcuts with some &lt;a href="https://discuss.kde.org/t/keyboard-shortcut-for-dolphins-file-create-new-empty-file-and-similar/46458/6"&gt;caveats&lt;/a&gt; and the new feature does not apply to &lt;a href="https://api.kde.org/kabstractfileitemactionplugin.html"&gt;context menu plugins&lt;/a&gt;, such as Ark's &amp;quot;Extract here&amp;quot; or Dolphin's &amp;quot;Set Folder Icon&amp;quot;.&lt;/p&gt;
&lt;p&gt;Additionally, &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1122"&gt;context menus options are reloaded&lt;/a&gt; as they are modified thanks to &lt;a href="https://invent.kde.org/zhangpan"&gt;Pan Zhang&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://invent.kde.org/xiota"&gt;xi ota&lt;/a&gt; added an &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1152"&gt;option to pick the tab width&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;There was an &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1171"&gt;important fix&lt;/a&gt; for split view users by &lt;a href="https://invent.kde.org/marisn"&gt;Māris Nartišs&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made a &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1192"&gt;small improvement&lt;/a&gt; to the layout of the Settings dialog.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://invent.kde.org/syriusz"&gt;Rafał Lichwała&lt;/a&gt; improved &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2134"&gt;dragging and dropping&lt;/a&gt; from &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1165"&gt;the Places panel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course a few bugfixes (not exhaustive list):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://bugs.kde.org/show_bug.cgi?id=514209"&gt;514209&lt;/a&gt; preventted flickrering when holding F5 key, by Ritchie Frodomar,&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugs.kde.org/show_bug.cgi?id=510829"&gt;510829&lt;/a&gt; improved the rendering of gif/animated images in hidpi context, by me.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bugs.kde.org/show_bug.cgi?id=453262"&gt;453262&lt;/a&gt; refreshing the image preview in the information panel after a file is renamed, by me.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And we &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1190"&gt;reverted a dreaded change&lt;/a&gt; to the Create New Folder shortcut.&lt;/p&gt;
&lt;p&gt;Another thing worth mentioning is the &lt;a href="https://nicolasfella.de/posts/detecting-leaks-in-kde-ci/"&gt;memory leak detection effort&lt;/a&gt; started by &lt;a href="https://nicolasfella.de/"&gt;Nicolas Fella&lt;/a&gt;, as this allowed me to find a couple of uncommon &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2188"&gt;mem leaks&lt;/a&gt;. The work is not complete as KIO CI tests don't pass under LSAN scrutiny yet. I have been &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2196"&gt;working on it&lt;/a&gt; and only a couple of hard cases remain to be solved - help welcome.&lt;/p&gt;
&lt;p&gt;Next will be activating LSAN for Dolphin tests and CI for further stability but that is &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1227"&gt;already&lt;/a&gt; &lt;a href="https://invent.kde.org/system/dolphin/-/merge_requests/1210"&gt;fruitfull&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Having stopped my personal blog, I am now using kde-blogs.&lt;/p&gt;
&lt;p&gt;That's all, folks.&lt;/p&gt;</description></item><item><title>This Week in Plasma: Background Apps and Zoom Up-Scaling</title><link>https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/</link><pubDate>Sat, 02 May 2026 00:00:01 +0000</pubDate><author>Nate Graham, and John Veness</author><guid>https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/</guid><description>&lt;!-- Example wording for a change, MR version. (Developer Name, [repo-name MR #xxx](https://invent.kde.org/plasma/repo-name/-/merge_requests/xxx)) --&gt;
&lt;!-- Example wording for a change, Bugzilla version. (Developer Name, [KDE Bugzilla #xxx](https://bugs.kde.org/show_bug.cgi?id=xxx)) --&gt;
&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 Plasma 6.7 entered its “&lt;a href="https://community.kde.org/Schedules/Plasma_6#Repository_and_soft_feature_freezes"&gt;soft feature freeze&lt;/a&gt;” where we stop merging newly-written features and focus on finishing up and merging the ones that were already in flight.&lt;/p&gt;
&lt;p&gt;As such, some nice new features that have been in development for quite some time were merged this week!&lt;/p&gt;
&lt;p&gt;In addition, Plasma got a number of nice quality-of-life UI improvements and some accessibility fixes, among other changes. A good haul this week:&lt;/p&gt;
&lt;h2 id="notable-new-features"&gt;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;Implemented support for the &lt;a href="https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.background.Monitor.html"&gt;“Background apps” portal&lt;/a&gt;. This allows apps (especially newer GNOME apps) that use this portal to put themselves in the background and appear as icons in the System Tray, alongside the similar icons for other apps that use the existing System Tray icon functionality. (David Redondo, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5703"&gt;plasma-workspace MR #5703&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Implemented an up-scaling feature for screen content when using KWin’s Zoom effect. The filter does its best to sharpen and upscale content, resulting in a smoother and less blocky appearance, especially at relatively high zoom levels. If this effect isn’t for you, you can turn it off. (Ritchie Frodomar, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=509770"&gt;KDE Bugzilla #509770&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/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/less-blurry-upscaling.png" alt="Medium magnification" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Medium magnification&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/less-blurry-upscaling2.png" alt="High magnification" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;High magnification&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/less-blurry-upscaling3.png" alt="Massive magnification" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Massive magnification&lt;/span&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;The Printers widget is now badged with the number of active and queued print jobs. (Mike Noe, &lt;a href="https://invent.kde.org/plasma/print-manager/-/merge_requests/323"&gt;print-manager MR #323&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Printers widget in the System Tray showing a badge with the number “2” in it, indicating that many print jobs are in the queue" src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/number-of-print-jobs-badge.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&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-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;XWayland-using software that asks to be able to send synthetic keyboard and mouse events (such as &lt;code&gt;xdotool&lt;/code&gt;, which it turns out a bunch of apps invoke) is now identified by name so you know what’s asking. In addition, you can see a list of apps you’ve given this permission to, and revoke it later. (David Redondo, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9123"&gt;kwin MR #9123&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Security dialog asking if &lt;code&gt;xdotool&lt;/code&gt; can control the pointer and keyboard, and warning about the potential for other apps to impersonate it" src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/always-allow-xdotool.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;Implemented some KDE styling to the generic &lt;code&gt;MessageDialog&lt;/code&gt; component from Qt, which resolves the issue of these dialogs looking really ugly and out of place in various pieces of software, including the Sticky Note widget’s deletion confirmation dialog. (Tobias Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=499562"&gt;KDE Bugzilla #499562&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/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/delete-dialog-after.png" alt="After" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;After&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="swiper-slide"&gt;
 &lt;img src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/delete-dialog-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;span class="d-block text-center mt-2"&gt;Before&lt;/span&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;Improved how Discover handles being launched with no internet connection. (Tobias Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=511002"&gt;KDE Bugzilla #511002&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Dialog in Discover warning about not being able to do anything due to lack of an active network connection" src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/discover-is-offline.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;Improved how Discover communicates that a firmware update has been queued for installation after the next restart. (Tobias Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=422498"&gt;KDE Bugzilla #422498&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Removed the “double back button” effect visible in the Networks widget when showing a network’s QR code. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/plasma-nm/-/merge_requests/541"&gt;plasma-nm MR #541&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made the automatic screen brightness feature take into account more data points, hopefully making it more responsive to your desires and less swingy when in an environment where the background lighting is changing a lot. (Prajna Sariputra, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9145"&gt;kwin MR #9145&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made the buttons at the top of the Widget Explorer sidebar respect Fitts’ Law, allowing you to activate them by jamming the pointer against the adjacent screen edge and clicking. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3511"&gt;plasma-desktop MR #3511&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/libplasma/-/merge_requests/1479"&gt;libplasma MR #1479&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Button being hovered at a screen edge despite the pointer not technically being right over it" src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/fitts-law-buttons.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;Streamlined the presentation of the notification about your KDE-Connect-connected phone being low on battery power. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/powerdevil/-/merge_requests/619"&gt;powerdevil MR #619&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You now have more than 25 seconds to pick a color once you’ve invoked this from the Color Picker widget. Now you can take as long as you like. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/1013"&gt;kdeplasma-addons MR #1013&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-626"&gt;Frameworks 6.26&lt;/h3&gt;
&lt;p&gt;Improved the appearance of the cross-fade transition when moving between pages in many Kirigami-based apps. (HeCheng Yu, &lt;a href="https://invent.kde.org/frameworks/kirigami/-/merge_requests/2079"&gt;kirigami MR #2079&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/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/nicer-cross-fade.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;h2 id="notable-bug-fixes"&gt;Notable bug fixes&lt;/h2&gt;
&lt;!--
Can find some with:
- HI and VHI bugs fixed: https://tinyurl.com/bdepnh4v
- All bugs fixed: https://invent.kde.org/groups/plasma/-/merge_requests/?sort=merged_at_desc&amp;state=merged&amp;label_name%5B%5D=Bugfix&amp;first_page_size=20
--&gt;
&lt;h3 id="plasma-665"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Fixed an issue that made Plasma Login Manager fail to launch properly on certain devices with certain graphics hardware — in particular Apple silicon laptops. (Matthias Kurz, &lt;a href="https://invent.kde.org/plasma/plasma-login-manager/-/merge_requests/130"&gt;plasma-login-manager MR #130&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue that made touches on a touchscreen stop applying to the correct part of the screen when the touchscreen was mirrored to another screen with different geometry. (David Edmundson, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=514688"&gt;KDE Bugzilla #514688&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made it possible to select a sound theme using the keyboard. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519194"&gt;KDE Bugzilla #519194&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a visual glitch on System Settings’ Drawing Tablet page that made the lines indicating mappings for stylus buttons fly off the top-left corner of the window with certain tablets. (David Redondo, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519600"&gt;KDE Bugzilla #519600&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Fixed a case where KWin could crash when activating an item on a hidden panel while using the in-development Vulkan rendering backend. (Vlad Zahorodnii, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518721"&gt;KDE Bugzilla #518721&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed two cases of controls on System Settings’ Quick Settings page not being read by the Orca screen reader. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519433"&gt;KDE Bugzilla #519433&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Disabling KRunner plugins globally now turns them off in the Kicker Application Menu widget, too. (Christoph Wolk, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=501200"&gt;KDE Bugzilla #501200&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-665-1"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Fixed some performance issues experienced on a variety of NVIDIA GPUs that were introduced by version 595 of the proprietary NVIDIA driver. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517987"&gt;KDE Bugzilla #517987&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-3"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Implemented support for renaming or relocating the new cross-desktop standard “Projects” folder that’s started to appear in people’s home folders. (Jakob Dev, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3657"&gt;plasma-desktop MR #3657&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Locations page in System Settings showing the option to configure the name or location of the new cross-desktop “Projects” folder" src="https://blogs.kde.org/2026/05/02/this-week-in-plasma-background-apps-and-zoom-up-scaling/projects-folder-configurability.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;Implemented version 2 of the &lt;a href="https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.impl.portal.InputCapture.html"&gt;“Input Capture” portal&lt;/a&gt;. (David Redondo, &lt;a href="https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/493"&gt;xdg-desktop-portal-kde MR #493&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>This Week in Plasma: fanciness in Discover and more power efficiency</title><link>https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/</link><pubDate>Sat, 25 Apr 2026 00:00:01 +0000</pubDate><author>Nate Graham, and John Veness</author><guid>https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/</guid><description>&lt;!-- Example wording for a change, MR version. (Developer Name, [repo-name MR #xxx](https://invent.kde.org/plasma/repo-name/-/merge_requests/xxx)) --&gt;
&lt;!-- Example wording for a change, Bugzilla version. (Developer Name, [KDE Bugzilla #xxx](https://bugs.kde.org/show_bug.cgi?id=xxx)) --&gt;
&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 includes an interesting blend of improvements. Lots of visual stuff, so get ready for a ton of screenshots and screen recordings!&lt;/p&gt;
&lt;h2 id="notable-new-features"&gt;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;The Kicker Application Menu widget can now be configured to show a “Recent Locations” item. (Christoph Wolk, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=420951"&gt;KDE Bugzilla #420951&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Recent places in Kicker" src="https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/recent-places-in-kicker.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;Network connections can now be duplicated. (Kartikeya Tyagi, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=499188"&gt;KDE Bugzilla #499188&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Context menu showing option to duplicate a network connection" src="https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/duplicate-network-connection.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;There’s now a new “has parent window” window rule you can use to target child dialog windows specifically. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8969"&gt;kwin MR #8969&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-665"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Dragging a search result for a System Settings page to the desktop now creates a launcher to that page as you would expect. This completes a mini-project to &lt;a href="https://bugs.kde.org/show_bug.cgi?id=446031"&gt;improve dragging-and-dropping things to the desktop&lt;/a&gt; that we started a while back. (Antti Savolainen, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=500259"&gt;KDE Bugzilla #500259&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/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/kcm-shortcut-on-the-desktop.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;h3 id="plasma-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Discover now has fancier application page headers with more obvious install buttons! (Oliver Beard, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1297"&gt;discover MR #1297&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/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/discover-fancy-header.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;Discover no longer disables the “More Information” button on list items for in-progress updates. (Tobias Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=431719"&gt;KDE Bugzilla #431719&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Discover now does a better job of handling the rare case where an automatic update to a Flatpak app introduces a compatibility issue you can’t easily recover from. Now it will warn you about this once instead of continuously. (Tobias Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=509760"&gt;KDE Bugzilla #509760&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now drag favorite apps out of their areas in Kicker and Dashboard to un-favorite them. Kickoff is coming soon, too! (Christoph Wolk, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3665"&gt;plasma-desktop MR #3665&lt;/a&gt; and &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518749"&gt;KDE Bugzilla #518749&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;When your laptop is plugged in at maximum charge, doing something that changes the power profile to a non-default one now shows only the power profile icon in the System Tray, and omits the fully-charged battery icon because that part is obvious. (Nate Graham, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518802"&gt;KDE Bugzilla #518802&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/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/power-profile-icons.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;Improved some awkwardly-worded labels in System Settings and Plasma. (Philipp Kiemle, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3674"&gt;plasma-desktop MR #3674&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6522"&gt;plasma-workspace MR #6522&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-626"&gt;Frameworks 6.26&lt;/h3&gt;
&lt;p&gt;Reduced the amount of blurriness seen in icons throughout QtQuick-based apps using the &lt;code&gt;Kirigami.Icon&lt;/code&gt; component when using a low fractional scale factor like 150% or less. (Volodymyr Zolotopupov, &lt;a href="https://invent.kde.org/frameworks/kirigami/-/merge_requests/2070"&gt;kirigami MR #2070&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Before:
&lt;figure&gt;
 &lt;img class="img-fluid" alt="A row of blurry white icons on a black background" src="https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/icon-scale-before.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;

After:
&lt;figure&gt;
 &lt;img class="img-fluid" alt="A row of less-blurry white icons on a black background" src="https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/icon-scale-after.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Added a search provider for startpage.com, so you can search there from KRunner. (Antti Savolainen, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=503976"&gt;KDE Bugzilla #503976&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="KRunner showing the option to search using startpage.com by entering “sp KDE Linux”" src="https://blogs.kde.org/2026/04/25/this-week-in-plasma-fanciness-in-discover-and-more-power-efficiency/startpage-in-krunner.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-665-1"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Fixed a case where the Plasma Login Manager could crash when connecting and disconnecting multiple monitors while the login screen is visible. (David Edmundson, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519302"&gt;KDE Bugzilla #519302&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed some cases where Plasma could crash at login. (David Edmundson, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6520"&gt;plasma-workspace MR #6520&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed multiple accessibility issues: key repeat not working in the Orca screen reader, and various UI elements not being read properly. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519143"&gt;KDE Bugzilla #519143&lt;/a&gt;, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519333"&gt;KDE Bugzilla #519333&lt;/a&gt;, and &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519217"&gt;KDE Bugzilla #519217&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a tricky issue in Spectacle that could make large images fail to automatically copy to the clipboard right after the app exits. (David Edmundson, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=509065"&gt;KDE Bugzilla #509065&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed another cause of the issue whereby de-focused full-screen windows could sometimes inappropriately appear at the top of the window stack. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=484155"&gt;KDE Bugzilla #484155&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a layout glitch on System Settings’ Colors page that could make UI elements in the color previews overflow when using some non-default fonts and font sizes. (Akseli Lahtinen, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516413"&gt;KDE Bugzilla #516413&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Changing the brightness or any screen settings no longer terminates Spectacle’s sectangular region recordings. (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9127"&gt;kwin MR #9127&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-626-1"&gt;Frameworks 6.26&lt;/h3&gt;
&lt;p&gt;Fixed some visual glitches around radio buttons in the Audio Volume widget. (David Edmundson, &lt;a href="https://invent.kde.org/frameworks/ksvg/-/merge_requests/103"&gt;ksvg MR #103&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-665-2"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Fixed an issue that made System Settings’ Touchscreen page appear while the “highlight changed settings” feature is enabled even if you don’t have a touchscreen. (Jin Liu, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518868"&gt;KDE Bugzilla #518868&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Turned on the “overlay planes” feature for Intel GPUs, which should improve performance and save some energy when using cooperative games and apps. (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8699"&gt;kwin MR #8699&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved power efficiency for full-screen windows and effects that don’t gain any benefit from using the “direct scan-out” feature; now they’ll only use it if it will save power. (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9120"&gt;kwin MR #9120&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>This Week in Plasma: Per-Screen Virtual Desktops and Wayland Session Restore</title><link>https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/</link><pubDate>Sat, 18 Apr 2026 00:00:01 +0000</pubDate><author>Nate Graham, and John Veness</author><guid>https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/</guid><description>&lt;!-- Example wording for a change, MR version. (Developer Name, [repo-name MR #xxx](https://invent.kde.org/plasma/repo-name/-/merge_requests/xxx)) --&gt;
&lt;!-- Example wording for a change, Bugzilla version. (Developer Name, [KDE Bugzilla #xxx](https://bugs.kde.org/show_bug.cgi?id=xxx)) --&gt;
&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;Last week over 20 KDE contributors converged on the Austrian city of Graz for our &lt;a href="https://community.kde.org/Sprints/MegaSprint/2026/"&gt;annual mega-sprint&lt;/a&gt;. It was a busy week, offering a good opportunity for the kinds of face-to-face conversations that can unblock stuck work and reach new consensus. Expect reports to appear on &lt;a href="https://planet.kde.org/"&gt;Planet KDE&lt;/a&gt; over the next week or two.&lt;/p&gt;
&lt;p&gt;We skipped an issue of TWiP due to the sprint but these past two weeks have indeed been busy! Some major features landed, along with a slew of impactful UI improvements. Let’s get right into it:&lt;/p&gt;
&lt;h2 id="notable-new-features"&gt;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;Each screen can now switch between any of the system’s virtual desktops independently! (Hynek Schlindenbuch, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=107302"&gt;KDE Bugzilla #107302&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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/kde-per-output-desktops-demo-compressed.mp4" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;You can now choose your default calendar app on System Settings’ Default Applications page. (Denys Madureira, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6468"&gt;plasma-workspace MR #6468&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
 &lt;img class="img-fluid" alt="Default calendar chooser" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/default-calendar-chooser.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;

…And you can now middle-click on the Digital Clock widget to open the calendar app you’ve configured there. (Denys Madureira, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6462"&gt;plasma-workspace MR #6462&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Digital Clock widget tooltip showing option to open the default calendar app" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/middle-click-on-digital-clock-to-open-calendar-app.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;You can now configure the &lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; window switcher to always appear on the primary screen, rather than whichever screen has keyboard focus or the pointer on it. (Yuki Tsujii, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=329696"&gt;KDE Bugzilla #329696&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now mark app-specific actions that you find in a search as favorites. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6224"&gt;plasma-workspace MR #6224&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="App action being marked as a favorite" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/favorite-app-actions.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;The Kicker Application Menu widget now highlights newly-installed apps, just like the Kickoff Application Launcher widget does. (Christoph Wolk, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3649"&gt;plasma-desktop MR #3649&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now drag-and-drop apps to the “Favorites” sections of the Kickoff, Kicker, and Dashboard widgets. (Christoph Wolk, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=383302"&gt;KDE Bugzilla #383302&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3652"&gt;plasma-desktop MR #3652&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;If you find yourself captivated by a picture of the day wallpaper image, you can now right-click on it and access external information about it. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/1035"&gt;kdeplasma-addons MR #1035&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Menu item letting you see information about the current picture of the day wallpaper" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/info-about-picture-of-the-day-image.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;You can now optionally set Discover to quit after installing updates. (Taras Oleksyn, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=508743"&gt;KDE Bugzilla #508743&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Option in Discover to quit after installing updates" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/discover-quit-option.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&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-665"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;While entering the password for a Wi-Fi network using the Networks widget, the password field no longer loses keyboard focus if you happen to move the pointer away from it. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/plasma-nm/-/merge_requests/556"&gt;plasma-nm MR #556&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;There’s now a new standard “Badge” component in Kirigami, and many parts of Plasma have been ported to use it. (Nate Graham, &lt;a href="https://invent.kde.org/frameworks/kirigami/-/merge_requests/1847"&gt;kirigami MR #1847&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3089"&gt;plasma-desktop MR #3089&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6488"&gt;plasma-workspace MR #6488&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/systemsettings/-/merge_requests/399"&gt;systemsettings MR #399&lt;/a&gt;, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1290"&gt;discover MR #1290&lt;/a&gt;, and &lt;a href="https://invent.kde.org/plasma/kinfocenter/-/merge_requests/262"&gt;kinfocenter MR #262&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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/badge-after.png" alt="After" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/badge-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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;p&gt;The Input Method System Tray widget no longer &lt;em&gt;disables&lt;/em&gt; the active input method if you click it while the input method isn’t currently visible. Now it just shows and hides it. (Aleix Pol Gonzalez, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6485"&gt;plasma-workspace MR #6485&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved the design of Discover’s grid and list items, which also slightly increases the information density of the pages that show them. (Nate Graham, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1292"&gt;discover MR #1292&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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/discover-after.png" alt="After" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/discover-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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;p&gt;The Kicker Application Menu widget now shows tooltips for items whose labels have been elided. (Christoph Wolk, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=515608"&gt;KDE Bugzilla #515608&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;System Monitor now differentiates multiple GPUs by their names, rather than by arbitrary numbers. (Bernhard Friedreich, &lt;a href="https://invent.kde.org/plasma/libksysguard/-/merge_requests/464"&gt;libksysguard MR #464&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/ksystemstats/-/merge_requests/129"&gt;ksystemstats MR #129&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;System Monitor now exposes top-level actions you can use to launch it and go straight to a specific page. These can be invoked from the app’s context menu, or via a global shortcut you set yourself. (Bernhard Friedreich, &lt;a href="https://invent.kde.org/plasma/plasma-systemmonitor/-/merge_requests/427"&gt;plasma-systemmonitor MR #427&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="System Monitor app’s context menu shoting actions to jump to specific pages" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/system-monitor-go-to-page-actions.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;The Margins Separator widget is now added from the panel configuration dialog’s “Add New” menu, rather than the widget explorer sidebar. This matches how the similar spacer widget is added. (Antti Savolainen, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6494"&gt;plasma-workspace MR #6494&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3663"&gt;plasma-desktop MR #3663&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Margins Separator item now lives in the panel configuration dialog" src="https://blogs.kde.org/2026/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/add-margins-separator-in-panel-configuration-dialog.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;The clipboard popup invoked with &lt;kbd&gt;Meta&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt; now closes if it’s open when you press that keyboard shortcut a second time. (Kristem McWilliam, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6450"&gt;plasma-workspace MR #6450&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved how System Settings’ Shortcuts page handles being told to assign a shortcut that’s already assigned to something else. (David Bacskay-Nagy, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=484526"&gt;KDE Bugzilla #484526&lt;/a&gt; and &lt;a href="https://bugs.kde.org/show_bug.cgi?id=489544"&gt;KDE Bugzilla #489544&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;KRunner now lets you evaluate fancy mathematical expressions more flexibly; in the past you could ask for &lt;code&gt;sqrt(2) + 2&lt;/code&gt; but not &lt;code&gt;2 + sqrt(2)&lt;/code&gt;; now both are accepted. (Alex Cizinsky, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=496343"&gt;KDE Bugzilla #496343&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-626"&gt;Frameworks 6.26&lt;/h3&gt;
&lt;p&gt;The dialog that asks you if you want to launch or edit an executable text file (like a &lt;code&gt;.desktop&lt;/code&gt; file) no longer gives you the opportunity to tell it to always do that thing. This behavior was making &lt;code&gt;.desktop&lt;/code&gt; files un-launchable for people who selected the option to always open those types of files in a text editor. Anyone who wants to use this feature can still configure it in Dolphin’s settings. (Nate Graham, &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2171"&gt;kio MR #2171&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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/open-or-edit-after.png" alt="After" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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/04/18/this-week-in-plasma-per-screen-virtual-desktops-and-wayland-session-restore/open-or-edit-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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;p&gt;Removed the CFP franc from the list of common currencies, so it no longer shows up automatically for every currency conversion run using KRunner-powered searches. (Pellaeon Lin, &lt;a href="https://invent.kde.org/frameworks/kunitconversion/-/merge_requests/84"&gt;kunitconversion MR #84&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-664"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;Fixed a case where Plasma Keyboard could crash after &lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt;bing away from a window marked as “keep above others”. (Devin Lin, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517087"&gt;KDE Bugzilla #517087&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Worked around a bug added in Qt 6.11 that made some of Spectacle’s annotation tools unclickable. (Oliver Beard, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=515304"&gt;KDE Bugzilla #515304&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a layout issue in the Activity Pager widget that made it look weird at specific non-default panel sizes. (Marco Martin, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518451"&gt;KDE Bugzilla #518451&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-665-1"&gt;Plasma 6.6.5&lt;/h3&gt;
&lt;p&gt;Fixed a case where KWin could crash on logout when the session that’s closing had sent any emulated keyboard or mouse events. (Vlad Zahorodnii, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9092"&gt;kwin MR #9092&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue with the screen locker that could cause the buttons to malfunction and leave you unable to unlock after you pressed the &lt;kbd&gt;Esc&lt;/kbd&gt; key in combination with various other actions with specific timings. (Akseli Lahtinen, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=515299"&gt;KDE Bugzilla #515299&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue that made color picker functionality throughout the system return random colors on systems with certain graphics hardware. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518770"&gt;KDE Bugzilla #518770&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue that made the clock times shown on the lockscreen differ across the screens of a multi-screen setup. (DeepChirp, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516479"&gt;KDE Bugzilla #516479&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed two issues that made network connections added from the Plasma setup wizard not always work properly. (Adam Williamson, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=514841"&gt;KDE Bugzilla #514841&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/plasma-setup/-/merge_requests/100"&gt;plasma-setup MR #100&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a couple of cases where auto-hide panels might not hide properly when there were any unread notifications. (Patrick Cleary, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=519046"&gt;KDE Bugzilla #519046&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Switching away from the Networks Widget in the System Tray no longer briefly makes a placeholder message appear. (Tobias Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=511367"&gt;KDE Bugzilla #511367&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved the reliability of the Weather Widget’s icon fallback behavior, making it less likely to show broken weather icons. (Ismael Asensio, &lt;a href="https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/1032"&gt;kdeplasma-addons MR #1032&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Fixed an issue that could make the Audio Volume widget not notice that a new audio device was connected and became the default one. (Oliver Beard, &lt;a href="https://invent.kde.org/plasma/plasma-pa/-/merge_requests/393"&gt;plasma-pa MR #393&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Using the clipboard’s non-default “Never save [non-text items] in history” option no longer breaks the ability to paste items that have been moved to the top of the clipboard history. (Christoph Wolk, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=514095"&gt;KDE Bugzilla #514095&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Apps in the Quick Launch widget can once again be re-arranged. (Alex Folland, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=481922"&gt;KDE Bugzilla #481922&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed two quirky issues with Spectacle’s magnifier in Rectangular Region mode. (Noah Davis, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=509776"&gt;KDE Bugzilla #509776&lt;/a&gt; and &lt;a href="https://bugs.kde.org/show_bug.cgi?id=509777"&gt;KDE Bugzilla #509777&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-67-3"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;KWin now supports the Wayland session management protocol! This is an important step for apps to be able to remember their sizes and positions after restarting the system. The next step is for toolkits, libraries, and apps to implement support. We’re getting there! (Vlad Zahorodnii, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=436318"&gt;KDE Bugzilla #436318&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Reduced the size of animated GIF images produced by apps like Spectacle that use KDE’s KPipeWire library. (Bernhard Friedrich, &lt;a href="https://invent.kde.org/plasma/kpipewire/-/merge_requests/247"&gt;kpipewire MR #247&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>Season of KDE 2026 – Final Blog</title><link>https://blogs.kde.org/2026/04/07/sok-final-keshav-nanda/</link><pubDate>Tue, 07 Apr 2026 00:00:00 +0000</pubDate><author>Keshav-Nanda</author><guid>https://blogs.kde.org/2026/04/07/sok-final-keshav-nanda/</guid><description>&lt;p&gt;Greetings to everyone in the KDE community!&lt;/p&gt;
&lt;p&gt;As SoK '26 comes to a close, this blog post summarizes the work done in the second half.
Please refer to my &lt;a href="https://blogs.kde.org/2026/03/20/sok-midterm-keshav-nanda/"&gt;mid-term blog post&lt;/a&gt;
for further context.&lt;/p&gt;
&lt;p&gt;My SoK task was to ensure all the &lt;code&gt;.pot&lt;/code&gt; files generated have source references
relative to the project root.&lt;/p&gt;
&lt;p&gt;Upon discussion with my mentor, &lt;a href="https://invent.kde.org/finw"&gt;Finley Watson&lt;/a&gt;, and my
teammate &lt;a href="https://invent.kde.org/faucetfailure"&gt;Aviral Singh&lt;/a&gt;, we decided to create merge
requests to a throwaway repo made by our mentor to ensure that all the messy commits are
cleaned up and functioning well. This was also done to ensure that the MRs don't create
regressions of any kind.&lt;/p&gt;
&lt;p&gt;I created an &lt;a href="https://invent.kde.org/finw/project_relative_scripty_paths/-/merge_requests/1"&gt;MR&lt;/a&gt;
that modifies the &lt;code&gt;createdesktopcontext.pl&lt;/code&gt; file. Instead of using lazy regex to manipulate
the path string and extract a basename, I used Perl's built-in &lt;code&gt;File::Spec-&amp;gt;abs2rel&lt;/code&gt; to
compute the correct project-root-relative path programmatically.&lt;/p&gt;
&lt;p&gt;I also created &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty/-/merge_requests/121"&gt;MR !121&lt;/a&gt;
which makes use of Aviral's validation script to ensure that the logs generated match the
format of &lt;a href="https://logs.l10n.kde.org/260323.branches_stable_l10n-kf6"&gt;Scripty's existing logs&lt;/a&gt;.
The MR ensures that there is:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;One &lt;code&gt;WARNING in &amp;lt;file&amp;gt;: &amp;lt;message&amp;gt;&lt;/code&gt; line per bad path&lt;/li&gt;
&lt;li&gt;One self-contained summary line per POT, always printed&lt;/li&gt;
&lt;li&gt;Zero noise when everything is clean&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Looking back, SoK has taught me a lot of things. I've learnt how to navigate complex
codebases, read and write Bash and Perl, and deal with complex version control rather
than just &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git commit -m&lt;/code&gt; and &lt;code&gt;git push&lt;/code&gt; ;)&lt;/p&gt;
&lt;p&gt;I've also realised how important commit history and messages are (which I never paid much
attention to while developing personal projects). Overall, this has been an amazing and
enjoyable experience for me and I would like to thank my mentor Fin for the guidance, and
Aviral for being a great teammate throughout.&lt;/p&gt;</description></item><item><title>Season of KDE 2026 - Fixing the Glossary in Lokalize (Final)</title><link>https://blogs.kde.org/2026/04/06/season-of-kde-2026-fixing-the-glossary-in-lokalize-final/</link><pubDate>Mon, 06 Apr 2026 00:00:00 +0000</pubDate><author>Jaimukund Bhan</author><guid>https://blogs.kde.org/2026/04/06/season-of-kde-2026-fixing-the-glossary-in-lokalize-final/</guid><description>&lt;p&gt;Greetings to the KDE community!&lt;/p&gt;
&lt;p&gt;This is a blog which follows my &lt;a href="https://blogs.kde.org/2026/03/08/season-of-kde-2026-fixing-the-glossary-in-lokalize-midterm/"&gt;previous post&lt;/a&gt; and includes the work I did in the second half of Season of KDE.&lt;/p&gt;
&lt;h3 id="improved-manual-glossary-term-addition"&gt;&lt;a href="https://invent.kde.org/sdk/lokalize/-/merge_requests/295"&gt;Improved manual Glossary term addition&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;There are two methods to add terms to the glossary. The first one is to highlight the source and target terms in the Editor Tab, and then using the context menu in the Glossary View to &lt;code&gt;Define a New Term&lt;/code&gt;. The second is to manually add new terms through the Glossary Tab without any prior text selection. Previously, when a term had to be added manually, a blank entry was made first, which the user could then edit. This meant that multiple blank entries could be accidentally accumulated in the Glossary file.
Users are now prompted to enter the source and target terms in a dialog box when trying to add terms manually, removing the need of creating blank entries.&lt;/p&gt;
&lt;h3 id="fixed-the-shortcut-key-for-previous-active-tab"&gt;&lt;a href="https://invent.kde.org/sdk/lokalize/-/merge_requests/296"&gt;Fixed the shortcut key for Previous Active Tab&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The shortcut key for switching to the Previously Active Tab was not working properly as the &lt;code&gt;currentChanged&lt;/code&gt; signal updated the current index of the &lt;code&gt;m_mainTabs&lt;/code&gt; before the previous index could be saved to the &lt;code&gt;previousActiveTabIndex&lt;/code&gt; variable.
I updated the event filter to catch tab switches made through mouse clicks and replaced the integer variable with a widget pointer, since it would remain valid even if tab positions change, whereas an index-based would require calculations.&lt;/p&gt;</description></item><item><title>This Week in Plasma: UI and Stability Improvements</title><link>https://blogs.kde.org/2026/04/04/this-week-in-plasma-ui-and-stability-improvements/</link><pubDate>Sat, 04 Apr 2026 00:00:01 +0000</pubDate><author>Nate Graham</author><guid>https://blogs.kde.org/2026/04/04/this-week-in-plasma-ui-and-stability-improvements/</guid><description>&lt;!-- Example wording for a change, MR version. (Developer Name, [repo-name MR #xxx](https://invent.kde.org/plasma/repo-name/-/merge_requests/xxx)) --&gt;
&lt;!-- Example wording for a change, Bugzilla version. (Developer Name, [KDE Bugzilla #xxx](https://bugs.kde.org/show_bug.cgi?id=xxx)) --&gt;
&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 a somewhat quiet week mostly full of UI and stability improvements, perhaps because many KDE contributors are gearing up for next week’s &lt;a href="https://community.kde.org/Sprints/MegaSprint/2026"&gt;mega-sprint in Graz&lt;/a&gt;! For the same reason, expect next week’s post to be short or non-existent.&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-67"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Breeze-themed menu items throughout KDE’s software ecosystem now visually change when clicked. (Akseli Lahtinen, &lt;a href="https://invent.kde.org/plasma/breeze/-/merge_requests/605"&gt;breeze MR #605&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/04/04/this-week-in-plasma-ui-and-stability-improvements/menu-click-effect.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;A variety of tooltips throughout Plasma now follow the styling of the active Plasma theme as expected. (Nicolas Fella, &lt;a href="https://invent.kde.org/plasma/libplasma/-/merge_requests/1435"&gt;libplasma MR #1435&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved the Mouse Mark effect’s support for touchscreens: now you can draw multiple lines at a time if you have a multi-touch-capable screen. (Tin Dao, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8951"&gt;kwin MR #8951&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Synchronizing settings to the Plasma Login Manager now includes the current set of keyboard layouts. (Oliver Beard, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516778"&gt;KDE Bugzilla #516778&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Simplified the UI for the Clipboard widget’s QR code page: now the copy button is in the header, rather than all alone on its own row. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6451"&gt;plasma-workspace MR #6451&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/04/04/this-week-in-plasma-ui-and-stability-improvements/clipboard-page-after.png" alt="After" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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/04/04/this-week-in-plasma-ui-and-stability-improvements/clipboard-page-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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;p&gt;Removed the feature to force the Task Manager and System Tray widgets to use a large spacing and icon size while in touch/tablet mode; it just didn’t work out, and caused un-resolvable sizing bugs. (Nate Graham, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=511439"&gt;KDE Bugzilla #511439&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved the accuracy of widget positioning on the desktop: dragging a widget somewhere it won’t fit will now show its preview rectangle in the nearest place where it will fit, which is where it will end up. (Tobias Fella, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6452"&gt;plasma-workspace MR #6452&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/04/04/this-week-in-plasma-ui-and-stability-improvements/widget-positioning.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;Discover now uses consistent terminology when it asks you to restart. (Nate Graham, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517630"&gt;KDE Bugzilla #517630&lt;/a&gt;)&lt;/p&gt;
&lt;h2 id="frameworks-625"&gt;Frameworks 6.25&lt;/h2&gt;
&lt;p&gt;Trying to paste when your clipboard is empty now fails silently rather than showing a notification about it. (Tobias Fella, &lt;a href="https://invent.kde.org/frameworks/kio/-/merge_requests/2168"&gt;kio MR #2168&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-664"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;Hardened Plasma against crashing while trying to load a broken widget. (Harald Sitter, &lt;a href="https://invent.kde.org/plasma/libplasma/-/merge_requests/1456"&gt;libplasma MR #1456&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a case where the KDED background daemon could die with a Wayland protocol error when changing the screen resolution. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516217"&gt;KDE Bugzilla #516217&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a bizarre issue that mangled certain text formatted with Markdown styling while Plasma’s on-screen keyboard was enabled but not visible. (Devin Lin, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516511"&gt;KDE Bugzilla #516511&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a case where System Settings’ Plasma Style page could crash on certain distros shipping Qt 6.11 with asserts turned on. (Ismael Asensio, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6458"&gt;plasma-workspace MR #6458&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed usage graphs for certain NVIDIA GPUs being broken in the System Monitor app and widgets. (Bernhard Friedreich, &lt;a href="https://invent.kde.org/plasma/libksysguard/-/merge_requests/465"&gt;libksysguard MR #465&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Popups for editing widgets while in Plasmas’s edit mode now work with a touchscreen. (Marco Martin, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=509880"&gt;KDE Bugzilla #509880&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Hardened KWin against XWayland apps being sized incorrectly on systems with config files containing inappropriate scale values. (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9049"&gt;kwin MR #9049&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Rolled out a more complete fix for context menus of System Tray icons sometimes having ugly square black corners. (Nate Graham, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=513307"&gt;KDE Bugzilla #513307&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Made two technical fixes to the process of configuring OpenConnect VPNs (Aviral Singh and Alexander Becker, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=385395"&gt;KDE Bugzilla #385395&lt;/a&gt; and &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518289"&gt;KDE Bugzilla #518289&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-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Implemented support for the &lt;code&gt;xx-fractional-scale-v2&lt;/code&gt; Wayland protocol, which improves visual fidelity by reducing gaps between adjacent items. (Vlad Zahorodnii, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9023"&gt;kwin MR #9023&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Continued with the work to add Vulkan support. (Diego Gomez, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/9027"&gt;kwin MR #9027&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>Making Plasma Setup More Mobile-Friendly: A SoK'26 Conclusion</title><link>https://blogs.kde.org/2026/03/31/making-plasma-setup-more-mobile-friendly-a-sok26-conclusion/</link><pubDate>Tue, 31 Mar 2026 00:00:00 +0000</pubDate><author>Onat Ribar</author><guid>https://blogs.kde.org/2026/03/31/making-plasma-setup-more-mobile-friendly-a-sok26-conclusion/</guid><description>&lt;p&gt;Hey everyone! SoK '26 is wrapping up, so here's my final post. If you haven't read the midterm update yet, I'd recommend starting there — this post picks up from where that one left off.&lt;/p&gt;
&lt;p&gt;Some relevant links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blogs.kde.org/2026/03/12/making-plasma-setup-more-mobile-friendly-a-sok26-midterm-update/"&gt;Midterm blogpost&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://invent.kde.org/teams/mentor-programs/2026/-/issues/51"&gt;Project proposal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.kde.org/SoK/2026/StatusReport/Onat_Ribar"&gt;Status report&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://invent.kde.org/plasma/plasma-setup/-/merge_requests/95"&gt;MR: plasma-setup !95&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6411"&gt;MR: plasma-workspace !6411&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tldr-the-project"&gt;TLDR: The project&lt;/h3&gt;
&lt;p&gt;Plasma Setup is KDE's first-run wizard: it greets you on a fresh install and walks you through account creation, keyboard layout, timezone, and basic system config. It was built with desktop screens in mind, and my project was to make it work properly on phones and tablets running Plasma Mobile
without breaking the desktop experience.&lt;/p&gt;
&lt;h3 id="where-the-midterm-left-things"&gt;Where the midterm left things&lt;/h3&gt;
&lt;p&gt;By the midterm I had worked through most of the UI issues: overlapping components, wallpaper disappearing on portrait layouts, the wizard not filling the screen on mobile, the hostname field overflowing, the timezone page's OpenStreetMap widget being too fiddly for touchscreens. Two MRs were open, one in &lt;code&gt;plasma-setup&lt;/code&gt; and one in &lt;code&gt;plasma-workspace&lt;/code&gt; for the timezone selector since that component lives there. The plan was to spend the remaining weeks getting them merged.&lt;/p&gt;
&lt;p&gt;That's roughly what happened, though it took longer than expected. I requested a two-week extension so we could handle the review process properly rather than rushing it.&lt;/p&gt;
&lt;h3 id="what-the-second-half-looked-like"&gt;What the second half looked like&lt;/h3&gt;
&lt;p&gt;Mostly review cycles. Writing the MRs was one thing; getting them merge-readywas another. A fair amount of that time was spent in the terminal, checking diffs, rebasing, keeping the history clean, more than it was actually writing new code. Anyone who's worked on a shared codebase knows how that goes.&lt;/p&gt;
&lt;p&gt;The MRs were fairly dynamic throughout. Ideas came up during review that hadn't been in the original scope, some made it in, some got tested and scrapped. The final diff looks quite different from what was there at first open, which is usually a sign the review process is doing its job.&lt;/p&gt;
&lt;p&gt;What I did recalibrate to was the specific culture of OSS contribution. The conventions are different from a professional codebase: how commits are structured, how feedback is framed, what a well-scoped MR looks like in this context. Not a harder or easier bar, just a different one, and getting fluent in it is part of the work.&lt;/p&gt;
&lt;h3 id="the-open-threads-from-the-midterm"&gt;The open threads from the midterm&lt;/h3&gt;
&lt;p&gt;I flagged two things in the midterm that weren't guaranteed to get done: virtual keyboard handling and the &lt;code&gt;kcm_keyboard&lt;/code&gt; dependency decoupling.&lt;/p&gt;
&lt;p&gt;Neither got done. The virtual keyboard situation is an open design question for the project, not something I could resolve within this scope. The &lt;code&gt;kcm_keyboard&lt;/code&gt; decoupling is something I'd still like to take a crack at. The underlying issue is real: a mobile setup wizard probably shouldn't need to pull in &lt;code&gt;plasma-desktop&lt;/code&gt;. But testing showed it wasn't causing visible breakage in practice, so it got deprioritised in favour of getting the UI work properly landed. Worth picking up as a future contribution.&lt;/p&gt;
&lt;h3 id="see-it-in-action"&gt;See it in action&lt;/h3&gt;

 


&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
 &lt;video controls&gt;&lt;source src="https://blogs.kde.org/2026/03/31/making-plasma-setup-more-mobile-friendly-a-sok26-conclusion/demo.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;h3 id="wrapping-up"&gt;Wrapping up&lt;/h3&gt;
&lt;p&gt;I participated in SoK '25 as well but had to drop out partway through, so finishing this one properly feels good. Plasma Setup on mobile is in a noticeably better state than it was ten weeks ago, and the changes are upstream, which is what matters.&lt;/p&gt;
&lt;p&gt;I'm planning to keep contributing to KDE and take on more within the ecosystem. There's plenty left to do and I'd like to have a more permanent stake in it.&lt;/p&gt;
&lt;p&gt;Thanks to Kristen McWilliam for the mentorship throughout, and to KDE and the SoK programme for running this. It's a genuinely good way to get people into open source contribution.&lt;/p&gt;
&lt;p&gt;You can reach me on Matrix at @onatribar:matrix.org.&lt;/p&gt;
&lt;p&gt;Until we meet again!&lt;/p&gt;</description></item><item><title>This Week in Plasma: Easier Microphone Sensitivity Adjustment</title><link>https://blogs.kde.org/2026/03/28/this-week-in-plasma-easier-microphone-sensitivity-adjustment/</link><pubDate>Sat, 28 Mar 2026 00:00:01 +0000</pubDate><author>Nate Graham, and John Veness</author><guid>https://blogs.kde.org/2026/03/28/this-week-in-plasma-easier-microphone-sensitivity-adjustment/</guid><description>&lt;!-- Example wording for a change, MR version. (Developer Name, [repo-name MR #xxx](https://invent.kde.org/plasma/repo-name/-/merge_requests/xxx)) --&gt;
&lt;!-- Example wording for a change, Bugzilla version. (Developer Name, [KDE Bugzilla #xxx](https://bugs.kde.org/show_bug.cgi?id=xxx)) --&gt;
&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 saw a large variety of improvements in fields as diverse as better support for multi-screen and multi-GPU setups, support for new portals, performance improvements, UI improvements, crash fixes, and more! Lots to get excited about this week:&lt;/p&gt;
&lt;h2 id="notable-new-features"&gt;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;Implemented a feature that lets you record yourself with your microphone and play it back, making it easy to tell when the recording level is too high or too low. Then you can adjust the level until it’s just right. (Ramil Nurmanov, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=435256"&gt;KDE Bugzilla #435256&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/28/this-week-in-plasma-easier-microphone-sensitivity-adjustment/testing-and-adjusting-audio-level.mp4" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;p&gt;Reworked how the notifications portal is implemented, which, among other things, allows configuring the notifications sent by Flatpak and other portal-using sandboxed apps in the same way that you can configure notifications for traditionally-packaged apps. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6312"&gt;plasma-workspace MR #6312&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-625"&gt;Frameworks 6.25&lt;/h3&gt;
&lt;p&gt;KRunner-powered searches can now convert to and from the “momme” unit, which measures weight for silk textiles. (Nate Graham, &lt;a href="https://invent.kde.org/frameworks/kunitconversion/-/merge_requests/82"&gt;kunitconversion MR #82&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="KRunner converting from 22 momme to 2.816 ounces per square yard and 95.48 grams per square meter" src="https://blogs.kde.org/2026/03/28/this-week-in-plasma-easier-microphone-sensitivity-adjustment/krunner-converting-from-momme.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&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-664"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;The bouncy app launch feedback animation by the pointer now looks better when using a fractional scale factor. (Vlad Zahorodnii, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=489403"&gt;KDE Bugzilla #489403&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Sped up the process for selecting a weather station for the Weather Report widget using the keyboard. (Nate Graham, &lt;a href="https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/1016"&gt;kdeplasma-addons MR #1016&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now drag recent items in launcher menus onto the desktop. (Christoph Wolk, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6431"&gt;plasma-workspace MR #6431&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The Networks widget now instantly reports the last-used network, rather than only after restarting Plasma. (Aviral Singh, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=512951"&gt;KDE Bugzilla #512951&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The Task Manager widget now instantly updates the icon of a pinned or running app whose icon you’ve changed, rather than only after restarting Plasma. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6443"&gt;plasma-workspace MR #6443&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;The screen chooser UI (e.g. for screen sharing/casting) now features fancier visualizations for screens, showing their wallpapers in the background. (Harald Sitter, &lt;a href="https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/532"&gt;xdg-desktop-portal-kde MR #532&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6409"&gt;plasma-workspace MR #6409&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Fancier screen chooser dialog" src="https://blogs.kde.org/2026/03/28/this-week-in-plasma-easier-microphone-sensitivity-adjustment/fancier-screen-chooser.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;The super-custom folder chooser dialog, seen throughout KDE software, has been removed; now choosing a folder uses the standard “Open” dialog, and it only shows folders. (Akseli Lahtinen, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=197938"&gt;KDE Bugzilla #197938&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Locked Plasma Vaults now have their mountpoints made read-only and badged with a lock icon, so it’s clearer what they are, and you or your apps can’t accidentally save files in there, which would block mounting the vault. (Matthias Pleschinger &lt;a href="https://invent.kde.org/plasma/plasma-vault/-/merge_requests/72"&gt;plasma-vault MR #72&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now limit the Wi-Fi band for networks in infrastructure mode. (Piotr Balwierz, &lt;a href="https://invent.kde.org/plasma/plasma-nm/-/merge_requests/536"&gt;plasma-nm MR #536&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-625-1"&gt;Frameworks 6.25&lt;/h3&gt;
&lt;p&gt;Various message dialogs throughout KDE software now wrap their text at around 70 characters instead of at a point based on the screen width. (Thomas Friedrichsmeier, &lt;a href="https://invent.kde.org/frameworks/kwidgetsaddons/-/merge_requests/339"&gt;kwidgetsaddons MR #339&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-664-1"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;Fixed a case where Plasma could crash when connecting another screen. (Harald Sitter, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=477941"&gt;KDE Bugzilla #477941&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a case where Plasma could crash when the underlying services for apps with System Tray icons went away. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518128"&gt;KDE Bugzilla #518128&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a case where Spectacle could crash under certain circumstances when using multiple screens. (Vlad Zahorodnii, &lt;a href="https://invent.kde.org/plasma/layer-shell-qt/-/merge_requests/95"&gt;layer-shell-qt MR #95&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue that could make OBS crash on quit under certain circumstances. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517599"&gt;KDE Bugzilla #517599&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The Digital Clock widget’s feature to copy the current date and time to the clipboard in various formats now uses the correct time from your local time zone, not the UTC time. (David Edmundson, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517692"&gt;KDE Bugzilla #517692&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed some cases of missing transparency in certain apps’ System Tray icons. (Qiancheng Sun, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6427"&gt;plasma-workspace MR #6427&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed an issue uncovered by the upgrade to Qt 6.11 that applied the wrong color to the window snapping overlay. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518178"&gt;KDE Bugzilla #518178&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Fixed an issue that made the System Monitor app and widgets show the wrong names for CPU cores on systems where there’s more than one physical CPU. (Kevin Tipping, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=515435"&gt;KDE Bugzilla #515435&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-664-2"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;Blur in Konsole now plays nicely with the Wobbly Windows effect. (Jérôme Lécuyer, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=474196"&gt;KDE Bugzilla #474196&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-3"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Screen recordings made using Spectacle and other KPipeWire-using software now use the correct render device with multi-GPU systems, so the resulting recordings are always correct and valid. (Marsh Land, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=518008"&gt;KDE Bugzilla #518008&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Implemented a “multi-GPU swapchain” for KWin, which unlocks future performance gains with multi-GPU use cases and Vulkan support. (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8926"&gt;kwin MR #8926&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved the System Monitor app and widgets’ ability to detect multiple GPUs. (Michael Bauer, &lt;a href="https://invent.kde.org/plasma/ksystemstats/-/merge_requests/130"&gt;ksystemstats MR #130&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/ksystemstats/-/merge_requests/132"&gt;#132&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made the System Monitor app and widgets no longer ignore fully-encrypted disks and RAID elements for the purposes of gathering disk I/O statistics. (Christoph Cullmann, &lt;a href="https://invent.kde.org/plasma/ksystemstats/-/merge_requests/86"&gt;ksystemstats MR #86&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Improved performance for the &lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; switcher while the “Highlight Window” effect is on (as it is by default) and there are a lot of minimized windows. (Sushi Trash, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8997"&gt;kwin MR #8997&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="wayland-148"&gt;Wayland 1.48&lt;/h3&gt;
&lt;p&gt;After over 6 years in development, the Wayland session restore protocol is complete and merged! KWin already has a &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8985"&gt;draft implementation&lt;/a&gt;, so we should start to see some serious movement on this long-standing topic soon. (Jonas Ådahl and many others, &lt;a href="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/18"&gt;wayland-protocols MR #18&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>[SoK 2026] Final Update for 'Automating Promo Data Collection' Task</title><link>https://blogs.kde.org/2026/03/27/sok-2026-final-update-for-automating-promo-data-collection-task/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><author>CJ Nguyen</author><guid>https://blogs.kde.org/2026/03/27/sok-2026-final-update-for-automating-promo-data-collection-task/</guid><description>&lt;p&gt;Hi all! Just finished up the last bit of work for my Season of KDE task of automating data collection for the KDE promotional team.&lt;/p&gt;
&lt;p&gt;Since the &lt;a href="https://blogs.kde.org/2026/02/18/sok-2026-midterm-update-for-automating-promo-data-collection-task/"&gt;midterm blogpost&lt;/a&gt; I've been assigned no new tasks.
That means my final deliverables are a &lt;a href="https://invent.kde.org/cjnguyen/social_medial_follower_posts_scraper"&gt;follower/post count scraping script&lt;/a&gt; for specific social media websites, a &lt;a href="https://invent.kde.org/cjnguyen/reddit_insights_scraper"&gt;Reddit Insights page scraper&lt;/a&gt; that totals weekly insight data for a given subreddit, and &lt;a href="https://invent.kde.org/cjnguyen/google-alerts-evaluator"&gt;an article evaluation script&lt;/a&gt; that reads articles found by the Google Alerts system and evaluates their sentiment on KDE and its software.&lt;/p&gt;
&lt;h2 id="follower-and-post-counts-scraper"&gt;Follower and post counts scraper&lt;/h2&gt;
&lt;p&gt;Nothing much has changed here outside of some better error handling, consistency in argument help strings, and improved readability of log messages.
The script has run well on its weekly timer and seems to show no signs of giving up.
I do think I can improve it by making it more extensible to accommodate the scrubbing of new websites and accounts, but as of now it functions well for the links we're most worried about.&lt;/p&gt;
&lt;h2 id="reddit-insights-page-scraper"&gt;Reddit Insights page scraper&lt;/h2&gt;
&lt;p&gt;In the prior blogpost I mentioned worries about getting the script to run on a headless server.
The script has since been made capable of running headlessly through use of a Docker image which wraps the program run with an Xvfb display server.
&lt;a href="https://x.org/releases/X11R7.7/doc/man/man1/Xvfb.1.xhtml"&gt;Xvfb&lt;/a&gt; enables this by running display requirements in virtual memory, allowing for the use of headful software in a headless environment.&lt;/p&gt;
&lt;p&gt;Shoutouts to &lt;a href="https://github.com/seanpianka/docker-python-xvfb-selenium-chrome-firefox"&gt;Sean Pianka's repo&lt;/a&gt; containing dockerfiles used to run Xvfb-wrapped Selenium scripts and &lt;a href="https://github.com/SeleniumHQ/docker-selenium"&gt;Selenium's own Docker images&lt;/a&gt; used for Selenium Grid server project.
Without those resources it would have taken me a lot longer to hack together the requirements for a Docker image that could run Selenium headfully.&lt;/p&gt;
&lt;p&gt;Along with the headless runs being solved, I also implemented plenty of bug fixes and improvements to user-facing messages.
Many of the bugs came from not properly exiting Selenium during handled errors which I found out from the server having hundreds of open Firefox instances.
Hopefully I've cleaned all those up.&lt;/p&gt;
&lt;h2 id="google-alerts-evaluator"&gt;Google Alerts evaluator&lt;/h2&gt;
&lt;p&gt;This task was a fairly large undertaking involving plenty of research and implementation steps.
There were three major requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Develop a pipeline to take in Google Alerts emails and pre-process them into articles the model can read.&lt;/li&gt;
&lt;li&gt;Evaluate lightweight sentiment analysis models that can run on a server for their ability to analyze articles on KDE products.&lt;/li&gt;
&lt;li&gt;Parse model output into a human-readable and easy to work with data format.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The final result is a pipeline that&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Reads Google Alerts emails&lt;/li&gt;
&lt;li&gt;Pre-processes the articles into Markdown files for model reading&lt;/li&gt;
&lt;li&gt;Feeds them to a local LLM configured to provide sentiment analysis output&lt;/li&gt;
&lt;li&gt;Takes the LLM output and sends it into a CSV file (if possible)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can see how this task could take a lot of time out of people, so hopefully this pipeline can significantly alleviate that time spent.&lt;/p&gt;
&lt;h3 id="google-alerts-email-reading-and-processing"&gt;Google Alerts email reading and processing&lt;/h3&gt;
&lt;p&gt;This was no issue as Google Alerts are all sent through Gmail and Google itself provides a &lt;a href="https://developers.google.com/workspace/gmail/api/guides"&gt;very useable Gmail API&lt;/a&gt; for extracting emails from Gmail accounts.
After generating the required credentials, fetching emails was as easy as using tools built specifically for this job in a &lt;a href="https://pypi.org/project/google-api-python-client/"&gt;Python package that contained bindings&lt;/a&gt; for the Gmail API in Python.
The emails were all formatted in XML, so past experience with webscraping from the last two tasks played a part in making fetching article links from the emails painless to implement.
After the article links were extracted from the emails, their contents were then fetched in Markdown format for use with the decided model.&lt;/p&gt;
&lt;h3 id="model-evaluation"&gt;Model evaluation&lt;/h3&gt;
&lt;p&gt;We very quickly looked towards some local large-language models (LLMs) to serve the sentiment analysis task.
There were more than a few sentiment analysis fields that would be difficult for more basic models and it simplified implementation greatly.
After the evaluation of some small-footprint models, by far the best at both conforming to the desired output format and performing sentiment analysis on the articles was Qwen3 with 4 billion parameters.
It is lightweight enough to run on an older CPU in decent time, and while it doesn't agree amazingly with human judgement it more often errs on the side of caution, such as deciding more articles are related to KDE than aren't which wastes time but doesn't exclude relevant articles.&lt;/p&gt;
&lt;h3 id="designing-model-output-and-post-processing"&gt;Designing model output and post-processing&lt;/h3&gt;
&lt;p&gt;It turns out that LLMs come in different flavors, and some, specifically instruct models, are much better at conforming to instructions than others.
Many attempts were made to make other types of models provide output in a strict format and, if you need specific output, it's a headache you should definitely consider avoiding by choosing instruct models from the start.&lt;/p&gt;
&lt;p&gt;An instruct model coupled with a well-constructed system prompt (the meta prompt that sets initial instructions for the model) and grammar file &lt;a href="https://github.com/ggml-org/llama.cpp/blob/master/grammars/README.md"&gt;written in GBNF format&lt;/a&gt; can cause model output to be very predictable.
The system prompt written for this task is specifically constructed to bound model output by asking it to output sentiment analysis features in a Python formatted array of strings.
Even with the above methods, instruct models still do botch output occasionally, so the script contains plenty of post-processing and error handling steps before model output is processed into the output CSV file.&lt;/p&gt;
&lt;h2 id="experience-and-lessons-learned"&gt;Experience and lessons learned&lt;/h2&gt;
&lt;p&gt;I've learned a significant amount about web scraping and how to navigate data troubles.
I'm definitely a lot more confident about using developer webtools, HTML processing, and browser automation frameworks as a result of my SoK experience.
Also after working on the Google Alerts sentiment analysis task, and I certainly feel more educated on AI topics and how they are used and deployed.&lt;/p&gt;
&lt;p&gt;My project was a little unusual in that I wasn't working on an existing KDE software but utility scripts that were built from ground-up for KDE community members.
This made things fun through the freedom I had with implementing solutions, but I feel the scripts are not fully developed or as problem-free as possible.
I'd hate to just leave them as is while feeling that way, so I'll continue working on the already made scripts as well as new ones so long as I can help out.&lt;/p&gt;
&lt;p&gt;Huge thanks to &lt;a href="https://invent.kde.org/paulb"&gt;Paul Brown&lt;/a&gt; for mentoring me through this project and being a pleasure to work with, as well as the KDE community for hosting this great event.
I had a lot of fun working on these scripts and am glad I could help out by contributing something to this awesome community.&lt;/p&gt;</description></item><item><title>Season of KDE 2026: Wrapping up</title><link>https://blogs.kde.org/2026/03/25/season-of-kde-2026-wrapping-up/</link><pubDate>Wed, 25 Mar 2026 00:00:00 +0000</pubDate><author>Siddharth Chopra</author><guid>https://blogs.kde.org/2026/03/25/season-of-kde-2026-wrapping-up/</guid><description>&lt;p&gt;Greetings!&lt;/p&gt;
&lt;p&gt;As we're nearing the end of SoK 2026, I am writing to share my experience and progress since my &lt;a href="https://blogs.kde.org/2026/02/14/season-of-kde-2026-my-journey-with-marknote/"&gt;previous blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The second half of my SoK project has been a real learning experience for me, about how contributions to KDE and open-source communities in general work. I also learnt the importance of thorough testing, bug fixing, and polishing that is required before shipping any software.&lt;/p&gt;
&lt;h3 id="technical-update-and-challenges-faced"&gt;Technical update and challenges faced&lt;/h3&gt;
&lt;p&gt;Till the halfway mark, I was able to complete a rough working version of the source mode editor. But after feedback from my mentor, I realized that a lot of work was still left to be done.&lt;/p&gt;
&lt;p&gt;Firstly, there were a lot of repeated lines of code in my solution, as I had essentially split the existing editor into two - the rich editor and the raw editor. This meant that a lot of the functionality was common between the two editors, and I had re-used existing code for that. This was true for both the QML pages and the C++ document handlers.
As I now realize, that would have been a nightmare for maintainability, as any single fix or change would have to be made in two places.&lt;/p&gt;
&lt;p&gt;The fix for the C++ part seemed to be obvious: to use inheritance. So I decided to make the &lt;code&gt;RichDocumentHandler&lt;/code&gt; and &lt;code&gt;RawDocumentHandler&lt;/code&gt; inherit from a common parent, the &lt;code&gt;DocumentHandler&lt;/code&gt;. &lt;code&gt;DocumentHandler&lt;/code&gt; now contained all the common methods, significantly reducing repeated lines of code.&lt;/p&gt;
&lt;p&gt;Similarly on the QML side, I made a parent component, &lt;code&gt;EditPage&lt;/code&gt;, and made the Rich and Raw edit pages inherit from it. This caused some issues (mostly related to property sharing between components) that were eventually fixed.&lt;/p&gt;
&lt;p&gt;A major issue I faced was caused by the fact that my MR essentially removed the existing &lt;code&gt;EditPage.qml&lt;/code&gt; and &lt;code&gt;documenthandler.cpp&lt;/code&gt; (although files with the same name are still present, they serve different purposes). Their contents were divided into two files - the rich and raw versions respectively.
But while I was working on my feature, other contributors were still modifying the old files. Git can't handle this automatically, because the old file is in a way completely changed. This meant that I had to manually go through each commit to the old files, and move the changes accordingly to the new files.
This proved to be a major headache, and caused me (and even Carl) to spend considerable time manually rebasing.
So when finally the feature was merged, it was a sigh of relief, as we wouldn't need to manually maintain it anymore!&lt;/p&gt;
&lt;p&gt;Apart from this, I also added a spell-checking capability to the editor, using Sonnet.&lt;/p&gt;
&lt;h3 id="demo"&gt;Demo&lt;/h3&gt;

 


&lt;figure class="text-center ratio ratio-16x9" style=""&gt;
 &lt;video controls&gt;&lt;source src="%25!s%28%3cnil%3e%29vid2.webm" type="video/mp4" /&gt;&lt;/video&gt;&lt;/figure&gt;

&lt;h3 id="learning-and-experience"&gt;Learning and experience&lt;/h3&gt;
&lt;p&gt;I was grateful to see my work get published in Marknote 1.5 - and also felt a responsibility at the same time. Source mode is an asset for the app, but at the same time any bugs in my work are also a liability!&lt;/p&gt;
&lt;p&gt;I learnt how a professional application is different from a hobby project, and how the quality and rigour of work should reflect that.&lt;/p&gt;
&lt;p&gt;It was a really fun experience working with the KDE community and I'd like to thank my mentor &lt;a href="https://invent.kde.org/carlschwan"&gt;Carl Schwan&lt;/a&gt; for always being there to help!&lt;/p&gt;
&lt;p&gt;SoK has been a great first stepping stone to introduce me to the community, and I'm looking forward to contributing to Marknote and other apps even after the program!&lt;/p&gt;</description></item><item><title>KIO S3 1.0.1</title><link>https://blogs.kde.org/2026/03/24/kio-s3-1.0.1/</link><pubDate>Tue, 24 Mar 2026 07:00:00 +0000</pubDate><author>Carl Schwan</author><guid>https://blogs.kde.org/2026/03/24/kio-s3-1.0.1/</guid><description>&lt;p&gt;KIO S3 1.0.1 is out! KIO S3 is a KIO worker that allows you to browse and manage files stored
in Amazon S3 and S3-compatible storage services (such as Cloudflare R2, DigitalOcean
Spaces, MinIO, and others) directly from Dolphin and other KDE applications.&lt;/p&gt;
&lt;p&gt;This release is just a small bug fix release. In particular we fixed renaming S3 profiles and implement &lt;code&gt;mkdir&lt;/code&gt; operations in a more standard way (compatible with other S3 file browsers).&lt;/p&gt;
&lt;h2 id="download"&gt;Download&lt;/h2&gt;
&lt;p&gt;You can find the package on
&lt;a href="https://download.kde.org/stable/kio-s3/kio-s3-1.0.1.tar.xz.mirrorlist"&gt;download.kde.org&lt;/a&gt;
and it has been signed with Carl Schwan's &lt;a href="https://carlschwan.eu/gpg-02325448204e452a/"&gt;GPG key&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Marknote 1.5.2</title><link>https://blogs.kde.org/2026/03/24/marknote-1.5.2/</link><pubDate>Tue, 24 Mar 2026 00:00:00 +0000</pubDate><author>Hunterx</author><guid>https://blogs.kde.org/2026/03/24/marknote-1.5.2/</guid><description>&lt;p&gt;Hello again! Welcome to another bugfix release. This update is highly
recommended, as it tackles a few critical issues to keep the app running
smoothly.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Resolved a crash that occurred when creating your first notebook.&lt;/li&gt;
&lt;li&gt;Fixed an issue that prevented notebooks from being removed.&lt;/li&gt;
&lt;li&gt;Corrected a glitch allowing notes to be drag-and-dropped through quick
sketches.&lt;/li&gt;
&lt;li&gt;Note sorting is functioning as intended now.&lt;/li&gt;
&lt;li&gt;Restored the undo and redo buttons when a single note is open.&lt;/li&gt;
&lt;li&gt;Added the &amp;quot;Clear&amp;quot; button to allow removing content from the quick sketches.&lt;/li&gt;
&lt;li&gt;Added several minor background improvements for better overall stability.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="get-marknote"&gt;Get Marknote&lt;/h2&gt;
&lt;p&gt;We encourage everyone to update as soon as possible. You can grab the latest
version via &lt;a href="https://flathub.org/en/apps/org.kde.marknote"&gt;Flatpak&lt;/a&gt;, or your
favorite package manager.&lt;/p&gt;
&lt;h2 id="packager-section"&gt;Packager Section&lt;/h2&gt;
&lt;p&gt;You can find the package on
&lt;a href="https://download.kde.org/stable/marknote/marknote-1.5.2.tar.xz.mirrorlist"&gt;download.kde.org&lt;/a&gt;
and it has been signed with &lt;a href="https://carlschwan.eu/gpg-02325448204e452a/"&gt;Carl Schwan's GPG key&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>This Week in Plasma: Time Zone Offsets and Type-Ahead on the Desktop</title><link>https://blogs.kde.org/2026/03/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/</link><pubDate>Sat, 21 Mar 2026 00:00:01 +0000</pubDate><author>Nate Graham, and John Veness</author><guid>https://blogs.kde.org/2026/03/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/</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 several new features landed, in addition to a number of user interface improvements and some nice performance improvements and bug fixes. Check ‘em out:&lt;/p&gt;
&lt;h2 id="notable-new-features"&gt;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;For each additional time zone you add to the Digital Clock widget, it now also shows how far forward or behind that time zone is compared to yours. (Nate Graham, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6417"&gt;plasma-workspace MR #6417&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/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/time-zones-after.png" alt="After" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/time-zones-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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;p&gt;If you disable the feature to invoke KRunner by typing on the desktop, instead typing on the desktop invokes “type-ahead”, which allows selecting files by typing the first letter or two of their names. (Guillermo Steren, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=427961"&gt;KDE Bugzilla #427961&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;You can now reverse the ordering of items in the System Tray widget. (Nathaniel Krebs, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517016"&gt;KDE Bugzilla #517016&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-67-1"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Discover now sorts app lists by number of reviews by default, resulting in vastly more relevant results while browsing rather than searching. The old rating-based sorting method is still available, of course. (Nate Graham, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1274"&gt;discover MR #1274&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/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/discover-games-after.png" alt="After" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/discover-games-before.png" alt="Before" lazy class="rounded"&gt;
 &lt;a class="d-block text-center mt-2" 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;p&gt;Discover now filters out non-apps from its home page, preventing death spirals of negativity where people would leave 1-star reviews saying they were broken (not being launchable apps, the “Launch” button wouldn’t work), causing them to move up higher in the list. (Nate Graham, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1287"&gt;discover MR #1287&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;System Settings and KWin now consistently use the word “pointer” to refer to the mouse/touchpad pointer. (Philipp Kiemle, &lt;a href="https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/6425"&gt;plasma-workspace MR #6425&lt;/a&gt; and &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8982"&gt;kwin MR #8982&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Screen un-dimming is now faster than dimming, since un-dimming would mean you’re ready to use the system again. (Kai Uwe Broulik, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8963"&gt;kwin MR #8963&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The currently-active task in a grouped task tooltip now has bold text, to help you pick it out. (Christoph Wolk, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516278"&gt;KDE Bugzilla #516278&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Labels for Bluetooth devices in the System Tray widget have been re-arranged so that you can always see the battery level no matter how long the device name is. (Kai Uwe Broulik, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=515090"&gt;KDE Bugzilla #515090&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The Global Menu widget’s menu highlights are now rounded consistently with the highlights for other menus. (Akseli Lahtinen, &lt;a href="https://invent.kde.org/plasma/libplasma/-/merge_requests/1459"&gt;libplasma MR #1459&lt;/a&gt;)&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Darth Vader says “I have rounded the corners! Pray I don’t round them any further.”" src="https://blogs.kde.org/2026/03/21/this-week-in-plasma-time-zone-offsets-and-type-ahead-on-the-desktop/i-have-rounded-the-corners.jpg"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;You can now set a modifier key all on its own to focus a Plasma panel. (Christoph Wolk, &lt;a href="https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/3547"&gt;plasma-desktop MR #3547&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Plasma’s panel configuration window now only offers opacity settings if the active Plasma style supports it. (Filip Fila, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516042"&gt;KDE Bugzilla #516042&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-656"&gt;Plasma 6.5.6&lt;/h3&gt;
&lt;p&gt;Fixed a bug that distorted the image on certain vertically-oriented monitors while displaying the Plasma Login Manager. (Anton Gobulev, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517409"&gt;KDE Bugzilla #517409&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-663"&gt;Plasma 6.6.3&lt;/h3&gt;
&lt;p&gt;Fixed a case where KWin could crash after changing the Zoom effect’s settings in certain specific ways. (Ritchie Frodomar, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517073"&gt;KDE Bugzilla #517073&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed two cases where KWin could crash when misconfigured or given broken content. (Nicolas Fella, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517137"&gt;KDE Bugzilla #517137&lt;/a&gt; and &lt;a href="https://bugs.kde.org/show_bug.cgi?id=517711"&gt;KDE Bugzilla #517711&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Fixed a few cases where KDE’s printing management system could crash due to faulty information from printers about their ink levels. (Mike Noe, &lt;a href="https://invent.kde.org/plasma/print-manager/-/merge_requests/311"&gt;print-manager MR #311&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The tooltip for the Refresh button in Discover’s Updates section no longer says “F5 (QQuickShortcut(gobbledygook))”, fixing an unexpected side-effect of a recent KDE Frameworks update. (Akseli Lahtinen, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516392"&gt;KDE Bugzilla #516392&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-664"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;Fixed an issue that made the “bounce keys” accessibility feature break key repeat in the Brave browser. (Ritchie Frodomar, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=513268"&gt;KDE Bugzilla #513268&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;In the shortcut conflict dialog opened by System Settings’ Shortcuts page, the “Re-assign” action now works. (Dávid Bácskay-Nagy, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=471370"&gt;KDE Bugzilla #471370&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Made the update count in Discover’s notifications more accurate. (Akseli Lahtinen, &lt;a href="https://invent.kde.org/plasma/discover/-/merge_requests/1284"&gt;discover MR #1284&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="frameworks-625"&gt;Frameworks 6.25&lt;/h3&gt;
&lt;p&gt;Reverted an innocent-looking change that broke icons for some apps like OBS and Ungoogled Chromium due to an &lt;a href="https://qt-project.atlassian.net/browse/QTBUG-118854"&gt;underlying deficiency in the Qt toolkit’s SVG renderer&lt;/a&gt;. (Nate Graham, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516007"&gt;KDE Bugzilla #516007&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-664-1"&gt;Plasma 6.6.4&lt;/h3&gt;
&lt;p&gt;Reduced CPU and GPU load for full-screen windows (also known as “direct scan-out”) on screens without the pointer on them. (Xaver Hugl, &lt;a href="https://bugs.kde.org/show_bug.cgi?id=516808"&gt;KDE Bugzilla #516808&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="plasma-67-2"&gt;Plasma 6.7&lt;/h3&gt;
&lt;p&gt;Added support for “3D LUTs” in KWin, which reduces resource usage on GPUs that support color pipelines in hardware. (Xaver Hugl, &lt;a href="https://invent.kde.org/plasma/kwin/-/merge_requests/8475"&gt;kwin MR #8475&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;The Networks widget now only fetches network speed information while that information is visible. (Ser Freedman, &lt;a href="https://invent.kde.org/plasma/plasma-nm/-/merge_requests/544"&gt;plasma-nm MR #544&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Stopped creating unnecessary OpenGL contexts for apps that don’t use OpenGL, which reduces their memory usage by 10-15 MB or more per app and also speeds up launch times. (Vlad Zahorodnii, &lt;a href="https://invent.kde.org/plasma/plasma-integration/-/merge_requests/209"&gt;plasma-integration MR #209&lt;/a&gt;)&lt;/p&gt;
&lt;h3 id="qt-6103"&gt;Qt 6.10.3&lt;/h3&gt;
&lt;p&gt;Fixed an issue that broke HDR support while using the Vulkan renderer on certain hardware. (Joshua Goins, &lt;a href="https://codereview.qt-project.org/c/qt/qtbase/&amp;#43;/711621"&gt;Qt patch #711621&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 href="https://matrix.to/#/%23this-week-kde-apps:kde.org"&gt;the Matrix room&lt;/a&gt; and &lt;a 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 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 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 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></item><item><title>Season of KDE 2026 - Improving mentorship.kde.org for better onboarding of new contributors</title><link>https://blogs.kde.org/2026/03/21/season-of-kde-2026-improving-mentorship.kde.org-for-better-onboarding-of-new-contributors/</link><pubDate>Sat, 21 Mar 2026 00:00:00 +0000</pubDate><author>Aryan Rai</author><guid>https://blogs.kde.org/2026/03/21/season-of-kde-2026-improving-mentorship.kde.org-for-better-onboarding-of-new-contributors/</guid><description>&lt;p&gt;Greeting everyone! I am Aryan.&lt;/p&gt;
&lt;p&gt;I have only just started my open source journey and was glad to be a part of SOK program. I really learned a lot which I think I otherwise would have not. With this blog I will be sharing about the project I worked on and also my learnings and future endeavour.&lt;/p&gt;
&lt;p&gt;For the last 2 months me and my fellow partner &lt;a href="https://invent.kde.org/decimatrix"&gt;Advaith SK&lt;/a&gt; worked on ways on how to improve the existing mentorship.kde.org so that it is more accessible and user friendly for new contributors as well as we tried to structure the internals of the website for better code readability and resuabililty.&lt;/p&gt;
&lt;h2 id="why-was-this-project-relevant"&gt;Why was this project relevant&lt;/h2&gt;
&lt;p&gt;mentorship.kde.org is basically the first page a new contributor visits when exploring about KDE. So it is very important for the website to not overwhelm the new contrbutor but provide all the relevant information and links in a ordered and systematic way.&lt;/p&gt;
&lt;h2 id="what-problems-did-i-identify"&gt;What problems did I identify&lt;/h2&gt;
&lt;p&gt;We noticed a gap in the project, KDE organizes many programs throughout the year for mentoring and developing more and more contributors. But we noticed that there was no single page that lists all the relevant programs a candidate might be interested in.
Moreover on the developer's side we noticed that the repo of mentorship.kde.org is using many different cards for displaying its data throughout, and each card was schematically different than the others but in the end all of them were pretty much serving the same purpose.&lt;/p&gt;
&lt;h2 id="what-were-the-solutions"&gt;What were the solutions&lt;/h2&gt;
&lt;p&gt;To solve this, I built a separate /programs page for the website, whose task is to only list all the programs that KDE organizes throughout the year.
And to solve the developer's side problem, I standardized the cards. So basically for each component using their own rules for displaying cards, what I changed was I implemented a central card.html and card.scss which governs all cards. In case of some variations required I introduced the $variants feature of Hugo to carefully keep the uniqueness of cards required for each page.&lt;/p&gt;
&lt;h2 id="merge-requests"&gt;Merge requests&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://invent.kde.org/paulb/kde-mentor-programs-g-so-c-2025-project/-/merge_requests/11"&gt;Initial standardisation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://invent.kde.org/paulb/kde-mentor-programs-g-so-c-2025-project/-/merge_requests/17"&gt;Programs page&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="miscellaneous"&gt;Miscellaneous&lt;/h2&gt;
&lt;p&gt;I also noticed that in the resoruces page, the resources listed are relatively few, moreover the hyperlinks provided were also not updated. So I added more resources there and also updated the broken links present previously.&lt;/p&gt;
&lt;h2 id="future-work"&gt;Future work&lt;/h2&gt;
&lt;p&gt;To attract more new contributors, in future we can also extend our project to have a hall of fame section where there is list of blogs of all graduated students of a particular program.&lt;/p&gt;
&lt;h2 id="final-thoughts"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;A big thank you to my mentors, &lt;a href="https://invent.kde.org/drowsywings"&gt;&lt;strong&gt;drowsywings&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://invent.kde.org/paulb"&gt;&lt;strong&gt;paulb&lt;/strong&gt;&lt;/a&gt;, for thoughtful guidance and constant support throughout the project.&lt;/p&gt;
&lt;p&gt;I have grown in this season with more confidence, more curiosity, and even more appreciation for the people behind free software infrastructure. I will be proud even if this work helps just one curious contributor to get onboard with the KDE ecosystem.&lt;/p&gt;</description></item><item><title>Marknote 1.5.1</title><link>https://blogs.kde.org/2026/03/20/marknote-1.5.1/</link><pubDate>Fri, 20 Mar 2026 07:00:00 +0000</pubDate><author>Hunterx</author><guid>https://blogs.kde.org/2026/03/20/marknote-1.5.1/</guid><description>&lt;p&gt;Last week we released version 1.5 of Marknote, a fast and free
alternative to existing slow and pay-walled note-taking apps. Today we announce a release that fixes some issues and improves a few things across the app.&lt;/p&gt;
&lt;figure&gt;
 &lt;img class="img-fluid" alt="Marknote v1.5.1" src="https://blogs.kde.org/2026/03/20/marknote-1.5.1/Intro.png"
 style="max-width: 100%; height: auto"
 /&gt;
&lt;/figure&gt;
&lt;p&gt;So here is a list of the most notable changes and improvements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pasting text in Source mode no longer clears document content.&lt;/li&gt;
&lt;li&gt;Pasting images from clipboard works really well too.&lt;/li&gt;
&lt;li&gt;Find and replace text shortcuts are brought back.&lt;/li&gt;
&lt;li&gt;Note names are now properly elided.&lt;/li&gt;
&lt;li&gt;Markdown syntax highlighter is added to the Source mode.&lt;/li&gt;
&lt;li&gt;Code blocks now have their own background.&lt;/li&gt;
&lt;li&gt;Items in the Table of Contents will follow active paragraphs.&lt;/li&gt;
&lt;li&gt;Edit button is shown in compact mode (for when the format bar is hidden).&lt;/li&gt;
&lt;li&gt;Fullscreen mode is brought back for those who need full immersion
(Ctrl+Shift+F on Linux or Alt+Enter on Windows).&lt;/li&gt;
&lt;li&gt;The KRunner plugin now works pretty well inside Flatpak.&lt;/li&gt;
&lt;li&gt;Single note loading is much faster now.&lt;/li&gt;
&lt;li&gt;We optimized image loading and reduced video memory usage by almost
50%.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-future-is-bright"&gt;The future is bright&lt;/h2&gt;
&lt;p&gt;To address some of the questions since the last release:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Yes, code blocks will have proper highlighting in upcoming versions (please
keep in mind that we don't have the staff of a large enterprise company, and
we probably don't need one either ;)).&lt;/li&gt;
&lt;li&gt;Yes again, quotes and some embedded content types are planned to be added too.&lt;/li&gt;
&lt;li&gt;Yes once more, cross-platform support is set to be improved. We will release
stable versions for all the major platforms once they get through proper
testing.&lt;/li&gt;
&lt;li&gt;And one more thing: the all-new and shiny block editor is a work in progress,
and it will be done when it's done™.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="thank-you-all"&gt;Thank you all&lt;/h2&gt;
&lt;p&gt;Thanks to everyone for making Marknote your software of choice. We will make sure to keep Marknote up and running at lightning speed for everyone. As always, you can get the latest version of the app via &lt;a href="https://flathub.org/en/apps/org.kde.marknote"&gt;Flatpak&lt;/a&gt;, &lt;a href="https://snapcraft.io/marknote"&gt;Snapcraft&lt;/a&gt; or your favorite package manager. Stay tuned!&lt;/p&gt;</description></item><item><title>[SoK 2026] Appium Testing for Lokalize</title><link>https://blogs.kde.org/2026/03/20/sok-appium-testing-lokalize/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><author>Vishesh Srivastava</author><guid>https://blogs.kde.org/2026/03/20/sok-appium-testing-lokalize/</guid><description>&lt;p&gt;Hey there! I'm Vishesh Srivastava, and this is the full write-up for my SoK 2026 project: adding Appium-based UI tests to &lt;a href="https://apps.kde.org/lokalize/"&gt;Lokalize&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="so-whats-lokalize"&gt;So what's Lokalize?&lt;/h2&gt;
&lt;p&gt;It's KDE's translation tool - the app translators use to work with PO files and manage translation projects. It already had unit tests, but no UI tests. So the goal of this project was to setup a UI testing framework using Appium.&lt;/p&gt;
&lt;h2 id="the-first-task-bug-514468"&gt;The first task: Bug 514468&lt;/h2&gt;
&lt;p&gt;Before Appium work started, my first task was &lt;a href="https://bugs.kde.org/show_bug.cgi?id=514468"&gt;Bug 514468&lt;/a&gt;. The issue was that copyright year strings in PO headers could become very long, like:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;2006, 2010, 2011, 2012, 2013, 2014, 2015, 2017, 2018, 2019, 2020, 2021&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;instead of the shorter:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;2006, 2010-2015, 2017-2021&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I was asked to write a failing test first, so I added a placeholder &lt;code&gt;simplifyYearString&lt;/code&gt; function and wrote a unit test for the expected collapsed output. At first it was pushed with &lt;code&gt;QEXPECT_FAIL&lt;/code&gt;, since the actual implementation was meant to be done separately.&lt;/p&gt;
&lt;p&gt;This was small compared to the main project, but it helped me get comfortable with setting up KDE's build system and how tests are added to Lokalize.&lt;/p&gt;
&lt;h2 id="building-the-appium-setup-from-scratch"&gt;Building the Appium setup from scratch&lt;/h2&gt;
&lt;p&gt;Lokalize had no Appium setup at all, so this part started from zero.&lt;/p&gt;
&lt;p&gt;The first tests were simple:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;simple_open.py&lt;/code&gt; just opens Lokalize and closes it&lt;/li&gt;
&lt;li&gt;&lt;code&gt;file_open.py&lt;/code&gt; opens the File menu and checks that the open dialog path works&lt;/li&gt;
&lt;li&gt;&lt;code&gt;workflowtest.py&lt;/code&gt; simulates an actual translator workflow&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That last one was the main test I was aiming for. It opens a &lt;code&gt;.po&lt;/code&gt; file with untranslated entries, types translations into the editor, uses &amp;quot;Approve and Go Next&amp;quot;, checks that the UI updates properly, verifies the status bar reaches &lt;code&gt;Not ready: 0&lt;/code&gt;, and finally saves the file.&lt;/p&gt;
&lt;p&gt;That made it a proper end-to-end test.&lt;/p&gt;
&lt;h2 id="problem-encountered-in-the-last-test"&gt;Problem encountered in the last test&lt;/h2&gt;
&lt;p&gt;Appium depends on accessibility information to find and interact with widgets. Lokalize's editor fields did not expose accessibility ids for Appium to call them (found using &lt;a href="https://apps.kde.org/accessibilityinspector/"&gt;accessibilityinspector&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;So I had to make changes in &lt;code&gt;editorview.cpp&lt;/code&gt; to add object names and accessible names to the widgets. Without that, the test scripts could open the app and click menus, but they were basically blind when it came to the translation editor.&lt;/p&gt;
&lt;p&gt;Other KDE apps with Appium tests, like Dolphin and KCalc, had tests which used these and were useful references here.&lt;/p&gt;
&lt;p&gt;Below is a demo of this working:&lt;/p&gt;
&lt;video controls preload="metadata" width="800"&gt;
 &lt;source src="Demo_appium.mp4" type="video/mp4"&gt;
&lt;/video&gt;
&lt;h2 id="making-it-run-with-the-rest-of-the-test-suite"&gt;Making it run with the rest of the test suite&lt;/h2&gt;
&lt;p&gt;The next step was integrating the Appium tests into CMake so they could run as part of Lokalize's normal test flow.&lt;/p&gt;
&lt;p&gt;I added an &lt;code&gt;appiumtests/CMakeLists.txt&lt;/code&gt; and a &lt;code&gt;BUILD_APPIUM_TESTS&lt;/code&gt; option, so the tests can be enabled and run through the normal KDE tooling:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kde-builder --run-tests lokalize --no-include-dependencies --no-src --cmake-options&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;-DBUILD_APPIUM_TESTS=ON&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That was important because UI tests are much less useful if they live outside the project's regular test workflow. The &lt;code&gt;BUILD_APPIUM_TESTS&lt;/code&gt; option was kept because it was not advised to run Appium tests in the CI/CD.&lt;/p&gt;
&lt;h3 id="another-issue-making-the-tests-independent-of-the-local-user-setup"&gt;Another issue: Making the tests independent of the local user setup&lt;/h3&gt;
&lt;p&gt;One issue was that on opening, Lokalize asked for a name and email address which I was earlier typing manually. This was undesired since tests had to be run without user intervention.&lt;/p&gt;
&lt;p&gt;So I added a file &lt;code&gt;test_support.py&lt;/code&gt;, that creates a temporary config directory, writes a minimal &lt;code&gt;lokalizerc&lt;/code&gt;, and launches Lokalize with that isolated configuration. That way the tests do not depend on my own existing settings or require any user input.&lt;/p&gt;
&lt;p&gt;I also reused that helper across the test files so they stopped repeating the same Appium setup code again and again.&lt;/p&gt;
&lt;h3 id="writing-a-failing-bug-test"&gt;Writing a failing bug test&lt;/h3&gt;
&lt;p&gt;After the main workflow test, I also added another Appium test for a real UI bug: after closing a project, translational tab menus should become disabled.&lt;/p&gt;
&lt;p&gt;This test is in &lt;code&gt;project_close.py&lt;/code&gt;. It opens a project, closes it, and then checks that menus like &lt;code&gt;Edit&lt;/code&gt;, &lt;code&gt;Go&lt;/code&gt;, and &lt;code&gt;Sync&lt;/code&gt; are disabled.&lt;/p&gt;
&lt;h3 id="fixing-how-the-tests-are-executed"&gt;Fixing how the tests are executed&lt;/h3&gt;
&lt;p&gt;At first, the Appium tests were being discovered and registered individually in CMake. The next task was to run them from a single &lt;code&gt;run_all.py&lt;/code&gt; runner. Now all the tests use a single KWin instance like they do in other projects like Dolphin.&lt;/p&gt;
&lt;p&gt;This also makes writing new tests simpler since adding a test just means adding a new line in the run_all.py. So instead of CMake looping over every Python file, it now calls the runner once.&lt;/p&gt;
&lt;p&gt;There was also one annoying issue here: &lt;code&gt;--run-tests&lt;/code&gt; was reporting success even when one of the Appium tests had failed when run manually. Because of that, I had to return &lt;code&gt;sys.exit(1)&lt;/code&gt; explicitly from the runner when the test result was not successful. Without that, the tests looked successful even after failing.&lt;/p&gt;
&lt;p&gt;Below is a demo of this working:&lt;/p&gt;
&lt;video controls preload="metadata" width="800"&gt;
 &lt;source src="Demo_appium_tests.mp4" type="video/mp4"&gt;
&lt;/video&gt;
&lt;h2 id="outcomes-achieved"&gt;Outcomes achieved&lt;/h2&gt;
&lt;p&gt;By the end of the project, Lokalize had:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a working Appium test setup&lt;/li&gt;
&lt;li&gt;basic tests for startup and opening files&lt;/li&gt;
&lt;li&gt;a full workflow test covering translation editing and saving&lt;/li&gt;
&lt;li&gt;helper files to make tests cleaner and independent of local user config&lt;/li&gt;
&lt;li&gt;integration into the normal test system through CMake&lt;/li&gt;
&lt;li&gt;a single test runner file&lt;/li&gt;
&lt;li&gt;documentation on how to run/write tests.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="final-thoughts"&gt;Final thoughts&lt;/h2&gt;
&lt;p&gt;This was a really enjoyable project. I got to work on Appium testing, the KDE build system, and a bit of bug hunting.&lt;/p&gt;
&lt;p&gt;Many thanks to &lt;a href="https://invent.kde.org/finw"&gt;Finley Watson&lt;/a&gt; for his guidance throughout the project and for helping whenever I got stuck.&lt;/p&gt;
&lt;p&gt;The best part for me is that the work is extendible. New Appium tests can be added without rebuilding the whole setup from scratch, which was the main point of the project in the first place.&lt;/p&gt;</description></item><item><title>Season of KDE - Midterm Blog</title><link>https://blogs.kde.org/2026/03/20/sok-midterm-keshav-nanda/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><author>Keshav-Nanda</author><guid>https://blogs.kde.org/2026/03/20/sok-midterm-keshav-nanda/</guid><description>&lt;p&gt;Hello world!&lt;/p&gt;
&lt;p&gt;My name is Keshav Nanda and I had the opportunity to work with &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty"&gt;Scripty&lt;/a&gt;, a KDE bot that extracts translatable strings from various KDE applications and sends them to KDE translators.&lt;/p&gt;
&lt;p&gt;I worked on the issue of standardizing translation reference paths across all KDE projects and this blog summarizes my progress up until the 4 week mark.&lt;/p&gt;
&lt;h2 id="week-1-and-week-2"&gt;Week 1 and Week 2&lt;/h2&gt;
&lt;p&gt;Couldn't get much work done as I was occupied with university exams.&lt;/p&gt;
&lt;h2 id="week-3"&gt;Week 3&lt;/h2&gt;
&lt;p&gt;Got my feet wet with the actual source code, went through &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty/-/merge_requests/90"&gt;MR 90&lt;/a&gt; and developed a basic understanding of the problem that needed to be solved, that is to ensure that all .po files generated by Scripty are relative to project root.&lt;/p&gt;
&lt;h2 id="week-4"&gt;Week 4&lt;/h2&gt;
&lt;p&gt;Helped my partner Aviral in testing his implementation of &lt;a href="https://invent.kde.org/sysadmin/l10n-scripty/-/merge_requests/116"&gt;merge request 116&lt;/a&gt; and added to the KDE projects he validated. This MR added a docker environment to standardize the testing process and made changes in &lt;code&gt;extract_metainfo.sh&lt;/code&gt; and &lt;code&gt;extract-messages.sh&lt;/code&gt; to enforce relative file paths.&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The first 4 weeks have been a great learning experience. I got familiar with Scripty's codebase, understood the core problem of inconsistent translation reference paths, and contributed to validating the fix. The goal going forward is to continue testing and work towards getting the changes merged. I want to thank my partner Aviral Singh and my mentor Finley Watson for the guidance and support throughout!&lt;/p&gt;
&lt;p&gt;Onwards and upwards!&lt;/p&gt;</description></item></channel></rss>