Files
2026-10-06 04:56:43 -07:00

91 lines
2.3 KiB
Nix

{
description = "Nixos config flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-wsl = {
url = "github:nix-community/NixOS-WSL/main";
inputs.nixpkgs.follows = "nixpkgs";
};
configarr = {
url = "github:raydak-labs/configarr/44fef304c1abd63cc28b32bec6bcb42950a51586";
};
alejandra.url = "github:kamadorueda/alejandra/4.0.0";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
lazyvim.url = "github:pfassina/lazyvim-nix";
};
outputs = inputs @ {
self,
nixpkgs,
sops-nix,
configarr,
lazyvim,
alejandra,
...
}: let
mkHost = {
hostname,
system ? "x86_64-linux",
extraModules ? [],
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}];
}
configarr.nixosModules.default
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.backupFileExtension = "backup";
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];
};
};
};
}