Cómo solucionar la pantalla negra en OBS Studio bajo Wayland y PipeWire
Al ejecutar OBS Studio en distribuciones Linux modernas con entornos de escritorio basados en Wayland (como GNOME, KDE Plasma, Hyprland o Sway), es común encontrarse con una pantalla negra al intentar añadir una fuente de "Captura de pantalla" o "Captura de ventana". A diferencia de X11, Wayland prohíbe por diseño que las aplicaciones lean directamente el framebuffer de otras ventanas, delegando la captura al servidor de streaming de medios PipeWire a través de XDG Desktop Portal.
El Diagnóstico Rápido
xdg-desktop-portal o el backend del entorno de escritorio no está instalado o fallóobs-xdg-portal o se está forzando a OBS a ejecutarse en modo Xwayland/X11pipewire y wireplumber sin reiniciar el sistemaLa Solución Paso a Paso
-
1
Paso 1: Instalar XDG Desktop Portal y el backend de tu escritorio
Para que OBS pueda solicitar captura de pantalla a Wayland, necesitas tener el portal base y el backend específico de tu compositor:
BASH# En Arch Linux / Manjaro / CachyOS sudo pacman -S xdg-desktop-portal pipewire wireplumber # Instala el backend de tu entorno de escritorio: # Para GNOME: sudo pacman -S xdg-desktop-portal-gnome # Para KDE Plasma: sudo pacman -S xdg-desktop-portal-kde # Para Hyprland / Sway / wlroots: sudo pacman -S xdg-desktop-portal-hyprland # o xdg-desktop-portal-wlr # En Ubuntu / Debian / Pop!_OS sudo apt install xdg-desktop-portal pipewire xdg-desktop-portal-gnome -
2
Paso 2: Reiniciar los servicios de Portal y PipeWire
Si los portales fueron instalados recientemente o sufrieron una desconexión, reinstancia las unidades de
systemddel usuario:BASH# Reiniciar el demonio de PipeWire y el gestor de sesiones WirePlumber systemctl --user restart pipewire wireplumber # Detener e iniciar limpiamente XDG Desktop Portal systemctl --user stop xdg-desktop-portal systemctl --user start xdg-desktop-portal -
3
Paso 3: Verificar la ejecución nativa de OBS Studio en Wayland
Si inicias OBS Studio con variables de entorno que fuerzan X11 (
QT_QPA_PLATFORM=xcb), la captura PipeWire no funcionará correctamente. Asegúrate de forzar la plataforma Qt para Wayland:BASH# Ejecutar OBS con backend nativo Wayland QT_QPA_PLATFORM=wayland obs # Si utilizas la versión Flatpak de OBS Studio: flatpak override --user --socket=wayland com.obsproject.StudioDentro de OBS Studio, elimina cualquier fuente antigua de "Captura de pantalla (XSHM)" o "Captura de ventana (Xcomposite)" e inserta una nueva fuente llamada Screen Capture (PipeWire) / Captura de pantalla (PipeWire). Al hacerlo, el sistema operativo mostrará una ventana emergente nativa para seleccionar qué monitor o ventana deseas transmitir.
Consejo de Prevención
Prácticas de seguridad recomendadas:
- Evita forzar Xwayland en OBS: Mantén OBS ejecutándose bajo el cliente nativo Wayland/Qt6 para evitar problemas de sincronización de frames y duplicación de cursores.
- Mantén un solo backend portal activo: Si usas compositores basados en wlroots (Sway, Hyprland), evita tener activos simultáneamente
xdg-desktop-portal-gnomeyxdg-desktop-portal-wlrsin una configuración explícita en~/.config/xdg-desktop-portal/portals.conf. - Verifica la integración con Flatpak: Si usas OBS en versión Flatpak, asegúrate de que el paquete
org.freedesktop.portal.Desktoptenga permisos de acceso ejecutandoflatpak update.