diff --git a/configuration.nix b/configuration.nix index 52cd04f..a547b4e 100644 --- a/configuration.nix +++ b/configuration.nix @@ -13,6 +13,7 @@ ./modules/programs.nix ./modules/hardware.nix ./modules/services.nix + ./modules/flatpak.nix ./modules/home.nix ]; diff --git a/modules/flatpak.nix b/modules/flatpak.nix new file mode 100644 index 0000000..f0840f9 --- /dev/null +++ b/modules/flatpak.nix @@ -0,0 +1,43 @@ +{ 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 = [ ]; + }; +} diff --git a/modules/services.nix b/modules/services.nix index ed3e925..164860a 100644 --- a/modules/services.nix +++ b/modules/services.nix @@ -54,6 +54,4 @@ services.avahi.publish.enable = true; services.avahi.publish.userServices = true; - - services.flatpak.enable = true; }