mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-23 10:05:59 +01:00
26 lines
1.8 KiB
Diff
26 lines
1.8 KiB
Diff
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
|
|
index a9d95f39..069a03ca 100644
|
|
--- a/src/Compositor.cpp
|
|
+++ b/src/Compositor.cpp
|
|
@@ -2340,14 +2340,18 @@ 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")) {
|
|
+ if (std::filesystem::exists(PORTALDIR + "/hyprland.portal") && std::filesystem::exists(PORTALDIR + "/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);
|
|
}
|