{...}: {
preservation = {
enable = true;
preserveAt."/persist" = {
files = [
# Machine ID
{
file = "/etc/machine-id";
inInitrd = true;
}
# SSH host keys
{
file = "/etc/ssh/ssh_host_rsa_key";
how = "symlink";
configureParent = true;
}
{
file = "/etc/ssh/ssh_host_ed25519_key";
how = "symlink";
configureParent = true;
}
];
directories = [
# NixOS state
"/var/lib/nixos"
# Tailscale state
"/var/lib/tailscale"
# NetworkManager connections
"/etc/NetworkManager/system-connections"
];
users.skye = {
directories = [
# SSH state (keys, known_hosts, etc)
{
directory = ".ssh";
mode = "0700";
}
# Dev directory
"dev"
# Application states
".local/share/direnv"
".local/share/PrismLauncher"
".mozilla"
];
};
};
};
systemd.suppressedSystemUnits = ["systemd-machine-id-commit.service"];
}