diff options
author | Vaxry <[email protected]> | 2023-08-26 17:12:21 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2023-08-26 17:12:21 +0200 |
commit | 4a41d013a27c9919ed41a50c43c4224d8443a415 (patch) | |
tree | f404e8d5d70d48dac21dcca836cfd8310f873335 | |
parent | 299d201e562c0d0d1530d1559ff33802a1470815 (diff) | |
download | Hyprland-4a41d013a27c9919ed41a50c43c4224d8443a415.tar.gz Hyprland-4a41d013a27c9919ed41a50c43c4224d8443a415.zip |
internal: Fix XDP multi-portal issues (#3077)
* add a hyprland portals conf
* remove portal checks
* typo
* Nix: remove portal patch
---------
Co-authored-by: Mihai Fufezan <[email protected]>
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | assets/hyprland-portals.conf | 2 | ||||
-rw-r--r-- | assets/meson.build | 2 | ||||
-rw-r--r-- | nix/default.nix | 2 | ||||
-rw-r--r-- | nix/patches/portals.patch | 28 | ||||
-rw-r--r-- | src/Compositor.cpp | 17 | ||||
-rw-r--r-- | src/config/ConfigManager.cpp | 1 |
7 files changed, 6 insertions, 47 deletions
@@ -59,6 +59,7 @@ install: cd subprojects/wlroots/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlroots && cd ../../../.. cp ./protocols/*-protocol.h ${PREFIX}/include/hyprland/protocols cp ./build/hyprland.pc ${PREFIX}/share/pkgconfig + cp ./assets/hyprland-portals.conf ${PREFIX}/share/xdg-desktop-portal/ if [ -d /usr/share/pkgconfig ]; then cp ./build/hyprland.pc /usr/share/pkgconfig 2>/dev/null || true; fi cleaninstall: diff --git a/assets/hyprland-portals.conf b/assets/hyprland-portals.conf new file mode 100644 index 00000000..2ec1f0de --- /dev/null +++ b/assets/hyprland-portals.conf @@ -0,0 +1,2 @@ +[preferred] +default=hyprland
\ No newline at end of file diff --git a/assets/meson.build b/assets/meson.build index ba2c77bd..cdfafabb 100644 --- a/assets/meson.build +++ b/assets/meson.build @@ -5,3 +5,5 @@ foreach type : wallpaper_types install_data(f'wall_@type@@[email protected]', install_dir: join_paths(get_option('datadir'), 'hyprland'), install_tag: 'runtime') endforeach endforeach + +install_data('hyprland-portals.conf', install_dir: join_paths(get_option('datadir'), 'xdg-desktop-portal'), install_tag: 'runtime') diff --git a/nix/default.nix b/nix/default.nix index 663d5429..96fa12d7 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -100,8 +100,6 @@ assert lib.assertMsg (!hidpiXWayland) "The option `hidpiXWayland` has been remov patches = [ # make meson use the provided wlroots instead of the git submodule ./patches/meson-build.patch - # fixes portals search path to be picked up from $XDG_DESKTOP_PORTAL_DIR - ./patches/portals.patch ]; postPatch = '' diff --git a/nix/patches/portals.patch b/nix/patches/portals.patch deleted file mode 100644 index cb3d97c3..00000000 --- a/nix/patches/portals.patch +++ /dev/null @@ -1,28 +0,0 @@ -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); -- } - } - } - diff --git a/src/Compositor.cpp b/src/Compositor.cpp index ef611d8d..c74eb681 100644 --- a/src/Compositor.cpp +++ b/src/Compositor.cpp @@ -2427,22 +2427,7 @@ int CCompositor::getNewSpecialID() { } void CCompositor::performUserChecks() { - static constexpr auto BAD_PORTALS = {"kde", "gnome"}; - - 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"); })) { - // 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); - } - } + // empty } void CCompositor::moveWindowToWorkspaceSafe(CWindow* pWindow, CWorkspace* pWorkspace) { diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp index defa1a11..831e3b17 100644 --- a/src/config/ConfigManager.cpp +++ b/src/config/ConfigManager.cpp @@ -103,7 +103,6 @@ void CConfigManager::setDefaultVars() { configValues["misc:moveintogroup_lock_check"].intValue = 0; configValues["misc:hide_cursor_on_touch"].intValue = 1; configValues["misc:mouse_move_focuses_monitor"].intValue = 1; - configValues["misc:suppress_portal_warnings"].intValue = 0; configValues["misc:render_ahead_of_time"].intValue = 0; configValues["misc:render_ahead_safezone"].intValue = 1; configValues["misc:cursor_zoom_factor"].floatValue = 1.f; |