Unverified Commit 355ebe41 authored by Mihai Fufezan's avatar Mihai Fufezan
Browse files

hyprland: don't warn against xdpw and xdph being present

It seems that having both the Hyprland and the wlr desktop portals
does not result in unexpected behaviour. xdph will be started and wlr
ignored.
parent 7bacbf43
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -52,7 +52,9 @@ stdenv.mkDerivation (finalAttrs: {
    # make meson use the provided dependencies instead of the git submodules
    "${finalAttrs.src}/nix/patches/meson-build.patch"
    # look into $XDG_DESKTOP_PORTAL_DIR instead of /usr; runtime checks for conflicting portals
    "${finalAttrs.src}/nix/patches/portals.patch"
    # NOTE: revert back to the patch inside SRC on the next version bump
    # "${finalAttrs.src}/nix/patches/portals.patch"
    ./portals.patch
  ];

  postPatch = ''
+28 −0
Original line number Diff line number Diff line
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 1d978aed..56665389 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -2365,17 +2365,16 @@ void CCompositor::performUserChecks() {
 
     static auto* const    PSUPPRESSPORTAL = &g_pConfigManager->getConfigValuePtr("misc:suppress_portal_warnings")->intValue;
 
-    if (!*PSUPPRESSPORTAL) {
-        if (std::ranges::any_of(BAD_PORTALS, [&](const std::string& portal) { return std::filesystem::exists("/usr/share/xdg-desktop-portal/portals/" + portal + ".portal"); })) {
+    static auto* const    PORTALDIRENV = getenv("XDG_DESKTOP_PORTAL_DIR");
+
+    static auto const     PORTALDIR = PORTALDIRENV != NULL ? std::string(PORTALDIRENV) : "";
+
+    if (!*PSUPPRESSPORTAL && PORTALDIR != "") {
+        if (std::ranges::any_of(BAD_PORTALS, [&](const std::string& portal) { return std::filesystem::exists(PORTALDIR + "/" + portal + ".portal"); })) {
             // bad portal detected
             g_pHyprNotificationOverlay->addNotification("You have one or more incompatible xdg-desktop-portal impls installed. Please remove incompatible ones to avoid issues.",
                                                         CColor(0), 15000, ICON_ERROR);
         }
-
-        if (std::filesystem::exists("/usr/share/xdg-desktop-portal/portals/hyprland.portal") && std::filesystem::exists("/usr/share/xdg-desktop-portal/portals/wlr.portal")) {
-            g_pHyprNotificationOverlay->addNotification("You have xdg-desktop-portal-hyprland and -wlr installed simultaneously. Please uninstall one to avoid issues.", CColor(0),
-                                                        15000, ICON_ERROR);
-        }
     }
 }