Prerrequisitos:


Fase 1: Configuración de Distrobox y el Contenedor

  1. Instalar Distrobox (si no lo tienes):

    • Consulta la documentación oficial de Distrobox para tu distribución anfitriona. Ejemplo en Fedora: sudo dnf install distrobox. Ejemplo con script: curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh.
    • Asegúrate de que Podman o Docker esté instalado y funcionando en tu sistema anfitrión.
  2. Crear el Contenedor Ubuntu 24.04:

    • Abre una terminal en tu sistema anfitrión.
    • Ejecuta:
      distrobox create --name ubuntu-vesktop --image ubuntu:24.04
      
      • --name ubuntu-vesktop: Nombre para tu contenedor (puedes cambiarlo).
      • --image ubuntu:24.04: Imagen base (Ubuntu Noble Numbat).
    • Espera a que descargue la imagen y configure el contenedor.
  3. Entrar al Contenedor:

    • Una vez creado, entra a su shell:
      distrobox enter ubuntu-vesktop
      
    • Tu prompt cambiará, indicando que estás dentro del contenedor (📦[usuario@ubuntu-vesktop ~]$). Todos los comandos siguientes se ejecutan DENTRO del contenedor, a menos que se indique lo contrario.

Fase 2: Instalación de Vesktop Dentro del Contenedor

  1. Actualizar Listas de Paquetes:

    sudo apt update
    
  2. Instalar Dependencias Básicas:

    sudo apt install -y wget libfuse2 ca-certificates
    
    • wget: Para descargar el archivo .deb.
    • libfuse2: A veces necesaria para apps Electron o AppImages.
    • ca-certificates: Para conexiones HTTPS seguras.
  3. Descargar el Paquete .deb de Vesktop:

    • Ve a la página de Releases de Vesktop en GitHub: https://github.com/Vencord/Vesktop/releases
    • Busca la última versión y copia el enlace del archivo .deb para Linux (amd64).
    • Descárgalo dentro del contenedor usando wget. Importante: Descárgalo directamente a /tmp para evitar problemas de permisos más tarde. Reemplaza <ENLACE_DEL_.DEB> con el enlace real:
      cd /tmp
      wget <ENLACE_DEL_.DEB>
      # Ejemplo: wget https://github.com/Vencord/Vesktop/releases/download/v1.5.6/vesktop_1.5.6_amd64.deb
      
  4. Instalar Vesktop desde el Archivo .deb:

    • Usa apt para instalar el archivo descargado en /tmp. Reemplaza vesktop_*.deb con el nombre exacto del archivo:
      sudo apt install ./vesktop_*.deb
      
    • Usar apt install ./archivo.deb ayuda a resolver dependencias automáticamente.

Fase 3: Solución de Problemas Iniciales al Ejecutar

Si intentas ejecutar vesktop ahora, podrías encontrar errores. Los más comunes que encontramos fueron:

  1. Error de Permisos de _apt:

    • Síntoma: Mensaje sobre _apt no pudiendo acceder al archivo .deb en tu /home.
    • Solución: Ya lo prevenimos descargando y ejecutando la instalación desde /tmp en el paso anterior. Si lo descargaste a ~, muévelo con sudo mv ~/vesktop_*.deb /tmp/ antes de instalar.
  2. Error libasound.so.2: cannot open shared object file:

    • Síntoma: Vesktop no se inicia y menciona que falta libasound.so.2.
    • Causa: Falta la biblioteca de sonido ALSA. En Ubuntu 24.04, libasound2 es un paquete virtual.
    • Solución: Instala el paquete real que provee esta biblioteca:
      sudo apt update # Buena práctica
      sudo apt install libasound2t64
      

Fase 4: Solución de Problemas de Audio (Oír y Hablar)

Si Vesktop se ejecuta pero no puedes oír o usar el micrófono:

  1. Instalar Bibliotecas de Cliente de Servidor de Sonido:

    • Necesitamos que la app dentro del contenedor pueda hablar con el servidor de sonido del anfitrión (probablemente PipeWire).
    sudo apt install pipewire-audio-client-libraries libspa-0.2-modules libpulse0 alsa-utils pulseaudio-utils
    
    • Esto instala clientes para PipeWire (pipewire..., libspa...) y PulseAudio (libpulse0), además de utilidades de prueba (alsa-utils, pulseaudio-utils).
  2. Probar Audio (Opcional, dentro del contenedor):

    • Probar salida: aplay /usr/share/sounds/alsa/Front_Center.wav o paplay /usr/share/sounds/alsa/Front_Center.wav
    • Probar entrada: arecord -d 5 test.wav && aplay test.wav

Fase 5: Solución de Problemas de Compartir Pantalla

Si el audio funciona pero no puedes compartir pantalla:

  1. Instalar PipeWire y Portal Helpers (Dentro del Contenedor):

    • Asegúrate de que PipeWire esté disponible y que las herramientas para interactuar con el portal del host estén presentes.
    sudo apt install pipewire xdg-desktop-portal xdg-desktop-portal-gtk
    
    • Si tu sistema anfitrión usa KDE Plasma, instala xdg-desktop-portal-kde en lugar de xdg-desktop-portal-gtk.
  2. Verificar Servicios del Portal en el Anfitrión:

    • Importante: Ejecuta estos comandos en la terminal de tu sistema anfitrión (no dentro de Distrobox).
    systemctl --user status xdg-desktop-portal.service
    systemctl --user status xdg-desktop-portal-gtk.service # O el backend de tu escritorio (-kde, -wlr, etc.)
    
    • Ambos deben estar active (running). Si no, intenta reiniciarlos:
    # En el ANFITRIÓN
    systemctl --user restart xdg-desktop-portal.service
    systemctl --user restart xdg-desktop-portal-gtk.service # O tu backend
    
  3. Considerar Wayland vs X11:

    • La compartición de pantalla, especialmente en Wayland, depende mucho de PipeWire y los portales.
    • Verifica tu tipo de sesión en el anfitrión: echo $XDG_SESSION_TYPE
    • Si usas Wayland y sigue fallando:
      • Intenta lanzar Vesktop dentro del contenedor con un flag específico: vesktop --enable-features=WebRTCPipeWireCapturer
      • Si aún falla, considera probar en una sesión X11. Cierra sesión en tu escritorio anfitrión y, en la pantalla de login, busca un icono de engranaje (⚙️) o menú para seleccionar una sesión "Xorg", "X11" o "Estándar (X11)" antes de ingresar tu contraseña. Luego, lanza Vesktop desde el menú del anfitrión y prueba de nuevo.

Fase 6: Exportar Vesktop al Sistema Anfitrión

Para poder lanzar Vesktop desde el menú de aplicaciones de tu sistema anfitrión como cualquier otra app:

  1. Ejecutar el Comando de Exportación (Dentro del Contenedor):

    distrobox-export --app vesktop
    
    • Esto crea un script lanzador y un archivo .desktop en tu sistema anfitrión (normalmente en ~/.local/share/applications).
  2. Salir del Contenedor:

    exit