OBS Screen Capture Tidak Muncul di CachyOS KDE Wayland? Ini Fix-nya

Troubleshooting lengkap mengatasi OBS screen capture yang kosong di CachyOS dengan KDE Plasma dan Wayland — mulai dari konflik xdg-desktop-portal hingga autostart fix permanen.

OBS Screen Capture Tidak Muncul di CachyOS KDE Wayland? Ini Fix-nya
Ilustrasi dari OBS Screen Capture Tidak Muncul di CachyOS KDE Wayland? Ini Fix-nya

OBS Screen Capture Tidak Muncul di CachyOS KDE Wayland? Ini Fix-nya

Kalau lo baru install OBS di CachyOS (atau Arch Linux pada umumnya) dengan KDE Plasma di atas Wayland, dan pas lo coba tambah source Screen Capture tapi hasilnya kosong atau picker-nya gak muncul sama sekali — lo bukan sendirian. Ini masalah klasik yang muncul dari konflik antar komponen portal desktop.

Kenapa Bisa Terjadi?

Di Wayland, screen capture tidak bisa dilakukan langsung seperti di X11. Aplikasi harus minta izin lewat xdg-desktop-portal — semacam "jembatan" antara aplikasi dengan desktop environment. Masalahnya, di sistem dengan KDE Plasma, seringkali ada dua portal yang aktif bersamaan:

  • xdg-desktop-portal-kde → portal resmi untuk KDE
  • xdg-desktop-portal-gtk → portal untuk GTK/GNOME

Ketika OBS minta akses screen capture, sistem bingung portal mana yang harus dipanggil. Hasilnya: picker tidak muncul, atau OBS langsung gagal.

Diagnosa Sistem

Jalankan command berikut untuk cek kondisi sistem:

# Cek display server
echo $XDG_SESSION_TYPE
echo $XDG_CURRENT_DESKTOP

# Cek portal yang keinstall
pacman -Q | grep xdg-desktop-portal

# Cek service portal yang aktif
systemctl --user list-units | grep portal

Kalau outputnya menunjukkan wayland, KDE, dan ada kedua portal GTK dan KDE terinstall — itu konfirmasi masalahnya.

Kenapa Tidak Bisa Hapus Portal GTK?

Solusi paling simpel harusnya hapus xdg-desktop-portal-gtk, tapi:

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

gtk4 dan kde-gtk-config depend ke portal GTK, jadi tidak bisa dihapus begitu saja.

Fix: Override Portal Priority

Solusinya bukan hapus, tapi paksa KDE jadi portal utama lewat file konfigurasi:

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

Isi dengan:

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

Simpan, lalu restart semua portal:

systemctl --user restart xdg-desktop-portal plasma-xdg-desktop-portal-kde xdg-desktop-portal-gtk
Catatan: Nama service KDE portal di sistem adalah plasma-xdg-desktop-portal-kde, bukan xdg-desktop-portal-kde. Cek nama yang benar dengan systemctl --user list-units | grep portal.

Install OBS dan Jalankan dengan EGL

sudo pacman -S obs-studio

Lalu jalankan OBS dengan environment variable untuk Wayland EGL:

OBS_USE_EGL=1 obs

Tanpa OBS_USE_EGL=1, screen capture picker terkadang tetap tidak muncul di Wayland meskipun portal sudah benar.

Untuk menjadikan ini permanen, edit file .desktop OBS:

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

Fix Permanen: Autostart Portal Restart

Setelah reboot, portal bisa belum ter-trigger dengan benar sebelum OBS dibuka. Solusinya buat autostart entry di KDE:

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

Isi dengan:

[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

sleep 5 memberi waktu KDE session untuk fully loaded sebelum portal di-restart.

Untuk pengguna Fish shell: Fish tidak support heredoc (<< 'EOF'). Gunakan nano langsung untuk membuat file, bukan command one-liner.

Ringkasan Root Cause

Komponen Status Keterangan
xdg-desktop-portal-kde ✅ Dibutuhkan Portal utama KDE
xdg-desktop-portal-gtk ⚠️ Konflik Tidak bisa dihapus, harus di-override
OBS_USE_EGL=1 ✅ Wajib Agar screen capture bekerja di Wayland
portals.conf ✅ Fix utama Menentukan portal prioritas
Autostart restart ✅ Fix permanen Agar tidak perlu restart manual setiap reboot

Penutup

Masalah ini cukup umum di distro berbasis Arch yang pakai KDE Plasma + Wayland, terutama karena xdg-desktop-portal-gtk ikut terinstall sebagai dependensi GTK. Solusinya bukan uninstall, tapi konfigurasi eksplisit lewat portals.conf untuk memastikan KDE portal yang diutamakan untuk operasi screen capture.

Kalau setelah semua langkah di atas OBS masih tidak bisa capture, cek juga apakah pipewire dan wireplumber berjalan normal:

systemctl --user status pipewire wireplumber

Keduanya harus active (running) karena screen capture di Wayland berjalan di atas PipeWire.