nix/modules/main-user.nix
2024-08-27 09:46:44 +02:00

69 lines
1.3 KiB
Nix

{
lib,
config,
pkgs,
...
}:
let
cfg = config.mainUser;
in
{
options.mainUser = {
enable = lib.mkEnableOption "Enable user module";
userName = lib.mkOption {
default = "pazpi";
type = lib.types.str;
description = config.users.users."<name>".userName.description;
};
description = lib.mkOption {
default = "Davide Pasetto";
type = lib.types.str;
description = config.users.users."<name>".description;
};
hashedPassword = lib.mkOption {
default = "";
type = lib.types.str;
description = config.users.users."<name>".initialHashedPassword.description;
};
flatpak = lib.mkOption {
default = false;
type = lib.types.bool;
description = ''
Enable the flatpak engine for the user
'';
};
};
config = lib.mkIf cfg.enable {
users.users.${cfg.userName} = {
description = cfg.description;
extraGroups = [
"users"
"wheel"
];
initialHashedPassword = cfg.hashedPassword;
isNormalUser = true;
isSystemUser = false;
shell = pkgs.zsh;
uid = 1000;
packages =
with pkgs;
lib.mkIf cfg.flatpak [
flatpak
gnome.gnome-software
];
};
console.keyMap = "it";
programs.zsh.enable = true;
};
}