Skip to content

Welcome to Planet KDE

This is a feed aggregator that collects what the contributors to the KDE community are writing on their respective blogs, in different languages

Tuesday, 15 July 2025

Tuesday, 15 July 2025. Today KDE releases a bugfix update to KDE Plasma 6, versioned 6.4.3.

Plasma 6.4 was released in June 2025 with many feature refinements and new modules to complete the desktop experience.

This release adds two weeks’ worth of new translations and fixes from KDE’s contributors. The bugfixes are typically small but important and include:

View full changelog

Today we're releasing Krita 5.2.11! This is a bug fix release for Krita 5.2.10, especially for Krita on Android where there were intermittent issues displaying the canvas properly.

Bug Fixes

  • Fix an issue updating the canvas when entering/exiting canvas-only mode
  • Fix an issue in the index colors filter when trying to apply the filter to a layer that has only one, non-transparent color
  • Fix building Krita with libheif 1.20. Thanks Brad Smith for the patch!
  • Fix Python invalid escape sequence warnings BUG:489526. Thanks Frey Lupen!

Download

Windows

If you're using the portable zip files, just open the zip file in Explorer and drag the folder somewhere convenient, then double-click on the Krita icon in the folder. This will not impact an installed version of Krita, though it will share your settings and custom resources with your regular installed version of Krita. For reporting crashes, also get the debug symbols folder.

[!NOTE] We are no longer making 32-bit Windows builds.

Linux

Note: from 5.2.11, the minimum supported version of Ubuntu is 22.04.

[!WARNING] 5.2.11 has updated the AppImage runtime, which is known to be incompatible with the old versions of AppImageLauncher. Developers of the AppImage runtime suggest to remove or update AppImageLauncher. See this report: Issue 121 More AppImage troubleshooting info is available here: FUSE

MacOS

Note: We're not supporting MacOS 10.13 anymore, 10.14 is the minimum supported version.

Android

We consider Krita on ChromeOS as ready for production. Krita on Android is still beta. Krita is not available for Android phones, only for tablets, because the user interface requires a large screen.

Source code

md5sum

For all downloads, visit https://download.kde.org/stable/krita/5.2.11/ and click on "Details" to get the hashes.

Key

The Linux AppImage and the source .tar.gz and .tar.xz tarballs are signed. You can retrieve the public key here. The signatures are here (filenames ending in .sig).

Monday, 14 July 2025

This is a bit of a rant; feel free to skip it if you’re here for the KDE content.


This isn’t the first time I’ve blogged about the dearth of truly great PC laptops out there, and I suspect it won’t be the last.

I limit myself to a single computer for simplicity’s sake, so it has to be a laptop. And since I replaced my 2020 Lenovo ThinkPad X1 Yoga a year ago, I haven’t succeeded at finding a truly great replacement yet. From a certain point of view, you could say I’m a picky buyer, judging by my list of requirements. But frankly, I think these requirements are not that unreasonable. All I want is a laptop that gets the basics right:

  • Good screen with a DPI suitable for 175-200% scaling, generally between 240 and 280 DPI
  • Good keyboard with text navigation keys (Home, End, Page Up, and Page Down) and a sensible layout: delete at the top right, no stupid replacement of normal modifier keys with fingerprint readers or copilot keys, no tiny arrow keys, etc.
  • Good touchpad that’s precise, doesn’t lag, and allows clicking on most or all of the total area
  • Good speakers that get reasonably loud and don’t have downward-facing tweeters
  • 8 hours of battery life with low usage
  • Reasonably fast CPU
  • Reasonable GPU performance for desktop compositing and playing couple-year-old games
  • Replaceable disk

Just the basics; no great world-shattering innovation needed, and that’s before I narrow the search to laptops that lack NVIDIA GPUs and have touch or 2-in-1 capabilities (which I quite like and are highly useful for testing touch support in KDE software). So it has to have great Linux and Plasma compatibility too!

I’ve closely followed the PC laptop market for 9 years, maintaining a giant spreadsheet of every laptop model and how they fare on the above characteristics plus many more:

The multi-year trend is “one step forward, one step back.” Most companies still change their laptops’ keyboard layouts in random negative ways every year; ship with stupid screen resolutions, woefully bad speakers, and disappointing touchpads; and stuff the most powerful processor and GPU in there and don’t focus enough on tuning the cooling, power usage, and fan profiles.

Some examples from my own usage:

My 2016 HP Spectre x360 was slow and had a poor screen DPI and a laggy touchpad. The 2024 model fixed those problems but lost its HDMI ports and text nav keys, and the USB-A port has a fiddly and annoying little hinge that’s hard to use and will eventually break. And then the 14″ version was canceled in 2025.

My 2020 Lenovo ThinkPad X1 Yoga was also slow, had miserable battery life and a loud fan, put the Fn and PrintScreen keys in inconvenient places, and its high resolution 4K screen option had too high a DPI, wasting energy. The 2025 model fixed those issues but lost the excellent quad speaker system, garaged pen, and the third key to the right of the spacebar that let you re-bind one of them into being a second Meta key.

None of this would be a problem if you could customize and upgrade laptops like you can with desktops, but you can’t. Even on the Framework 13 laptop which makes this an explicit selling point and has made huge leaps in 4 years, there still aren’t aftermarket speaker modules that sound good or a keyboard deck with text nav keys. And the touch/2-in-1 capabilities are only offered on the 12″ model.

Where are the great laptops?

Let’s step back a bit and try to figure out what’s going on here. We have an industry of over a dozen PC manufacturers selling thousands of products, but few truly great ones that are satisfactory in all ways, not just a few.

I feel that a major problem is over-complicated product lines. Let’s look at what the big companies offer.

Here’s Lenovo:

Seven product lines (or is it eight; there’s an extra one in the sidebar not shown in the main view) and 330 distinct models! How can a normal person who isn’t a laptop enthusiast find anything in here? Even my eyes glaze over when I’m trying to distinguish the differences between the models and product lines.

HP further complicates things by having separate sites for consumer laptops and business laptops. First the consumer laptops:

12 product lines with 67 models. Already a lot. But now add in the business laptops:

7 product lines with 352 models! Absurd. HP implicitly acknowledges the problem by advertising a sales advisor you can chat with to help you make heads or tails of this overwhelming mess (and maybe steer you towards more expensive models):

In total, HP offers 19 product lines and 419 models. Madness, I tell you. Sheer madness.

ASUS makes it even harder by dividing their models into micro-targeted audiences, which makes no sense since there’s overlap in all these use cases and only limited differences between what any of them need in a laptop:

Ultimately I found 8 product lines with 289 models on the US site. Yikes!

MSI does similar segmentation but finds a way to make it even worse by putting more models in each high level category and not offering a “See all” page:

Hmm, do I want a Titan gaming laptop, or a Raider? Maybe a Vector ? Perhaps a Cyborg, or is that a Thin? Apparently they can’t even settle on one name for half of them. Ultimately MSI has divided their laptops into no fewer than 16 product lines with 159 models.

How about Dell?

10 product lines, 70 models. A bit better than some of the competition, but 70 total is still an objectively ridiculous level of choice to offer, especially considering that most of these models are going to offer various configurations of CPUs, memory, and storage space.

I could go on, but you get the idea.

You might think that this level of choice should provide anything one could want, but that’s not true. Most of the models differ by like 1% and make all the same mistakes, copy-pasted across the while product line. Maintaining so many product lines at a reasonable level of development and quality is impossible, even for companies of their size with billions of dollars to throw at the problem.

These companies are clearly trying to micro-target specific market segments to match prices to buyers’ budgets, but offering so much choice is foolish. Most buyers — even big commercial buyers — are not informed enough to be able to pick the perfect device from among a massive blob of options presented at the same level, causing choice paralysis and lost sales, disappointing purchases that reduce brand loyalty, and expensive returns.

There has to be a better way!

Who’s doing it right?

There are some bright spots in the industry.

The most notable is Apple, which offers two product lines and five total models. The differences between them are 100% comprehensible. No matter what Apple laptop you choose, it has a world-class touchpad, great speakers, an at-least-good keyboard with a sensible layout, a nice high DPI screen, great performance, and mind-blowing battery life. There are no bad models (if you’re a Mac fan, of course).

Razer is up there too, with one product line and three models, and all of them mostly get the basics right.

Framework also does a great job, also with just three models. The Framework 13 is so close to being the perfect do-it-all general purpose device for me. It just needs text nav keys, better speakers, and a touchscreen (ideally in a 2-in-1 form factor like the 12).

The small Linux-specific StarLabs company does an unexpectedly great job too, with the same three models (hmm, perhaps there’s a pattern here). And these aren’t Clevo or Tongfang units, either! They’re really nice custom engineered Linux-first laptops. I’ve come close to buying one on two occasions within the past year.

And notably, these companies’ laptops tend to get better with each revision, rather than oscillating around a specific level of quality but never consistently improving.

How to not confuse the hell out of people

It’s not that hard: offer a small number of product lines and models with very clear segmentation (by screen size, presence or absence of a GPU, 2-in-1 vs clamshell laptop, etc) and make all of them good. Don’t sell any bad models that have crappy screens, keyboards, touchpads, speakers, or battery life. Don’t sell any models that are 99% identical to other ones. Don’t do this:

No, don’t do this! Stop it! You’re hurting me!

Then make each product better every year. Don’t just put in a new generation of CPUs and ports when they become available; be thoughtful and actually make things better. Reduce power consumption, fan noise, and heat emissions. Tune the speakers to sound better. Increase the screen backlight’s brightness. Put in a nicer, higher-resolution webcam. Increase the number of microphones, and add hardware noise cancellation. Tighten up the ports so they aren’t wobbly. Thicken the case to make it more durable. Beef up the hinges. Use captive screws for the bottom cover. Lighten or roughen the surface a bit to resist fingerprints. Make it easier to remove keys for cleaning without breaking their attachment mechanism. Make the whole keyboard replaceable.

And so on. You know, care about the product! The way we do in KDE for Plasma and our apps. Make it better. Admit and undo your mistakes. Double down on your strengths. And make something great you can be proud of!

A few companies are already there, and I hope someday more follow in their footsteps.

Saturday, 12 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 features for Plasma 6.5 started to take shape. Day/night appearance changes and digital art are going to be some of the big areas of improvement, so get ready!

Notable New Features

Plasma 6.5.0

You can now configure what rotatable dials on your drawing tablet do! (Joshua Goins, link 1, link 2, and link 3)

When sharing the current Wi-Fi network, its password is now shown as well, so the person you’re sharing it to can easily connect. (Ivan Tkachenko, link)

Notable UI Improvements

Plasma 6.4.3

Improved the accessibility of the Welcome Center app in multiple ways. (Nicolas Fella, link)

KWin’s Magnifier effect now has a maximum magnification level, since going beyond this just turns it into the Zoom effect. (Vlad Zahorodnii, link)

Improved the display of raw bytes in notifications involving file transfers. (Kai Uwe Broulik, link)

Plasma 6.5.0

With the new feature to automatically change wallpapers between their light and dark versions, there’s now more than one feature that makes use of the day/night cycle. Accordingly, the place where you configure your location so the system knows what sunrise and sunset timings to use has been moved out of the Night Light page in System Settings and onto its own page. The cycle you set up here will be used for both Night Light and automatic wallpaper switching, and later for automatic theme or color scheme switching too, once either of those are finalized. (Vlad Zahorodnii, link 1 and link 2)

System Settings page allowing you to determine the day-night cycle of your choosing

Screencasts of specific windows now include their titlebars, borders, and shadows. (David Redondo, link)

Notable Bug Fixes

Plasma 6.4.3

Fixed an issue that could cause KWin to crash when you Alt+Tab out of certain games. (Vlad Zahorodnii, link)

Fixed an issue that could cause KWin to crash while using a drawing tablet pen when an internal window closes. (Vlad Zahorodnii, link)

Fixed a regression that caused window focus to be wrong after switching activities. (Vlad Zahorodnii, link)

Fixed a very strange issue that caused apps launched from within Spectacle (for example a video player to view saved screen recordings) to be super duper broken. (Nicolas Fella, link)

Fixed an issue that would prevent Plasma pop-ups from being focusable if a pop-over window from a GTK 4 app was open. (David Edmundson, link)

Using the “Activate and Raise” click setting on Wayland no longer eats clicks while a tooltip is visible. (Vlad Zahorodnii, link)

Fixed an issue that caused window resizing when using a fractional scale factor to be a bit chaotic-looking. (Vlad Zahorodnii, link)

Fixed an issue that caused the Orca screen reader to not work quite right when pressing structural navigation keys repeatedly. (Michael Weghorn, link)

Made the Minimize All Windows widget to work on X11 again. (Marco Martin, link)

The ”Dim Inactive” KWin effect no longer also dims Alt+Tab switchers. (Vlad Zahorodnii, link)

Adapted our code to a Qt change that caused the lock screen to sometimes show the UI and password prompt immediately, rather than only after any interaction. (Marc Payne, link)

Plasma 6.5.0

Fixed an issue that made it impossible to change the background for the SDDM login screen to a new image with the same file name as the old one. (Amy Rose, link)

Fixed an issue that caused authentication prompts to inappropriately reject any already-entered text even if you hadn’t accepted it yet, but rather just because the underlying PAM system was taking a long time. (Secureblue, link)

Frameworks 6.17

Fixed an issue that caused the drag-and-drop menu to sometimes not appear when expected upon dropping files from Dolphin onto the Plasma desktop. (Akseli Lahtinen, link)

Other bug information of note:

Notable in Performance & Technical

Plasma 6.4.3

Fixed a memory leak in KWin. (Vlad Zahorodnii, link)

Plasma 6.5.0

You can now kioclient mkdir to create a directory going through the KIO system. (Bernardo Gomes Negri, link)

Frameworks 6.17

Slightly improved performance and efficiency for all QtQuick-based KDE apps — including Plasma apps like System Settings, Discover, and Spectacle. (David Edmundson and Marco Martin, link 1 and link 2)

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, 11 July 2025

Friday, 11 July 2025

KDE today announces the release of KDE Frameworks 6.16.0.

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
  • [termgenerator] Avoid some QString is_shared/detach checks. Commit.
  • [termgeneratortest] Add benchmark for termlist. Commit.
  • Use data driven tests in more places. Commit.
  • [PostingDB] Reduce code duplication, remove DBPostingIterator. Commit.
Breeze Icons
  • Add audio-speakers and audio-input-microphone to devices/64. Commit.
  • Remove duplicated icons. Commit.
  • Add 64px colorful printer-error icon. Commit.
  • Edit create-app-symlinks.py. Commit.
  • CMakeLists.txt - unset CMAKE_INTERPROCEDURAL_OPTIMIZATION. Commit.
  • Disable LTO for qt_add_big_resources. Commit. Fixes bug #487452. Fixes bug #499674
  • Use big resource variant, else we OOM on 32 bit machines. Commit. Fixes bug #487452. Fixes bug #499674
  • Add TOML icon. Commit.
  • Add PIP Picture-in-Picture action icons. Commit.
  • Remove leftover of Virtualbox. Commit.
  • Remove outdated custom Virtualbox icon. Commit.
Extra CMake Modules
  • [ECMGenerateQDoc] Make QtTools optional. Commit.
  • [KDECMakeSettings] Disable warning about using private Qt modules. Commit.
  • Typo--. Commit.
Framework Integration
  • Plasma_workspace.notifyrc: Use low urgency for device added/removed. Commit.
KArchive
  • Allow giving the KCompressionDevice the size we know it has. Commit.
  • Kzip: Prevent integer-overflow found by oss-fuzz. Commit.
KBookmarks
  • Fix KBookmarkAction::slotSelected MouseButtons parameter. Commit.
KCMUtils
  • Kcm: supportsInstantApply property. Commit.
KColorScheme
  • It compiles fine without kf 6.14 deprecated methods. Commit.
KConfig
  • Kconfig_compiler: Add Time type. Commit.
  • Typo--. Commit.
  • Guard against KConfigWatcher getting deleted while emitting configChanged(). Commit. See bug #504657
  • Core: Fix parsing kdeglobals after rewinding system clock. Commit.
KConfigWidgets
  • KCommandBar: Fix Escape key press and release leaking through. Commit. Fixes bug #506394
  • KCommandBar: Add Q_OBJECT macros. Commit.
  • Bring kf6_entry.desktop to the source code. Commit.
KCoreAddons
  • Add example for using KCoreAddons from Python. Commit.
  • [python] Mark value types as such. Commit.
  • Apply fixits for clazy-qdatetime-utc. Commit.
  • Add handling for KFormat::AbbreviatedDuration with days and years. Commit.
  • Add KFormat Python example. Commit.
  • Skip time formatting tests when we can't change the system timezone. Commit.
  • Add timezone-preserving time formatting API for QML. Commit.
KDeclarative
  • Kquickcontrols/KeySequenceItem: Add support for setting KKeySequenceRecorder pattern. Commit.
KFileMetaData
  • Add AccessibleAltText property. Commit.
  • [PlaintextExtractor] Use peek for peeking, instead of seek. Commit.
KGuiAddons
  • Add Python example for KDateValidator. Commit.
  • Add Python example for KIconUtils. Commit.
  • Add Python example for KColorSchemeWatcher. Commit.
KHolidays
  • Changes Queen (El. II)'s day to King's (everywhere). Commit.
  • Update holidays for New Zaeland. Commit. Fixes bug #506251
  • Add holidays for the Federation of Bosnia and Herzegovina. Commit. Fixes bug #505924
  • Holiday_ru_ru: keep old date for "День молодежи" if year is less than 2023. Commit.
  • Holiday_ru_ru: moved "День молодежи" to last saturday in june. Commit.
  • Holiday_hk_zh-cn: Use the official Chinese name for October 1. Commit.
KI18n
  • Autotests: Add test cases for shortcut delimiter handling. Commit.
  • I18n/kuitsetup: Handle shortcuts that use a delimiter as a key. Commit.
KIconThemes
  • KIconButton: Use CE_IconButton to paint the button, if available. Commit.
  • KIconLoader: Stop looking for a stylesheet once we have found it. Commit.
KImageformats
  • TGA: add indexed write support. Commit.
  • IFF: read only support to Interchange Format Files. Commit.
  • Tga: Use Format_Indexed8 for indexed formats and support 32-bit BGRA colormap. Commit.
KIO
  • Improve discrete GPU detection using switcheroo-control. Commit.
  • RenameFileDialog: Add Add Text Strategy. Commit.
  • KDirListerTest: test Remote Urls are equal. Commit.
  • KCoreDirLister: Clean up the trailing slash as expected on remote systems. Commit. Fixes bug #451050
  • Smb: test if the needed helper we want to call is there. Commit.
  • Kdynamicjobtracker: Remove KUIServerJobTracker support. Commit.
  • KNewFileMenu: Fix tab order of folder button icons. Commit.
  • KPropertiesDialog/Checksums: Make accessible. Commit.
  • Fix compile with qt6.7. Don't use 6.8 api. Commit.
  • Bump down kf deprecated methods to 6.13. Commit.
  • KMountPoint: Fix device IDs for mountpoints with non-ascii paths. Commit.
  • KPropertiesDialog/General: Add placeholder text to symlink text edit. Commit.
  • KPropertiesDialog/General: Define QLabel::body from .ui file. Commit.
  • Properties/General: Make most of the information accessible. Commit.
  • Properties/General: Have tab focus order top to bottom. Commit.
  • Properties/General: Make information keyboard-accessible. Commit.
  • Remove solid linked to KF6KIOWidgets. Commit.
  • RenameFileDialog: allow to rename by replacing text. Commit. See bug #371383
  • BatchRenameJob: allow to pass a function to rename files. Commit.
  • Indent things inside the NOT KIOCORE_ONLY if. Commit.
  • Kfilewidget: Resolve relative file urls against current working dir. Commit. Fixes bug #490827
  • Rephrase misleading "full trash" message. Commit. Fixes bug #504785
Kirigami
  • [Dialog] Fix accessing contentItem. Commit.
  • Wheelhandler: Prevent division by zero. Commit.
  • Fix SoftwareRectangleNode leaking image nodes. Commit.
  • Fix ShadowedTexture crashing with software rendering. Commit.
  • Check for Height and ContentHeight to determine whether to show Dialog lines. Commit.
  • Do NOT parent the separator to the column. Commit.
  • Also show icons specified by source in context drawer actions. Commit.
  • Fix busy indicator not being shown on Android. Commit.
  • Fix crash when m_view is null. Commit. Fixes bug #506366
  • OverlayDrawer: go from speed to standard duration. Commit.
  • Make sure ApplicationWindow assigns pageStack of AbstractApplicationWindow. Commit.
  • [PageRowGlobalToolBarUI] Actually return computation result. Commit.
  • Parent separators to the columns. Commit.
  • Force opacity animations for notifications that are out of view. Commit.
  • ListSectionHeader: Support icons. Commit.
  • Fix spacing of global menu button in toolbar. Commit. Fixes bug #506104
  • UrlButton: fix icon positioning. Commit.
  • Revert "Properly Align menubar when there is a sidebar drawer". Commit.
  • Fix collapsed drawers width. Commit.
  • Beef up Icon documentation. Commit.
  • Use attached column preferredWidth. Commit.
  • Unconditionally check if leadingMinimumWidth < 0. Commit.
  • Move the savestate in a property. Commit.
  • Experimental load/save code. Commit.
  • A resize handle in the columnview separators. Commit.
  • Simplify ColumnView separators code. Commit.
  • Implement inertia scrolling in WheelHandler. Commit.
  • Allow for non-interactive Chips. Commit.
  • OverlayDrawer: don't relly on applicationWindow. Commit.
  • AbstractCard/Card: improve documentation. Commit.
  • Beef up InlineMessage documentation. Commit.
  • Beef up ActionToolBar documentation. Commit.
  • Heading: massage docs. Commit.
  • OverlaySheet: improve documentation. Commit.
  • Improve ActionTextField documentation. Commit.
  • InlineViewHeader: improve docs to say "trailing" instead of "right". Commit.
  • Fix Dialog List with Scrollbar. Commit.
  • Consider safe area margins in global and context drawer. Commit.
  • Achieve WCAG AA text contrast for labels using opacity. Commit.
  • Primitives: Don't use mix shader for Icon if we animate without old icon. Commit.
  • Consider safe area margins in NavigationTabBar. Commit.
KItemModels
  • Remove Q_UNUSED statements for variables that actually have usages. Commit.
KPackage
  • Cmake: Allow disabling the generation of the appstream metadata. Commit.
KQuickCharts
  • Controls: Handle Chart::destroyed() in LegendModel. Commit. See bug #503099
KTextEditor
  • Restore Qt6.7 buildability. Commit.
  • Fix selection ignored when layouting the line. Commit.
  • Rename config from autoreload-on-external-changes to auto-reload-on-external-changes + set auto-reload-on-external-changes default value to false + use only config to autoreload. Commit.
  • Use config interface instead of virtual method. Commit.
  • Remove verification according to autoreload configuration on external changes + add documentHasAutoReloadConfiguration virtual method to document. Commit.
  • Add verification on AutoReloadOnExternalChanges in slotDelayedHandleModOnHd. Commit.
  • Add auto reload on external changes option. Commit.
  • Formalize a little more what VariableRemoveSpacesItem does. Commit.
  • Support ctrl-backspace to delete word in vi mode. Commit. Fixes bug #504033
  • Avoid that we create xxxxxx pixel long menus. Commit.
  • Draw selection background ourselves. Commit. Fixes bug #502233
  • Fix xml indent test. Commit.
  • Fix test. Commit.
KUnitConversion
KWallet
  • Depend on what/when we use it. Commit.
KWidgetsAddons
  • Kcollapsiblegroupbox: don't blow up initial window size. Commit. Fixes bug #505820
  • KPageTabbedView: Avoid focus going to intermediary container. Commit.
  • Disable auto-repeat for "toggle full screen" action. Commit.
  • Fix crash on windows when opening KDateCombobox after an invalid date has been typed. Commit.
KWindowSystem
  • Platforms/wayland: Properly reset shadow tile buffer when wl_shm is withdrawn. Commit.
KXMLGUI
  • We emit a critical error, we don't need to abort. Commit. Fixes bug #400271
  • About Dialog: Send people to support page for support. Commit.
Network Manager Qt
  • Delete duplicate DBus connections. Commit.
QQC2 Desktop Style
  • Add footer line and padding to QQC2.Dialog style. Commit.
  • Use correct height for treeview delegates. Commit.
  • Check for text truncation correctly to fix tooltip visibility. Commit. Fixes bug #505745
  • Add the tooltip code from Kirigami.MenuDialog to QQC.ItemDelegate. Commit.
  • Skip disabled tabs when switching pages by mouse wheel. Commit.
  • Remove modelIndex property from TreeViewDelegate. Commit. Fixes bug #505437
  • Use loader for treeview indicators. Commit.
Solid
  • Use UTF-8 encoding for USB device property keys. Commit.
  • Fix garbled USB device properties. Commit. Fixes bug #505913
  • Fix build with -DUDEV_DISABLED=ON. Commit.
  • Fix build with USE_DBUS=OFF. Commit.
Syntax Highlighting
  • Remove doc comment from KQuickSyntaxHighlightingPlugin. Commit.
  • Remove asterisks from docs. Commit.
  • Link docs for QML module in index page. Commit.
  • Sagemath is a superlanguage of Python, and uses .sage extensions. Commit. Fixes bug #506125
  • DTD: add single quote string, Conditional Section and PEReference. Commit.
  • XML (Debug): add tests. Commit.
  • XML (Debug): fix DOCTYPE statement, optional prolog and the endless stacking of contexts. Commit.
  • XML (Debug): indentation. Commit.
  • Scheme: fix double hyphen error in a XML comment (Kawa extension): '--->' is a error. Commit.
  • Vue: remove double hyphen error in comment. Commit.
  • RHTML: remove ]]&gt; as EntityRef in CDATA and double hyphen error in comment. Commit.
  • Mustache: remove ]]&gt; as EntityRef in CDATA and double hyphen error in comment. Commit.
  • Mako: remove ]]&gt; as EntityRef in CDATA and double hyphen error in comment. Commit.
  • HTML: remove ]]&gt; as EntityRef in CDATA and double hyphen error in comment. Commit.
  • Django HTML Template: remove ]]&gt; as EntityRef in CDATA and double hyphen error in comment. Commit.
  • XUL: use XML syntax, except for the CDATA part which has a special meaning. Commit.
  • XML: remove ]]> as EntityRef in CDATA context and add ]]> as Error in text part. Commit.
  • SGML: add a comment on missing features. Commit.
  • Perl: remove symbol operators of operators list. Commit.
  • Perl: do not mark text after a numeric variable as Data Type. Commit.
  • Perl: add r flag with regex substitution. Commit.
  • Perl: fix digit separator and floating point ; add hexadecimal floating point. Commit.
  • Perl: simplify RegExpr: remove unnecessary \s* or replaces them with simpler rules. Commit.
  • Perl: add control flow highlight. Commit.
  • MediaWiki: fix some errors. Commit.
  • XSLT generated from the XML file. Commit.
  • XML: mark spaces before an attribute name as "Other Text". Commit.

Thursday, 10 July 2025

I have been a long time Plasma Mobile contributor, but I have always had a keen interest in having Linux on my TV! I have noticed that in the past few months, the Plasma Bigscreen project has had some interest from people wanting to contribute, but there have not been any active KDE developers working on the project. Since I have some time off school (having just graduated university), I decided to take a swing at improving the project for a week.

Background 🔗

Plasma Bigscreen is a Plasma-based shell (desktop environment) for TVs and other large displays. It is designed to be used with arrow navigation using remotes or controllers.

I have not been involved with the project in the past so its history is a bit murky to me. From what I know, it was originally developed with Mycroft in mind, which was a open source virtual assistant. They had even developed hardware for it, but unfortunately, the company shut down in recent years. The work by the developers at that time appears to have been sponsored by Blue Systems.

Plasma Bigscreen itself emerged around 2020 and was designed as a “Plasma shell”, in a similar way to Plasma Desktop and Plasma Mobile. Back when development was active, it provided a TV friendly launcher to launch Linux apps, and even had its own “mini-apps”, known as Mycroft Skills. These could be downloaded from the KDE Store. A TV-friendly web browser and media player were also developed for the project. The project itself was released in the Plasma 5 release cycle, but got dropped with Plasma 6 in 2024 because it was not ported in time for the megarelease.

About a year ago, the project was ported to Plasma 6 (and Qt 6), but has not yet received a release since being removed from the Plasma release schedule.

Stepping in 🔗

A few months ago, my friend Seshan started doing some work and opened a few merge requests against the Plasma Bigscreen shell repository. I noticed that there had basically been no activity on the repository since the initial Qt6/Plasma6 port, and the matrix channel had no active developers. I sensed an opportunity…

Housekeeping 🔗

I started with some housekeeping work with the repository. I added a README, and a REUSE license checker to the CI. I then ported the QML library to be a declarative plugin, and removed a bunch of abandoned code folders that were not used anywhere in the codebase.

Merge requests:

UI 🔗

At this point prior to my work, the shell UI looked like this:

I was digging around some old Breeze Ocean mockups and stumbled across some Bigscreen mockups by Manuel. It seems the original Bigscreen UI did try to follow it, but did not quite get there. I felt inspired to fully complete implementing them.

Homescreen 🔗

I first worked on the homescreen UI. I flattened the layout to reduce visual complexity, removing panel backgrounds and shadows where possible, while adding tooltips for the indicators. I then added an “expanded clock” view for when the user is at the top of application categories (based on the mockups), which shrinks when the user goes down the view. I ported the application lists to use ListView and delegate caching rather than having all elements having their coordinates positioned manually to improve performance. The background now also blurs when it is not the main focus of the UI.

I also added a search view based on KRunner. This allows users to search for the applications they need without needing to manually scroll through the entire application list.

Merge requests:

Settings 🔗

I redesigned the system settings view to have a sidebar with categories, with a simple two-pane look.

The settings modules (KCMs) had a lot of hardcoded UI elements and layouts. I decided to make a small component library to build TV focused UIs (that still look Breeze like), and ported all of the settings modules to it. I moved away from horizontal layouts to vertical layouts for content, and put a heavier emphasis on sidebars for interacting with individual delegates. I think it looks pretty nice:

I ported settings modules to my controls library, and also fixed some issues:

  • Display KCM (rewritten with libkscreen backend, as it was otherwise completely broken)
  • Sound KCM (ported to new UI)
  • KDE Connect KCM (ported to new UI, fixed some state issues)
  • Bigscreen KCM (ported to new UI, fix shortcuts, fixed timezone selection)
  • Wi-Fi KCM (ported to new UI)

Merge requests:

Startup feedback 🔗

The UI feedback for starting an application was broken, so I decided to overhaul it to be something similar to what we have on mobile:

Merge request:

Envmanager 🔗

I wrote envmanager as a program in Plasma Mobile that manages shell specific configuration we need in services such as KWin. This avoids the need for distros to ship custom configs to set certain settings that the shell needs. I recently changed Plasma Mobile to use config overlays in order to achieve this, with more details can be found in my other blog post.

Merge requests:

Trying it out 🔗

In order to try it out (on a TV for realsies, not just on my workstation), I used a Raspberry Pi 5. I flashed postmarketOS onto it, and then manually compiled and installed the Plasma Bigscreen shell.

Note: If you are trying to build and install on postmarketOS yourself, be sure install the dependencies and pass the build flags in this manifest, as they are required: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/ee4de8c6702a113914d6ed899c88cb9411e75427/packages/plasma-bigscreen/APKBUILD#L57

As a user you can otherwise install plasma-bigscreen from the nightly repo, or use the AUR package on Arch (though I haven’t tried it).

It’s dangling off the HDMI cable, I know

Applications 🔗

In its heyday, Plasma Bigscreen relied on “Mycroft Skills” to provide some media applications such as YouTube and SoundCloud. We do not have that anymore, so I tried out some other Linux applications.

These are some of the ones I tried from Flathub:

  • Kodi - Works well with arrow navigation, allows you to manage a local digital library of content
  • VacuumTube - Provides the YouTube TV web UI wrapped in an application, works well with arrow navigation
  • Jellyfin - I don’t have a Jellyfin server; it launches fine but I don’t think it supports arrow navigation
  • SuperTux - Fun game!
  • SuperTuxKart - It ran somewhat poorly on the Pi, but playing it with a controller was quite nice!

Of course, we also have KDE applications designed for TV:

Controller support 🔗

There is a repository called plasma-remotecontrollers, which contains a daemon that is able to take both game controllers (ex. Xbox) and TV remotes (over CEC on HDMI) and map them to keyboard arrow keys. It also has a settings module to configure the shortcuts.

I was able to successfully test having an Xbox controller connected (with the daemon online), and having it map the arrow buttons to arrow keys on the system. I wasn’t able to however test the CEC support, which would allow buttons on TV remotes (over HDMI) map to arrow keys.

Other contributors 🔗

Seshan and User8395 have also been contributing to the project here and there in the past few weeks, here are some highlights:

Unresolved issues 🔗

There is still a lot to work on in the project.

Input 🔗

There isn’t a virtual keyboard to input text with that supports arrow navigation. This is something planned for Plasma Keyboard however, please stay tuned!

The plasma-remotecontrollers’s (TV remote/game controller support) settings module is also not yet properly ported and tested on Bigscreen.

So… it is probably best to still use a bluetooth keyboard and mouse for now, or an air remote.

Application design 🔗

We do not have any framework to design TV-based UIs in KDE. Aura browser and Plank both use Qt Quick Controls and Kirigami, but have a lot of hardcoding and custom controls in order to be usable on a TV. I do have a few TV focused components for building settings modules, but that is a very narrow set of controls.

Goals 🔗

What are the usecases we want to achieve with a TV focused desktop environment? Do we need to also pursue making frontends for various media services? There isn’t a clear direction for the project at the moment, beyond making it a working desktop environment. In the past, this project was heavily focused on Mycroft but that no longer exists.

Getting it released again 🔗

Distributions dropped their respective plasma-bigscreen packages when Plasma 6 rolled out, as it is no longer part of the Plasma release. We need to have the project return to the Plasma release cycle, hopefully starting with Plasma 6.5.

Overall 🔗

I am fairly happy with the work that I was able to produce for Bigscreen last month. I have since returned to working on Plasma Mobile (due to having limited time as a volunteer contributor), but I can still step in and help review merge requests and guide new contributors to the project.

Feel free to join us in the Bigscreen Matrix group #plasma-bigscreen:kde.org!

Today, we released updated versions of the fine-tuned CodeLlama 13B-QML and 7B -QML models. The updated versions include the first skills to complete code for Qt Quick enhancements in Qt 6.9 and Qt 6.10.

Wednesday, 9 July 2025

As i wrote in the previous post, now the KWallet service has been splitted in a compatibility layer that exposes the old KWallet api, but actually consumes the Secret Service API, provided by default by the old KWallet daemon converted in a secretservice-only provider.

Another pain point is the application used to look inside the wallets, KWalletmanager, which only speaks the KWallet api and looks a bit dated nowdays:

I am working on a new application which goal is strictly to be a client for Secret Service. It can access passwords of any Secret Service provider (being KWallet, Gnome-keyring, KeepassXC, oo7 or whatever else) and should hopefully look a bit more modern and simple, while still being powerful:

Both as a desktop application or a mobile one:

For items imported from KWallet supports editing the values of type “Map” as well:

As well as visualizing “binary” entries (here super censored for obvious reasons 😉

The application can be tested at https://invent.kde.org/mart/kwallets

But has a fundamental problem, for which i need help… Right now is just called “KWallets” which can be kinda confusing with old KWallet and KWalletManager, so it probably needs a new name, any opinion is welcome 😄.

Tuesday, 8 July 2025

The Amarok Development Squad is happy to announce the immediate availability of Amarok 3.3 "Far Above the Clouds"!

Amarok 3.3 screenshot

Amarok 3.3.0 is the first version based on Qt6/KF6, corresponding to a decade-sized update of the technological foundations. Additionally, audio engine has been reworked to use GStreamer for playback. Previously, the availability of various features, e.g. ReplayGain and visualiser, was dependent on the Phonon backend in use, an issue that became even more evident with Qt6 Phonon backends. This has now been remedied: The reworked audio engine provides unified feature set for all users and should provide a solid and future-proof sonic experience for years to come. Notable improvements have also landed to the database system: improved character set support helps with e.g. emojis in podcast descriptions and other very exotic symbols, date handling has been improved ('year 2038 problem'), and various other potential and actual database-related issues have been fixed.

Amarok 3.3 arrives approximately 15 months after the initial Qt5/KF5 version 3.0 and 5 months after the final Qt5/KF5 version 3.2.2. Although there have been a number of major changes, they are mostly technical, and their effect on the user experience is relatively minor. Therefore, the version released now is 3.3.0, with some 3.3.x bugfix releases to be expected in near future. A new major version ('Amarok 4') will be released later, after more extensive work on the user interface and other aspects of the software has been carried out.

Changes since 3.2.2

FEATURES:
  • Audio engine has been reworked to use GStreamer instead of Phonon
CHANGES:
  • Qt5/KF5 support has been dropped
  • Update database character set to allow full utf-8 values (BR 462268)
  • Apply default pre-gain when ReplayGain is active and use fallback value if no ReplayGain data is available for a track
  • Clear out some of the now-discontinued Last.fm radio functionalities and partially replace by opening relevant Last.fm pages
  • Remove TagLib extras support (RealMedia and Audible files)
BUGFIXES:
  • Handle volume better and avoid resets on track changes (BR 506427)
  • Fix year 2038 problem for various dates saved in database (BR 426807)
  • Default to not allow compiling without embedded database (BR 502777)
  • Prevent concurrent scan result processings from taking place to avoid potential database issues
  • Partially re-enable cue file support

The git repository statistics between 3.2.0 and 3.3.0 are as follows:
Tuomas Nurmi: 113 commits, +3681, -3101
l10n daemon script: 92 commits, +85094, -89109
Kunda Ki: 1 commit, +4, -11
Carl Schwan: 1 commit, +1, -1

Getting Amarok

In addition to source code, Amarok is available for installation from many distributions' package repositories, which are likely to get updated to 3.3.0 soon, as well as the flatpak available on flathub.

Packager section

You can find the tarball package on download.kde.org and it has been signed with Tuomas Nurmi's GPG key.

I have released 25.04.3 I have upgraded the QT6 content snap to 6.9! Fixed a bug in kde-neon* extensions with cmake prefix path.

New snaps!

Audex: A CD ripping application.

GCompris – An excellent childrens education application

Labplot – Scientific plotting

Digikam – 8.7.0 with exiftool bug fixed https://bugs.kde.org/show_bug.cgi?id=501424

Krita – 5.2.11 – Excellent Graphic art platform ( compares to Photoshop )

kgraphviewer – Graphiz .dot file viewer

I am happy to report my arm is mostly functional! Unfortunately, maintaining all these snaps is an enormous amount of work, with time I don’t have! Please consider a donation for the time I should be spending job hunting / getting a website business off the ground. Thank you for your consideration!