87 lines
2.1 KiB
Nix
87 lines
2.1 KiB
Nix
{
|
|
inputs = {
|
|
# General inputs
|
|
stable.url = "nixpkgs/nixos-24.11";
|
|
unstable.url = "nixpkgs/nixos-unstable";
|
|
|
|
# Flake helpers
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
# System inputs
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "stable";
|
|
};
|
|
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
|
|
lanzaboote = {
|
|
url = "github:nix-community/lanzaboote/v0.4.1";
|
|
inputs.nixpkgs.follows = "stable";
|
|
};
|
|
|
|
# Hardware specific
|
|
jovian = {
|
|
url = "github:Jovian-Experiments/Jovian-NixOS";
|
|
inputs.nixpkgs.follows = "unstable";
|
|
};
|
|
|
|
# Service inputs
|
|
mailserver = {
|
|
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.11";
|
|
inputs.nixpkgs.follows = "stable";
|
|
};
|
|
|
|
minecraft.url = "github:Infinidoge/nix-minecraft";
|
|
|
|
# Home inputs
|
|
hm = {
|
|
url = "github:nix-community/home-manager/release-24.11";
|
|
inputs.nixpkgs.follows = "stable";
|
|
};
|
|
nur = {
|
|
url = "github:nix-community/NUR";
|
|
inputs.nixpkgs.follows = "unstable";
|
|
};
|
|
|
|
blender.url = "github:edolstra/nix-warez?dir=blender";
|
|
};
|
|
|
|
outputs = inputs:
|
|
|
|
inputs.flake-utils.lib.eachDefaultSystemPassThrough (system:
|
|
with inputs; let
|
|
mkNix = name: channel: channel.lib.nixosSystem {
|
|
modules = [ (./hosts + "/${name}") ];
|
|
specialArgs = inputs;
|
|
};
|
|
mkHome = channel: modules: hm.lib.homeManagerConfiguration {
|
|
inherit modules;
|
|
extraSpecialArgs = inputs;
|
|
pkgs = builtins.getAttr system channel.legacyPackages;
|
|
};
|
|
|
|
hostChannels = {
|
|
tower = stable;
|
|
|
|
intuos = stable;
|
|
jupiter = unstable;
|
|
redmond = stable;
|
|
|
|
midas = stable;
|
|
kitty = stable;
|
|
prophet = stable;
|
|
};
|
|
in {
|
|
nixosConfigurations = builtins.mapAttrs (name: channel: mkNix name channel) hostChannels;
|
|
|
|
homeConfigurations = {
|
|
default = mkHome stable [ ./modules/home ];
|
|
full = mkHome stable [
|
|
./modules/home
|
|
{ home.guifull.enable = true; }
|
|
];
|
|
};
|
|
}
|
|
);
|
|
}
|