refactor: centralize workstation HM base and derive terminal from user metadata

This commit is contained in:
2026-04-21 22:10:11 +02:00
parent d252de8a3a
commit 055a139fd2
13 changed files with 213 additions and 66 deletions
+34 -4
View File
@@ -10,8 +10,33 @@ let
in
{
flake.modules.nixos.orion-admin =
{ pkgs, ... }:
{
config,
lib,
pkgs,
...
}:
let
rawTerminalAttrPath = lib.splitString "." config.meta.host.users.kiri.terminalPackageAttr;
terminalAttrPath =
if rawTerminalAttrPath != [ ] && builtins.head rawTerminalAttrPath == "pkgs" then
builtins.tail rawTerminalAttrPath
else
rawTerminalAttrPath;
terminalPackage = lib.attrByPath terminalAttrPath null pkgs;
in
{
assertions = [
{
assertion = terminalPackage != null;
message = "Unknown terminal package `${config.meta.host.users.kiri.terminalPackageAttr}` for user `kiri`.";
}
{
assertion = terminalPackage != null && lib.elem "terminfo" terminalPackage.outputs;
message = "Terminal package `${config.meta.host.users.kiri.terminalPackageAttr}` must provide a `terminfo` output for `orion`.";
}
];
users.users.kiri = {
linger = true;
openssh.authorizedKeys.keys = [
@@ -20,8 +45,9 @@ in
};
environment.systemPackages = [
pkgs.kitty
];
] ++ lib.optional (terminalPackage != null && lib.elem "terminfo" terminalPackage.outputs) (
lib.getOutput "terminfo" terminalPackage
);
};
flake.modules.nixos.orion = metaLib.mkHost {
@@ -45,7 +71,11 @@ in
(metaLib.mkHostUser {
account = metaLib.users.kiri;
needsPassword = false;
homeImports = [ homeModules.kiri-server ];
homeImports = [
homeModules.shell
homeModules.git
homeModules.syncthing
];
})
./_hardware.nix
./_disk.nix