flake: add nixos-wsl input and mkHost helper for 3 hosts

- add nixos-wsl input (follows nixpkgs) for dogma-wsl
- refactor nixosConfigurations to mkHost helper with hostname/extraModules/homeFile
- keep alejandra, sops-nix, home-manager wiring
This commit is contained in:
Jordan Ashurst
2026-09-18 04:23:01 -07:00
parent 1e3474cf90
commit ecba7b1480
+48 -31
View File
@@ -14,6 +14,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nixos-wsl = {
url = "github:nix-community/NixOS-WSL/main";
inputs.nixpkgs.follows = "nixpkgs";
};
alejandra.url = "github:kamadorueda/alejandra/4.0.0"; alejandra.url = "github:kamadorueda/alejandra/4.0.0";
alejandra.inputs.nixpkgs.follows = "nixpkgs"; alejandra.inputs.nixpkgs.follows = "nixpkgs";
@@ -27,38 +32,50 @@
lazyvim, lazyvim,
alejandra, alejandra,
... ...
}: { }: let
nixosConfigurations.dogma-nixos = nixpkgs.lib.nixosSystem { mkHost = {
system = "x86_64-linux"; hostname,
system ? "x86_64-linux",
specialArgs = { extraModules ? [],
inherit inputs; homeFile ? ./home/${hostname}.nix,
}:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {inherit inputs;};
modules =
[
./hosts/${hostname}/default.nix
inputs.home-manager.nixosModules.default
{
environment.systemPackages = [alejandra.defaultPackage.${system}];
}
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {inherit inputs;};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
];
home-manager.users.mask = homeFile;
}
inputs.sops-nix.nixosModules.sops
]
++ extraModules;
};
in {
nixosConfigurations = {
dogma-nixos = mkHost {
hostname = "dogma-nixos";
extraModules = [./modules/nvidia-gtx1060.nix];
};
dogma-nixos-rtx = mkHost {
hostname = "dogma-nixos-rtx";
extraModules = [./modules/nvidia-rtx3070.nix];
};
dogma-wsl = mkHost {
hostname = "dogma-wsl";
extraModules = [inputs.nixos-wsl.nixosModules.default];
}; };
modules = [
./configuration.nix
inputs.home-manager.nixosModules.default
{
environment.systemPackages = [alejandra.defaultPackage.${"x86_64-linux"}];
}
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit inputs;
};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
];
home-manager.users.mask = ./home.nix;
}
inputs.sops-nix.nixosModules.sops
];
}; };
}; };
} }