devAlice
← Windows

WSLg — Ejecutar aplicaciones GUI de Linux en Windows

Configura la integración gráfica de WSL2 (WSLg) para que las aplicaciones de escritorio Linux se abran como ventanas nativas de Windows. Sin servidor X externo ni VcXsrv.

En el pasado, ejecutar una app GUI de Linux desde WSL significaba instalar VcXsrv o X410, configurar la variable de entorno DISPLAY y ajustar el cortafuegos de Windows. Desde que WSLg (WSL GUI) llegó (Windows 11 + WSL 0.65+), todo eso desapareció — las apps de Linux simplemente se abren como ventanas de Windows.

Creo que WSLg es uno de esos cambios que parecen pequeños hasta que los usas. Antes la configuración de un servidor X en Windows era un procedimiento de media hora lleno de puntos de fallo; ahora simplemente funciona, porque lo que antes era infraestructura manual hoy es transparente.

Esta guía habilita WSLg en Windows 11 22H2+ + WSL 2 + Ubuntu 24.04 y explica cómo ejecutar aplicaciones GUI de Linux habituales (Firefox, gedit, GIMP, depuradores gráficos).

Resumen

  1. wsl --version — si aparecen tanto WSL version 2.0+ como WSLg 1.0+, ya estás listo
  2. wsl --update para la versión más reciente
  3. sudo apt install -y x11-appsxcalc — si se abre una calculadora como ventana de Windows, ¡éxito!
  4. No se necesita configurar DISPLAY — WSLg lo inyecta automáticamente
  5. Las apps Wayland obtienen WAYLAND_DISPLAY, las X11 obtienen DISPLAY=:0 — ambos configurados por ti

Requisitos previos

  • Windows 11 22H2+ (Windows 10 21H2+ también funciona, pero el 11 tiene mejor estabilidad/rendimiento)
  • WSL 2 + Ubuntu 24.04 (otras distribuciones funcionan — Debian, Fedora, etc.)
  • Controlador de GPU reciente (NVIDIA/AMD/Intel — WSLg usa vGPU)

1. Cómo funciona WSLg (brevemente)

[App GUI Linux] ──Wayland/X11──> [Compositor de sistema WSLg]
                                       │
                                       ▼
                                [Windows RDP]
                                       │
                                       ▼
                              [Escritorio Windows]
  • La app de Linux se comporta como un cliente Wayland o X11 normal
  • WSLg ejecuta un compositor Weston y reenvía mediante RDP a Windows
  • Desde el lado de Windows, la app es solo un cliente RDP — sin servidor X separado

2. Verificación — ¿ya funciona?

wsl --version
# WSL version: 2.x.x
# WSLg version: 1.x.x  ← ambos presentes significa OK

Si WSLg no aparece en la lista, actualiza:

wsl --update
wsl --shutdown

Prueba:

# Dentro de WSL Ubuntu
sudo apt update && sudo apt install -y x11-apps
xcalc          # o xeyes / xclock

Una ventana GUI en Windows significa éxito.

Si no aparece nada, consulta §8 Resolución de problemas.

3. Apps GUI de uso frecuente

3.1 Firefox

sudo apt install -y firefox
firefox

Navega por sitios HTTPS y usa DevTools a través del Firefox de WSL Ubuntu. La aceleración GPU es limitada comparada con Safari de macOS o Firefox nativo de Windows, por lo que los sitios pesados se sienten ligeramente más lentos.

3.2 Editores de texto (gedit, gnome-text-editor)

sudo apt install -y gnome-text-editor
gnome-text-editor /etc/hosts

Útil para edición rápida con sudo cuando prefieres una GUI a nano.

3.3 Edición de imágenes (GIMP)

sudo apt install -y gimp
gimp

No tan rápido como Photoshop, pero la compilación para Linux funciona tal cual.

3.4 Depurador gráfico (ddd, gdb-gui)

sudo apt install -y ddd
ddd ./my_program

Si usas VS Code Remote-WSL, realmente no necesitas ddd, pero está ahí si quieres un depurador gráfico clásico.

3.5 Wireshark (análisis de red)

sudo apt install -y wireshark
sudo wireshark

Captura la interfaz de red virtual de WSL. Para capturar el tráfico del host Windows directamente, necesitas configuración adicional (wsl --networkingMode=mirrored — Windows 11 22H2+).


4. Wayland vs X11 — selección automática

WSLg soporta ambos protocolos y ambas variables de entorno se configuran automáticamente:

echo $DISPLAY
# :0
 
echo $WAYLAND_DISPLAY
# wayland-0
  • Wayland primero — las apps GTK/Qt modernas seleccionan Wayland automáticamente (GDK_BACKEND=wayland por defecto)
  • Fallback a X11 — las apps sin soporte Wayland caen a DISPLAY=:0

Fuerza un protocolo concreto para una app específica:

# Forzar X11
GDK_BACKEND=x11 firefox
 
# Forzar Wayland
GDK_BACKEND=wayland firefox

5. Aceleración GPU

WSLg expone una vGPU (GPU virtualizada) para aceleración OpenGL/Vulkan. Las cargas de trabajo CUDA también funcionan.

Comprobación

sudo apt install -y mesa-utils
glxinfo | grep "OpenGL renderer"
# OpenGL renderer string: D3D12 (NVIDIA GeForce RTX ...) — GPU del host expuesta

Casos de uso

  • Apps 3D como Blender / Maya
  • Visualización de ML (TensorBoard, Plotly Dash)
  • Juegos (rendimiento limitado, pero funcionan)

CUDA: el controlador WSL de NVIDIA se instala en el lado Windows (https://developer.nvidia.com/cuda/wsl). Dentro de Linux solo necesitas nvidia-cuda-toolkit.


6. Audio, micrófono, webcam

WSLg también conecta PulseAudio automáticamente — la salida de audio se enruta a la salida predeterminada de Windows.

sudo apt install -y pavucontrol
speaker-test -c 2     # prueba de altavoz izquierdo/derecho

Los micrófonos y webcams son más complicados:

  • Micrófono: abre pavucontrol → pestaña Grabación → el micrófono de Windows aparece (normalmente bien)
  • Webcam: WSLg no soporta directamente cámaras USB. Usa usbipd-win para conectar dispositivos USB

7. Anclar apps de Linux al menú Inicio de Windows

WSLg las registra automáticamente:

Win → busca "Firefox" → aparece la entrada Firefox (Ubuntu) → haz clic y WSL arranca y Firefox se abre.

Las apps visibles vienen de ~/.local/share/applications/*.desktop (Linux). Registra una app personalizada escribiendo tu propio archivo .desktop:

cat > ~/.local/share/applications/my-app.desktop <<'EOF'
[Desktop Entry]
Type=Application
Name=My Tool
Exec=/usr/local/bin/mytool
Icon=utilities-terminal
EOF

Reinicia WSL y aparece en el menú Inicio.


8. Resolución de problemas

xcalc se ejecuta pero no aparece ninguna ventana

  • ¿Muestra wsl --version una línea con WSLg version?
  • wsl --update · wsl --shutdown y reintenta
  • Actualiza el controlador de GPU del host (WSLg 1.0.62+ tiene fallback de software mesa, pero algunas configuraciones siguen necesitando una GPU)

Las fuentes están rotas (▢▢▢ para texto no latino)

sudo apt install -y fonts-noto-cjk fonts-nanum
fc-cache -fv

El portapapeles no se sincroniza

WSLg sincroniza el portapapeles de texto en ambas direcciones automáticamente. Si deja de funcionar:

  • ¿La app usa Wayland o X11? Las apps Wayland ocasionalmente pierden el portapapeles
  • Fuerza GDK_BACKEND=x11 y reintenta

Advertencias del tipo «GTK theme not found»

sudo apt install -y adwaita-icon-theme

Falta el tema GTK predeterminado. Poco frecuente; ocurre en algunas imágenes Ubuntu mínimas.

Algunas teclas no llegan a la app GUI

Los acordes Ctrl+Shift o las teclas del IME coreano los captura Windows primero. Soluciones:

  • Desactiva el IME de Windows (Win + Espacio para cambiar a inglés)
  • O instala ibus / fcitx5 dentro de Linux y escribe en coreano completamente en Linux

La app va lenta (retraso visible en la UI)

  • La aceleración GPU puede haber caído a software — comprueba con glxinfo | grep -i hardware
  • Actualiza el controlador de GPU
  • WSL2 puede estar escaso de RAM — configura memory=8GB en .wslconfig (wsl-tuning)

9. Limitaciones

  • Solo Windows 11 / WSL 2 — sin soporte para WSL 1
  • Sin bandeja del sistema / widgets — los iconos de bandeja de Linux no aparecen
  • Múltiples monitores está bien; el escalado fraccionario es complicado — con escalado al 125%/150% algunas apps se ven borrosas
  • Inicio automático / daemons en segundo plano — para iniciar un servicio systemd de Linux al arrancar Windows, necesitas configuración adicional (systemctl --user + Task Scheduler de Windows)

10. Qué sigue


Referencias

Registro de cambios

  • 2026-05-16: Primer borrador. Habilitación de WSLg · apps GUI habituales · aceleración GPU · audio/micrófono · integración en el menú Inicio · seis casos de resolución de problemas.