aboutsummaryrefslogtreecommitdiffstats
path: root/modules/desktop/xdg/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/xdg/default.nix')
-rw-r--r--modules/desktop/xdg/default.nix25
1 files changed, 18 insertions, 7 deletions
diff --git a/modules/desktop/xdg/default.nix b/modules/desktop/xdg/default.nix
index bf5ac02..5edaf03 100644
--- a/modules/desktop/xdg/default.nix
+++ b/modules/desktop/xdg/default.nix
@@ -5,19 +5,30 @@
pkgs,
...
}:
+let
+ # Hyprland ships its own portal for screensharing/screencasting
+ portalPkgs =
+ with pkgs;
+ [
+ xdg-desktop-portal-termfilechooser
+ ]
+ ++ lib.optionals config.desktop.hyprland.enable [
+ xdg-desktop-portal-hyprland
+ ]
+ ++ lib.optionals (!config.desktop.hyprland.enable) [
+ xdg-desktop-portal-gtk
+ ];
+
+ defaultPortal = if config.desktop.hyprland.enable then "hyprland" else "gtk";
+in
{
config = lib.mkIf config.desktop.enable {
xdg.portal = {
enable = true;
- extraPortals = with pkgs; [
- xdg-desktop-portal-termfilechooser
- xdg-desktop-portal-gtk
- ];
+ extraPortals = portalPkgs;
config.common = {
"org.freedesktop.impl.portal.FileChooser" = [ "termfilechooser" ];
- default = [
- "gtk"
- ];
+ default = [ defaultPortal ];
};
xdgOpenUsePortal = true;
};