feat: Impermanence move to bind mounts for user impermanence
This commit is contained in:
parent
f43945d0d2
commit
cf345521e8
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.modules.impermanence;
|
# cfg = config.modules.impermanence;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.modules.impermanence = {
|
options.modules.impermanence = {
|
||||||
enable = mkEnableOption "Impermanence";
|
# enable = mkEnableOption "Impermanence";
|
||||||
directories = mkOption {
|
directories = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ ];
|
default = [ ];
|
||||||
@ -23,13 +23,12 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
# config = mkIf cfg.enable {
|
||||||
home.persistence."/persist/home/${config.home.username}" = {
|
# home.persistence."/persist/home/${config.home.username}" = {
|
||||||
enable = true;
|
# enable = true;
|
||||||
hideMounts = true;
|
# allowOther = true;
|
||||||
allowOther = true;
|
# directories = cfg.directories;
|
||||||
directories = cfg.directories;
|
# files = cfg.files;
|
||||||
files = cfg.files;
|
# };
|
||||||
};
|
# };
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -50,11 +50,32 @@ in
|
|||||||
# For testing purposes with VM
|
# For testing purposes with VM
|
||||||
virtualisation.vmVariantWithDisko.virtualisation.fileSystems."/persist".neededForBoot = true;
|
virtualisation.vmVariantWithDisko.virtualisation.fileSystems."/persist".neededForBoot = true;
|
||||||
|
|
||||||
environment.persistence."/persist/system" = {
|
environment.persistence = {
|
||||||
enable = true;
|
"/persist/system" = {
|
||||||
hideMounts = true;
|
enable = true;
|
||||||
directories = cfg.directories;
|
hideMounts = true;
|
||||||
files = cfg.files;
|
directories = cfg.directories;
|
||||||
|
files = cfg.files;
|
||||||
|
};
|
||||||
|
"/persist/home" = {
|
||||||
|
enable = true;
|
||||||
|
hideMounts = true;
|
||||||
|
users = (
|
||||||
|
lib.mapAttrs' (
|
||||||
|
name: value:
|
||||||
|
let
|
||||||
|
user = name;
|
||||||
|
homeDir = "/home/${user}";
|
||||||
|
impConfig = value.modules.impermanence;
|
||||||
|
in
|
||||||
|
lib.nameValuePair user {
|
||||||
|
home = homeDir;
|
||||||
|
directories = impConfig.directories;
|
||||||
|
files = impConfig.files;
|
||||||
|
}
|
||||||
|
) config.home-manager.users
|
||||||
|
);
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user