nix/modules/desktop/desktop-user.nix

64 lines
1.3 KiB
Nix

{
lib,
config,
pkgs,
...
}:
let
cfg = config.my.desktop.desktopUser;
in
{
options.my.desktop.desktopUser = {
enable = lib.mkEnableOption "Enable desktop 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 ];
};
console.keyMap = "it";
programs.zsh.enable = true;
};
}