OBS Screen Capture Not Showing on CachyOS KDE Wayland? Here's the Fix

A complete troubleshooting guide for fixing blank OBS screen capture on CachyOS with KDE Plasma and Wayland — from xdg-desktop-portal conflicts to a permanent autostart fix.

OBS Screen Capture Not Showing on CachyOS KDE Wayland? Here's the Fix
Ilustration for OBS Screen Capture Not Showing on CachyOS KDE Wayland? Here's the Fix

OBS Screen Capture Not Showing on CachyOS KDE Wayland? Here's the Fix

If you've just installed OBS on CachyOS (or Arch Linux in general) running KDE Plasma on Wayland, and adding a Screen Capture source gives you nothing — no picker, no preview, just silence — you're dealing with a classic portal conflict issue.

Why Does This Happen?

On Wayland, screen capture cannot be done directly the way it works on X11. Applications must request permission through xdg-desktop-portal, which acts as a bridge between apps and the desktop environment. The problem is that on KDE Plasma systems, two portals often end up active simultaneously:

  • xdg-desktop-portal-kde → the proper KDE portal
  • xdg-desktop-portal-gtk → the GTK/GNOME portal

When OBS requests screen capture access, the system becomes ambiguous about which portal to call. The result: the picker never appears, or OBS silently fails.

Diagnosing Your System

Run these commands to check your setup:

# Check display server
echo $XDG_SESSION_TYPE
echo $XDG_CURRENT_DESKTOP

# Check installed portals
pacman -Q | grep xdg-desktop-portal

# Check which portal services are running
systemctl --user list-units | grep portal

If output shows wayland, KDE, and both the GTK and KDE portals installed — that's your culprit.

Why You Can't Just Remove the GTK Portal

The obvious fix would be removing xdg-desktop-portal-gtk, but:

error: failed to prepare transaction (could not satisfy dependencies)
:: removing xdg-desktop-portal-gtk breaks dependency required by gtk4
:: removing xdg-desktop-portal-gtk breaks dependency required by kde-gtk-config

Both gtk4 and kde-gtk-config depend on it, so removal is off the table.

The Fix: Override Portal Priority

Instead of removing it, we force KDE to be the primary portal via an explicit configuration file:

mkdir -p ~/.config/xdg-desktop-portal
nano ~/.config/xdg-desktop-portal/portals.conf

Add the following content:

[preferred]
default=kde
org.freedesktop.impl.portal.Screenshot=kde
org.freedesktop.impl.portal.ScreenCast=kde

Save, then restart all portal services:

systemctl --user restart xdg-desktop-portal plasma-xdg-desktop-portal-kde xdg-desktop-portal-gtk
Note: On KDE systems, the portal service is named plasma-xdg-desktop-portal-kde, not xdg-desktop-portal-kde. Verify the correct name with systemctl --user list-units | grep portal.

Install OBS and Launch with EGL

sudo pacman -S obs-studio

Then launch OBS with the Wayland EGL environment variable:

OBS_USE_EGL=1 obs

Without OBS_USE_EGL=1, the screen capture picker may still fail to appear on Wayland even with the portal fix in place.

To make this permanent, patch the OBS desktop entry:

sudo sed -i 's/Exec=obs/Exec=env OBS_USE_EGL=1 obs/' /usr/share/applications/com.obsproject.Studio.desktop

Permanent Fix: Autostart Portal Restart

After a reboot, portals may not be properly triggered before OBS opens. The solution is a KDE autostart entry that restarts them after login:

nano ~/.config/autostart/restart-portals.desktop

With this content:

[Desktop Entry]
Type=Application
Name=Restart XDG Portals
Exec=/bin/bash -c 'sleep 5 && systemctl --user restart xdg-desktop-portal plasma-xdg-desktop-portal-kde xdg-desktop-portal-gtk'
Hidden=false
X-KDE-autostart-phase=2

The sleep 5 gives the KDE session time to fully load before the portals are restarted.

Fish shell users: Fish does not support heredocs (<< 'EOF'). Use nano directly to create the file rather than a one-liner piped command.

Root Cause Summary

Component Status Notes
xdg-desktop-portal-kde ✅ Required Primary KDE portal
xdg-desktop-portal-gtk ⚠️ Conflicts Cannot be removed; must be overridden
OBS_USE_EGL=1 ✅ Required Enables screen capture on Wayland
portals.conf ✅ Core fix Explicitly sets portal priority
Autostart restart ✅ Permanent fix No more manual restarts after reboot

Conclusion

This issue is common on Arch-based distros running KDE Plasma + Wayland, largely because xdg-desktop-portal-gtk gets pulled in as a GTK dependency. The solution isn't uninstalling it — it's explicitly configuring portals.conf to tell the system that KDE should handle screen capture operations.

If OBS still fails to capture after all of the above, verify that pipewire and wireplumber are both running:

systemctl --user status pipewire wireplumber

Both must show active (running) — Wayland screen capture runs on top of PipeWire, so if either is down, nothing will work.