Skip to content

Saturday, 11 January 2025

Welcome to a new issue of "This Week in Plasma"! Every week we cover as much as possible of what's happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.

This week the focus was on landing final Plasma 6.3 features and UI changes… and land them we did! Now it's time to spend the next month exclusively on bug-fixing and polishing.

Notable New Features

When notifications arrive while "Do Not Disturb" mode is engaged, exiting that mode now shows a single notification informing you of how many you missed, rather than sending them all in a giant unmanageable flood. (Fushan Wen, 6.3.0. Link)

The desktop context menu for symbolic links now includes a "Show Target" menu item, just like one one in Dolphin. (Nate Graham, 6.3.0. Link)

The System Monitor app and widgets are now capable of collecting GPU statistics on FreeBSD. (Henry Hu, 6.3.0. Link)

Notable UI Improvements

If you didn't like the change in Plasma 6.2 to use symbolic icons in Kickoff's category sidebar, you can now undo it yourself; we changed the implementation to pull icons from the standard data source, so you can set them to whatever you want using the Menu Editor app. (David Redondo, 6.3.0. Link 1 and link 2)

Reduced the clutter on the Edit Mode toolbar, making its contents more focused and relevant. (Nate Graham, Link 1, link 2, and link 3)

The DrKonqi crash reporter/browser app's main windows now remember their size, maximization state, and (on X11), position on screen. (Nate Graham, 6.3.0. Link)

External web links in Kirigami-based apps such as Discover now show the typical "arrow pointing out of a square" icon to make this more clear. (Carl Schwan and Nate Graham, Frameworks 6.11. Link)

Modernized the UI style of the standalone printer-related apps that are not yet integrated directly into the System Settings page. (Thomas Duckworth, 6.3.0. Link)

All close buttons throughout KDE software are now consistent; we've standardized on the black X. As part of this, we also changed the timeout indicator on Plasma notifications to not be dependent on any particular close button icon appearance, as was the case before. (Nate Graham, Plasma 6.3.0 with Frameworks 6.11. Link 1, link 2, and link 3)

System Settings' Night Light page has moved from the "Colors & Themes" group to the "Display & Monitor" group, which is a more natural and expected place for it. (Kisaragi Hiu, 6.4.0. Link)

In Plasma's Networks widget, there's now a "Configure" button for networks that you've used in the past but aren't currently connected to. (Kai Uwe Broulik, 6.3.0. Link)

Notable Bug Fixes

Plasma no longer crashes when you switch the desktop from "Folder" containment to "Desktop" containment, and then back. (Marco Martin, 6.3.0. Link)

The session restore "Excluded applications" list you can populate yourself now actually takes effect on Wayland. Also, you now list apps by their desktop file names, which lets the feature work for apps whose executable is ambiguous, such as Flatpak apps. (Harald Sitter, 6.3.0. Link 1 and link 2)

Fixed a bug that could cause full-screen windows being screencasted to freeze under certain circumstances. (Xaver Hugl, 6.3.0. Link)

Made laptops more robust against waking up while the lid is closed. (Xaver Hugl, 6.3.0. Link)

Tooltips for favorited apps in Kicker once again appear as expected, and don't disappear immediately on hover. (Marco Martin, 6.3.0. Link)

Typing text into KRunner that matches a history item but with different capitalization no longer causes the grayed-out auto-completion text to de-sync with the text you already typed. (Nate Graham, 6.3.0. Link)

Plasma no longer unnecessarily shows you an OSD indicating the default audio device when you return from a different TTY. (Kai Uwe Broulik, 6.3.0. Link)

Time zones shown in the Digital Clock widget's popup are once again sorted by time, rather than randomly. (Nate Graham, 6.3.0. Link)

Fixed a visual glitch that could manifest as brief graphical corruption when interacting with pages in the clipboard settings dialog in a certain way. (David Edmundson, 6.3.0. Link)

Fixed a bug in the Wayland session restoration feature that could make it inappropriately restore multiple instances of apps. (Harald Sitter, 6.3.0. Link)

In Discover, app pages and pages with lists of apps are no longer inappropriately horizontally scrollable. (Nate Graham and Ismael Asensio, 6.3.0. Link 1 and link 2)

Fixed an issue in Kirigami.Icon that affected multiple Plasma widgets, whereby an icon from the active icon theme would be mistakenly provided instead of a custom image, in cases where that custom image was referenced from an absolute path and happened to have the same filename as a themed icon. (Marco Martin, Frameworks 6.11. Link)

Fixed a case where some dialogs in Kirigami-based apps such as System Monitor could have overflowing footer buttons in some languages. (Nate Graham, Frameworks 6.11. Link)

Other bug information of note:

Notable in Performance & Technical

Reduced the System Monitor app's background CPU usage down to 1-3% with some clever internal restructuring. (Arjen Hiemstra, 6.3.0. Link)

Removed a bunch of unnecessary old "sanity checks" on login that were not actually providing any additional sanity, and could even prevent login under certain circumstances! (David Redondo, 6.3.0. Link)

Improved performance on certain GPUs while Night Light is active; previously it could sometimes be quite poor. (Xaver Hugl, 6.3.0. Link)

It's now possible to pre-authorize apps for remote desktop access, so you don't have to wait for them to pop up an interactive permission dialog. Preliminary documentation can be found here. (Harald Sitter, 6.3.0. Link)

How You Can Help

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

You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE — you are not a number or a cog in a machine!

You don’t have to be a programmer, either. Many other opportunities exist:

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

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

The Skrooge Team announces the release 25.1.0 version of its popular Personal Finances Manager based on KDE Frameworks.

This is the first version for Kf6/Qt6.

Changelog

  • Correction bug 494197: Shortcut for Setting Status to Checked
  • Correction bug 494159: Wrong decimal separator in CSV import
  • Correction bug 494516: Categories "closed" are not displayed
  • Correction bug 494023: Downloading values from yahoo fails HTTP Error 401: Unauthorized
  • Correction bug 494077: document History panel and better document viewing transactions modified by an action
  • Correction bug 498157: Inconsistent icons in the Pages sidebar
  • Correction: Replace yahoo source (not working) by boursorama source
  • Correction: More robust copy of tables
  • Migration: Support build on qt6/kf6
  • Correction: Fix performances issue on qt6 due to QDateTime::fromString

Friday, 10 January 2025

A while ago a colleague of mine asked about our crash infrastructure in Plasma and whether I could give some overview on it. This seems very useful to others as well, I thought. Here I am, telling you all about it!

Our crash infrastructure is comprised of a number of different components.

  • KCrash: a KDE Framework performing crash interception and prepartion for handover to…
  • coredumpd: a systemd component performing process core collection and handover to…
  • DrKonqi: a GUI for crashes sending data to…
  • Sentry: a web service and UI for tracing and presenting crashes for developers

We already looked at KCrash, coredumpd, and DrKonqi. This week it’s time to look at the final piece of the puzzle — Sentry.

Sentry

Sentry is the service we have on the developer side of a crash to manage incoming reports.

As we’ve learned in the DrKonqi post, a Sentry-specific trace created by the preamble is eventually sent off to our Sentry server. In Sentry, yet more processing happens!

Symbolication

If the user hasn’t explicitly opted into it, there usually aren’t debug symbols available on the user system. This would ordinarily render backtraces useless since they are just a bunch of memory addresses without names or references to our source code. One of the reasons we adopted Sentry is because it can fill in the gaps through a process called symbolication. For symbolication it essentially needs to know all the loaded libraries and can then fetch the relevant debug symbols via the various debuginfod instances out there. Once it has the debug symbols it can resolve that the address 0x2343244 is really the function int main(int argc, char **argv)

Fingerprinting

When a trace has been symbolicated it’s ready for fingerprinting. This tries to merge together the same crash appearing in different submission into one single sentry event. Generally speaking if two submissions have the same trace frames, they are considered the same crash and merged into one event (in practice the rules are a bit more complicated).

Result

Eventually the crash event appears for us to fix.

In a future blog post, I’ll also give a more detailed guide on how to use Sentry to its full potential.

Sentry

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


An Open Letter to All European Politicians and Leaders to Abandon X/Twitter

Tags: tech, social-media, twitter, politics

A good petition to push forward. Political leaders shouldn’t keep interacting in this cesspool.

https://www.openpetition.eu/petition/online/an-open-letter-to-all-european-politicians-and-leaders-to-abandon-x-twitter


The Ministry of Empowerment

Tags: tech, social-media, facebook, politics

Good reaction and opinion piece about the latest policy changes at Meta. This is really going to be toxic, but they just don’t care at the top.

https://www.zephoria.org/thoughts/archives/2025/01/08/the-ministry-of-empowerment.html


TikTok knows its app is harming kids, new internal documents show

Tags: tech, social-media, attention-economy, politics, law

I wish other platforms would go through so much scrutiny. Still it gives a good idea about the mental health issue they collectively represent.

https://www.npr.org/2024/10/11/g-s1-27676/tiktok-redacted-documents-in-teen-safety-lawsuit-revealed


I shared this post across 7 different social media platforms, here’s how their engagement stacked up

Tags: tech, social-media, politics, fediverse

Interesting little study of engagement on various platforms. Clearly the Fediverse could do better in terms of avoiding “friendly fire”, I suspect it’s the top reason limiting its growth.

https://fediscience.org/@kathhayhoe/113787783732811080


Time to check if you ran any of these 33 malicious Chrome extensions - Ars Technica

Tags: tech, browser, security, supply-chain

The browser extension ecosystems are definitely a weak link in term of security. Better not have too many random extensions installed.

https://arstechnica.com/security/2025/01/dozens-of-backdoored-chrome-extensions-discovered-on-2-6-million-devices/


Pushing the whole company into the past on purpose

Tags: tech, time, ntp

Sure, time handling is complicated… but really that opens the door at doing really fun stuff.

https://rachelbythebay.com/w/2025/01/09/lag/


HipScript

Tags: tech, browser, gpu, webgpu, computation, webassembly

And now we got all the pieces to run CUDA code in the browser. How will you like your cryptominer? Joke aside this opens interesting use cases.

https://lights0123.com/blog/2025/01/07/hip-script/


Property-Based Testing for the People

Tags: tech, tests, property-based-testing, usability

Very interesting research. Property-Based Testing made quite some progress the past few years but indeed it still needs to improve in term of usability. Looking forward to some of that research to get available in existing testing tools.

https://repository.upenn.edu/entities/publication/72ca3499-c5f6-4fc1-b5a3-9d66d8dd534e


End-to-end testing emails

Tags: tech, tests, email

Definitely a nice trick for testing if an email is really sent by a system under test.

https://blog.wesleyac.com/posts/e2e-testing-email


The future of htmx

Tags: tech, htmx, maintenance

This is a good goal, I wish them luck.

https://htmx.org/essays/future/


Goodbye SASS 👋, welcome back native CSS

Tags: tech, browser, frontend, web, css

With the progresses of CSS in recent years it’s clear that SASS becomes less useful.

https://medium.com/@karstenbiedermann/goodbye-sass-welcome-back-native-css-b3beb096d2b4


Unix and Microservice Platforms

Tags: tech, architecture, unix, microservices

I’m not a huge fan microservice based architectures. That said the parallel done there is interesting and a good reminder that the “write programs that do one thing and do it well” quote is incomplete.

https://www.brandonbloom.name/blog/2021/08/02/unix-and-microservice-platforms/


Overcoming Resistance to Extreme Programming

Tags: tech, agile, xp, management, learning, autonomy

Interesting exploration on the difficulties to switch a team to XP. I’m not fully aligned with some of the fine details pointed there… That said there is a core truth that “XP is about social change” so if you mandate it as a managerial decision it can’t be XP anymore.

https://benjiweber.co.uk/blog/2025/01/01/overcoming-resistance-to-extreme-programming/


Bad idea: Developer experience is equivalent to productivity

Tags: tech, productivity, developer-experience

It’s indeed tempting to conflate the two (at least for marketing purposes apparently, I see you LLM vendors…). Even if tempting, developer experience is definitely not equivalent to productivity.

https://jchyip.medium.com/bad-idea-developer-experience-is-equivalent-to-productivity-231f75c8c3f1


Engineering Growth — From Charmander to Charizard

Tags: tech, engineering, career, learning, leadership

Not a huge fan of the writing style and the pokemon metaphor. That said, seeing your growth as an engineer based on circles is spot on.

https://levelup.gitconnected.com/engineering-growth-from-charmander-to-charizard-e8fde93c69d5



Bye for now!

Thursday, 9 January 2025

We're happy to announce the release of the Qt Extension Pack 1.2.0 for Visual Studio Code! This release cooked for a bit as pre-release 1.1.0 on the marketplace and has now been promoted to a proper release. Take a look at what's new in our new release.

I have released more core24 snaps to –edge for your testing pleasure. If you find any bugs please report them at bugs.kde.org and assign them to me. Thanks!

Kdenlive our amazing video editor!

Haruna is a video player that also supports youtube!

Kdevelop is our feature rich development IDE

KDE applications 24.12.1 release https://kde.org/announcements/gear/24.12.1/

New qt6 ports

  • lokalize
  • isoimagewriter
  • parley
  • kteatime
  • ghostwriter
  • ktorrent
  • kanagram
  • marble

Kubuntu:

We have Plasma 5.27.12 Bugfix release in staging https://launchpad.net/~kubuntu-ppa/+archive/ubuntu/staging-plasma for noble updates, please test! Do NOT do this on a production system. Thanks!

I hate asking but I am unemployable with this broken arm fiasco and 6 hours a day hospital runs for treatment. If you could spare anything it would be appreciated! https://gofund.me/573cc38e

Over 180 individual programs plus dozens of programmer libraries and feature plugins are released simultaneously as part of KDE Gear.

Today they all get new bugfix source releases with updated translations, including:

  • kasts: Retrieve duration from file as soon as it's downloaded (Commit), fixes bug #497448
  • konversation: Prevent crash when updating Watched Nicks (Commit, fixes bug #497799)
  • telly-skout: Speed up program description update (Commit, fixes bug #497954)

Distro and app store packagers should update their application packages.

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

Spectacle

  • We have moved our screenshot and screen recording tool to Plasma to better align with the tech it uses
View full changelog

Thursday, 9 January 2025

KDE today announces the release of KDE Frameworks 6.10.0.

KDE Frameworks are 72 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the KDE Frameworks release announcement.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this version

Baloo
Breeze Icons
  • Create-app-symlinks.py: add cuttlefish (org.kde.iconexplorer). Commit.
  • Add new pcmanfm-qt icon. Commit.
  • Add open-link-symbolic icon. Commit.
  • Add snap package icon. Commit.
  • Add symbolic version of preferences-security. Commit.
  • Add symbolic version of preferences-desktop-emoticons. Commit.
  • Tests: ignore missing index.theme in ScalableTest::test_scalableDuplicates(). Commit.
Extra CMake Modules
  • Make building docs optional. Commit.
  • Add since documentation. Commit.
  • ECMAddAndroidApk: add "PACKAGE_NAME" argument. Commit.
  • ECMGenerateHeaders: set IWYU export pragma also for helper prefixed headers. Commit.
  • Also allow to disable the nasty Android threads workaround via env vars. Commit.
  • ECMGenerateHeaders: Set include-what-you-use pragma. Commit.
  • Simplify moving QM catalog loading to the main thread. Commit.
KBookmarks
  • Remove unimplemented methods. Commit.
KCalendarCore
  • Add missing log categories. Commit.
KCMUtils
KConfig
  • Fix shortcuts for mac os. Commit.
  • Replace BufferFragment by QByteArrayView. Commit.
  • Docs(DESIGN): Fix URL to tutorial. Commit.
KDeclarative
  • Don't install namelink for kquickcontrolsprivate. Commit.
  • Port kquickcontrols to ecm_add_qml_module. Commit.
KDocTools
  • Fix the documented mailing list address for this project. Commit.
  • Update Turkish entities. Commit.
  • General.entities "BSD" is not TM. Commit.
KGuiAddons
  • Systemclipboard: Cache mimetypes after retrieval. Commit. Fixes bug #497735
  • Dont crash if the compostior doesnt support the shortcut inhibit protocol. Commit. Fixes bug #497457
  • Bump PlasmaWaylandProtocols build dependency to 1.15.0 due to 333ba248641023d80ced18012e8cef45bbb71edb. Commit.
KHolidays
  • Update holiday_bg_bg: Add namedays. Commit.
KI18n
  • Add context to missing argument warnings in i18n QML calls. Commit.
KIconThemes
  • Use Qt API to fully override the engine. Commit.
KImageformats
  • Avif: color profiles improvements. Commit.
  • Update heif.json. Commit.
  • HEIF plug-in extended to read AVCI format. Commit.
  • Readme updated with some clarification. Commit.
  • DDS: enable plugin by default. Commit.
  • PSD: Added support to MCH1 and MCH2. Commit.
  • XCF: Fix OSS Fuzz issue 42527849. Commit.
  • JXR: Fix loss of HDR data on write for format RGBA16FPx16_Premultiplied. Commit.
  • DDS: Fix for OSS Fuzz issue 384974505. Commit.
  • DDS: improved read/write support. Commit.
  • Read / Write test: added NULL device test. Commit.
  • DDS: multiple FP improvements. Commit.
  • PFM: fix error when loading images with comments. Commit.
  • DDS: fix buffer overflow in readCubeMap. Commit.
  • Re-added DDS plugin support. Commit. See bug #380956
KIO
  • Remove unimplemented methods. Commit.
  • [kfilefiltercombo] Fix creating 'All supported types' filter. Commit. See bug #497399
  • StandardThumbnailJob is internal, header not installed. Commit.
Kirigami
  • Expose auto exclusive from AbstractButton to Kirigami.Action. Commit.
  • Mnemonic: Emit sequence change also when it gets disabled. Commit.
  • ListSectionHeader: set Accessible.role to Heading. Commit.
  • Controls/Card: set title as default Accessible.name. Commit. See bug #497971
  • FormLayout: Set mnemonic only if buddy is visible and doesn't have one. Commit.
  • FormLayout: Activate buddy with ShortcutFocusReason. Commit.
  • Qmltest: Avoid Qt module include. Commit.
  • SearchDialog: Add emptyHelpfulAction. Commit.
  • FormLayout: Make use of animateClick in shortcut activation. Commit.
  • Don't overwrite menubar position. Commit.
  • Platformtheme: Set Accent color in highlight. Commit.
  • Fix documentation referring to not existing Theme.smallSpacing. Commit.
  • Ensure sidebar "y" position is only shifted when menubar/header is visible. Commit.
KNewStuff
  • Remove unimplemented methods. Commit.
  • Remove Q_EMIT for non-signal method call. Commit.
  • Add trailing comma to enum. Commit.
  • Fix compile on macos. Commit.
KNotifications
  • NotifyByAndroid: Set CONTEXT_NOT_EXPORTED. Commit.
KParts
  • Src/mainwindow.cpp fix deprecation warning. Commit.
KQuickCharts
  • Remove unimplemented methods. Commit.
KSVG
KTextEditor
  • Fix default shortcuts for mac os. Commit.
  • Rewrite Kate::TextBlock::mergeBlock m_cursors merging code. Commit.
  • Use one targetBlock->m_lines.insert instead of many targetBlock->m_lines.push_back. Commit.
  • Add testNoFlippedRange and testBlockSplitAndMerge to movingrange_test. Commit.
  • Preprocess lineEndings before pasting. Commit.
  • "Paste From File" feature for Kate to select a file and insert it's contents into the current file. Commit. Fixes bug #496902
  • Remove unnecessary multicursor clipboard code. Commit.
  • Try to split clipboard text across multiple cursors when pasting. Commit. Fixes bug #497863
  • Optimize kill lines for large number of cursors. Commit.
  • Fix full line selection behaviour of the C++ versions of the editing commands. Commit.
  • Remove not needed include. Commit.
  • Ensure content like from document doesn't make the dialog size explode. Commit. Fixes bug #497328
  • Store QTextLayout inline. Commit. See bug #483363
KTextTemplate
  • Remove unimplemented methods. Commit.
  • Fix build with Qt 6.10 (dev). Commit.
KUnitConversion
  • Fix rack unit conversion factor. Commit.
  • Add rack units to length conversion. Commit.
KWallet
  • Remove unimplemented methods. Commit.
KWidgetsAddons
  • KBusyIndicatorWidget: Add member functions to start and stop the spinning animation. Commit.
  • Ci: add Alpine/musl job. Commit.
  • Fix -Werror=return-type error when building kmessagewidgettest. Commit.
KXMLGUI
  • Add more support for toolbars in dbus interface. Commit.
Network Manager Qt
  • Remove checks for quotes on ConnectivityCheckUri. Commit.
  • Expose ConnectivityCheck properties. Commit.
Prison
  • Add QtMultimedia dependency to scanner QML module. Commit.
  • Remove errornous QML registration. Commit.
  • Register ScanResult to QML. Commit.
Purpose
  • Use DBus instead of kdeconnect-cli executable. Commit.
  • [kdeconnect] Port away from org.kde.kdeconnect QML import. Commit.
  • AlternativesModel: Return early if there's no input data. Commit.
QQC2 Desktop Style
  • Switch: Fix typo. Commit.
  • UpdateItem when mnemonic active changes. Commit.
  • Make use of animateClick in mnemonics. Commit.
  • ToolButton: Remove unused id. Commit.
Solid
  • [UPowerManager] Also print error message on failure. Commit. See bug #497474
  • Add null check for StorageAccess interface in storageAccessFromPath. Commit. Fixes bug #497299. See bug #492578
Sonnet
  • Remove unimplemented methods. Commit.
Syntax Highlighting
  • Systemd unit: update to systemd v257. Commit.
  • Add missing include. Commit.

Plasma Wayland Protocols 1.16.0 is now available for packaging. It is needed for the forthcoming Plasma 6.3.

URL: https://download.kde.org/stable/plasma-wayland-protocols/
SHA256: da3fbbe3fa5603f9dc9aabe948a6fc8c3b451edd1958138628e96c83649c1f16 Signed by: E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Riddell jr@jriddell.org

Full changelog:

  • external-brightness: Allow the client to specify observed brightness
  • output management: add a failure reason event
  • output device,-management: add a dimming multiplier
  • output device/management: add power/performance vs. color accuracy preference