From cb99a4309b3af061a9faeb37495bd82316249799 Mon Sep 17 00:00:00 2001 From: Eduard Tolosa Date: Mon, 23 Jun 2025 20:30:02 -0500 Subject: [PATCH] (new-post): My two-day adventure with Flatpak apps --- _imgs/flatpak.png | Bin 0 -> 21299 bytes ...-my-two-day-adventure-with-flatpak-apps.md | 77 ++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 _imgs/flatpak.png create mode 100644 _posts/2025-06-23-my-two-day-adventure-with-flatpak-apps.md diff --git a/_imgs/flatpak.png b/_imgs/flatpak.png new file mode 100644 index 0000000000000000000000000000000000000000..237d48a55200879ea4a56a6d86b03f316950731c GIT binary patch literal 21299 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 literal 0 HcmV?d00001 diff --git a/_posts/2025-06-23-my-two-day-adventure-with-flatpak-apps.md b/_posts/2025-06-23-my-two-day-adventure-with-flatpak-apps.md new file mode 100644 index 0000000..c707a53 --- /dev/null +++ b/_posts/2025-06-23-my-two-day-adventure-with-flatpak-apps.md @@ -0,0 +1,77 @@ +--- +layout: post +title: 'My two-day adventure with Flatpak apps' +date: 2025-06-23 18:13 -0500 +categories: ["linux", "Flatpak", "gnome"] +tags: ["flatpak", "linux", "gnome", "apps"] +author: edu4rdshl +image: + path: /flatpak.png + alt: Flatpak logo +excerpt: I tried to replace my native apps with Flatpak apps on my main computer. Here's how it went. +--- + +## Introduction + +The past week I was thinking about making my main computer more portable, secure, with no untracked config files thrown around in `$HOME`, and without having to learn some ugly functional programming language to achieve that. I thought about using [Flatpak](https://flatpak.org/) apps, which basically provided everything I wanted, so I decided to give it a try. I was motivated to see if I could replace all my native apps with Flatpak apps on my main system; I took a snapshot of my system, and started the experiment. + +**Note**: My current system setup is ArchLinux + Gnome + Wayland, probably one of the best setups for Flatpak apps. + +## The migration process + +One of the cool things about Flatpak is that it has a large repository of apps available. I was able to find Flatpak versions of all the apps I use daily, including: + +- Chrome +- Discord +- Spotify +- Telegram +- Obsidian +- Slack +- Signal +- Gajim +- Visual Studio Code +- GIMP +- OBS Studio +- and many more. + +So, technically, the migration process for each app was as simple as: + +- Uninstall the native app. +- Install the Flatpak version of the app. +- Copy the configuration and data files from the native app (usually in `$HOME/.config/$app`) to the Flatpak app directory (usually in `$HOME/.var/app/$app/config/$app`). +- Configure environment variables like `ELECTRON_OZONE_PLATFORM_HINT=auto` for Electron apps or `QT_QPA_PLATFORM=wayland` for Qt apps to ensure they work natively with Wayland. **Tip:** variables can be set globally using the flatpak command line or using Flatseal to avoid having to set them for each app. + +And it worked! Well, mostly... + +### The issues I faced + +I have to start by saying that the migration process was really smooth; kudos to the Flatpak team for that. However, I did face some issues: + +- **Broken mimetype associations**: every time I modified a `.desktop` file to add my custom flags, which means copying it to `$HOME/.local/share/applications`, the mimetype associations were lost, Chrome would not open any links, couldn't be set as default browser, and so on. To solve it, I had to manually run `update-desktop-database ~/.local/share/applications/` after modifying each `.desktop` file. I automated it with a systemd `.path` unit that ran the command when something changed in the directory, and that did the trick. I don't need to do this with native apps, so it was a bit annoying to have to do it with Flatpak apps. +- **Icons missing from Progressive Web Apps**: I use many PWAs, and it's important for me that the icons are set correctly, so I can see them in the dock or while Alt-Tabing. The Flatpak version of Chrome doesn't set the icons for PWAs correctly, the issue is known [1](https://discussion.fedoraproject.org/t/chrome-pwas-in-gnome-grouping-into-the-same-browser-icon/81714), [2](https://github.com/flathub/com.google.Chrome/issues/205), and [3](https://github.com/flathub/org.chromium.Chromium/issues/216). It's caused by an unmatching `StartupWMClass`, but there seems to be little interest in fixing it, so I had to manually modify the `.desktop` files for each PWA to set the correct `StartupWMClass`. +- **Poor permission's system**: Flatpak's permissions system is a bit too obscure for my taste; sometimes you install an app, and it works, but then you realize that it can't use certain features because it doesn't have the required permissions, and the only way to figure it out is going to the developer documentation, to find that you need [some override](https://docs.usebottles.com/flatpak/cant-enable-steam-proton-manager) to make it work. That's simply not user-friendly, even for veteran Linux users. I hope that we had some Android-like permissions system, where apps can request permissions at runtime for specific features. +- **Local updates interfere with remote updates**: on my current system (ArchLinux), when an update for an app is taking too long, I can just modify the `PKGBUILD`, change the version number, build and install it, and call it a day. If the same app is updated to a higher version, then it will be updated the next time I ran an system update. With Flatpak, I can't do that, I have to wait for the Flathub maintainers to update the app, or build it myself, which is not a big deal, but then I have to remember to update it manually or reinstall it again when updated on the remote, as the Flathub updates will not apply to my custom build. +- **Unable to set custom options for my graphic drivers**: Flatpak uses its own version of the graphics stack, which means that options applied to my native graphics driver are not applied to flatpak apps. It's a big deal for me, Nvidia does have [an issue](https://github.com/NVIDIA/egl-wayland/issues/126) with VRAM allocation, which is fixed by adding a custom profile to `/etc/nvidia/nvidia-application-profiles-rc.d/` to change the `GLVidHeapReuseRatio` parameter, but this couldn't be made to work with Flatpak apps, as confirmed by the devs. To give you an idea, my current VRAM usage with native apps is around 1.5GB, while with Flatpak apps it goes up to 3.5GB and counting, which is a big difference for my use case. This was the main reason I had to stop the experiment, as I will run out of VRAM for my games and other apps at some point. I know that it's not a flatpak issue per se, and what are the motivations behind it, but it was a dealbreaker for me. + +These issues were not showstoppers, but they were annoying enough to **make me** reconsider the use of Flatpak apps as my main apps. + +### The good things + +Despite the issues I faced, there are **many** good things about using Flatpak apps: + +- **Self-contained**: Flatpak apps are isolated from the host system, which means they don't interfere with other applications or the system itself, while providing a clean dependency tree for each app, so, no dependency nightmares. +- **Sandboxed**: Flatpak apps run in a sandboxed environment, which enhances security by limiting their access to the host system. This means that even if an app is compromised, it cannot easily affect the rest of the system. Of course, if proper permissions are granted. +- **Portable**: Flatpak apps can be easily moved between systems, making them ideal for portable setups. Just rsync the Flatpak directories, and you can run your apps on any compatible system, using the same configuration and data. +- **Easy installation**: Flatpak apps can be installed and managed using a simple command-line interface (Flatpak) or graphical tools (like Gnome Software), making them accessible to users of all skill levels. +- **Consistent**: Flatpak apps provide a consistent user experience across different distributions and versions of Linux, which means users and developers can expect the same behavior and functionality regardless of the underlying system. +- **Theming**: the apps respect the system theme, which is a big plus for me, as I like to have a consistent look and feel across all my apps. +- **Wayland support**: Most Flatpak apps work very well with Wayland, which is great performance and security-wise. +- **Great audio and video support**: Flatpak apps have really good support for audio and video, sometimes even better than native apps (Slack). + +And many more... + +## Conclusion + +In conclusion, my two-day adventure with Flatpak apps was a really cool experience, mostly marred by personal needs and the tight control I have over my system. For anyone wondering: **I encourage you to try Flatpak apps**, it's a great technology that provides many benefits for everyone, especially for new users. However, I will not be using Flatpak apps as my main apps, at least not for now, until the issues I faced are resolved, or I find a way to work around them. + +Happy sandboxing!