mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
The PR that added this is only a few hours old (https://github.com/NixOS/nixpkgs/pull/399766) and hasn't had the chance to enter an unstable released, which is why I haven't added a rename flag.
64 lines
1.2 KiB
Nix
64 lines
1.2 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
|
|
let
|
|
cfg = config.programs.immersed;
|
|
in
|
|
{
|
|
imports = [
|
|
(lib.mkRenamedOptionModule
|
|
[
|
|
"programs"
|
|
"immersed-vr"
|
|
]
|
|
[
|
|
"programs"
|
|
"immersed"
|
|
]
|
|
)
|
|
];
|
|
|
|
options = {
|
|
programs.immersed = {
|
|
enable = lib.mkEnableOption "immersed";
|
|
|
|
openFirewall = lib.mkOption {
|
|
type = lib.types.bool;
|
|
default = false;
|
|
description = "Whether to open firewall ports for Immersed";
|
|
};
|
|
|
|
package = lib.mkPackageOption pkgs "immersed" { };
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
boot = {
|
|
kernelModules = [
|
|
"v4l2loopback"
|
|
"snd-aloop"
|
|
];
|
|
extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
|
|
extraModprobeConfig = ''
|
|
options v4l2loopback exclusive_caps=1 card_label="v4l2loopback Virtual Camera"
|
|
'';
|
|
};
|
|
|
|
environment.systemPackages = [ cfg.package ];
|
|
|
|
# https://immersed.helpscoutdocs.com/article/23-connection-troubleshooting-linux
|
|
networking.firewall = lib.mkIf cfg.openFirewall {
|
|
allowedTCPPorts = [ 21000 ];
|
|
allowedUDPPorts = [
|
|
21000
|
|
21010
|
|
];
|
|
};
|
|
};
|
|
|
|
meta.maintainers = pkgs.immersed.meta.maintainers;
|
|
}
|