at master 916 B view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8let 9 cfg = config.programs.envision; 10in 11{ 12 13 options = { 14 programs.envision = { 15 enable = lib.mkEnableOption "envision"; 16 17 package = lib.mkPackageOption pkgs "envision" { }; 18 19 openFirewall = lib.mkEnableOption "the default ports in the firewall for the WiVRn server" // { 20 default = true; 21 }; 22 }; 23 }; 24 25 config = lib.mkIf cfg.enable { 26 services.avahi = { 27 enable = true; 28 publish = { 29 enable = true; 30 userServices = true; 31 }; 32 }; 33 34 services.udev = { 35 enable = true; 36 packages = with pkgs; [ 37 android-udev-rules 38 xr-hardware 39 ]; 40 }; 41 42 environment.systemPackages = [ cfg.package ]; 43 44 networking.firewall = lib.mkIf cfg.openFirewall { 45 allowedTCPPorts = [ 9757 ]; 46 allowedUDPPorts = [ 9757 ]; 47 }; 48 }; 49 50 meta.maintainers = pkgs.envision.meta.maintainers; 51}