XDG Portals
Set up screen sharing, clipboard, keyring, and file pickers using XDG portals.
Portal Configuration
You can customize portal settings via the following paths:
- User Configuration (Priority):
~/.config/xdg-desktop-portal/mango-portals.conf - System Fallback:
/usr/share/xdg-desktop-portal/mango-portals.conf
Warning: If you previously added
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=wlrootsto your config, remove it. Mango now handles this automatically.
Screen Sharing
To enable screen sharing (OBS, Discord, WebRTC), you need xdg-desktop-portal-wlr.
-
Install Dependencies
pipewire,pipewire-pulse,xdg-desktop-portal-wlr,rofiNote:
xdg-desktop-portal-wlrhas no picker of its own. When an application asks to share a screen, it launches an external one and triesslurp,wmenu,wofi,rofi,bemenu,mewandfuzzelin that order. If none of them is installed the picker never appears and sharing just fails, so install at least one of them (rofiis the common choice). This is not needed if you skip the picker as described below. -
Optional: Add to autostart
In some situations the portal may not start automatically. You can add this to your autostart script to ensure it launches:
/usr/lib/xdg-desktop-portal-wlr & -
Restart your computer to apply changes.
Known Issues
-
Tencent Meeting asks for a screen but nothing happens:
xdg-desktop-portal-wlropens its chooser duringSelectSources()and only replies once you picked something, while Tencent Meeting callsStart()immediately and never waits for that reply. The portal frontend then rejects the start withSources not selected, so the picker closes without sharing anything. Pick a fixed output and skip the chooser:# ~/.config/xdg-desktop-portal-wlr/config [screencast] output_name=eDP-1 chooser_type=noneReplace
eDP-1with your output name (seemmsg get all-monitors). The configuration is only read when the portal starts, so restart it afterwards (a re-login or reboot works too):systemctl --user restart xdg-desktop-portal-wlrThis applies to every application: screen sharing always captures that output and never asks. Applications that do wait for the reply (OBS, Firefox, Chromium) also work with the default chooser, so only add this if you need it. Tencent Meeting additionally only gets the first share attempt per app start right, so restart it before sharing.
-
Window screen sharing: Some applications may have issues sharing individual windows. See #184 for workarounds.
-
Screen recording lag: If you experience stuttering during screen recording, see xdg-desktop-portal-wlr#351.
Clipboard Manager
Use cliphist to manage clipboard history.
Dependencies: wl-clipboard, cliphist, wl-clip-persist
Autostart Config:
# Keep clipboard content after app closes
wl-clip-persist --clipboard regular --reconnect-tries 0 &
# Watch clipboard and store history
wl-paste --type text --watch cliphist store &GNOME Keyring
If you need to store passwords or secrets (e.g., for VS Code or Minecraft launchers), install gnome-keyring.
Configuration:
Add the following to ~/.config/xdg-desktop-portal/mango-portals.conf:
[preferred]
default=gtk
org.freedesktop.impl.portal.ScreenCast=wlr
org.freedesktop.impl.portal.Screenshot=wlr
org.freedesktop.impl.portal.Secret=gnome-keyring
org.freedesktop.impl.portal.Inhibit=noneFile Picker (File Selector)
Dependencies: xdg-desktop-portal, xdg-desktop-portal-gtk
Reboot your computer once to apply.