nixos/lib/user.nix
2023-02-19 06:08:51 +01:00

43 lines
968 B
Nix

{ pkgs, home-manager, mkHomeRole, ... }:
{
mkUser = { name, roles ? [ ] }:
let
roles_mod = (map (r: mkHomeRole r) roles);
in
{
users.groups.plugdev = { };
fileSystems."/home/${name}/Downloads" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "size=3G" ];
};
users.users.${name} = {
isNormalUser = true;
extraGroups = [ "wheel" "plugdev" ];
};
home-manager.users.${name}.imports = [ (mkHomeRole "common") ] ++ roles_mod;
};
mkHMUser = { name, roles ? [ ] }:
let
roles_mod = (map (r: mkHomeRole r) roles);
in
home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
{
home = {
username = name;
homeDirectory =
if pkgs.stdenv.isLinux then "/home/${name}" else "/Users/${name}";
};
}
(mkHomeRole "common")
] ++ roles_mod;
};
}