main
1{
2 inputs,
3 lib,
4 ...
5}: {
6 flake-file.inputs.nix-flatpak = {
7 url = "github:gmodena/nix-flatpak";
8 };
9
10 den.aspects.desktop.flatpak = {
11 settings = {
12 packages = lib.mkOption {
13 type = lib.types.listOf (lib.types.either lib.types.str lib.types.attr);
14 default = [];
15 };
16 };
17
18 cache = {
19 directories = [
20 "/var/lib/flatpak"
21 ];
22 };
23
24 persistHome = {
25 directories = [
26 ".var" # Flatpak app data
27 ];
28 };
29
30 cacheHome = {config, ...}: {
31 directories = [
32 "${config.xdg.dataHome}/flatpak"
33 ];
34 };
35
36 nixos = {host, ...}: {
37 imports = [inputs.nix-flatpak.nixosModules.nix-flatpak];
38
39 services.flatpak = {
40 enable = true;
41
42 inherit (host.settings.desktop.flatpak) packages;
43 };
44 };
45
46 homeManager = {user, ...}: {
47 imports = [inputs.nix-flatpak.homeManagerModules.nix-flatpak];
48
49 services.flatpak = {
50 enable = true;
51
52 packages = user.system.settings.desktop.flatpak.packages or [];
53
54 overrides.settings = user.system.settings.desktop.flatpak.overrides or {};
55 };
56 };
57 };
58}