at master 2.5 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8{ 9 options.programs.zoom-us = { 10 enable = lib.mkEnableOption "zoom.us video conferencing application"; 11 package = lib.mkPackageOption pkgs "zoom-us" { }; 12 }; 13 14 config.environment.systemPackages = lib.mkIf config.programs.zoom-us.enable ( 15 lib.singleton ( 16 # The pattern here is to use the already-overridden value, or provide a default based on the 17 # configuration elsewhere. 18 config.programs.zoom-us.package.override (prev: { 19 # Support pulseaudio if it's enabled on the system. 20 pulseaudioSupport = prev.pulseaudioSupport or config.services.pulseaudio.enable; 21 22 # Support Plasma 6 desktop environment if it's enabled on the system. 23 plasma6XdgDesktopPortalSupport = 24 prev.plasma6XdgDesktopPortalSupport or config.services.desktopManager.plasma6.enable; 25 26 # Support LXQT desktop environment if it's enabled on the system. 27 # There's also `config.services.xserver.desktopManager.lxqt.enable` 28 lxqtXdgDesktopPortalSupport = prev.lxqtXdgDesktopPortalSupport or config.xdg.portal.lxqt.enable; 29 30 # Support GNOME desktop environment if it's enabled on the system. 31 gnomeXdgDesktopPortalSupport = 32 prev.gnomeXdgDesktopPortalSupport or config.services.desktopManager.gnome.enable; 33 34 # Support Hyprland desktop for Wayland if it's enabled on the system. 35 hyprlandXdgDesktopPortalSupport = 36 prev.hyprlandXdgDesktopPortalSupport or config.programs.hyprland.enable; 37 38 # Support `wlroots` XDG desktop portal support if it's enabled. 39 wlrXdgDesktopPortalSupport = prev.wlrXdgDesktopPortalSupport or config.xdg.portal.wlr.enable; 40 41 # Support xapp XDG desktop portals if the Cinnamon desktop environment is enabled. 42 # The site claims that it's also used for Xfce4 and MATE; consider adding those to the 43 # default in the future. 44 xappXdgDesktopPortalSupport = 45 prev.xappXdgDesktopPortalSupport or config.services.xserver.desktopManager.cinnamon.enable; 46 47 # Finally, if the `xdg.portal.enable` option is set somehow, use the `targetPkgs` function 48 # to add those relevant packages in. 49 targetPkgs = 50 prev.targetPkgs or ( 51 pkgs: 52 lib.optionals config.xdg.portal.enable ( 53 [ pkgs.xdg-desktop-portal ] ++ config.xdg.portal.extraPortals 54 ) 55 ); 56 }) 57 ) 58 ); 59}