{ config, lib, ... }: let cfg = config.soispha.impermanence; in { options.soispha.impermanence = { enable = lib.mkEnableOption "persisting directories and files with impermanence"; directories = lib.mkOption { type = lib.types.listOf lib.types.str; description = "The directories to persist"; }; }; config = lib.mkIf cfg.enable { environment.persistence = { "/srv" = { hideMounts = true; inherit (cfg) directories; users.soispha = { directories = [ ".local/share" ".local/state/nvim" ".local/state/mpv" ".local/state/wireplumber" ".config/Signal" ".config/Element" ".config/iamb/profiles" ".cache" ".mozilla" "media" "repos" "school" ]; }; files = [ "/etc/machine-id" ]; }; }; }; }