main
 1{
 2  den,
 3  inputs,
 4  ...
 5}: {
 6  flake-file.inputs.impermanence = {
 7    url = "github:nix-community/impermanence";
 8    inputs.nixpkgs.follows = "nixpkgs";
 9    inputs.home-manager.follows = "home-manager";
10  };
11
12  den.aspects.core.impermanence = {
13    includes = with den.aspects.core.impermanence; [
14      persist-collector
15      persist-user-collector
16      persist-home-collector
17
18      btrfs
19    ];
20
21    persist = {
22      directories = [
23        "/etc/NetworkManager/system-connections"
24      ];
25      files = [
26        "/root/.bash_history"
27      ];
28    };
29    cache = {
30      directories = [
31        "/var/lib/nixos"
32        "/srv"
33      ];
34    };
35    persistUser = {
36      files = [
37        ".bash_history"
38      ];
39    };
40
41    nixos = {lib, ...}: {
42      imports = [inputs.impermanence.nixosModules.impermanence];
43
44      environment.persistence."/persist" = {
45        enable = true;
46        hideMounts = lib.mkDefault true;
47      };
48      environment.persistence."/cache" = {
49        enable = true;
50        hideMounts = lib.mkDefault true;
51      };
52    };
53  };
54}