dotfiles.nix/flake-parts/home-manager/users.nix

62 lines
1.4 KiB
Nix

{
inputs,
self,
lib,
...
}: {
flake = {
homeManagerModules.user-willem = {
imports = [
self.homeManagerModules.default
];
home.username = "willem";
home.stateVersion = "23.11";
};
homeManagerModules.user-willem-darwin = {
imports = [
self.homeManagerModules.darwin
self.homeManagerModules.user-willem
self.homeManagerModules.nixpkgs-config
self.homeManagerModules.nixpkgs-useFlakeNixpkgs
];
home.homeDirectory = "/Users/willem";
};
homeManagerModules.user-willem-linux = {
imports = [
self.homeManagerModules.user-willem
self.homeManagerModules.linux
];
home.homeDirectory = "/home/willem";
};
};
perSystem = {
pkgs,
self',
system,
...
}: rec {
homeConfigurations.willem = let
systemType =
if pkgs.stdenv.isDarwin
then "darwin"
else "linux";
in
inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [self.homeManagerModules."user-willem-${systemType}" {nix.package = pkgs.nix;}];
};
packages = let
activationPackages = builtins.mapAttrs (_: lib.getAttr "activationPackage") homeConfigurations;
in
lib.pipe activationPackages [
(lib.filterAttrs (_: drv: pkgs.system == drv.system))
(lib.mapAttrs' (username: lib.nameValuePair "home-${username}"))
];
};
}