Files, Papers, Loupe and every other libadwaita application read their accent from the Settings portal, so they rendered in GNOME blue no matter which accent this desktop was set to -- correct on our own surfaces, wrong on half the screen. xdg-desktop-portal-gtk cannot serve org.freedesktop.appearance accent-color at all; the string does not appear in the 1.15.3 binary. The gnome backend serves it, so Settings now routes to gnome with gtk still listed behind it -- the frontend merges Settings backends in order, so color-scheme keeps resolving if the gnome backend is ever unavailable. GNOME's accent-color is a fixed enum of nine names rather than a color, so each of our eight accents carries its nearest member. Nearest by hue rather than by name: rose maps to red, because it is the red role in this palette. Claude-Session: https://claude.ai/code/session_01BRvzt4H8XXLPVH5MyYdk9L
50 lines
3.1 KiB
Plaintext
50 lines
3.1 KiB
Plaintext
# ─────────────────────────────────────────────────────────────────────────────
|
|
# 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
|