{ description = "FredOS NixOS configuration"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05"; home-manager = { url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs = { nixpkgs.follows = "nixpkgs"; home-manager.follows = "home-manager"; }; }; nix-cachyos-kernel.url = "github:xddxdd/nix-cachyos-kernel/release"; proton-cachyos-nix.url = "github:powerofthe69/proton-cachyos-nix"; # No release-26.05 branch yet — use master until stylix cuts one. stylix.url = "github:nix-community/stylix"; }; outputs = { self , nixpkgs , home-manager , zen-browser , nix-cachyos-kernel , stylix , proton-cachyos-nix , ... } @ inputs: let system = "x86_64-linux"; mkHost = hostname: extraModules: nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; }; modules = [ ./hosts/${hostname}.nix ./hosts/hardware/${hostname}.nix ./common.nix home-manager.nixosModules.home-manager stylix.nixosModules.stylix ./settings/stylix.nix ] ++ extraModules; }; in { nixosConfigurations = { FredOS-Gaming = mkHost "FredOS-Gaming" []; FredOS-Mediaserver = mkHost "FredOS-Mediaserver" []; FredOS-Macbook = mkHost "FredOS-Macbook" []; }; }; }