{ description = "flake for matt-nixos"; inputs = { # Common nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; nix-inspect.url = "github:bluskript/nix-inspect"; # Desktop nix-flatpak.url = "github:gmodena/nix-flatpak"; impermanence.url = "github:nix-community/impermanence"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; inputs.nixpkgs.follows = "nixpkgs"; }; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-23.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager-stable.url = "github:nix-community/home-manager"; home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable"; nixos-apple-silicon.url = "github:tpwrules/nixos-apple-silicon"; nix-darwin.url = "github:LnL7/nix-darwin"; # Pi4 nixos-hardware.url = "github:NixOS/nixos-hardware/master"; }; outputs = { self, nixpkgs, nixpkgs-stable, chaotic, lanzaboote, impermanence, nix-flatpak, home-manager , nixos-hardware, nix-darwin, nixos-apple-silicon, home-manager-stable, nix-inspect, nixpkgs-unstable }@inputs: let inherit (self) outputs; in { overlays = import ./overlays {inherit inputs;}; nixosConfigurations = { # Desktop "matt-nixos" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs outputs;}; modules = [ impermanence.nixosModules.impermanence lanzaboote.nixosModules.lanzaboote nix-flatpak.nixosModules.nix-flatpak ./hosts/desktop/configuration.nix ./share/impermanence chaotic.nixosModules.default home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.matt = import ./hosts/desktop/home.nix; } nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-gpu-amd nixos-hardware.nixosModules.common-hidpi nixos-hardware.nixosModules.common-pc ]; }; # NAS "jallen-nas" = nixpkgs-stable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs outputs;}; modules = [ ./hosts/nas/configuration.nix home-manager-stable.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.admin = import ./hosts/nas/home.nix; } ]; }; # mac nix "mac-nixos" = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ nixos-apple-silicon.nixosModules.apple-silicon-support ./hosts/mac-nixos/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.matt = import ./hosts/mac-nixos/home.nix; } ]; }; # Pi4 "nixos-pi4" = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ nixos-hardware.nixosModules.raspberry-pi-4 ./hosts/pi4/configuration.nix ]; }; }; darwinConfigurations = { "MacBook-Pro" = nix-darwin.lib.darwinSystem { system = "aarch64-darwin"; modules = [ ./hosts/mac/configuration.nix home-manager.darwinModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.mattjallen = import ./hosts/mac/home.nix; } ]; }; }; # Expose the package set, including overlays, for convenience. darwinPackages = self.darwinConfigurations."MacBook-Pro".pkgs; # Set Git commit hash for darwin-version. system.configurationRevision = self.rev or self.dirtyRev or null; }; }