91 lines
2.3 KiB
Nix
91 lines
2.3 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";
|
|
};
|
|
|
|
# Specific apps
|
|
blender.url = "github:edolstra/nix-warez?dir=blender";
|
|
};
|
|
|
|
outputs = inputs: with inputs;
|
|
|
|
flake-utils.lib.eachDefaultSystemPassThrough (system:
|
|
let
|
|
mkNix = name: channel: channel.lib.nixosSystem {
|
|
modules = [ (./hosts + "/${name}") ];
|
|
specialArgs = inputs;
|
|
};
|
|
mkHome = extraModules: hm.lib.homeManagerConfiguration {
|
|
modules = [ ./modules/home ] ++ extraModules;
|
|
extraSpecialArgs = inputs;
|
|
pkgs = builtins.getAttr system stable.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 [ ];
|
|
desktop = mkHome [{ home.guifull.enable = true; }];
|
|
|
|
generic = mkHome [{ targets.genericLinux.enable = true; }];
|
|
genericDesktop = mkHome [{
|
|
home.guifull.enable = true;
|
|
targets.genericLinux.enable = true;
|
|
}];
|
|
};
|
|
}
|
|
);
|
|
}
|