# nix run github:nix-community/disko -- --mode create ./disko-config-cream.nix --dry-run
# nix run github:nix-community/disko -- --mode mount ./disko-config-cream.nix --dry-run
# nixos-generate-config --root /mnt/
# vim /mnt/configuration.nix
# nixos-install --root /mnt
{ ... }:
{
  disk = {
    nvme0n1 = {
      type = "disk";
      device = "/dev/nvme0n1";
      content = {
        type = "table";
        format = "gpt";
        partitions = [
          {
            type = "partition";
            name = "ESP";
            start = "1MiB";
            end = "500MiB";
            bootable = true;
            content = {
              type = "filesystem";
              format = "vfat";
              mountpoint = "/boot";
              mountOptions = [
                "defaults"
              ];
            };
          }
          {
            type = "partition";
            name = "luks";
            start = "500MiB";
            end = "100%";
            content = {
              type = "luks";
              name = "pool";
              #keyFile = "/tmp/secret.key";
              content = {
                type = "lvm_pv";
                vg = "pool";
              };
            };
          }
        ];
      };
    };
    sdb = {
      type = "disk";
      device = "/dev/sdb";
      content = {
        type = "table";
        format = "gpt";
        partitions = [
          {
            type = "partition";
            name = "removable";
            start = "1MiB";
            end = "100%";
            bootable = false;
            content = {
              type = "filesystem";
              format = "ext4";
              mountpoint = "/removable";
              mountOptions = [
                "defaults"
              ];
            };
          }
        ];

      };
    };
  };
  lvm_vg = {
    pool = {
      type = "lvm_vg";
      lvs = {
        root = {
          type = "lvm_lv";
          size = "200G";
          content = {
            type = "filesystem";
            format = "ext4";
            mountpoint = "/";
            mountOptions = [
              "defaults"
            ];
          };
        };
        home = {
          type = "lvm_lv";
          size = "250G";
          content = {
            type = "filesystem";
            format = "ext4";
            mountpoint = "/home";
          };
        };
      };
    };
  };
}