{ lib, config, pkgs, ... }: with lib; let cfg = config.local.btrfs; in { options.local.btrfs = { mounts = mkOption { default = { }; type = with lib.types; attrsOf (submodule { options = { ssd = mkOption { type = bool; }; device = mkOption { type = str; }; subvol = mkOption { type = str; }; }; }); }; }; config = mkIf (cfg.mounts != { }) { fileSystems = let btrfsMount = { device, subvol, ssd }: { inherit device; fsType = "btrfs"; options = [ "noatime" "compress=zstd" "subvol=${subvol}" ] ++ optional ssd "ssd"; }; in mapAttrs (_: btrfsMount) cfg.mounts; }; }