52 lines
1.2 KiB
Nix
52 lines
1.2 KiB
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.main_user;
|
|
in
|
|
{
|
|
options.main_user = {
|
|
enable = lib.mkEnableOption "enable user module";
|
|
|
|
isDesktopUser = lib.mkOption {
|
|
default = false;
|
|
example = true;
|
|
description = "Add additional user groups for desktop users";
|
|
};
|
|
|
|
userName = lib.mkOption {
|
|
default = "mainuser";
|
|
description = "username";
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
users.users.${cfg.userName} = lib.mkMerge [
|
|
{
|
|
isNormalUser = true;
|
|
initialPassword = "password";
|
|
|
|
description = "main user";
|
|
shell = pkgs.zsh;
|
|
}
|
|
|
|
(lib.mkIf (!cfg.isDesktopUser) {
|
|
extraGroups = [
|
|
"wheel"
|
|
"networkmanager"
|
|
cfg.userName
|
|
];
|
|
})
|
|
(lib.mkIf cfg.isDesktopUser {
|
|
extraGroups = [
|
|
"wheel"
|
|
"networkmanager"
|
|
"corectrl"
|
|
cfg.userName
|
|
"video"
|
|
"audio"
|
|
];
|
|
})
|
|
];
|
|
};
|
|
}
|