UX Hurdles in Open Source #1: Flatpak Permissions
Let's see together what are some UX issues in the open source world.
Hello folks!
This is the first episode from our special edition titled “UX Hurdles in Open Source”, where we examine some user experience issues in various open source software, and together see what could have been some useful solutions to these problems.
User experience is a very important concept. Even in commercial projects, it is established that each $1 invested in UX results in a $100 return in profits. Thus, businesses of different kinds need to understand how well their products are well-fit with the default experience of an ordinary customer.
The open source world is no different; while it is true that most of the things here are also free of charge, UX is still an important concept to measure how well a software is designed to serve its target userbase. The more UX-driven applications we have, the better chance it would be to enlarge the entire open source ecosystem and build a better alternative for proprietary solutions.
Hence, this is the idea of these special edition episodes: To see what are some UX drawbacks in different open source software, and how they should be solved. We hope that if enough users and developers listen to these discussions, then perhaps open source software will become much better than before!
UX Hurdle of the Episode: Flatpak Permissions
Flatpak is a well-known software shipping mechanism that has been around for many years in the Linux ecosystem. Some distributions ship it by default like Fedora and Linux Mint, while all the others are supported if the user wants to install Flatpak-packaged applications.
Flatpaks are sandboxed; meaning that they reside in a “prison” with only limited privileges according to what the user desires for that application. For example, by default, applications do not have access to the home directory of the user. This happens because Flatpaks are intended to be safe, and to prevent a malicious app/hijacked one from accessing the user’s sensitive data.
Unfortunately, this brings a number of usability issues as well.
Since applications can not access any file or device they want, then some applications will simply not be able to do their job. They need additional permissions explicitly enabled by the user.
So far no problem. It is natural to trade one thing for another, and trading this little bit of annoyance for overall user security and safety is not a bad deal.
But take for example the case of the “Metadata Cleaner” application. It is an open source software for removing hidden metadata from files on Linux, and it is shipped as a Flatpak from Flathub:
The issue with it is that once you install the software, and if you desire to add files/folders to clean their metadata, you simply can’t choose any because the software is sandboxed and has no access to your home directory:
Yes, of course, any Linux geek would know that you need to use an additional command line after installation to expand its permissions or use an application like Flatseal to grant it these permissions:
BUT IT’S NOT NOTED ANYWHERE IN THE SOFTWARE OR ITS DOCUMENTATION!
Do you see this little information button at the bottom of the software? You would think it tells you about this; that you need another 3rd-party software to grant this software additional permissions so that it can work, but it doesn’t.
You view it, and you find nothing at all about permissions or how they should be granted:
You check the Flathub page again, so that you find out what command to apply to grant it the permissions it needs maybe? Nope, also nothing there at all about sandboxing or why the application can’t choose any file or folder.
You check the homepage of the project to see whether you are missing something? Still nope.
A weird outcome. It feels like you are the only person who actually thought to install and use the software without having enough technical knowledge about Flatpak sandbox and how to modify it from the command line. It’s crazy, eh? How crazy you must be to think that you can use the software directly after installing it?
Let’s summarize the problem here again:
The user searches for “metadata cleaner software on Linux” on Google, and finds this software.
The software markets Flatpak and Flathub as the main recommended method for installing it. The average Joe knows about Flatpak but doesn’t entirely grasp how it works, but at least he can install stuff with it.
The user installs the software using this method (the command line in the Flathub page) and opens the software, only to see a blank file selector because he/she can’t select any files.
The user wastes an hour searching for a clue: Why it doesn’t work? How to grant it what it needs? Finds nothing.
The user simply removes the software and no one reports the problem. Repeat.
Instead of this sad user experience, there should have been:
Information about this either on the help pages, on the Flathub page or on the main homepage of the software.
An interactive message/warning telling the user at runtime that he/she is running the software without the permissions it needs, with information on how to grant them.
The software by default is installed with the required permissions (Not sure whether it is currently possible with Flatpak, perhaps a post-install hook?).
In any case, it is simply a very twisted user experience to just ship non-working applications by default, and expect that the user has the technical knowledge enough about the software shipping mechanism that he/she will just figure it out.
This doesn’t happen anywhere; nowhere on Windows, macOS, traditional Linux package managers, android or iOS that the user needs to tweak the permissions of every application he installs so that they work.
Yes, perhaps your Arch Linux and Gentoo users see no issue at all with it, but if you are shipping your software for the general Linux audience then you should work more on designing the default experience of your application and make it more appealing to users.
“Metadata Cleaner” is just an example here of course; there are tens or even hundreds of applications on Flathub that suffer from the same problem, and we just used it as a showcase for that problem (nothing personal! <3).
This is a problem that needs to be worked on in order to make adapting Linux more appealing and easy for the general audience. If Flatpak wants to market itself as the “future of apps on Linux” then this is nowhere nearby.
It would be hard to imagine new Windows users fighting with Flatpak command line options to grant an app the additional permissions it needs. This shouldn’t have happened in the first place. At least display a warning or give a hint…
Share with us your thoughts on this matter from the comments below.
Update: It is worth noting that after investigation, this problem does not happen on most distributions. It happens when the xdg-portal dependency is not available. In some cases, the installation of Flatpak may proceed without the installation of this dependency, which is what causes the problem that we described.
Still, Flatpak and 3rd-party app developers should address this issue so that even in the case of the absence of this dependency in whatever possible scenario, the user does not get to face this issue.
Hope you liked our special edition!
Kindly don’t forget to support our efforts on Patreon for just one cup of coffee per month ($5).
You need to use xdg-desktop-portals as well as gnomes backend for it so that metadata cleaner can access your files. This is a paper cut that shouldn't exist (xdg-desktop-portals should be installed alongside any distro that has flatpak, or made a dependency of flatpak when you are installing) but metadata cleaner does not need flatseal to work, and it was never intended to use filesystem=host in the first place.