{ inputs = { sops-nix.url = "github:Mic92/sops-nix"; sops-nix.inputs.nixpkgs.follows = "nixpkgs"; home-manager.url = "github:nix-community/home-manager"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; parsec-cloud-nix = { url = "github:FirelightFlagboy/parsec-cloud-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; zwift.url = "github:netbrain/zwift"; }; outputs = { self, nixpkgs, sops-nix, home-manager, zwift, flake-utils, parsec-cloud-nix, ... }: let customConfig = import ./config.nix; in flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; in { devShells = import ./devshells.nix {inherit pkgs;}; } ) // { nixosConfigurations.laptop = nixpkgs.lib.nixosSystem { modules = [ sops-nix.nixosModules.sops home-manager.nixosModules.home-manager zwift.nixosModules.zwift ./configuration.nix ]; specialArgs = { inherit customConfig; inherit self; parsec-cloud-nix = parsec-cloud-nix; }; }; nixosConfigurations.VMGaming = nixpkgs.lib.nixosSystem { modules = [ ./configuration-vmgaming.nix ]; specialArgs = { inherit customConfig; inherit self; parsec-cloud-nix = parsec-cloud-nix; }; }; }; }