Nix: patch portals search dir

This commit is contained in:
Mihai Fufezan 2023-06-27 00:51:04 +03:00
parent 7ed66abe57
commit 62c75883d1
No known key found for this signature in database
GPG key ID: 5899325F2F120900
2 changed files with 25 additions and 0 deletions

View file

@ -103,6 +103,8 @@ in
patches = [
# make meson use the provided wlroots instead of the git submodule
./meson-build.patch
# fixes portals search path to be picked up from $XDG_DESKTOP_PORTAL_DIR
./portals.patch
];
postPatch = ''

23
nix/portals.patch Normal file
View file

@ -0,0 +1,23 @@
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index a9d95f39..6aa8e7d6 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -2340,14 +2340,16 @@ void CCompositor::performUserChecks() {
static auto* const PSUPPRESSPORTAL = &g_pConfigManager->getConfigValuePtr("misc:suppress_portal_warnings")->intValue;
+ static auto const PORTALDIR = std::string(getenv("XDG_DESKTOP_PORTAL_DIR"));
+
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"); })) {
+ 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);
}