{ lib, config, ... }: with lib; let cfg = config.local.fs; in { imports = [ ./btrfs.nix ./layout.nix ]; options.local.fs = with lib.types; { impermanence = mkOption { type = bool; default = false; }; boot.device = mkOption { type = str; }; }; config = { # !!! boot.tmp.useTmpfs = true; fileSystems."/" = mkIf cfg.impermanence { device = "tmpfs"; fsType = "tmpfs"; options = [ "size=1G" "mode=755" ]; }; fileSystems."/boot" = { inherit (cfg.boot) device; fsType = "vfat"; options = [ "noatime" "umask=027" ]; }; }; }