{ description = "flake for matt-nixos"; inputs = { # nixpgs nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; # nixpkgs-unstable-small # nixpkgs-unstable-small.url = "github:NixOS/nixpkgs/nixos-unstable-small"; # nixpgs nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.11"; # Authentik authentik-nix = { url = "github:nix-community/authentik-nix"; # url = "github:fpletz/authentik-nix/24.11"; # for some reason this is broken in stable and unstable inputs.nixpkgs.follows = "nixpkgs-stable"; }; # Chaotic-nix # chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; # Impermenance impermanence.url = "github:nix-community/impermanence"; # Home Manager home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; home-manager-stable = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; # Lanzaboote lanzaboote = { url = "github:nix-community/lanzaboote/v0.4.2"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; # Nix hardware nixos-hardware.url = "github:NixOS/nixos-hardware/master"; # Sops-nix sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; #Apple nixos-apple-silicon.url = "github:tpwrules/nixos-apple-silicon"; # nixos-apple-silicon.url = "github:mjallen18/nixos-apple-silicon"; # nixos-apple-silicon.url = "git+file:///home/matt/nixos-apple-silicon"; nix-darwin.url = "github:LnL7/nix-darwin"; manyfold.url = "github:mjallen18/manyfold-nixos"; jovian.url = "github:Jovian-Experiments/Jovian-NixOS"; # cosmic = { # url = "github:lilyinstarlight/nixos-cosmic"; # inputs.nixpkgs.follows = "nixpkgs-unstable"; # }; }; outputs = { self, nixpkgs-unstable, # nixpkgs-unstable-small, nixpkgs-stable, # chaotic, lanzaboote, impermanence, home-manager, home-manager-stable, nixos-hardware, nix-darwin, nixos-apple-silicon, # cosmic, authentik-nix, sops-nix, manyfold, jovian, }@inputs: let inherit (self) outputs; in { overlays = import ./overlays { inherit inputs; }; nixosConfigurations = { # Desktop "matt-nixos" = nixpkgs-unstable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs outputs; }; modules = [ impermanence.nixosModules.impermanence lanzaboote.nixosModules.lanzaboote ./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; home-manager.backupFileExtension = "backup"; } nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-gpu-amd nixos-hardware.nixosModules.common-hidpi nixos-hardware.nixosModules.common-pc sops-nix.nixosModules.sops # cosmic.nixosModules.default ]; }; # NAS "jallen-nas" = nixpkgs-stable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs outputs; }; modules = [ impermanence.nixosModules.impermanence ./hosts/nas/configuration.nix ./hosts/nas/impermanence.nix home-manager-stable.nixosModules.home-manager { home-manager.useGlobalPkgs = false; home-manager.useUserPackages = true; home-manager.users.admin = import ./hosts/nas/home.nix; home-manager.backupFileExtension = "backup"; } authentik-nix.nixosModules.default sops-nix.nixosModules.sops nixos-hardware.nixosModules.common-pc nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-hidpi ]; }; # mac nix "mac-nixos" = nixpkgs-unstable.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 "pi4" = nixpkgs-unstable.lib.nixosSystem { system = "aarch64-linux"; modules = [ nixos-hardware.nixosModules.raspberry-pi-4 impermanence.nixosModules.impermanence ./hosts/pi4/configuration.nix sops-nix.nixosModules.sops home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.matt = import ./hosts/pi4/home.nix; } ]; }; "steamdeck" = nixpkgs-unstable.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs outputs; }; modules = [ impermanence.nixosModules.impermanence lanzaboote.nixosModules.lanzaboote ./hosts/deck/configuration.nix ./share/impermanence home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.matt = import ./hosts/deck/home.nix; home-manager.backupFileExtension = "backup"; } nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-gpu-amd nixos-hardware.nixosModules.common-hidpi nixos-hardware.nixosModules.common-pc sops-nix.nixosModules.sops jovian.nixosModules.jovian ]; }; }; 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; }; }