Restructure flake into per-host modules
Move host-specific files under hosts/<name>/ so a second machine can be added without forking the repo. Split system/users.nix and system/display-manager.nix into per-option subfolders, separate the home-manager packages list into a shared base and a personal bundle, extract networking.hostName out of the shared networking module, and inline the git identity into the per-host home.nix. Add .gitignore guardrails to keep secrets out.
This commit is contained in:
15
flake.nix
15
flake.nix
@@ -9,20 +9,27 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, ... }: {
|
||||
nixosConfigurations.hivebrain = nixpkgs.lib.nixosSystem {
|
||||
outputs = { self, nixpkgs, home-manager, ... }:
|
||||
let
|
||||
mkHost = { hostPath, username, homePath }: nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./configuration.nix
|
||||
hostPath
|
||||
home-manager.nixosModules.home-manager {
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
users.marvin = import ./home.nix;
|
||||
users.${username} = import homePath;
|
||||
backupFileExtension = "backup";
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
in {
|
||||
nixosConfigurations.hivebrain = mkHost {
|
||||
hostPath = ./hosts/hivebrain;
|
||||
username = "marvin";
|
||||
homePath = ./hosts/hivebrain/home.nix;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user