nixos-config/common/users.nix
2023-10-25 17:39:12 -07:00

93 lines
2.1 KiB
Nix

{ config, pkgs, ... }:
let
usr = config.constants.userName;
usrPwdFile = "users/${usr}/password";
in
{
home-manager = {
useGlobalPkgs = true;
users.${usr} = {
home = {
packages = with pkgs; [
dua
fd
nil
nixpkgs-fmt
rclone
sops
];
stateVersion = config.system.stateVersion;
};
programs = {
bat.enable = true;
bottom.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
eza = {
enable = true;
enableAliases = true;
};
fish.enable = true;
git = {
enable = true;
extraConfig = {
core.autocrlf = "input";
init.defaultBranch = "development";
pull.rebase = false;
push.autoSetupRemote = true;
};
ignores = [
".direnv"
".envrc"
];
userEmail = config.constants.postMaster;
userName = config.constants.userName;
};
helix = {
enable = true;
defaultEditor = true;
settings = {
editor = {
lsp.display-inlay-hints = true;
soft-wrap.enable = true;
};
theme = "base16_transparent";
};
};
ripgrep.enable = true;
starship.enable = true;
tealdeer.enable = true;
zoxide = {
enable = true;
options = [ "--cmd cd" ];
};
};
};
};
programs.fish.enable = true;
sops.secrets.${usrPwdFile}.neededForUsers = true;
users = {
mutableUsers = false;
users.${usr} = {
description = "Sicheng Pan";
extraGroups = [
"audio"
"input"
"networkmanager"
"uinput"
"wheel"
];
hashedPasswordFile = config.sops.secrets.${usrPwdFile}.path;
home = config.constants.homeDir;
isNormalUser = true;
openssh.authorizedKeys.keys = config.constants.publicKeys;
shell = pkgs.fish;
};
};
}