zoom-us: allow to select xdg-desktop-portal packages (#403064)

This commit is contained in:
Philip Taron 2025-05-23 11:48:26 -07:00 committed by GitHub
commit 063f43f2db
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 139 additions and 11 deletions

View file

@ -357,6 +357,7 @@
./programs/ydotool.nix
./programs/yubikey-touch-detector.nix
./programs/zmap.nix
./programs/zoom-us.nix
./programs/zoxide.nix
./programs/zsh/oh-my-zsh.nix
./programs/zsh/zsh-autoenv.nix

View file

@ -0,0 +1,63 @@
{
config,
lib,
pkgs,
...
}:
{
options.programs.zoom-us = {
enable = lib.mkEnableOption "zoom.us video conferencing application";
package = lib.mkPackageOption pkgs "zoom-us" { };
};
config.environment.systemPackages = lib.mkIf config.programs.zoom-us.enable (
lib.singleton (
# The pattern here is to use the already-overridden value, or provide a default based on the
# configuration elsewhere.
config.programs.zoom-us.package.override (prev: {
# Support pulseaudio if it's enabled on the system.
pulseaudioSupport = prev.pulseaudioSupport or config.services.pulseaudio.enable;
# Support Plasma 6 desktop environment if it's enabled on the system.
plasma6XdgDesktopPortalSupport =
prev.plasma6XdgDesktopPortalSupport or config.services.desktopManager.plasma6.enable;
# Support Plasma 5 desktop environment if it's enabled on the system.
plasma5XdgDesktopPortalSupport =
prev.plasma5XdgDesktopPortalSupport or config.services.xserver.desktopManager.plasma5.enable;
# Support LXQT desktop environment if it's enabled on the system.
# There's also `config.services.xserver.desktopManager.lxqt.enable`
lxqtXdgDesktopPortalSupport = prev.lxqtXdgDesktopPortalSupport or config.xdg.portal.lxqt.enable;
# Support GNOME desktop environment if it's enabled on the system.
gnomeXdgDesktopPortalSupport =
prev.gnomeXdgDesktopPortalSupport or config.services.xserver.desktopManager.gnome.enable;
# Support Hyprland desktop for Wayland if it's enabled on the system.
hyprlandXdgDesktopPortalSupport =
prev.hyprlandXdgDesktopPortalSupport or config.programs.hyprland.enable;
# Support `wlroots` XDG desktop portal support if it's enabled.
wlrXdgDesktopPortalSupport = prev.wlrXdgDesktopPortalSupport or config.xdg.portal.wlr.enable;
# Support xapp XDG desktop portals if the Cinnamon desktop environment is enabled.
# The site claims that it's also used for Xfce4 and MATE; consider adding those to the
# default in the future.
xappXdgDesktopPortalSupport =
prev.xappXdgDesktopPortalSupport or config.services.xserver.desktopManager.cinnamon.enable;
# Finally, if the `xdg.portal.enable` option is set somehow, use the `targetPkgs` function
# to add those relevant packages in.
targetPkgs =
prev.targetPkgs or (
pkgs:
lib.optionals config.xdg.portal.enable (
[ pkgs.xdg-desktop-portal ] ++ config.xdg.portal.extraPortals
)
);
})
)
);
}