2018-04-03 00:53:08 -04:00
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
cfg = config.home-manager;
|
|
|
|
|
2022-06-07 20:45:06 +02:00
|
|
|
in {
|
2022-06-16 12:26:57 +02:00
|
|
|
imports = [ ../nixos/common.nix ];
|
2022-06-07 20:45:06 +02:00
|
|
|
|
2025-03-07 14:16:46 -06:00
|
|
|
config = lib.mkMerge [
|
2022-06-07 20:45:06 +02:00
|
|
|
{ home-manager.extraSpecialArgs.darwinConfig = config; }
|
2025-03-07 14:16:46 -06:00
|
|
|
(lib.mkIf (cfg.users != { }) {
|
|
|
|
system.activationScripts.postActivation.text = lib.concatStringsSep "\n"
|
|
|
|
(lib.mapAttrsToList (username: usercfg: ''
|
2025-03-11 14:53:55 +01:00
|
|
|
echo Activating home-manager configuration for ${usercfg.home.username}
|
|
|
|
sudo -u ${usercfg.home.username} --set-home ${
|
|
|
|
pkgs.writeShellScript "activation-${usercfg.home.username}" ''
|
2022-06-07 20:45:06 +02:00
|
|
|
${lib.optionalString (cfg.backupFileExtension != null)
|
|
|
|
"export HOME_MANAGER_BACKUP_EXT=${
|
|
|
|
lib.escapeShellArg cfg.backupFileExtension
|
|
|
|
}"}
|
|
|
|
${lib.optionalString cfg.verbose "export VERBOSE=1"}
|
|
|
|
exec ${usercfg.home.activationPackage}/activate
|
|
|
|
''
|
2019-05-03 16:11:13 +02:00
|
|
|
}
|
2022-06-07 20:45:06 +02:00
|
|
|
'') cfg.users);
|
|
|
|
})
|
|
|
|
];
|
2018-04-03 00:53:08 -04:00
|
|
|
}
|