adding automatic flatpak management

This commit is contained in:
2025-09-29 14:22:57 -06:00
parent 14d9fc775d
commit f16cd8ccd7
9 changed files with 74 additions and 51 deletions

33
system/extras/flatpak.nix Normal file
View File

@@ -0,0 +1,33 @@
{ config, pkgs, ... }:
let
grep = pkgs.gnugrep;
desiredFlatpaks = [
"com.spotify.Client"
"io.github.huderlem.porymap"
];
in {
system.userActivationScripts.flatpakManagement = {
text = ''
${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo
installedFlatpaks=$(${pkgs.flatpak}/bin/flatpak list --app --columns=application)
for installed in $installedFlatpaks; do
if ! echo ${toString desiredFlatpaks} | ${grep}/bin/grep -q $installed; then
echo "Removing $installed because it's not in the desiredFlatpaks list."
${pkgs.flatpak}/bin/flatpak uninstall -y --noninteractive $installed
fi
done
for app in ${toString desiredFlatpaks}; do
echo "Ensuring $app is installed."
${pkgs.flatpak}/bin/flatpak install -y flathub $app
done
${pkgs.flatpak}/bin/flatpak uninstall --unused -y
${pkgs.flatpak}/bin/flatpak update -y
'';
};
}