Scope Flatpak management to user installs

Updated Flatpak commands to use the --user flag, ensuring all operations (install, uninstall, update) affect only the current user's Flatpaks. Also updated the Zen browser Flatpak ID and improved error handling during installation.
This commit is contained in:
2025-10-26 23:33:04 +00:00
parent 524663aa9b
commit 7689f83e8e

View File

@@ -5,7 +5,7 @@ let
# Declare the Flatpaks you want on your system # Declare the Flatpaks you want on your system
desiredFlatpaks = [ desiredFlatpaks = [
"io.github.zen_browser.zen" "app.zen_browser.zen"
# Add more Flatpak apps here # Add more Flatpak apps here
# "com.spotify.Client" # "com.spotify.Client"
# "com.discordapp.Discord" # "com.discordapp.Discord"
@@ -17,31 +17,31 @@ in {
system.userActivationScripts.flatpakManagement = { system.userActivationScripts.flatpakManagement = {
text = '' text = ''
# Ensure the Flathub repo is added # Ensure the Flathub repo is added
${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub \ ${pkgs.flatpak}/bin/flatpak remote-add --user --if-not-exists flathub \
https://flathub.org/repo/flathub.flatpakrepo https://flathub.org/repo/flathub.flatpakrepo
# Get currently installed Flatpaks # Get currently installed Flatpaks
installedFlatpaks=$(${pkgs.flatpak}/bin/flatpak list --app --columns=application) installedFlatpaks=$(${pkgs.flatpak}/bin/flatpak list --user --app --columns=application 2>/dev/null || echo "")
# Remove any Flatpaks that are NOT in the desired list # Remove any Flatpaks that are NOT in the desired list
for installed in $installedFlatpaks; do for installed in $installedFlatpaks; do
if ! echo ${toString desiredFlatpaks} | ${grep}/bin/grep -q $installed; then if ! echo ${toString desiredFlatpaks} | ${grep}/bin/grep -q $installed; then
echo "Removing $installed because it's not in the desiredFlatpaks list." echo "Removing $installed because it's not in the desiredFlatpaks list."
${pkgs.flatpak}/bin/flatpak uninstall -y --noninteractive $installed ${pkgs.flatpak}/bin/flatpak uninstall --user -y --noninteractive $installed
fi fi
done done
# Install or re-install the Flatpaks you DO want # Install or re-install the Flatpaks you DO want
for app in ${toString desiredFlatpaks}; do for app in ${toString desiredFlatpaks}; do
echo "Ensuring $app is installed." echo "Ensuring $app is installed..."
${pkgs.flatpak}/bin/flatpak install -y flathub $app ${pkgs.flatpak}/bin/flatpak install --user -y flathub $app || echo "Failed to install $app"
done done
# Remove unused Flatpaks # Remove unused Flatpaks
${pkgs.flatpak}/bin/flatpak uninstall --unused -y ${pkgs.flatpak}/bin/flatpak uninstall --user --unused -y
# Update all installed Flatpaks # Update all installed Flatpaks
${pkgs.flatpak}/bin/flatpak update -y ${pkgs.flatpak}/bin/flatpak update --user -y
''; '';
}; };
} }