auto-discovered host config

This commit is contained in:
Semere Meharena Mebrahtom 2026-07-18 21:46:00 +02:00
parent edbbc0dbc2
commit 3e14a0acb8
Signed by: semere
GPG key ID: 7FC937214DF30488
4 changed files with 40 additions and 30 deletions

View file

@ -16,15 +16,20 @@
let let
lib = nixpkgs.lib; lib = nixpkgs.lib;
userVars = import ./vars.nix; userVars = import ./vars.nix;
in
{
nixosConfigurations = {
nabro = lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit userVars; };
modules = [
./hosts/nabro/configuration.nix
hostsDir = ./hosts;
hostNames = builtins.attrNames (
lib.filterAttrs (name: type: type == "directory") (builtins.readDir hostsDir)
);
nixosConfigurations = lib.genAttrs hostNames (name:
let
hostConfig = import (./hosts + "/${name}");
in
lib.nixosSystem {
system = hostConfig.system;
specialArgs = { inherit userVars; };
modules = [ hostConfig.configModule ] ++ [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager = { home-manager = {
@ -35,7 +40,10 @@
}; };
} }
]; ];
}; }
}; );
in
{
inherit nixosConfigurations;
}; };
} }

View file

@ -1,19 +0,0 @@
{ config, lib, pkgs, ... }:
{
imports = [
./hardware-configuration.nix
../../modules
];
networking.hostName = "nabro";
# Enable host-specific feature branches (dendrites)
dotfiles = {
core.enable = true;
user.enable = true;
desktop.enable = true;
dev.enable = true;
shell.enable = true;
};
}

19
hosts/nabro/default.nix Normal file
View file

@ -0,0 +1,19 @@
{
system = "x86_64-linux";
configModule = { config, lib, pkgs, ... }: {
imports = [
./hardware-configuration.nix
../../modules
];
networking.hostName = "nabro";
dotfiles = {
core.enable = true;
user.enable = true;
desktop.enable = true;
dev.enable = true;
shell.enable = true;
};
};
}

View file

@ -60,9 +60,11 @@ in
programs.helix = { programs.helix = {
enable = true; enable = true;
defaultEditor = true;
settings = { settings = {
theme = "ayu_dark";
editor = { editor = {
line-numbers = "relative"; line-number = "relative";
lsp.display-messages = true; lsp.display-messages = true;
}; };
}; };