I love Flatpaks, the programs are nicely separated so they don’t interfere with each other. They also don’t have flaws like Snap’s low performance or Nix’s complexity.
But being limited to only graphical apps seems like a real drawback. If one wants to use Flatpaks as their primary package manager there have to be some awkward workarounds for cli programs.
E.g., the prime Flatpak experiene is supposed to be on immutable distros like Silverblue. But to install regular cli programs you are expected to spin up a distrobox (or toolbox) and install those programs there.
Having one arch distrobox where I get my cli programs from will not work, as the package entropy over time will get me the very dependency issues that Flatpak wants to solve.
So what is the solution here? Have multiple distroboxes and install packages in those in alternation and hope the boxes don’t break? Use Nix alongside Flatpak? Use Snaps?
flatpak run org.gimp.Gimp image.png
vs.gimp image.png
or evenxdg-open image.png
. “Mildly unwieldy” I suppose but a massive pain in the ass in practice. I can’t believe they thought that it was a good idea to require all that and provide no way to create a script in /usr/local/bin or even .local/bin.echo 'alias gimp="flatpak run org.gimp.Gimp'" >> ~/.bash_profile
And the other 125 flatpaks I have?
Oh my God I never thought of that! /s
What a pain in the ass to require me to maintain a set of aliases for everything I install. Great user experience.
All you need is to put
#!/usr/bin/bash flatpak run org.gimp.Gimp $*
in .local/bin/gimp or /usr/local/bin and you can just call
gimp image.png
. A basic alias in your bashrc works, too.That’s a pain in the ass. Why not automate it with the install? They already create .desktop files FFS.
It is actually. Add /var/lib/flatpak/exports/bin to PATH.
This is the answer! Next question is why doesn’t the flatpack install do this for you?
Flatpak should export mimetypes so xdg-open should work if there isn’t another handler registered