fix: fixed home manager impermanence activation on defiant

This commit is contained in:
Leyla Becker 2025-10-21 19:35:56 -05:00
parent 539af51473
commit 3f107f8d1e
3 changed files with 14 additions and 6 deletions

View file

@ -1,4 +1,6 @@
{osConfig, ...}: { {osConfig, ...}: {
impermanence.fallbackPersistence.enable = false;
home = { home = {
username = osConfig.users.users.git.name; username = osConfig.users.users.git.name;
homeDirectory = osConfig.users.users.git.home; homeDirectory = osConfig.users.users.git.home;

View file

@ -12,6 +12,8 @@
]; ];
config = { config = {
impermanence.enable = osConfig.host.impermanence.enable;
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
# manage. # manage.
home = { home = {

View file

@ -8,21 +8,25 @@
in { in {
options.impermanence = { options.impermanence = {
enable = lib.mkEnableOption "impermanence for home directory"; enable = lib.mkEnableOption "impermanence for home directory";
fallbackPersistence.enable = lib.mkOption {
type = lib.types.bool;
default = true;
};
}; };
config = lib.mkMerge [ config = lib.mkMerge [
(lib.mkIf config.impermanence.enable { (lib.mkIf config.impermanence.enable {
assertions = [ assertions = [
{ {
assertion = osConfig.impermanence.enable; assertion = osConfig.host.impermanence.enable;
message = "impermanence can not be enabled for a user when it is not enabled for a configuration"; message = "impermanence can not be enabled for a user when it is not enabled for the system";
} }
]; ];
}) })
(lib.mkIf osConfig.host.impermanence.enable { # If impermanence is not enabled for this user but system impermanence is enabled,
# If impermanence is not enabled for this user but system impermanence is enabled, # persist the entire home directory as fallback
# persist the entire home directory as fallback (lib.mkIf (osConfig.host.impermanence.enable && !cfg.enable && cfg.fallbackPersistence.enable) {
home.persistence."/persist/home/${config.home.username}" = lib.mkIf (!cfg.enable) { home.persistence."/persist/home/${config.home.username}" = {
directories = ["."]; directories = ["."];
allowOther = true; allowOther = true;
}; };