nix/modules/main-user.nix
2024-06-27 15:31:12 +02:00

56 lines
1.2 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;
};
}