{ 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"; stylix.url = "github:nix-community/stylix/release-26.05"; }; 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 ./common.nix home-manager.nixosModules.home-manager stylix.nixosModules.stylix ./settings/stylix.nix ] ++ extraModules; }; in { nixosConfigurations = { FredOS-Gaming = mkHost "FredOS-Gaming" [ ./hosts/hardware/FredOS-Gaming.nix ]; FredOS-Mediaserver = mkHost "FredOS-Mediaserver" [ ./hosts/hardware/FredOS-Mediaserver.nix ]; FredOS-Macbook = mkHost "FredOS-Macbook" [ ./hosts/hardware/FredOS-Macbook.nix ]; FredOS-Kayla = mkHost "FredOS-Kayla" [ ./hosts/hardware/FredOS-Kayla.nix ]; # Mediaserver's services on fake hardware, for testing from-scratch # bring-up (arr-interconnect especially) in a throwaway VM: # nixos-rebuild build-vm --flake .#mediaserver-vm mediaserver-vm = mkHost "FredOS-Mediaserver" [ ./hosts/hardware/vm.nix ]; }; }; }