Wie kann ich GUI-Anwendungen aus WSL heraus starten?
- Einleitung
- WSL-Version und WSLg
- Ausführen von GUI-Anwendungen mit WSLg
- Installation der notwendigen Software in WSL
- Alternative Methoden ohne WSLg
- Probleme und Troubleshooting
- Zusammenfassung
Einleitung
Windows Subsystem for Linux (WSL) ermöglicht es, viele Linux-Anwendungen direkt unter Windows zu nutzen.
Standardmäßig unterstützt WSL hauptsächlich Kommandozeilenprogramme, doch es ist inzwischen möglich, auch grafische Anwendungen (GUI) aus WSL heraus zu starten und darzustellen.
Dies eröffnet vielfältige Möglichkeiten, beispielsweise Linux-basierte GUI-Tools unter Windows einzusetzen, ohne eine vollständige Virtualisierungslösung zu benötigen.
WSL-Version und WSLg
Der wichtigste Schritt, um GUI-Anwendungen in WSL auszuführen, ist die Verwendung von WSL 2 in Kombination mit WSLg. WSLg ist eine Technologie, die von Microsoft entwickelt wurde und die Ausführung von Linux-Grafikanwendungen unter Windows erleichtert.
Diese Technologie ist ab Windows 10 (ab Version 21H2) und natürlich in Windows 11 standardmäßig enthalten.
Um sicherzugehen, dass Sie WSL 2 nutzen, können Sie den Befehl wsl -l -v in der Windows PowerShell oder Eingabeaufforderung ausführen. Dort sehen Sie für jede Distribution die Version. Falls Ihre Distribution noch WSL 1 nutzt, lässt sie sich mit wsl --set-version NameDerDistribution 2 updaten.
Ausführen von GUI-Anwendungen mit WSLg
Bei aktiviertem WSLg können Sie aus dem WSL-Terminal heraus GUI-Anwendungen einfach durch Eingabe des Namens starten. Beispielsweise startet gedit den grafischen Texteditor. Die Anzeige erfolgt nahtlos im Windows-Desktop, als wäre die Anwendung nativ installiert.
WSLg transportiert dabei automatisch die X11- und Wayland-Grafiksignale an das Windows-System und erlaubt auch die Audioausgabe. Sie müssen also keine spezielle X-Server-Software unter Windows einrichten. Das ist der große Vorteil von WSLg gegenüber älteren Ansätzen.
Installation der notwendigen Software in WSL
In Ihrer Linux-Distribution unter WSL müssen Sie selbstverständlich die Programme installieren, die Sie benutzen möchten. Für Debian- oder Ubuntu-basierte Systeme verwenden Sie beispielsweise:
sudo apt update && sudo apt install gedit
Damit steht Ihnen die grafische Anwendung zur Verfügung und kann direkt aus dem WSL-Terminal gestartet werden. Je nach Anwendung können jedoch noch weitere Abhängigkeiten benötigt werden, die ebenfalls über den Paketmanager installiert werden.
Alternative Methoden ohne WSLg
Falls Sie eine Windows-Version verwenden, die WSLg nicht unterstützt oder wenn Sie aus bestimmten Gründen kein WSL 2 einsetzen möchten, gibt es alternative Wege, GUI-Anwendungen aus WSL heraus zu starten.
Dabei müssen Sie einen separaten X-Server auf Windows nutzen, beispielsweise VcXsrv oder Xming.
Nach Installation und Start des X-Servers unter Windows müssen Sie in der WSL-Umgebung die Umgebungsvariable DISPLAY setzen, damit die Programme wissen, wohin sie die grafische Ausgabe leiten sollen. Ein typisches Beispiel ist:
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk {print $2}):0
Dadurch wird die IP-Adresse des Windows-Hosts ermittelt, an dem der X-Server läuft. Danach kann z.B. gedit ebenfalls gestartet werden und es öffnet sich das Fenster auf dem Windows-Desktop.
Probleme und Troubleshooting
Trotz der vereinfachten Einrichtung können dennoch Probleme auftreten. Beispielsweise kann die Firewall von Windows Verbindungen zum X-Server blockieren, was dazu führt, dass GUI-Anwendungen nicht starten oder schwarz bleiben.
Außerdem empfiehlt es sich, stets die neuesten Updates von Windows und WSL zu installieren, da Microsoft stetig Verbesserungen hinsichtlich WSLg und der Gesamtintegration liefert.
Zusammenfassung
Die modernste und einfachste Methode, um Linux-GUI-Programme unter WSL zu starten, ist die Verwendung von WSL 2 mit WSLg. Diese Kombination ermöglicht die native Darstellung von GUI-Anwendungen ohne zusätzliche Konfiguration, indem Sie einfach die gewünschte Anwendung im WSL-Terminal starten.
Für ältere Systeme oder alternative Szenarien sind externe X-Server und manuelles Setzen der DISPLAY-Variable notwendig.