DashNix/modules/programs/teams.nix

39 lines
1 KiB
Nix

{
lib,
config,
options,
pkgs,
stable,
...
}: 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 {pkgs = stable;})];
}
// (lib.optionalAttrs (options ? boot.kernelModules) {
boot = {
extraModulePackages = with config.boot.kernelPackages; [v4l2loopback];
kernelModules = ["v4l2loopback"];
extraModprobeConfig = ''
options v4l2loopback exclusive_caps=1 card_label="Virtual Camera"
'';
};
})
);
}