Nix/flake.nix
2024-08-15 09:50:34 -04:00

53 lines
1.7 KiB
Nix

{
description = "Joey's NixOS configuration";
inputs = {
firefox-gnome-theme = {
flake = false;
url = "github:rafaelmardojai/firefox-gnome-theme";
};
home-manager = {
inputs.nixpkgs.follows = "nixpkgs";
url = "github:nix-community/home-manager/release-24.05";
};
impermanence.url = "github:nix-community/impermanence";
lanzaboote.url = "github:nix-community/lanzaboote/v0.4.1";
nix-flatpak.url = "github:gmodena/nix-flatpak/v0.4.1";
nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
};
outputs = inputs @ { self, ... }:
let
directories = rec {
commonHomeModule = homeModules + "/common";
commonHostModule = hostModules + "/common";
customModules = self + "/modules";
customOptions = customModules + "/options";
homeModules = self + "/home";
hostModules = self + "/hosts";
userModules = customModules + "/users";
};
eachSystem = # Replacement for flake-utils.eachDefaultSystem
with inputs.nixpkgs.lib;
f: foldAttrs mergeAttrs { } (
map (s: mapAttrs (_: v: { ${s} = v; }) (f s)) systems.flakeExposed
);
in
eachSystem (system:
let
outputs = self.outputs // directories;
pkgs = import ./custom-pkgs { inherit inputs pkgs system; };
in
{
packages = {
homeConfigurations = import ./home.nix { inherit inputs outputs pkgs; };
nixosConfigurations = import ./nixos.nix { inherit inputs outputs pkgs system; };
};
});
}