This commit is contained in:
TheWanderingCrow 2025-06-03 14:41:12 -04:00
parent 8100701e5d
commit aa0efee791
2 changed files with 57 additions and 2 deletions

View file

@ -39,8 +39,6 @@
- `darwin` - Custom modules specific to dariwn-based hosts
- `home-manager` - Custom modules to home-manager
- `nixos` - Custom modules specific to nixos-based hosts
- `nixos-installer` - A stripped down version of the main nix-config flake used
exclusively during installation of NixOS and nix-config on hosts.
- `overlays` - Custom modifications to upstream packages.
- Currently not using overlays.
- `pkgs` - Custom packages meant to be shared or upstreamed.

View file

@ -0,0 +1,57 @@
{
inputs,
pkgs,
config,
lib,
...
}: let
hostSpec = config.hostSpec;
pubKeys = lib.filesystem.listFilesRecursive ./keys;
in
{
users.users.${hostSpec.username} = {
name = hostSpec.username;
shell = pkgs.zsh;
openssh.authorizedKeys.keys = lib.lists.forEach pubKeys (key: builtins.readFile key);
# Create ssh sockets directory for controlpaths when homemanager not loaded (i.e. isMinimal)
systemd.tmpfiles.rules = let
user = config.users.users.${hostSpec.username}.name;
group = config.users.users.${hostSpec.username}.group;
in [
"d /home/${hostSpec.username}/.ssh 0750 ${user} ${group} -"
"d /home/${hostSpec.username}/.ssh/sockets 0750 ${user} ${group} -"
];
programs.zsh.enable = true;
environment.systemPackages = [
pkgs.git
pkgs.vim
];
};
}
// lib.optionalAttrs (inputs ? "home-manager") {
home-manager = {
extraSpecialArgs = {
inherit pkgs inputs;
hostSpec = config.hostSpec;
};
users.${hostSpec.username}.imports = lib.flatten (
lib.optional (!hostSpec.isMinimal) [
(
{config, ...}:
import (lib.custom.relativeToRoot "home/${hostSpec.username}/${hostSpec.hostName}.nix") {
inherit
pkgs
inputs
config
lib
hostSpec
;
}
)
]
);
};
}