From fe74a82a4646e000cd0eed0c14f735f1ef43aa47 Mon Sep 17 00:00:00 2001 From: Gabriel Brown Date: Tue, 18 Aug 2026 22:32:53 -0400 Subject: [PATCH] Route the Background portal to xdg-desktop-portal-gnome Nothing served org.freedesktop.impl.portal.Background under Hyprland: gnome.portal implements it but is UseIn=gnome, same situation the Secret mapping below already solves for gnome-keyring. Every Flatpak app's own "run/start on login" toggle goes through this portal, so it silently failed for all of them -- Bitwarden logged the failure on every launch. Verified live rather than assumed: xdg-desktop-portal-gnome starts as a standalone backend process with no dependency on GNOME Shell or gnome-session, and after adding the mapping and restarting the portal, Bitwarden's own autostart request succeeded end to end (response=Background { background: true, autostart: true }) where it previously errored with "portal frontend ... was not found". Claude-Session: https://claude.ai/code/session_01E6TJUAh41HaP25MVHWkhRZ --- .../dot/xdg-desktop-portal/hyprland-portals.conf | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/config/dot/xdg-desktop-portal/hyprland-portals.conf b/config/dot/xdg-desktop-portal/hyprland-portals.conf index 4657150..c55f331 100644 --- a/config/dot/xdg-desktop-portal/hyprland-portals.conf +++ b/config/dot/xdg-desktop-portal/hyprland-portals.conf @@ -15,9 +15,18 @@ # Secret -> gnome-keyring. Its own portal file is UseIn=gnome, so under # XDG_CURRENT_DESKTOP=Hyprland nothing would claim Secret and # Flatpak apps needing credential storage would fail. +# Background -> xdg-desktop-portal-gnome. It's the only installed backend +# that implements this interface (gnome.portal is UseIn=gnome, +# same problem as Secret above), and it runs as a standalone +# daemon that doesn't need GNOME Shell or gnome-session -- +# confirmed live: it starts cleanly under Hyprland and Flatpak +# apps' RequestBackground calls succeed. Without this mapping +# nothing serves org.freedesktop.portal.Background at all, so +# any Flatpak app's own "run/start on login" toggle silently +# fails (Bitwarden logged this on every launch). # -# xdg-desktop-portal-gnome stays installed but is inert here (its portal file -# is UseIn=gnome); it is still needed for the GNOME session. +# xdg-desktop-portal-gnome stays installed and is now used for one interface +# here; it is still the default handler for the GNOME session. # ───────────────────────────────────────────────────────────────────────────── [preferred] @@ -25,3 +34,4 @@ default=hyprland;gtk org.freedesktop.impl.portal.Screenshot=hyprland org.freedesktop.impl.portal.ScreenCast=hyprland org.freedesktop.impl.portal.Secret=gnome-keyring +org.freedesktop.impl.portal.Background=gnome