old
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 = {
47 user,
48 config,
49 ...
50 }: {
51 imports = [inputs.nix-flatpak.homeManagerModules.nix-flatpak];
52
53 services.flatpak = {
54 enable = true;
55
56 packages = user.system.settings.desktop.flatpak.packages or [];
57
58 overrides.settings = lib.mergeAttrsList [
59 {
60 global = {
61 Context.filesystems = [
62 "/nix/store:ro"
63 "/run/current-system/sw/share/X11/fonts:ro"
64 "xdg-data/fonts:ro"
65 "home/.icons:ro"
66 "xdg-config/gtk-3.0/gtk.css:ro"
67 "xdg-config/gtk-4.0/gtk.css:ro"
68 ];
69 };
70 }
71 (user.system.settings.desktop.flatpak.overrides or {})
72 ];
73 };
74
75 xdg.dataFile."fonts".source = "/run/current-system/sw/share/X11/fonts";
76 };
77 };
78}