Skip to content

Saturday, 2 August 2025

Welcome to a new issue of This Week in Plasma!

Every week we cover the highlights of what’s happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.

This week something was merged for Plasma 6.5 that a lot of people have been wanting for a long time: automatic day/night theme switching! And that's not all; we’ve got more visual customizability on offer too, plus a bunch more UI improvements and bug fixes. Check it all out here:

Notable New Features

Plasma 6.5.0

You can now have Plasma automatically switch to a different Global Theme at night! (Vlad Zahorodnii, link)

System Settings Global Themes page showing settings to turn on day/night switching

You can now choose which Global Themes are shown on System Settings’ Quick Settings page, and turn on automatic day/night switching from there, too! (Vlad Zahorodnii, link)

System Settings Quick Settings page showing popup to allow selecting which Global Themes you want shown in the quick toggles

You can now choose to always see the light or dark variants of wallpapers that include both. Now there should be enough options for anyone: you can set dynamic wallpaper coloration to be based on the color scheme, based on the time of day, always light, or always dark. (David Redondo, link)

System Settings Wallpaper page showing the ability to register a preference for light or dark wallpapers

Notable UI Improvements

Plasma 6.4.4

If you’re a person who prefers to drag things to your panel itself rather than to a Task Manager widget, those panel icons are now removable via their context menus. (Niccolò Venerandi, link)

Plasma 6.5.0

On Wayland, files opened from KRunner in an already-running app now raise that app’s window as expected. (Kai Uwe Broulik, link)

On Wayland, the Orca screen reader now reads out changes to the Caps Lock state. (Nicolas Fella, link)

Moved System Settings’ Screen Edges pages into the Display & Monitor group, because it feels more natural to group it with screens than with the type of input device used to trigger its features. (Nate Graham, link)

If your system is set up for hibernation, you can now hibernate from the SDDM login screen. (Tobias Leupold, link)

Clicking “Connect” on a network in the Networks popup now closes any other open password fields for other networks, so there’s only one visible at a time. (Arnav Rawat, link)

Re-phrased the sorting/alignment options in Plasma’s desktop icon configuration window to make it clearer what they do. (Akseli Lahtinen, link)

Notable Bug Fixes

Plasma 6.4.4

Fixed a bug that could cause Plasma to freeze when spammed with many notifications containing images. (Paul Geerken, link)

Fixed a bug that could cause Plasma to crash while loading stuff. (Nicolas Fella, link)

Fixed a bug in Plasma’s desktop that prevented dragging-and-dropping things inside folders while the desktop was scrollable. (Akseli Lahtinen, link)

Fixed a bug that caused panel editing via drag-and-drop to break in hilarious/awful ways when using a right-to-left language like Arabic or Hebrew. (Niccolò Venerandi, link)

Fixed several bugs in Plasma’s desktop that would cause icons to shift around on their own due to changing the screen arrangement or having certain combinations of panel and desktop file alignment settings. (Akseli Lahtinen, link)

Fixed a bug in Discover that caused it to get confused about which version of a Flatpak app was considered unstable or outdated when the system has multiple Flatpak remotes set up. (Nicolas Fella, link)

Fixed two bugs involving renaming desktop files: one that made it impossible to rename symlinks to desktop files installed at the system level or generally without write permission, and another one that made rename jobs sometimes just kind of fail. (Akseli Lahtinen, link 1 and link 2)

Fixed a bug that prevented Plasma widget configuration windows from restoring their saved sizes as expected. (David Redondo, link)

Fixed a bug that caused you to have to leave System Settings’ Colors page and then go back to it after creating a copy of a color scheme, because it didn’t show up immediately. (Akseli Lahtinen, link)

Plasma 6.5.0

Fixed two cases where Plasma could crash in Activities-related functionality. (Daniel Hast, link 1 and link 2)

Fixed a bug in the free space checker that would cause it to inappropriately try to mount unmounted network shares defined in /etc/fstab, which could lead to hangs when there was no network connectivity. (Niccolò Venerandi, link)

Fixed a bug in System Settings’ Region & Language page that caused a visual glitch when using the system with a right-to-left language like Arabic or Hebrew. (Nate Graham, link)

Frameworks 6.17

Fixed a regression that made it impossible to drag files from Plasma’s desktop on one screen to another one. The fix for this also fixed some bugs in Dolphin, too. (Akseli Lahtinen, link 1 and link 2)

Qt 6.8.4

Fixed a Qt bug that caused KWin on X11 to sometimes consume excessive CPU resources when locking or turning off the screen. (Vlad Zahorodnii, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.5.0

Fixed a bug that could cause the plasmawindowed developer tool to crash when viewing the System Tray widget. (Chris Xiong, link)

How You Can Help

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

You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either; many other opportunities exist!

You can also help us by making a donation! A monetary contribution of any size will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

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

Friday, 1 August 2025

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


Europe’s Self Inflicted Cloud Crisis

Tags: tech, cloud, vendor-lockin, politics

A change in culture and political will is indeed necessary. The relationship between organisations and US cloud providers isn’t healthy.

https://berthub.eu/articles/posts/our-self-inflicted-cloud-crisis/


The Future is NOT Self-Hosted

Tags: tech, self-hosting, criticism

There is some truth to this. Self-hosting isn’t for everyone just for the skills and compromises it requires. We need more widely available solutions without the corporate overlords.

https://www.drewlyton.com/story/the-future-is-not-self-hosted/


A dive into open chat protocols

Tags: tech, foss, communication, xmpp, matrix

Very interesting stuff. This doesn’t give a very cheerful picture of the current state though. Can a XMPP revival be in the cards? That would be an interesting outcome.

https://wiki.alopex.li/ADiveIntoOpenChat


A month using XMPP (using Snikket) for every call and chat

Tags: tech, xmpp, messaging, foss, self-hosting

It’s nice to see there are turn key solutions for hosting your own XMPP server nowadays. And the community behind this one even improve on the mobile applications.

https://neilzone.co.uk/2023/08/a-month-using-xmpp-using-snikket-for-every-call-and-chat/


Ethersync

Tags: tech, tools, syncing, realtime, collaborative

Looks like a nice tool for real-time collaboration on files.

https://ethersync.github.io/ethersync/


I want to defend Wayland here…

Tags: tech, linux, graphics, wayland

That’s a good point too often overlooked by people complaining at Wayland. It indeed enable form factors and uses cases that we couldn’t address with X11.

https://ordinary.cafe/@technobaboo/114935252929285259


Loading credentials from Bitwarden with direnv

Tags: tech, secrets, shell, tools

This is a nice trick for keeping your secrets safe while having them handy when needed.

https://ergaster.org/posts/2025/07/28-direnv-bitwarden-integration/


The Bard and The Shell

Tags: tech, shell, learning, funny

Neat little introduction to use your shell properly.

https://journal.bsd.cafe/2025/07/28/the-bard-and-the-shell/


Heredocs Can Make Your Bash Scripts Self-Documenting

Tags: tech, shell, scripting, documentation

This is really a neat trick. We should have more such self-documenting scripts indeed.

https://holdtherobot.com/blog/heredocs-can-make-your-bash-scripts-self-documenting/


Using fortune to reinforce habits

Tags: tech, tools, command-line, learning, habits

This is indeed a nice way to setup some new habits on the command line.

https://www.judy.co.uk/blog/using-fortune-to-reinforce-habits/


Type safe handles in C++

Tags: tech, programming, design, type-systems, c++

This is still a valid approach. I regularly encounter cases where the type tag pattern would have been welcome.

https://www.ilikebigbits.com/2014_05_06_type_safe_handles.html


C++26 Reflections adventures & compile time UML

Tags: tech, c++, metaprogramming

This really unlocks interesting features in the C++ space.

https://www.reachablecode.com/2025/07/31/c26-reflections-adventures-compile-time-uml/


Perfecting anti-aliasing on signed distance functions

Tags: tech, shader, mathematics, graphics

Nice explanation on the options for anti-aliasing when rendering using SDFs

https://blog.pkh.me/p/44-perfecting-anti-aliasing-on-signed-distance-functions.html


Rewriting the heart of our sync engine

Tags: tech, architecture, syncing

Good insight into why Dropbox rewrote its sync engine for desktop clients.

https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine


Broccoli: Syncing faster by syncing less

Tags: tech, syncing, compression

A follow up on the Dropbox sync engine rewrite, or why they introduced brotli compression.

https://dropbox.tech/infrastructure/-broccoli–syncing-faster-by-syncing-less


The Big OOPs: Anatomy of a Thirty-five-year Mistake

Tags: tech, programming, architecture, object-oriented, type-systems, history

A talk from Casey Muratori who is pushing his ideas on software architecture. This one is very interesting on the long history detour it does. Shows well how we keep rediscovering stuff which sometimes go back to the early times of computer science.

https://www.youtube.com/watch?v=wo84LFzx5nI


Looking at TDD: An Academic Survey

Tags: tech, tests, tdd, research

A nice little survey of what the academia already had to say about TDD a few years ago. Clearly the outcome seems mostly positive.

https://medium.com/@jitterted/looking-at-tdd-an-academic-survey-956a80545713


YAGNI

Tags: tech, design, architecture, xp, agile

It’s likely the best explanation of the YAGNI acronym I know. Explains quite well when it applies or not.

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


WIP Limit Panic Sheet – what to do when you feel tempted to break the work-in-progress (WIP) limit

Tags: tech, agile, project-management, kanban

Nice check list, there’s more to project life than churning out tickets.

https://thought-bubble.co.uk/blog/2013/11/11/wip-limit-panic-sheet-what-to-do-when-you-feel-tempted-to-break-the-limit/


Enterprise Agility??

Tags: tech, agile, business, criticism

Looks like another certification circus is about to begin…

https://ronjeffries.com/articles/-w025/y/y/


Your Daily Scrum is Killing Your Team

Tags: tech, agile, project-management, team

Don’t just blindly apply dailies. Make sure they really solve a problem in your team.

https://blog.jbrains.ca/permalink/your-daily-scrum-is-killing-your-team


It’s an Experiment

Tags: tech, agile, project-management, change, habits

You have to be willing to experiment and adjust in order to truly be agile. Otherwise you indeed just do dailies and call yourself agile.

https://toolshed.com/2015/05/its-an-experiment.html


Retromat - Inspiration & plans for (agile) retrospectives

Tags: tech, agile, retrospective, tools

Neat tools to keep retrospective fresh. If people settle too much in habits they quickly become dull.

https://retromat.org/


The 3 Motivational Forces of Developers

Tags: tech, programming, team, motivation, management

This is still a good framework to think about what motivate developers in a team. Not everyone is the same.

https://www.bennorthrop.com/Essays/2013/developer-motivation.php


Crappy People versus Crappy Systems

Tags: management, hr

An oldie but still a good one. Yes, the people matter but even good people won’t strive in a badly designed system.

https://bobsutton.typepad.com/my_weblog/2006/08/crappy_people_v.html


Let’s Kill You a Billion Times to Make You Immortal

Tags: physics

Quantum mechanics and the many world theory really are playing with your brain. Funnily enough I read an excellent novel recently based on this principle.

https://www.youtube.com/watch?v=7wK4peez9zE



Bye for now!

Wednesday, 30 July 2025

The future is now!!

It’s been almost two years since my last update on this project, what changed? And if you aren’t familiar with what I’ve been working on, here’s a quick recap.

The hardware

Here is a graphics tablet I bought a few years ago now, the XP-Pen Artist 22R Pro:

Yeah this picture is years old by now, but it still looks the same…

It has a fatal flaw that a lot of non-Wacom tablets share though, it doesn’t work that well on Linux! To be more specific, it “works” but has a few problems:

  • You can’t rebind the pad buttons easily, because it starts in a “compatibility mode” that can only send pre-defined keyboard buttons.
  • Using the second stylus button prevents further stylus input. (Before I fixed that, I would train myself not to press that button 🙈)
  • The two dials do not function, and if they did they aren’t rebindable anyway.

That is not great, especially since it’s not the cheapest graphics tablet on the market. So it really sucks that artists can’t take advantage of all of it’s features on the best operating system. You can achieve some parity with Windows if you use XP-Pen’s proprietary user-space driver (which works on Wayland BTW.) This solution isn’t satisfying though - I want this thing to work out of the box, using open-source software ❤️

Linux

I have completed the patch for the kernel to add support for this specific tablet. After sitting it on it for a while (due to being busy with other things.) I’m happy to announce it’s merged and should be generally available in the upcoming Linux 6.17 release 🎉

Thank you to the original author Aren Villanueva who wrote the original DIGImend kernel driver. I took his work, rebased it on top of the existing uclogic driver and changed how the many keys and dials were handled among other changes. Some of this work was covered in previous entries in this series, if you’re interested.

What this means is regardless of your desktop environment, this tablet is properly initialized and all of the flaws listed in the hardware section will be fixed.

libwacom

I added a descriptor to libwacom for this tablet, which means it shows the correct configuration options under KDE Plasma and GNOME. For example, it will show that the pen has two buttons and not three (which is the fallback):

libinput

I added support for tablet dials in libinput. In layman terms, this means desktop environments like GNOME and KDE are now aware of this feature on your tablet. This has huge implications outside of this specific tablet, for example certain HUION devices also benefit from this. More information on how KDE Plasma uses this is explained in a later section.

Wayland

Thanks to work by Peter Hutterer, the Tablet protocol in Wayland now has support for tablet dials. What this means is that applications can now read tablet dial input and do whatever they want with it, like making it zoom in and out of a canvas.

KDE Plasma

Thanks to work by Nicolas Fella, KWin (the compositor in KDE Plasma) is now dial-aware and can send them to Wayland-enabled applications beginning in Plasma 6.4. Because of the aformentioned lack of application support however, I added a feature in KDE Plasma 6.5 to rebind dials to custom user actions:

Don’t mind the buggy-looking dialog, that is caused by a development version of Kirigami I was using.

The XP-PEN software allows you to do this too, so having a built-in solution in KDE Plasma would be great! I did just that, and added support for rebinding dials which will show up in the upcoming KDE Plasma 6.5 release. Making them user configurable is meant as a “bridge”, as I’m not aware of any applications supporting dials yet.

With this final piece - from top-to-bottom - the entire Linux graphics tablet stack can now take advantage of relative dials like any other hardware feature 🎉

Conclusion

I want to make it clear (especially if you don’t know me) that this isn’t some hack, or a rushed driver. This is thanks to years of effort, and from multiple parties and ecosystems. I also literally use this driver and KDE Plasma for my hobbies every day, I know it works first-hand.

I also hope this series showcases that the graphics tablet infrastructure in Linux is not stagnant, but actively being worked on by super-talented people every day. In a theoretical future distribution release that has Linux 6.17 and KDE Plasma 6.5, this tablet will work out-of-the-box. (And for other hardware, it’s only a matter of time!) We can make the Linux desktop not just usable for artists, but we can executing it better than anything else out there. No more crappy driver software, tablets will work out of the box on an operating system that actually respects you ❤️

To Nicolas, Peter and Aren - you can redeem a beer or drink of choice at your earliest convenience 🍻


If this series has been fascinating for you, then I highly suggest making plans to watch my Akademy 2025 talk in Berlin or online about bridging the gap for artists using Linux and KDE Plasma. I’m going to be covering the amazing progress - especially in our KDE Plasma 6.x series - that’s relevant to artists big and small, and also discuss plans for the long road ahead. You also need to follow the KDE account on Mastodon and Bluesky if you haven’t already, where we post announcements and sometimes call-to-actions like our recent push to contribute data about graphics tablet hardware!

I also want to remind everyone that one of KDE’s current goals is about input, and as it’s Goal Champion I’ve been volunteering and organizing to fix issues like the ones seen above. If you are having trouble with your graphics tablet on the KDE Plasma Wayland session (and it’s our fault) then we want to know! Or if you’re super happy with KDE and nothing is wrong, we wouldn’t mind hearing about that was well 🐸

If you’re still addicted to me hearing me talk about improving stuff, here is a sneak peek of the hardware I’m testing in KDE Plasma next:

Sorry that the HUION tracks fingerprints like crazy

But that’s for another time!

Tuesday, 29 July 2025

Do you want to save your mental energy on solving complex coding challenges instead of fixing syntax issues in code generated by Gen AI? The Qt AI Assistant is the world's first coding assistant that seamlessly embeds a QML linter agent for the prompts you write. The latest release also comes with the ability to configure your LLM.

Intro

Apart from setting up a new open source project, it is important to understand how the application works in order to make the changes you need. In this blog I will go over how I find code, understand the application, and my progress so far with the Selection Action Bar.

Searching code

One Stop Shop for Searching

Command Line

grep -rn "<string_to_search>"

QTCreator

ctrl + f
crtl + shift + f

Debug in C++ code

qDebug() << "[Debug] <string_to_display_for_debugger> << <additional_parameters>;

Krita's codebase is massive, so don't expect to understand everything in one day. What is important is knowing how to find code you need to make the improvements you want. Above are some tools I use when looking for code. I would use the command line or QTCreator search functionality to reverse search strings that are displayed in Krita. This helps me find buttons, dropdowns, and tools. When I want to understand the functionality of the application, I will add qDebug in the code. This allows me to perform an action when Krtia is running and display debug information about the functions I added qDebug to.

Progress

Through the use of the the useful tools above, I was able to make the base UI of the floating toolbar in Krita by identifying QPainter class that created the Assistant Tool. I wanted to use Assistant tool as a reference and recreate a similar UI look. For quick learning purposes and proof of concept, when an Assistant Tool widget is active, the floating toolbar is also generated on screen.

Below is a proof of concept for the Selection Action Bar. I used QPainter to 'draw' onto the KisCanvas2 class. This is like using a paintbrush (QPainter) and painting on a canvas (KisCanvas2). There will still need to be some more UI clean up, however I wanted to present my learnings so far.

Conclusion

Making changes in Krita can be challenging, but by using a few simple tools it can make hours turn into minutes for searching what you need. Again, "the hardest part is finding the resources to be successful". I hope this blog post helps whoever is in need of searching Krita or any C++ codebase.

Contact

To anyone reading this, please feel free to reach out to me. I’m always open to suggestions and thoughts on how to improve as a developer and as a person.
Email: ross.erosales@gmail.com
Matrix: @rossr:matrix.org

Monday, 28 July 2025

Dear friends, family, and community,

I’m reaching out during a challenging time in my life to ask for your support. This year has been particularly difficult as I’ve been out of work for most of it due to a broken arm and a serious MRSA infection that required extensive treatment and recovery time.

Current Situation

While I’ve been recovering, I’ve been actively working to maintain and improve my professional skills by contributing to open source software projects. These contributions help me stay current with industry trends and demonstrate my ongoing commitment to my field, but unfortunately, they don’t provide the income I need to cover my basic living expenses.

Despite my efforts, I’m still struggling to secure employment, and I’m falling behind on essential bills including:

  • Rent/mortgage payments
  • Utilities
  • Medical expenses
  • Basic living costs

How You Can Help

Any financial assistance, no matter the amount, would make a meaningful difference in helping me stay afloat during this job search. Your support would allow me to:

  • Keep my housing stable
  • Maintain essential services
  • Focus fully on finding employment without the constant stress of unpaid bills
  • Continue contributing to the open source community

Moving Forward

I’m actively job searching and interviewing, and I’m confident that I’ll be back on my feet soon. Your temporary support during this difficult period would mean the world to me and help bridge the gap until I can secure stable employment.

If you’re able to contribute, GoFundMe . If you’re unable to donate, I completely understand, and sharing this request with others who might be able to help would be greatly appreciated.

Thank you for taking the time to read this and for considering helping me during this challenging time.

With gratitude, Scarlett

Sunday, 27 July 2025

🎉 Clazy Now Integrates with Clang-Tidy!

I am excited to announce a major improvement to the Clazy project: Clazy now integrates seamlessly with Clang-Tidy!

🧩 One Toolchain, All the Checks

Clazy now provides a plugin (on Unix ClazyClangTidy.so) that allows all its checks to run inside clang-tidy, unifying your static analysis workflow. You no longer need to run two separate tools — just configure Clazy’s checks through clang-tidy itself.

This change needed quite a few refactorings to make the existing Clazy codebase more adaptable. In total, changes were spread out to 9 different pull requests to gradually implement the needed changes. Besides implementing the functionality, the testsuite was also adapted to ensure Clazy’s clang-tidy provides proper results.

✅ How to Use

To load the plugin:

clang-tidy -load=ClazyClangTidy.so ...

🔒 If the plugin isn’t in a standard library path, either add it to your LD_LIBRARY_PATH or provide an absolute path to the plugin file.

Unfortunately, Clang-Tidy needs to have Clazy checks enabled explicitly and does not have a concept of “levels” to group checks. While wildcards like clazy-* would also work, it enables all manual-level checks. Those have more false positives and can hurt performance.

As a helper, you can export environment variables containing the check names to concatenate the desired combination:

export CLAZY_LEVEL0=clazy-overloaded-signal,clazy-connect-by-name,clazy-connect-non-signal,clazy-qstring-comparison-to-implicit-char,clazy-wrong-qevent-cast,clazy-lambda-in-connect,clazy-lambda-unique-connection,clazy-qdatetime-utc,clazy-qgetenv,clazy-qstring-insensitive-allocation,clazy-fully-qualified-moc-types,clazy-unused-non-trivial-variable,clazy-connect-not-normalized,clazy-mutable-container-key,clazy-qenums,clazy-qmap-with-pointer-key,clazy-qstring-ref,clazy-strict-iterators,clazy-writing-to-temporary,clazy-container-anti-pattern,clazy-qcolor-from-literal,clazy-qfileinfo-exists,clazy-qstring-arg,clazy-empty-qstringliteral,clazy-qt-macros,clazy-temporary-iterator,clazy-wrong-qglobalstatic,clazy-lowercase-qml-type-name,clazy-no-module-include,clazy-use-static-qregularexpression
export CLAZY_LEVEL1=clazy-auto-unexpected-qstringbuilder,clazy-connect-3arg-lambda,clazy-const-signal-or-slot,clazy-detaching-temporary,clazy-foreach,clazy-incorrect-emit,clazy-install-event-filter,clazy-non-pod-global-static,clazy-post-event,clazy-qdeleteall,clazy-qlatin1string-non-ascii,clazy-qproperty-without-notify,clazy-qstring-left,clazy-range-loop-detach,clazy-range-loop-reference,clazy-returning-data-from-temporary,clazy-rule-of-two-soft,clazy-child-event-qobject-cast,clazy-virtual-signal,clazy-overridden-signal,clazy-qhash-namespace,clazy-skipped-base-method,clazy-readlock-detaching
export CLAZY_LEVEL2=clazy-ctor-missing-parent-argument,clazy-base-class-event,clazy-copyable-polymorphic,clazy-function-args-by-ref,clazy-function-args-by-value,clazy-global-const-char-pointer,clazy-implicit-casts,clazy-missing-qobject-macro,clazy-missing-typeinfo,clazy-old-style-connect,clazy-qstring-allocations,clazy-returning-void-expression,clazy-rule-of-three,clazy-virtual-call-ctor,clazy-static-pmf

Checks in Clang-Tidy can be disabled when prefixing them with “-“, whereas Clazy uses “no-“ prefixes. An example clang-tidy command to use all level0 checks, with overloaded-signal being disabled and the qt-keywords manual check being enabled:

clang-tidy -load=ClazyClangTidy.so \
-checks="$CLAZY_LEVEL0,-overloaded-signal,qt-keywords" \
-p my_build_dir mydir/**.cpp

In case you want to speed up linting in the project, run-clang-tidy can be used for parallel execution.

🚧✨ Limitations & Tricks

Unlike using Clazy directly, clang-tidy has its own filter mechanism to only emit warnings from files that were provided as an input. This means if a warning is emitted from a header file and not the “.cpp” file you provide as an input, Clang-Tidy will suppress it. To see those warnings -header-filter=".*" can be added to the command.

💡💬 Getting it & Feedback

The Clang-Tidy plugin is currently not released, and some additional development on various checks is happening. For trying it out, one has to compile the project from source. It is just a simple CMake setup - promise ;) See the instructions for more details: https://invent.kde.org/sdk/clazy/#build-instructions

Any feedback and contributions are appreciated - let’s make Clazy better together 😎. Please report bugs or suggestions on https://bugs.kde.org/enter_bug.cgi?product=clazy or https://invent.kde.org/sdk/clazy/-/issues.

Saturday, 26 July 2025

Welcome to a new issue of This Week in Plasma!

Every week we cover the highlights of what’s happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.

This week UI and feature work for Plasma 6.5 continued to progress, along with a bunch of nice technical changes and bug fixes. Have a look:

Notable New Features

Plasma 6.5.0

For supported printers, plasma now tells you when the printer is low on ink! (Mike Noe, link)

Notification informing you about low ink in your printer

Notable UI Improvements

Plasma 6.4.4

Notifications marked as “low priority” or that you’ve manually configured to now show up in the history now selectively ignore that, and do show up in the history when they arrived during Do Not Disturb mode. The reason for this is that otherwise these notifications would simply vanish, and you’d never get a chance to see them at all. (Niccolò Venerandi, link)

The hitboxes for items on the desktop now match the visual styling; no more clicking in an empty-looking place and getting a file or folder selected despite no hover effect! (Niccolò Venerandi, link)

Plasma 6.5.0

Key repeat has been disabled for a number of global shortcuts that could trigger rapid full-screen flashing if you held down the shortcut, because this risks causing seizures in photosensitive people. Affected actions include toggling Overview, full screen mode, maximize/de-maximize, and inverting the screen colors. (Ritchie Frodomar, link 1, link 2, and link 3)

The “Someone started sharing this screen” notification now appears only after the connection has been fully established and screen sharing has actually begun, rather than at the moment when the connection was initiated. (David Edmundson, link)

The “Confirm deleting network connection” dialog now uses standard KDE styling. (Renner 03, link)

The spacing between menu items in the Global Menu widget is now more consistent with menus in individual windows. (Rebecca Bee, link)

Notable Bug Fixes

Soon

Plasma Browser Integration’s browser plugin no longer breaks random features or various known video conferencing websites when its enhanced media controls setting is active. (Kai Uwe Broulik, link)

Plasma 6.4.4

Fixed a bug that caused KWin to crash on the next login when you enable the magnifier effect but don’t use it to zoom in at all before logging out. (Xaver Hugl, link)

Fixed a bug that caused KWin to crash on login when run in a QEMU virtual machine using the Bochs video driver. (Xaver Hugl, link)

Fixed the Global Menu widget’s single-button mode for X11 users too. (Kishore Gopalakrishnan, link)

The search field in the Wayland version of the Global Menu widget once again works. (Niccolò Venerandi, link)

Fixed a bug in the KDE’s implementation of the Global Shortcuts XDG portal that confused apps into thinking they had no shortcuts after you accepted the dialog to make some changes. (David Redondo, link)

Fixed a bug causing notifications in the history view to not appear in sequential order. In case you remember this previously being advertised as fixed, it was, because we worked around a Qt bug that was causing the issue. Well, that Qt bug got fixed, causing our workaround to re-introduce the bug! Software development is hard. (Kai Uwe Broulik, link)

Plasma Browser Integration’s built-in Share feature once again works. (Kai Uwe Broulik, link)

Plasma 6.5.0

Cross-app window activation/raising now works more reliably in a couple cases, and also now works for files opened from KRunner-powered searches except for the Recent Documents runner, which is also being worked on. (Kai Uwe Broulik and Xaver Hugl, link 1, link 2, and link 3)

Fixed a bug that prevented the virtual keyboard from being able to enter text into the Application Dashboard widget’s search field. (Arnav Rawat, link)

Fixed a layout bug that caused the contents of the “Set up a printer connection” page to visually overflow when opened from the “New printer detected” notification. (Mike Noe, link)

When accessed from Plasma (not System Settings), wallpaper grid items now follow the Plasma color scheme, rather than the app color scheme. This is relevant when using a mixed light/dark Global Theme like Breeze Twilight. (David Redondo, link)

Frameworks 6.17

KRunner-powered search results once again take into account frequency of use. (Nate Graham, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.4.4

Fixed a source of inotify leaks caused by reconfiguring the Plasma Desktop or the Folder View widget to show a different folder. (Harald Sitter, link)

Plasma 6.5.0

Implemented support the the pointer_warp_v1 (“Pointer Warp”) Wayland protocol that allows apps to ask the compositor to move the pointer. (Xaver Hugl, link)

XDG portal-using apps can now explicitly request a screencast or remote desktop session of a new virtual output. (David Redondo, link 1 and link 2)

Added some more autotests for basic Plasma widget loading functionality. (Nicolas Fella, link)

The clipboard configuration window’s size and position are now stored in the state config file, not the settings config file. (Nicolas Fella, link)

How You Can Help

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

You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine! You don’t have to be a programmer, either; many other opportunities exist!

You can also help us by making a donation! A monetary contribution of any size will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.

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

Friday, 25 July 2025

And since I’m back from my vacations, it’s time to get back into good habits. Let’s go for my web review for the week 2025-30.


Linux’s Ascendancy: Charting the Open-Source Surge in the Desktop OS Arena

Tags: tech, linux, desktop, foss

It’s a very important threshold to cross. Let’s hope this momentum stays long enough.

https://www.linuxjournal.com/content/linuxs-ascendancy-charting-open-source-surge-desktop-os-arena


You MUST listen to RFC 2119

Tags: tech, standard, documentation, funny

OK… This is weird and funny. I definitely like the idea of an actor reading this important RFC aloud.

https://ericwbailey.website/published/you-must-listen-to-rfc-2119/


PNG is back!

Tags: tech, graphics, standard

Excellent news on the PNG standard front!

https://www.programmax.net/articles/png-is-back/


X-Clacks-Overhead

Tags: tech, http, history, literature, funny

This is a lovely idea I think. Good way to pay homage to lost ones.

https://xclacksoverhead.org/


A language model built for the public good

Tags: tech, ai, machine-learning, llm, ethics, ecology, research

ETH Zurich spearheading an effort for more ethical and cleaner open models. That’s good research, looking forward to the results.

https://ethz.ch/en/news-and-events/eth-news/news/2025/07/a-language-model-built-for-the-public-good.html


How to run an LLM on your laptop

Tags: tech, ai, machine-learning, gpt, foss, vendor-lockin

Running interesting models locally gets more and more accessible.

https://www.technologyreview.com/2025/07/17/1120391/how-to-run-an-llm-on-your-laptop/


Yet another ZIP trick

Tags: tech, archive, compression, security

Better not trust ZIP files you receive…

https://hackarcana.com/article/yet-another-zip-trick


How we discovered, and recovered from, Postgres corruption on the matrix.org homeserver

Tags: tech, postgresql, failure, databases

Wow, this was a really bad index corruption indeed.

https://matrix.org/blog/2025/07/postgres-corruption-postmortem/


The most mysterious bug I solved at work

Tags: tech, debugging, pdf

Very interesting bug hunt prompted by some mysterious character in some strings and leading all the way to PDF viewers.

https://cadence.moe/blog/2025-07-02-the-most-mysterious-bug-i-solved-at-work


Graphite | Free online vector editor & procedural design tool

Tags: tech, 2d, graphics, tools, foss

Looks like an interesting vector editor.

https://graphite.rs/


Getting decent error reports in Bash when you’re using ‘set -e’

Tags: tech, shell, scripting

Nice way to improve the set -e output. I guess I’ll use it in my next scripts.

https://utcc.utoronto.ca/~cks/space/blog/programming/BashGoodSetEReports


On Error Handling in Rust

Tags: tech, rust, safety, type-systems

There are indeed other options beyond the model with “one enum with all the errors”.

https://felix-knorr.net/posts/2025-06-29-rust-error-handling.html


Alternative Blanket Implementations for a Single Rust Trait

Tags: tech, rust, type-systems, pattern

Nice pattern to workaround limitations of the Rust trait system preventing blanket implementations.

https://www.greyblake.com/blog/alternative-blanket-implementations-for-single-rust-trait/


The scary and surprisingly deep rabbit hole of Rust’s temporaries

Tags: tech, rust, memory, type-systems

Dealing with temporaries is always complicated it seems, whatever the language.

https://taping-memory.dev/temporaries-rabbit-hole/


The JavaScript Date Quiz

Tags: tech, javascript, date

A good reminder that the JavaScript Date API is very error prone.

https://jsdate.wtf/


This Overly Long Variable Name Could Have Been a Comment

Tags: tech, programming

If it’s too complicated to find a good name, use a comment indeed. As simple as that.

https://jonathan-frere.com/posts/names-vs-comments/


Most RESTful APIs aren’t really RESTful

Tags: tech, web, services, architecture, rest, api

And it’s not necessarily a problem. It all depends on the goal and context of the API you’re building.

https://florian-kraemer.net//software-architecture/2025/07/07/Most-RESTful-APIs-are-not-really-RESTful.html


Caching is an Abstraction, not an Optimization

Tags: tech, caching

It’s indeed another possible point of view about caching.

https://buttondown.com/jaffray/archive/caching-is-an-abstraction-not-an-optimization/


Expert Generalists

Tags: tech, organization, team, learning, complexity

Interesting article about expert generalists (also called “paint drip people” by Kent Beck). This is definitely a skill to foster in teams. The article is long enough that I’m not in agreement with everything in it. That being said there’s a lot of food for thought here.

https://martinfowler.com/articles/expert-generalist.html


Agile Was Never Your Problem Pt 12

Tags: tech, agile, project-management

Hear, hear! If you go through rituals without understanding the values and principles… It’s not Agile anymore so stop pretending. Another certification isn’t going to save you at this point.

https://thecynical.dev/posts/agile-was-never-your-problem/


Agile That Doesn’t Suck Pt 22

Tags: tech, agile, criticism

So, you derailed and the joy is long gone in your team. This second part shows a possible way forward. Although it’s probably not widely applicable (YMMV), the proposed end goal is what matters… If you stop fussing over labels but focus on what matters you’re likely on the right track.

https://thecynical.dev/posts/agile-that-doesnt-suck/


Why measuring productivity is hard

Tags: tech, productivity, management

Indeed, it’s hard. You need to put in the work but it’s hard to predict where the real value will come from.

https://lemire.me/blog/2025/07/12/why-measuring-productivity-is-hard/


Underused Techniques for Effective Emails

Tags: tech, email, writing

Some of this is not new, but it looks like a dying practice. It doesn’t need to be. This medium is more efficient than chat for some cases.

https://refactoringenglish.com/chapters/techniques-for-writing-emails/


Reading Neuromancer for the very first time in 2025

Tags: tech, scifi, literature

Neat piece about the reactions when reading this (IMHO) very important book for the first time in 2025. Made me want to read it again!

https://mbh4h.substack.com/p/neuromancer-2025-review-william-gibson


Why English doesn’t use accents

Tags: linguistics, history

Very interesting article. Where diacritics come from? Why English doesn’t have them?

https://www.deadlanguagesociety.com/p/why-english-doesnt-use-accents


How the alphabet began

Tags: history, linguistics

Interesting exploration about where the alphabet comes from. Interesting debate about the abjad vs alphabet classification in the comments as well.

https://www.deadlanguagesociety.com/p/how-the-alphabet-began



Bye for now!

Thursday, 24 July 2025

Kdenlive 25.08 Release Candidate is ready for testing. While this release focuses mostly on bug fixing, the dev team still managed to sneak in some cool features during the summer heat. Some highlights include:

  • Optimized interface for lower resolution screens
  • Project files are now properly recognized and can easily be opened by clicking them on MacOS
  • Fix location of title templates on Windows
  • Fix downloadable keyboard schemes
  • Fix python 3.13 compatibility for Whisper
  • Added power management support to prevent sleep while playing / rendering
  • Support for start timecode
  • Added option to display the markers of all clips in the project in the guides list
  • Show thumbnails in the guides list
  • Redesigned mixer

Download the binaries from below and give it a spin. Please share your feedback in the comments if you encounter any bugs or have a suggestion to help us polish the final release.

Pre-release binaries can be downloaded here.