dotfiles

My PC Dotfiles & Website

modules/apps/flatpak.nix (2043B)


 1## Flatpak Configuration ##
 2{inputs, ...}: {
 3  flake.modules = {
 4    nixos.flatpak = {
 5      config,
 6      lib,
 7      pkgs,
 8      ...
 9    }: let
10      isGnome = config.services.desktopManager.gnome.enable or false;
11    in {
12      imports = [inputs.flatpak.nixosModules.nix-flatpak];
13
14      xdg.portal.enable = true;
15      environment.persist.directories = ["/var/lib/flatpak"];
16      system.activationScripts.updateDesktopDatabase.text = "${pkgs.desktop-file-utils}/bin/update-desktop-database /var/lib/flatpak/exports/share/applications";
17
18      services.flatpak = {
19        enable = true;
20        uninstallUnmanaged = true;
21
22        remotes =
23          [
24            {
25              name = "flathub";
26              location = "https://dl.flathub.org/repo/flathub.flatpakrepo";
27            }
28            {
29              name = "flathub-beta";
30              location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
31            }
32          ]
33          ++ lib.optionals isGnome [
34            {
35              name = "gnome-nightly";
36              location = "https://nightly.gnome.org/gnome-nightly.flatpakrepo";
37            }
38          ];
39
40        packages = [
41          {
42            appId = "com.github.tchx84.Flatseal";
43            origin = "flathub";
44          }
45        ];
46
47        overrides.global = {
48          Context = {
49            filesystems = [
50              "~/.config/dconf:ro"
51              "/run/current-system/sw/share/themes:ro"
52            ];
53            sockets = [
54              "wayland"
55              "!x11"
56              "fallback-x11"
57            ];
58          };
59          Environment = {
60            "DCONF_USER_CONFIG_DIR" = ".config/dconf";
61            inherit (config.environment.variables) "GTK_THEME";
62          };
63        };
64
65        update = {
66          onActivation = false;
67          auto.enable = false;
68        };
69      };
70    };
71
72    homeManager.flatpak = _: {
73      home.persist.directories = [
74        ".cache/flatpak"
75        ".local/share/flatpak"
76        ".var/app"
77      ];
78    };
79  };
80}