#
# Very janky way of declaring all flatpaks used
# Might cause issues on new system installs
# Only use when you know what you're doing
#
{ pkgs, ...}:
{
services.flatpak.enable = true;
system.activationScripts = {
flatpak.text =
''
flatpaks=(
"com.github.tchx84.Flatseal"
"com.moonlight_stream.Moonlight"
"com.obsproject.Studio"
"com.ultimaker.cura"
)
${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
for package in ''${flatpaks[*]}; do
check=$(${pkgs.flatpak}/bin/flatpak list --app | ${pkgs.gnugrep}/bin/grep $package)
if [[ -z "$check" ]] then
${pkgs.flatpak}/bin/flatpak install -y flathub $package
fi
done
installed=($(${pkgs.flatpak}/bin/flatpak list --app | ${pkgs.gawk}/bin/awk -F$'\t*' '{$1=$3=$4=$5=""; print $0}'))
for remove in ''${installed[*]}; do
if [[ ! " ''${flatpaks[*]} " =~ " ''${remove} " ]]; then
${pkgs.flatpak}/bin/flatpak uninstall -y $remove
${pkgs.flatpak}/bin/flatpak uninstall -y --unused
fi
done
'';
};
}