DashNix/modules/programs/teams.nix
2024-08-25 19:10:41 +02:00

40 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"
'';
};
})
);
}