From a337eabba2583a46cf7ab1afb464614949e2dba3 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Tue, 8 Jul 2025 16:19:56 +0200 Subject: [PATCH] modules/wayland: fix xdg portals --- modules/wms/wayland/module.nix | 39 ++++++++++++++++++++++++++++- modules/wms/wayland/niri/module.nix | 16 ------------ 2 files changed, 38 insertions(+), 17 deletions(-) diff --git a/modules/wms/wayland/module.nix b/modules/wms/wayland/module.nix index 9a66420..ac135a3 100644 --- a/modules/wms/wayland/module.nix +++ b/modules/wms/wayland/module.nix @@ -1,5 +1,42 @@ -_: { +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.modules) mkForce mkIf; + inherit (lib.options) mkEnableOption; + inherit (lib.lists) optional; +in { imports = [ ./variables.nix ]; + + xdg.portal = { + enable = true; + # Sets environment variable NIXOS_XDG_OPEN_USE_PORTAL to 1. + # This will make xdg-open use the portal to open programs, + # which resolves bugs involving programs opening inside FHS envs + # or with unexpected env vars set from wrappers. + # See #160923 for more info. + xdgOpenUsePortal = true; + extraPortals = + [ + pkgs.xdg-desktop-portal-gtk + ] + ++ ( + optional config.programs.niri.enable + pkgs.xdg-desktop-portal-gnome + ) + ++ ( + optional config.programs.hyprland.enable + pkgs.xdg-desktop-portal-hyprland + ); + config = { + common.default = mkIf config.programs.hyprland.enable ["*"]; + }; + configPackages = [ + pkgs.niri + ]; + }; } diff --git a/modules/wms/wayland/niri/module.nix b/modules/wms/wayland/niri/module.nix index 82612dd..e7e54a7 100644 --- a/modules/wms/wayland/niri/module.nix +++ b/modules/wms/wayland/niri/module.nix @@ -52,21 +52,5 @@ in { inherit (pkgs) xwayland-satellite avizo; inherit new-swww; }; - - xdg.portal = { - enable = true; - xdgOpenUsePortal = true; - extraPortals = [ - pkgs.xdg-desktop-portal-gtk - pkgs.xdg-desktop-portal-gnome - ]; - config = { - common.default = ["*"]; - hyprland.default = ["gtk"]; - }; - configPackages = [ - pkgs.niri - ]; - }; }; }