{ device ? throw "Set this to your disk device, e.g. /dev/sda", ... }: { disko.devices = { disk = { main = { inherit device; type = "disk"; content = { type = "gpt"; partitions = { boot = { name = "boot"; size = "1M"; type = "EF02"; }; esp = { name = "ESP"; size = "500M"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; }; }; luks = { size = "100%"; content = { name = "crypted"; type = "luks"; settings = { allowDiscards = true; keyFile = "/tmp/secret.key"; crypttabExtraOpts = [ "fido2-device=auto" "token-timeout=10" ]; }; content = { type = "btrfs"; extraArgs = ["-L" "nixos" "-f"]; subvolumes = { "/root" = { mountpoint = "/"; mountOptions = [ "compress=zstd" "noatime" ]; }; "/nix" = { mountpoint = "/nix"; mountOptions = [ "subvol=nix" "compress=zstd" "noatime" ]; }; "/persistant" = { mountpoint = "/persistant"; mountOptions = [ "subvol=persistant" "compress=zstd" "noatime" ]; }; "/swap" = { mountpoint = "/swap"; swap.swapfile.size = "64G"; }; }; }; }; }; }; }; }; }; }; fileSystems."/persistant".neededForBoot = true; }