{ config, pkgs, lib, ... }: with lib; let cfg = config.programs.alvr; in { options = { programs.alvr = { enable = mkEnableOption (lib.mdDoc "ALVR"); package = mkPackageOption pkgs "alvr" {}; openFirewall = mkOption { type = types.bool; default = false; description = lib.mdDoc '' Open the default ports in the firewall for the ALVR server. ''; }; }; }; config = mkIf cfg.enable { environment.systemPackages = [cfg.package]; networking.firewall = mkIf cfg.openFirewall { allowedTCPPorts = [9943 9944]; allowedUDPPorts = [9943 9944]; }; }; }