Files
nix-config/hosts/common/users/primary/default.nix
2025-02-16 06:35:32 +00:00

54 lines
1.2 KiB
Nix

{
pkgs,
config,
lib,
inputs,
...
}:
let
hostSpec = config.hostSpec;
pubKeys = lib.filesystem.listFilesRecursive ./keys;
in {
users = {
mutableUsers = false;
users.${hostSpec.username} = {
# Only do this if you have already configured zsh in home manager
ignoreShellProgramCheck = true;
name = hostSpec.username;
shell = pkgs.zsh;
home = hostSpec.home;
isNormalUser = true;
hashedPassword = "$y$j9T$pvjyL7hL5x2VBarGNTnMl1$mLA2UsWTbfp8Hgp/ug5l8224thi..Mo8.p7ME.tDZ.4";
extraGroups = [
"networkmanager"
"wheel"
"input"
"libvirtd"
];
# Read all keys in ./keys and add them to authorizedKeys.
openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key);
packages = with pkgs; [
libnotify
];
};
};
home-manager = {
extraSpecialArgs = {
inherit pkgs inputs;
hostSpec = config.hostSpec;
};
users.${hostSpec.username}.imports = lib.flatten [
(
{ config, ... }:
import (lib.custom.relativeToRoot "home/${hostSpec.username}/${hostSpec.hostName}.nix") {
inherit pkgs inputs config lib hostSpec;
}
)
];
};
}