dotfiles/modules/system/user.nix

63 lines
1.4 KiB
Nix
Raw Normal View History

{ config, lib, ... }: {
2022-04-29 01:56:21 +00:00
options = {
2022-04-29 01:56:21 +00:00
user = lib.mkOption {
type = lib.types.str;
description = "Primary user of the system";
default = "nixos";
};
2022-04-29 01:56:21 +00:00
passwordHash = lib.mkOption {
type = lib.types.str;
description = "Password created with mkpasswd -m sha-512";
};
2022-04-29 01:56:21 +00:00
2022-05-11 03:45:50 +00:00
userDirs = {
# Required to prevent infinite recursion with himalaya
download = lib.mkOption {
type = lib.types.str;
description = "XDG directory for downloads";
default = "$HOME/downloads";
};
};
};
config = {
# Define a user account. Don't forget to set a password with passwd.
users.users.${config.user} = {
# Create a home directory for human user
isNormalUser = true;
# Automatically create a password to start
hashedPassword = config.passwordHash;
extraGroups = [
"wheel" # Sudo privileges
];
};
2022-04-29 01:56:21 +00:00
2022-05-09 00:49:42 +00:00
home-manager.users.${config.user}.xdg = {
userDirs = {
enable = true;
createDirectories = true;
documents = "$HOME/documents";
2022-05-11 03:45:50 +00:00
download = config.userDirs.download;
2022-05-09 00:49:42 +00:00
music = "$HOME/media/music";
pictures = "$HOME/media/images";
videos = "$HOME/media/videos";
desktop = "$HOME/other/desktop";
publicShare = "$HOME/other/public";
templates = "$HOME/other/templates";
extraConfig = { XDG_DEV_DIR = "$HOME/dev"; };
};
};
2022-04-29 01:56:21 +00:00
};
}