Files
NixMachines/flake.nix

81 lines
2.5 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
sops-nix.url = "github:Mic92/sops-nix";
me-emacs.url = "git+https://git.syzygial.cc/Syzygial/EmacsConfig.git";
me-emacs.inputs.nixpkgs.follows = "nixpkgs";
nix-darwin.url = "github:LnL7/nix-darwin/master";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, sops-nix, me-emacs, nix-darwin, home-manager }@attrs: let
hydraGitea = (final: prev: {
hydra_unstable = prev.hydra_unstable.overrideAttrs
(old: {
doCheck = false;
patches = [
(final.fetchpatch {
name = "hydra-gitea-push-patch";
url = "https://patch-diff.githubusercontent.com/raw/NixOS/hydra/pull/1227.patch";
sha256 = "A4dN/4zLMKLYaD38lu87lzAWH/3EUM7G5njx7Q4W47w=";
})
];
});
});
nvidiaContainer = import ./nvidiacontainer-overlay.nix nixpkgs;
# Configuration for `nixpkgs`
nixpkgsConfig = {
config = { allowUnfree = true; };
};
me-emacs-overlay = (final: prev: {
me-emacs = me-emacs.packages."x86_64-linux".emacs;
# Will in future be macports based
mac-emacs = me-emacs.packages."aarch64-darwin".emacs;
});
in {
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
modules =
[
({ config, pkgs, ... }: {
nixpkgs.overlays = [ hydraGitea nvidiaContainer ];
})
./machines/hippocampus/configuration.nix
sops-nix.nixosModules.sops
];
};
nixosConfigurations.universedesktop = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = attrs;
modules =
[
({ config, pkgs, ... }: {
nixpkgs.overlays = [ me-emacs-overlay ];
})
./machines/universedesktop/configuration.nix
sops-nix.nixosModules.sops
];
};
darwinConfigurations."Universe-Air" = nix-darwin.lib.darwinSystem {
system = "aarch64-darwin";
specialArgs = {
inputs = attrs;
};
modules = [
./machines/universeair/configuration.nix
({ config, pkgs, ... }: {
nixpkgs.overlays = [ me-emacs-overlay ];
})
home-manager.darwinModules.home-manager
{
nixpkgs = nixpkgsConfig;
}
];
};
};
}