{ inputs, ... }: { flake.modules.nixos.alpha = { config, lib, ... }: let hasOptinPersistence = config.tnix.boot.impermanence.enable; isLegacy = config.tnix.boot.legacy.enable; in { imports = [ inputs.disko.nixosModules.disko ]; disko.devices.disk.primary = { device = "/dev/sda"; type = "disk"; content = { type = "gpt"; partitions = { ESP = { size = "1G"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = [ "defaults" "umask=0077" ]; }; }; root = { size = "100%"; type = "8300"; content = { type = "btrfs"; # Base subvolumes that always exist subvolumes = { "/root" = { mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" ]; mountpoint = "/"; }; "/nix" = { mountOptions = [ "compress=zstd" "noatime" "noacl" "space_cache=v2" ]; mountpoint = "/nix"; }; } # Conditionally merge /persist only when impermanence is enabled // lib.optionalAttrs hasOptinPersistence { "/persist" = { mountOptions = [ "compress=zstd" "noatime" "space_cache=v2" ]; mountpoint = "/persist"; }; }; }; }; } // lib.optionalAttrs isLegacy { boot = { name = "boot"; size = "1M"; type = "EF02"; }; }; }; }; }; }