Files
NixMachines/flake.nix
2024-07-13 10:58:41 -04:00

87 lines
2.3 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 }@inputs: let
overlays = import ./overlays/default.nix inputs;
modules = import ./modules/default.nix inputs;
overlays' = l: ({ config, pkgs, ... }: {
nixpkgs.overlays = l;
});
pkgs_linux-x86_64 = nixpkgs.legacyPackages."x86-linux";
pkgs_linux-aarch64 = nixpkgs.legacyPackages."aarch64-linux";
sysConfig = config: {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
} // config;
nixosSystem' = config: nixpkgs.lib.nixosSystem (sysConfig ({
} // config));
darwinSystem' = config: nix-darwin.lib.darwinSystem (sysConfig ({
system = "aarch64-darwin";
} // config));
homeConf' = config: home-manager.lib.homeManagerConfiguration config;
in {
nixosConfigurations = {
nixos = nixosSystem' {
modules =[
./machines/hippocampus/configuration.nix
(overlays' [
overlays.hydra
overlays.nvidiaContainer
])
modules.sops
];
};
universedesktop = nixosSystem' {
modules = [
./machines/universedesktop/configuration.nix
(overlays' [
overlays.emacs
])
modules.sops
];
};
};
darwinConfigurations = {
UniverseAir = darwinSystem' {
modules = [
./machines/universeair/configuration.nix
(overlays' [
overlays.emacs
])
modules.home-manager-darwin
];
};
};
homeConfigurations = {
universelaptop = homeConf' {
pkgs = pkgs_linux-aarch64;
extraSpecialArgs = {
pkgs-x86_64 = pkgs_linux-x86_64;
inputs = inputs;
};
modules = [
./machines/asahi/home.nix
];
};
};
};
}