nixos/lib/user.nix

45 lines
1.1 KiB
Nix
Raw Normal View History

2022-10-13 23:41:18 +01:00
{ pkgs, unstable, home-manager, ... }:
2021-10-13 13:29:07 +01:00
{
2021-11-25 11:42:32 +00:00
mkUser = { name, roles ? [ ] }:
let
mkRole = role: import (../roles/home + "/${role}.nix");
roles_mod = (map (r: mkRole r) roles);
in {
users.groups.plugdev = { };
2021-10-13 13:29:07 +01:00
2021-11-25 11:42:32 +00:00
fileSystems."/home/${name}/Downloads" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "size=3G" ];
};
2021-10-13 13:29:07 +01:00
2021-11-25 11:42:32 +00:00
users.users.${name} = {
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = [ "wheel" "plugdev" ];
};
2022-10-13 23:41:18 +01:00
home-manager.users.${name}.imports = [ (mkRole "common") ] ++ roles_mod;
};
mkHMUser = { name, roles }:
let
mkRole = role: import (../roles/home + "/${role}.nix");
roles_mod = (map (r: mkRole r) roles);
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
{
home = {
username = name;
homeDirectory =
if pkgs.stdenv.isLinux then "/home/${name}" else "/Users/${name}";
stateVersion = "22.05";
};
}
(mkRole "common")
] ++ roles_mod;
2021-11-25 11:42:32 +00:00
};
2021-10-13 13:29:07 +01:00
}