VOOZH about

URL: https://pointieststick.com/category/usability-productivity/

⇱ Usability & Productivity – Adventures in Linux and KDE


Skip to content

By now, many of you have probably seen Linus Tech Tips’ “Linux is Easy, right?” video?

The TL;DW version is that yes, things are mostly pretty easy, and the tasks they’re having trouble are becoming become less and less common over time… but pain points remain for the “prosumer/technology enthusiast” crowd: folks who are moderately to very technical, but aren’t software developers.

KDE comes out pretty well, with one exception: network shares.

Network shares.

Yes, network shares.

Still. In 2026!

What the heck is going on here? How is this not a solved problem? Let’s talk about it today.

How it works in KDE’s software

When you access a network share from Dolphin’s built-in network share browser, it doesn’t get mounted as a local path somewhere; Dolphin is connecting to the share using its own communication protocol: smb://, nfs://, or similar.

This is fine for KDE apps; they can use those communication protocols to access files when you double-click them on network shares you’ve accessed using Dolphin.

Everything works.

When you double-click a file on a network share and it opens in a non-KDE app, at that point something called kio-fuse (that we did a ton of work to build a few years ago) secretly creates a FUSE mount of the share in the background, and passes the app a local path to the file on the secret FUSE mount.

This way, the non-KDE app opens the file from a local path as it expects, and everything still works.

No it doesn’t, you liar!

You caught me! Everything works if you open the file from Dolphin… but what if you need to access a file on the share from the “open” dialog in an app, or save a file to the share using the “save” dialog in an app?

Well, then things get more complicated.

If it’s a KDE app, the standard KDE open/save dialog knows how to access the network share so you can open or save new files there. If you’ve created a bookmark for the share in your Places panel (which is our documented recommendation in KDE Linux), it’s already right there; simply click on it to connect to the share, and navigate to the desired file or location. Easy peasy, everything works.

👁 Image
A bookmarked network share for my living room HTPC. Accessible in the same way from Dolphin and KDE open/save dialogs. Works great!

Sounds great! So where’s the complication? Let’s move on.

If it’s a non-KDE app that uses the KDE open/save dialog, it’s the same deal: access the share from the dialog, everything works. Example apps are VLC and LibreOffice (when run with the Qt backend). Still no complication…

If it’s a non-KDE app that uses the portal-based open/save dialog, then everything is lovely here too. The app asks the XDG Desktop Portal for an open/save dialog; the portal offers up the KDE dialog; everything works. In this respect, Flatpak has been encouraging adoption of the portal-based open/save dialogs, which produces a really nice experience: KDE users get a KDE open/save dialog in almost every Flatpak app — something we’ve all wanted for years!

But now we come to the problem:

If it’s a non-KDE app that uses its own non-KDE open/save dialog… then everything becomes terrible. Its dialog will not see any bookmarks you’ve added to the KDE dialog, and will expect you to have the share mounted locally somewhere. Even if kio-fuse created a mount, the non-KDE dialog doesn’t show it nicely in its sidebar! You have to know the secret location of the mount (/run/user/1000/kio-fuse-[something]) and use the dialog to navigate there manually.

If these apps are packaged traditionally, that’s bad enough. If they’re Flatpaks, it’s worse: they have to be packaged with a hole in the security sandbox that allows them to access the kio-fuse mount, or else you can’t access it even if you know it exists and navigate there manually. Most do this for the location where GNOME’s own system mounts shares… but not for the location where kio-fuse mounts them — nor the location of any shares you’ve manually mounted, for that matter.

In addition, the GTK open/save dialog’s built-in network browsing feature is broken unless the app’s Flatpak packaging pokes another sandbox hole for network access — many don’t! And custom dialogs may not even have this feature at all.

What a mess. Unfortunately, as of June 2026 (if you’re reading this later, please verify), apps in this unfortunate situation include some important ones like Blender, GIMP, LibreOffice (from Flathub or with the GTK backend), OnlyOffice, Inkscape, Audacity, DaVinci Resolve, and Gedit.

So, that’s bad.

If it’s a command-line tool or daemon, then everything is terrible in the same way. All previous use cases involved GUI tools accessing or mounting the network share; until and unless that happens, there’s nothing for CLI tools to see. It’s as if the share doesn’t exist. Something would need to mount the share at login. That something usually ends up being driven by changes to /etc/fstab that a random internet tutorial walked you through.

Why not just mount stuff the old-fashioned way using /etc/fstab?

Well, there are a few problems with this — the first one being that /etc/fstab is root-owned, so using it to mount a network share requires administrator privileges. That’s not gonna fly on multi-user or administrated systems.

You could work around this by using a GUI tool that can modify that file using Polkit, and then ship a Polkit rule to auto-allow this app’s requests to modify the file — even for non-admin users.

If it’s a password-protected share, you’ll also have to store the credentials in plaintext somewhere; there’s no provision for storing them in an encrypted password storage system.

This makes a mockery of security, but even if that’s acceptable, it turns out there isn’t just one way to mount a network share using /etc/fstab, but rather about twelve thousand ways. Every online tutorial gives you a slightly different set of steps, and if you don’t do it just right, you’ll end up with a mount that isn’t writable, or delays the boot process if it’s not accessible at that time, or causes apps to hang and freeze if it becomes inaccessible later, or other non-obvious problems that can be really “fun” to troubleshoot.

It’s not impossible to do this properly, but you have to know what you’re doing. So you really want this file to only be touched by a person or organization that qualifies, and to not make changes to it that you don’t fully understand.

How can we fix this?

All is not lost. Happily, KDE just received an investment of over €1.2 million from the Sovereign Tech Fund, and it includes funding for improvements to KDE’s network share handling!

Time for full disclosure: KDE e.V. is contracting with my company Techpaladin Software to run this part of the project. Network shares represent a significant paper cut, and I’m really excited to be a part of the process to finally get this topic sorted.

I’m not micromanaging the project; frankly, I don’t have the time, even if I wanted to! So my involvement so far has mostly been to put smart people in charge, gather them together into a (virtual) room where they can be productive, and make sure they’re adequately funded! Which is what I’ve done, and and I have every confidence in the team.

Here are some of the ideas under discussion:

  1. Have Dolphin and open/save dialogs automatically create temporary bookmarks for recently-accessed network shares, maybe in the “Recent” section.
    This would eliminate the step of manually bookmarking transiently-accessed shares.
  2. Have Dolphin and the open/save dialogs create a FUSE mount for each share they access immediately after accessing it, rather than the first time a file from the share is accessed in a non-KDE app.
    This would solve the problem for CLI tools — provided the share is manually accessed at least once beforehand.
  3. Either expose the FUSE-mounted share at a location on the system that lets the legacy GTK open/save dialog see it by default, or submit patches to GTK to let the GTK open/save dialog to see kio-fuse-created network share mounts at their current location.
    This would extend that fix to non-Flatpak apps using the legacy GTK dialog.
  4. If the user manually bookmarks a network share, have kio-fuse automatically create a mount for it on login, similar to “mapping a drive letter” on Windows.
    This would remove the caveat “…provided the share is manually accessed at least once beforehand.”
  5. Submit patches for apps on Flathub that still use this legacy dialog that let them see the location where kio-fuse mounts network shares.
    This would extend the above fixes to these apps’ Flathub packages.
  6. Submit patches to port remaining apps to use the portal-based open/save dialog.
    This would reduce the number of GUI apps that need the above fixes in the first place.
  7. Standardize the location and mount arguments for these FUSE mounts so you never end up with GNOME and KDE apps FUSE-mounting the same share to different locations. That’s just ridiculous!
    I’m not sure how politically possible this is, but it would be nice to reduce duplication.
  8. Look into using systemd mount units as the underlying implementation if systemd is available, and use the current kio-fuse implementation as a fallback only on systems without systemd.
    This would let us use an already standardized system and the more performant kernel drivers for remote filesystems. And it might be more feasible than #7.

Lots of ideas. Preliminary work has already started, and I expect it to be an ongoing area of focus in the coming months.

So hopefully soon this topic will finally be in the rear-view mirror. I think it’s clear that KDE is not yet 100% there on network shares, and we can do better. And we will!

See you next week what what will probably be an extra large installment!

We’ll be back next week!

Well, I skipped October, oops. So it’s been two months since my last Plasma 6 update, but you can find all kinds of other good stuff about Plasma 6 on https://planet.kde.org, including this post from Kai.

Probably the big news is that we released the Plasma 6 Alpha today! What does that mean? Well, go read this blog post by David Edmundson to find out! In a nutshell, you should try out the Plasma 6 Alpha out using one of these distros (or by building it yourself using kdesrc-build) if you’re an adventurous person who has a backup and wants to help make the final release better by reporting bugs or even fixing them. It really does help!

So what else happened over the past two months? Tons and tons:

The end of the big porting tasks

Yep, we finally finished* the porting and maintenance work.

This included the extremely large task of porting everything (Plasma, frameworks, and apps) away from Kirigami.AbstractListItem and Kirigami.BasicListItem. The former has been replaced with plain old upstream QtQuick.ItemDelegate, and the latter has been replaced with either one of the new Kirigami delegates or or a custom content item that uses one of them (or just totally custom content). It’s a bit of a loss in the consistency department since now we have more custom content items, but the loss isn’t that big since we did before as well, and the consistency promise of BasicListItem was never realized anyway. The work was done by Marco Martin, Arjen Hiemstra, me: Nate Graham, Carl Schwan, Ivan Tkachenko, Nicolas Fella, and others.

Speaking of Nicolas Fella, he also ported, like, everything in sight to better newer versions. Seriously, he did so much I can barely believe it. Plasma 6 and Frameworks 6 will have much nicer, more modern, more maintainable code.

*Okay, I lied. We still have one outstanding task to port widget config pages to use more standard components. But hopefully that won’t be too hard.

A huge number of user facing changes

There are almost too many to list, but here are a few:

  • Wayland session is now the default (Neal Gompa)
  • Color management on Wayland (Xaver Hugl)
  • Removed the nested frames from KDE’s QtWidgets apps and adopted the more modern Kirigami style (Carl Schwan)
  • Rectangular region screen recording in Spectacle (Noah Davis)
  • The return of the Desktop Cube effect (Vlad Zahorodnii)
  • Overhauled and modernized Plasma Panel configuration UI (Niccolò Venerandi)
  • Overview effect now incorporates the Desktop Grid and can smoothly switch to it and back, all with better and more natural touchpad gestures (Niccolò Venerandi)
  • Overhauled QML Printers page in System Settings with a better UI and lots of previously-hidden features migrated from the obscure QtWidgets apps (Mike Noe)
  • Overhauled QML Energy Saving page in System Settings with a better, more comprehensible UI (Jakob Petsovits)
  • A completely new QML Game Controllers page in System Settings to replace the old obsolete Joysticks page (Joshua Goins and Jeremy Whiting)
  • A huge amount of UI polish for Discover, including better search results and status reporting, more relevant reviews, a new screenshot carousel, and more (Marco Martin, Alessandro Astone, and Ivan Tkachenko)
  • Re-organized sidebar in System Settings (me: Nate Graham)
  • Colorblindness correction filters (Fushan Wen)
  • Simultaneous password-or-fingerprint/smartcard authentication on the lock screen (Janet Blackquill)
  • A camera usage monitor on Wayland (Fushan Wen)
  • Support for HDR in compatible games (Xaver Hugl)
  • Floating panel by default (Niccolò Venerandi)
  • The first page in Welcome Center can be customized by distros (me: Nate Graham)

It’s, like, kind of a lot of stuff! And those are only the headliner features; there are loads more UI improvements and bugfixes. Plasma 6 is gonna be big!

What’s next

We have two weeks before the “soft feature freeze” and three weeks before the hard one. Expect people to madly race to finish their work-in-progress features before them. There are still quite a few, and you can see some of them mentioned on the Plasma 6 wiki page. During this time, I expect the perceived level of bugginess and number of open bug reports to rise.

After that, we’ll have a solid 3 months of bug fixing, with regular beta and RC releases. This is a lot longer than we typically do for normal Plasma releases–3 times as long! So despite the large number of changes so far, expect the number of bug reports to fall very significantly during those 3 months, and I predict that Plasma 6.0 ends up being pretty darn stable, all things considered.

This is where I once again urge people to test out Plasma 6 and report bugs. The more good quality bug reports we get, the better the final release will be! Seriously.

But does that sound kinda scary? Another good way to contribute is to donate to KDE e.V. by becoming a supporting member via our fundraiser. We set a very ambitious goal of 500 supporting members (starting from 52–yes, really) and believe it or not, we’re more than halfway there! So it looks like we might actually be able to attain this goal. And you can help! If you haven’t already sign up to become a member today!

See you next week, folks!

Occasionally I see online comments saying things like, “more bugfixes week after week; KDE must be a real train wreck!” or “15 years of Wayland and it’s still needing bug fixes; it’ll never be ready!”

It can be a bit funny to see people interpret normal code maintenance as evidence of critical bugginess. But this does make some sense; most objects and systems you’re familiar with around your house and in your life don’t require constant fixing to avoid collapsing, right? They have a bounded problem space; the scope of what they’re expected to do is fixed. Your coffee maker just needs to make coffee! Tomorrow you aren’t going to ask it to make juice, and the electrical outlet it plugs into isn’t going to morph overnight into something physically incompatible with the plug. So the people who built that coffee maker just have to make sure it brews coffee correctly and reliably given the current arrangement of the world around it. Its problem space is bounded.

By contrast, the world around a piece of software is constantly changing in ways that it needs to adapt to; it has an unbounded problem space. For example, one of the libraries that the app delegates some of its work to may change in behavior and cause broken features or crashes in the app. A new CPU architecture, display server, or containerization format may be invented and deployed in an exciting new operating system that people are starting to use, so that the app needs to adapt or else not be able to run on the new OS. A new and previously unusual file format may become popular and users will start expecting the app to work with it. And often user expectations themselves change over time, such that if your app doesn’t evolve in its visuals or interaction paradigm, it will feel clunky and obsolete even if it didn’t feel that way when it was first released.

Because of this, constant maintenance is required to prevent software from becoming obsolete and unusable.

There are methods of development that acknowledge this chaos. You can minimize externally-induced bugginess by intentionally limiting the scope of the software, coding defensively, avoiding programming paradigms that impose lot of mental overhead, and not depending on 3rd-party libraries known to be unstable. But even so, the need for maintenance and bug-fixing is eternal. There’s just no real way out of it.

So the fact that we’re making regular fixes to code that was buggy or has become buggy due to external changes is a good thing, not a bad thing. The alternative isn’t “software so good that it requires no bug fixes” but rather “software that bit-rots and stops working over time due to lack of maintenance.”

No time; Akademy 2023 has eaten up everyone’s schedule! It promises to be an enjoyable and useful conference, so I’m sure there will be lots to talk about next week. See you then!

I didn’t! I just discovered it today while working on fixing a bug. And boy is it awesome! Just hold down the Meta (aka “Super” or “Windows) and Ctrl keys, then scroll. Boom! Note that this only works in a Plasma Wayland session.

We don’t expose this shortcut in the UI right now, so it’s quite hidden and explains why I and probably many others didn’t know about it. We’ll work on improving this.

2022 is over, and it’s time to recap! Like in previous years, this isn’t in any way, shape, or form a list of everything that happened in KDE; it’s just an overview of the big things I noticed or was involved with. More is always available at https://planet.kde.org!

Roadmap items

Many but not all of the items I was hoping for from my 2022 roadmap are finished now.

While we didn’t get a new style for Breeze icons or inertial scrolling everywhere, we did get the merged “Formats and Languages” KCM and a major overhaul for multi-monitor support to make it all finally work properly. “The Wayland session can completely replace the X11 session” is a bit fuzzier, but I can tell you that it’s done so for me! I only ever use the X11 session for occasionally testing merge requests. This doesn’t mean it’s there for everyone, of course. But it got ever closer in 2022. And finally, the 15-minute bug initiative was a big success! We didn’t fix every one of the 142 bugs classified as “15-minute bugs” in 2022, but we did fix 95 of them! That’s a pretty good rate. We’ll keep up the focus on these quality-of-life issues in 2023, too.

Hardware Partnerships

Linux hardware vendor Tuxedo Computers started shipping Plasma by default on all of their machines, a huge win for everyone!

KFocus, makers of Kubuntu-based hardware, added some new machines to their line-up–all shipping KDE Plasma and apps by default, of course!

Slimbook released a new version of their KDE Slimbook laptop, the best yet!

Finally, the Steam Deck became a smash hit, selling over a million devices worldwide and introducing so many people to the world of KDE!

So overall it was a pretty good year for getting KDE software into more people’s hands through hardware. But there is still so much more to do. We need to get more big names here, like Dell, Lenovo, and HP!

Akademy

For the first time in a few years, we had a real, in-person Akademy. Hallelujah! It was so wonderful to reconnect with KDE folks in person. You can see videos of the sessions and talks here. And here’s my talk.

In addition, I ran for a seat on the KDE e.V. board of directors and was elected!

Professionalizing KDE

KDE has done incredibly well over its 26-year history as primarily a volunteer organization. But there was always a dirty little secret: some of the most prominent contributors along the way have been sponsored to work on KDE in a quiet way. In the same way that Red Hat quietly funds the work of a lot of GNOME people, a lot of KDE people over the years have been sponsored by Nokia, KDAB, the city of Munich, Blue Systems, Valve, and other institutions in KDE’s orbit.

And this is great! It’s a very good sign when outside companies that derive value from KDE software pay to make it even better. But it also means they’ve been paying to make it better for their use cases, their pet projects, their areas of interest.

What’s always been missing was a cadre of paid professionals to work on KDE from a big picture perspective–people who are from the KDE community, and paid by the KDE community; people who can make a living as professionals working on KDE software from a community perspective.

Well, no longer! KDE e.V. has started hiring engineers for technical positions this year, beginning with a packaging engineer. We’re working through the process of hiring a software engineer at the moment, and we have an open position for an integration engineer too.

This is big stuff! Paid professionals in the employ of KDE e.V. can counterbalance and augment the work paid for by 3rd-parties, ensuring a healthy mix, so that KDE’s future and direction can remain in the hands of KDE. It can help to ensure a certain amount of continuity of technical knowledge, so that more people get to stay in KDE once their life circumstances change to reflect a different balance of free time and monetary needs. And of course, none of this in any way diminishes the volunteer efforts the remain the backbone of KDE! On the contrary, volunteers–who by nature come and go as life circumstances and interests dictate–can really benefit from a stable core of paid professionals to interact with.

This isn’t cheap, though. If you want to help the initiative succeed and expand, please make a donation–preferably a recurring one! 🙂 If you already have, tell your buddies, your family members, your boss, anyone you know who uses and enjoys KDE software!

New Goals

This year, KDE did a third round of goal-picking, cementing this process as a key part of KDE’s culture. The three goals chosen were “KDE For All” (accessibility), “Sustainable Software”, and “Automate And Systematize Internal Processes”–three very important goals! You can see more here.

Infrastructure

This year, Bugzilla got a re-organization to make it easier for normal people to figure out where to submit a bug report:

KDE also got a better donation and fundraising platform, powered by Donorbox. This makes it much simpler for people to donate to KDE e.V.:

Finally–and this is quite new–there’s a new forum powered by Discourse in the works, currently being beta-tested and rolled out at https://discuss.kde.org. Exciting times!

Qt 6

This year KDE contributors spent an enormous amount of time porting KDE software to Qt 6, the latest version of the Qt toolkit. This is unsexy work, so I didn’t blog about it. But it’s critically important, so thanks to everyone involved! And the work is now more than half done, with most common software and nearly all of Plasma already done; you can see the progress here.

Wayland

The Wayland session made enormous progress. Slimbook started shipping their new KDE Slimbook laptops with Wayland by default, following Fedora KDE 34 doing the same in late 2021. Our list of showstoppers continues to shrink, and new issues added to it are or notably less bad then the ones they replace. There are discussions about defaulting to Wayland in Plasma 6 next year, either for the inaugural release or one of the ones soon after it. The future really is here! And if you’re tempted to grumble, “well, Wayland still doesn’t work for me for $REASON,” please do it in a bug report so developers can fix it!

Plasma

It was a big year for Plasma! Among many other changes, we got custom window tiling layouts; massive stability improvements for multi-monitor workflows; Wayland fractional scaling; non-blurry scaled XWayland apps; a UI overhaul for Discover; many KRunner UX improvements; mouse button re-binding; resizable Panel popups; finger-following touchpad gestures on Wayland; support for alternate calendars such as the Chinese lunar calendar and Islamic civil calendar; picking-and-choosing what you want to apply from Global Themes; accent color generated from wallpaper’s dominant color; and full-window tinting with the accent color.

Plus a lot more, of course! You can see everything in the Plasma release announcements, found at https://kde.org/announcements.

Apps

KDE has so many apps that I really can’t possibly do them justice here! Nevertheless, here’s an extremely small assortment:

Dolphin got a new Selection Mode, a new (optional) list view selection style, the ability to browse iOS devices using their native afc:// protocol, an eject button in the sidebar list items of ejectable/unmountable volumes.

Okular got a welcome screen, a new Breeze icon that better matches the original, a UI overhaul for its sidebar.

Gwenview gained features to annotate images and edit their brightness, contrast, and gamma.

Kate and KWrite got welcome screens, KHamburgerMenu support, searchable settings windows, keyboard macro support, and even more massive UX and feature improvements of all kinds due to an influx of new contributors and a higher tempo of regular development work.

Konsole got Sixel support, adopted KHamburgerMenu, added a plugin to save and restore text snippets, and moved its tab bar to the top of the view by default.

Spectacle was ported to Kirigami and now lets you annotate in Rectangular Region mode.

Filelight was ported to Kirigami and gained a sidebar.

Ark got a welcome screen, KHamburgerMenu support, and overhauled toolbar contents.

Elisa gained support for displaying auto-scrolling lyrics from songs using embedded LRC lyrics, .pls playlists, a real Full Screen mode, and improved presentation in Artists view, touchscreen UX improvements and overhauled playlist styling

NeoChat got encrypted chat support and a boatload of features and UI improvements!

Many QtWidgets apps adopted KHamburgerMenu for a streamlined presentation


Well that’s all for now, folks. Happy new year and let’s do awesome things in 2023!

It’s been almost a year since I announced the 15-Minute Bug Initiative for Plasma. In a nutshell, this initiative proposed to identify and prioritize fixing bugs you can find “within the first 15-minutes of using the system” that make Plasma look bad and feel fundamentally unstable and broken.

This initiative has been a huge success so far! We started out with 100 bugs, and 11 months later we’re down to 47! But it’s even better than that; more bugs were added to the list over time as new issues were discovered (or created as a result of regressions), so the fact that we’re at 47 today means that a lot more than 53 bugs have been fixed. How many more? Well, the total list of 15-minute bugs fixed stands at 95 today!

This means that in total, there have been 142 15-minute bugs, and we’ve fixed 95 of them, for a fix rate of 67%. That’s not too shabby!

There’s more to do, of course. The remaining 47 bugs are some of the more challenging ones, and many are quite egregiously bad. I expect the fix rate to slow as the list is reduced mostly to issues beyond the capabilities or time budgets of volunteers. That’s one of the reasons why the KDE e.V. is looking to hire a Software Platform Engineer; in addition to other responsibilities, the person we select will be working on some of these bugs. Hiring someone technically skilled enough to consistently fix these complex bugs won’t be cheap, and if you’d like to help KDE sustainably afford that cost, please consider donating to our end-of-year fundraiser! It really does help. Thanks for being awesome!

Adventures in Linux and KDE
Blog at WordPress.com.
Loading Comments...