{ 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 = import ./overlays/hydra.nix; nvidiaContainer = import ./overlays/nvidiacontainer.nix nixpkgs; me-emacs-overlay = me-emacs.overlays.default; # Configuration for `nixpkgs` nixpkgsConfig = { config = { allowUnfree = true; }; }; pkgs_linux-x86_64 = nixpkgs.legacyPackages."x86-linux"; pkgs_linux-aarch64 = nixpkgs.legacyPackages."aarch64-linux"; 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 ]; }; 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."UniverseAir" = 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; } ]; }; homeConfigurations."universelaptop" = home-manager.lib.homeManagerConfiguration { pkgs = pkgs_linux-aarch64; # Specify your home configuration modules here, for example, # the path to your home.nix. modules = [ ./machines/asahi/home.nix ]; extraSpecialArgs = { pkgs-x86_64 = pkgs_linux-x86_64; inputs = attrs; }; }; }; }