Description
The niri Arch Linux package declares xdg-desktop-portal-gnome as a dependency. When both xdg-desktop-portal-gnome and xdg-desktop-portal-wlr are installed without a portals.conf, the gnome portal wins the D-Bus arbitration and xdg-desktop-portal-wlr is never activated — breaking all screen sharing silently out of the box.
This means a fresh Arch install of niri ships in a broken screencasting state with no warning, caused by niri's own dependency pulling in the conflicting portal backend.
Steps to Reproduce
- Install
niri on Arch Linux (pulls in xdg-desktop-portal-gnome as a dependency)
- Install
xdg-desktop-portal-wlr (as recommended in the wiki for screencasting)
- Try to share screen in any browser-based app (Teams, Meet, etc.) or OBS
- Only the browser window appears — no native picker, no other windows/outputs
Verify the problem:
systemctl --user status xdg-desktop-portal-wlr
# Shows: inactive (dead)
Root Cause
xdg-desktop-portal-gnome is listed as a required dependency of the niri Arch package. When both portal backends are installed without an explicit portals.conf, gnome takes precedence. Since xdg-desktop-portal-gnome does not speak the wlr-screencopy protocol that Niri implements, screen capture fails.
Workaround
Create ~/.config/xdg-desktop-portal/portals.conf:
[preferred]
default=wlr
org.freedesktop.impl.portal.ScreenCast=wlr
org.freedesktop.impl.portal.Screenshot=wlr
Then restart the portal stack:
systemctl --user restart xdg-desktop-portal xdg-desktop-portal-wlr
Suggested Fix
Either:
Option A — Ship a default niri-portals.conf (or instruct users to create portals.conf) as part of the Arch package or the wiki setup guide, explicitly routing ScreenCast to wlr.
Option B — Replace the xdg-desktop-portal-gnome dependency with xdg-desktop-portal-wlr in the Arch package, since -wlr is the correct backend for Niri.
Notes
System Information
- niri version: niri 25.x (Arch Linux)
- Distro: Arch Linux
- Affected backends:
xdg-desktop-portal-wlr (inactive when -gnome is also present without portals.conf)
Description
The
niriArch Linux package declaresxdg-desktop-portal-gnomeas a dependency. When bothxdg-desktop-portal-gnomeandxdg-desktop-portal-wlrare installed without aportals.conf, the gnome portal wins the D-Bus arbitration andxdg-desktop-portal-wlris never activated — breaking all screen sharing silently out of the box.This means a fresh Arch install of niri ships in a broken screencasting state with no warning, caused by niri's own dependency pulling in the conflicting portal backend.
Steps to Reproduce
nirion Arch Linux (pulls inxdg-desktop-portal-gnomeas a dependency)xdg-desktop-portal-wlr(as recommended in the wiki for screencasting)Verify the problem:
systemctl --user status xdg-desktop-portal-wlr # Shows: inactive (dead)Root Cause
xdg-desktop-portal-gnomeis listed as a required dependency of theniriArch package. When both portal backends are installed without an explicitportals.conf, gnome takes precedence. Sincexdg-desktop-portal-gnomedoes not speak thewlr-screencopyprotocol that Niri implements, screen capture fails.Workaround
Create
~/.config/xdg-desktop-portal/portals.conf:Then restart the portal stack:
Suggested Fix
Either:
Option A — Ship a default
niri-portals.conf(or instruct users to createportals.conf) as part of the Arch package or the wiki setup guide, explicitly routingScreenCasttowlr.Option B — Replace the
xdg-desktop-portal-gnomedependency withxdg-desktop-portal-wlrin the Arch package, since-wlris the correct backend for Niri.Notes
portals.conffixxdg-desktop-portal-gnomeis pulled in transitively by niri itself (pacman -Qi xdg-desktop-portal-gnome | grep "Required By"→niri)System Information
xdg-desktop-portal-wlr(inactive when-gnomeis also present withoutportals.conf)