# ─────────────────────────────────────────────────────────────────────────────
# Portal backend routing for the Hyprland session
#
# This overrides /usr/share/xdg-desktop-portal/hyprland-portals.conf, which
# ships `default=hyprland;gtk` and no Secret mapping.
#
# Why each line:
#   hyprland  -> Screenshot, ScreenCast, GlobalShortcuts, InputCapture
#                (this is what makes OBS / Sunshine / Zoom screen sharing work)
#   gtk       -> FileChooser, Notification, Print, Access, and Settings as
#                the fallback behind gnome (see below)
#                Settings is load-bearing: xdg-desktop-portal-gtk reads
#                gsettings' org.gnome.desktop.interface and serves
#                org.freedesktop.appearance, which is how libadwaita apps know
#                to be dark.
#   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).
#
#   Settings  -> gnome FIRST, gtk behind it. The frontend merges Settings
#                backends in order, so this is additive rather than a swap.
#                It has to be this way round because xdg-desktop-portal-gtk
#                cannot serve org.freedesktop.appearance accent-color at all --
#                the string does not appear in the 1.15.3 binary -- so
#                libadwaita applications rendered in GNOME blue no matter what
#                accent this desktop was set to. The gnome backend serves it,
#                and gtk staying listed means color-scheme still resolves if
#                the gnome backend is ever unavailable.
#
# xdg-desktop-portal-gnome stays installed and is now used for two interfaces
# here; it is still the default handler for the GNOME session.
# ─────────────────────────────────────────────────────────────────────────────

[preferred]
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
org.freedesktop.impl.portal.Settings=gnome;gtk
