DashNix/modules/programs/teams.nix

32 lines
1 KiB
Nix

{ lib, config, options, pkgs, ... }:
let callPackage = lib.callPackageWith pkgs;
in {
options.mods.teams = {
enable = lib.mkOption {
default = false;
example = true;
type = lib.types.bool;
description =
"Enables teams via a chromium pwa (for the poor souls that have to use this for work)";
};
loopback = lib.mkOption {
default = true;
example = false;
type = lib.types.bool;
description = "Enables loopback for screensharing -> teams sucks :)";
};
};
config = lib.mkIf config.mods.teams.enable
(lib.optionalAttrs (options ? home.packages) {
home.packages = [ (callPackage ../../override/teams.nix { }) ];
} // (lib.optionalAttrs (options ? boot.kernelModules) {
boot = {
extraModulePackages =
[ pkgs.linuxKernel.packages.linux_xanmod_latest.v4l2loopback ];
kernelModules = [ "v4l2loopback" ];
extraModprobeConfig = ''
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
'';
};
}));
}