1{ config, pkgs, lib, ... }:
2
3let
4 cfg = config.programs.alvr;
5in
6{
7 options = {
8 programs.alvr = {
9 enable = lib.mkEnableOption "ALVR, the VR desktop streamer";
10
11 package = lib.mkPackageOption pkgs "alvr" { };
12
13 openFirewall = lib.mkOption {
14 type = lib.types.bool;
15 default = false;
16 description = ''
17 Whether to open the default ports in the firewall for the ALVR server.
18 '';
19 };
20 };
21 };
22
23 config = lib.mkIf cfg.enable {
24 environment.systemPackages = [ cfg.package ];
25
26 networking.firewall = lib.mkIf cfg.openFirewall {
27 allowedTCPPorts = [ 9943 9944 ];
28 allowedUDPPorts = [ 9943 9944 ];
29 };
30 };
31
32 meta.maintainers = with lib.maintainers; [ passivelemon ];
33}