
Ich versuche, eine Verknüpfung für Firefox von WSL2 zu Windows 10 Home zu erstellen, aber das ist mir nicht gelungen. Ich verwende VcXsrv, das ich so eingestellt habe, dass es automatisch startet. Ich kann WSLg nicht verwenden, da ich nicht Windows 11 verwende.
Können Sie Apps wie Firefox in einer Windows-Verknüpfung verwenden, ohne sie DISPLAY
manuell exportieren zu müssen?
Antwort1
Es klingt nach Ihnen:
Ihre
DISPLAY
Variable ist bereits richtig eingerichtet und Sie können Firefox über die Befehlszeile in VcXsrv ausführen. Das ist ein guter Anfang.NichtHabe die
DISPLAY
Variable noch nicht exportiert~/.bashrc
, da Sie erwähnen, dass sie manuell exportiert werden muss.
Wenn das der Fall ist, müssen Sie zuerst die Variable in Ihrer Startkonfiguration exportieren. Wenn Sie diesen Teil bereits erledigt haben, fahren Sie mit dem nächsten Schritt fort."Verknüpfung zur Befehlszeile"Abschnitt weiter unten.
DISPLAY im Start exportieren
Fügen Sie Folgendes zu Ihrem hinzu ~/.bashrc
:
export DISPLAY="$(hostname).local:0"
Das verwendet mDNS, um die richtige IP-Adresse basierend auf meinemAntwort hier zum ThemaWenn Sie eine andere Einstellung haben DISPLAY
, die für Sie funktioniert, können Sie diese stattdessen verwenden, aber ich finde den hostname
basierenden Ansatz in den meisten Fällen am einfachsten.
Dann:
source ~/.bashrc
um die Konfiguration erneut zu lesen. Sie können die Shell zur Sicherheit auch neu starten. Stellen Sie dann sicher, dass Firefox ausgeführt wird.
Tastenkombination für die Befehlszeile
Das oben genannte funktioniert, wenn Sie sich in eineminteraktivShell, da die rc-Datei für interaktive Shells verwendet wird. Wenn Sie Firefox jedoch über eine Verknüpfung starten, müssen Sie den wsl.exe
Befehl verwenden, und standardmäßigist nichteine interaktive (oder Login-)Shell.
Versuchen Sie aus dem Gedächtnis, Ihre Windows-Verknüpfung folgendermaßen einzurichten:
wsl -e bash -lic "firefox"
Dadurch wird Bash ausgeführt:
- Als Login-Shell (
-l
), die Ihre~/.bash_profile
- Als interaktive Shell (
-i
), die Ihre~/.bashrc
- Und führen Sie den Befehl (
-c
) Firefox aus
Antwort2
Ich empfehle die Verwendung der folgenden Syntax:
wsl -e bash -lic "nohup firefox &"
"&" bedeutet in Linux "im Hintergrund starten". Ohne "&" haben wir ein aktives Fenster mit dem übergeordneten Prozess (Bash), mit "&", aber ohne "nohup", wird unser Prozess zusammen mit dem übergeordneten Prozess beendet (Bash-Fenster).
Mit „nohup“ und „&“ sieht alles hübsch aus – nur Firefox-Prozess.
Antwort3
Weiter:
- @Sergej Sokolow'SAntwort:
wsl -e bash -lic "nohup firefox &"
- @NichtTheDr01ds'S
Antwort:
wsl -e bash -lic "firefox"
Windows-Verknüpfung (Zielbefehl)
Dies funktioniert für mich unter meinen speziellen Umständen, d. h. Windows 10 mit WSL2 Debian, am besten und zuverlässigsten.
C:\Windows\System32\wsl.exe -d Debian -- bash -lic "nohup firefox &"
Hinweis (bei Migration von GWSL)
Wenn Sie vor dem Upgrade auf WSL2 GWSL zum Starten von GUI-Apps verwendet haben, überprüfen Sie Ihre ~/.bashrc
& ~/.profile
- (oder ~/.bash_profile
)-Dateien noch einmal, um alle von GWSL dort platzierten Konfigurationen zu entfernen, die die DISPLAY
Umgebungsvariable versehentlich durch eine ungültige Variable überschreiben könnten, die Ihre Nameserver-IP-Adresse (von /etc/resolve.conf
) enthält.
In meinem Fall waren die alten GWSL-Konfigurationen DISPLAY
auf 1.1.1.1:0.0
anstelle von eingestellt :0
, was zu Problemen führte.
Antwort4
Beim Versuch, eine Xilinx IDE mit der erforderlichen Umgebung und meinem Arbeitsverzeichnis in WSL zum Laufen zu bringen, landete ich bei Folgendem:
wsl.exe -e bash -lic ". /opt/Xilinx/14.7/ISE_DS/settings64.sh && cd /mnt/c/Users/%username%/Documents/ISE_Projects && nohup ise &"
Durch die Verkettung von Befehlen mit && konnte ich vor dem Starten des Programms die gewünschte Umgebung und das gewünschte Arbeitsverzeichnis erzwingen.
Die Ersetzung von %username% scheint zu funktionieren.