{ pkgs, lib, ... }: let # Format: ":" flatpakApps = [ "flathub:in.cinny.Cinny" ]; installScript = pkgs.writeShellScript "flatpak-setup" '' ${pkgs.flatpak}/bin/flatpak remote-add --if-not-exists flathub \ https://dl.flathub.org/repo/flathub.flatpakrepo ${lib.concatMapStringsSep "\n" ( entry: let parts = lib.splitString ":" entry; remote = lib.elemAt parts 0; appId = lib.elemAt parts 1; in '' ${pkgs.flatpak}/bin/flatpak install --assumeyes --noninteractive \ ${remote} ${appId} || true '' ) flatpakApps} ''; in { services.flatpak.enable = true; environment.sessionVariables = { XDG_DATA_DIRS = [ "/var/lib/flatpak/exports/share" "\${HOME}/.local/share/flatpak/exports/share" ]; }; system.activationScripts.flatpakSetup = { text = '' ${installScript} ''; deps = [ ]; }; }