refactor(user): use configurable default roles
This commit is contained in:
parent
639a43c7d4
commit
6a804dded9
23
lib/user.nix
23
lib/user.nix
@ -5,10 +5,18 @@
|
|||||||
, ...
|
, ...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# Default roles that all NixOS users get
|
||||||
|
defaultSystemUserRoles = [ "common" "zsh" "aichat" ];
|
||||||
|
|
||||||
|
# Default roles for standalone home-manager configs
|
||||||
|
defaultHMUserRoles = [ "common" "aichat" ];
|
||||||
|
in
|
||||||
{
|
{
|
||||||
mkUser = { name, roles ? [ ] }:
|
mkUser = { name, roles ? [ ], defaultRoles ? defaultSystemUserRoles }:
|
||||||
let
|
let
|
||||||
roles_mod = (map (r: mkHomeRole r) roles);
|
roles_mod = (map (r: mkHomeRole r) roles);
|
||||||
|
defaults_mod = (map (r: mkHomeRole r) defaultRoles);
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
fileSystems."/home/${name}/Downloads" = pkgs.lib.mkIf stdenv.isLinux {
|
fileSystems."/home/${name}/Downloads" = pkgs.lib.mkIf stdenv.isLinux {
|
||||||
@ -27,16 +35,13 @@
|
|||||||
|
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
home-manager.users.${name}.imports = [
|
home-manager.users.${name}.imports = defaults_mod ++ roles_mod;
|
||||||
(mkHomeRole "common")
|
|
||||||
(mkHomeRole "zsh")
|
|
||||||
(mkHomeRole "aichat")
|
|
||||||
] ++ roles_mod;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mkHMUser = { name, roles ? [ ] }:
|
mkHMUser = { name, roles ? [ ], defaultRoles ? defaultHMUserRoles }:
|
||||||
let
|
let
|
||||||
roles_mod = (map (r: mkHomeRole r) roles);
|
roles_mod = (map (r: mkHomeRole r) roles);
|
||||||
|
defaults_mod = (map (r: mkHomeRole r) defaultRoles);
|
||||||
in
|
in
|
||||||
home-manager.lib.homeManagerConfiguration {
|
home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
@ -48,8 +53,6 @@
|
|||||||
if stdenv.isLinux then "/home/${name}" else "/Users/${name}";
|
if stdenv.isLinux then "/home/${name}" else "/Users/${name}";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
(mkHomeRole "common")
|
] ++ defaults_mod ++ roles_mod;
|
||||||
(mkHomeRole "aichat")
|
|
||||||
] ++ roles_mod;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user