If you uninstall Steam or Firefox, it can absolutely be gigs, just FYI. Very nice tool to have.
Free and Open Source Software
If it's free and open source and it's also software, it can be discussed here. Subcommunity of Technology.
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
How is this different from
flatpak uninstall --unused
?
As far as I can tell this seems to be for deleting application data (~/.var/app/*
), whereas flatpak uninstall --unused
is for uninstalling runtimes that are no longer needed.
This app is more equivalent to flatpak uninstall --delete-data
But this doesnt work once uninstalled. This really is an isse with flatpaks.
Because there are distros, like fedora for one, that have flat packs installable by the likes of discovery on KDE that doesn’t require CLI useage for install or uninstall of flatpacks
For fun, a shell script for the same functionality:
#!/bin/sh
br="$(printf "\n")" # Obtain a line-break
# If RM_CMD is unset, use trash-cli
if [ -z ${RM_CMD+y} ]; then RM_CMD="trash"; fi
# List of apps. The leading br is necessary for later pattern matching
apps="$br$(flatpak list --columns=application)" || exit 1
cd ~/.var/app || exit 1
for app in *; do
case "$apps" in
*"$br$app$br"*) ;; # Matches if $app is in the list (installed)
*)
printf 'Removing app data %s\n' "${app}"
"$RM_CMD" "./${app}"
;;
esac
done
(May eat your files)
Pretty complicated
#!/bin/bash
# List contents of ~/.var/app/
files=$(ls -1 ~/.var/app/)
# Loop through each element of the folder
for file in $files; do
# Set the name as a variable
app_name="${file##*/}"
# Check if a flatpak app of that name is installed
if ! flatpak list 2> /dev/null | grep -qw $app_name; then
# Ask the user to delete the folder
read -p "The app $app_name is not installed. Do you want to delete its folder? (y/n): " choice
case "$choice" in
[Yy]* )
# Remove the folder recursively
rm -rf ~/.var/app/$file;;
[Nn]* )
echo "Skipping deletion of $app_name folder.";;
* )
echo "Invalid input. Skipping deletion of $app_name folder.";;
esac
fi
done
echo "All Apps checked."
The check for if a package is installed can be simplified using flatpak info
.
$ flatpak info com.example.Nonexistent &>/dev/null; echo $?
1
$ flatpak info org.mozilla.firefox &>/dev/null; echo $?
0
Lol just yesterday wrote a CLI tool for that. (Pssst, saves data)
https://github.com/trytomakeyouprivate/Flatpak-trash-remover
WOW, 6MB, that is more than 4 Floppy Disks!
Wait. So flatpak uninstall --unused
does not do this?
No, that only deletes the leftover dependencies, it doesn't delete any app data/config left over.
I just read this as: "Separate program needed to make up for shortcomings of flatpak!" This is to be lamented, not celebrated.
This is kind of a shortcoming of all package management in general; should deleting the package delete your user data? There's an argument to be made that data should be removed with the application, but deleting data irrecoverably as the default isn't necessarily the easiest approach.
There's also another problem, which is that the behaviour of deleting data may make sense for per-user applications, but for system-wide apps, should uninstalling an application start nuking data in people's homedirs?