{ 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 ]; }; darwinConfigurations."Universe-Air" = nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; specialArgs = attrs; modules = [ ./machines/universeair/configuration.nix ({ config, pkgs, ... }: { nixpkgs.overlays = [ me-emacs-overlay ]; }) home-manager.darwinModules.home-manager { nixpkgs = nixpkgsConfig; } ]; }; }; }