
我正在嘗試為 Firefox 創建從 WSL2 到 Windows 10 Home 的快捷方式,但我無法做到這一點。我正在使用 VcXsrv,我已將其設定為自動啟動。我無法使用 WSLg,因為我使用的不是 Windows 11。
您是否可以在 Windows 快捷方式中使用 Firefox 等應用程式而無需手動匯出DISPLAY
?
答案1
聽起來像你:
已經
DISPLAY
正確設定了變量,並且可以從 VcXsrv 中的命令列運行 Firefox。這是一個很好的開始。不但已將
DISPLAY
變數匯出到 中~/.bashrc
,因為您提到必須手動匯出它。
如果是這種情況,那麼您首先需要在啟動配置中匯出該變數。如果您已經完成這部分,請跳至“快捷方式命令列”下面的部分。
在啟動時導出 DISPLAY
將以下內容新增至您的~/.bashrc
:
export DISPLAY="$(hostname).local:0"
它使用 mDNS 根據我的資訊取得正確的 IP 位址在此回答該主題。如果您有其他DISPLAY
適合您的設置,則可以使用它,但我發現hostname
在大多數情況下基於方法是最簡單的。
然後:
source ~/.bashrc
讓它重新讀取配置。您也可以重新啟動 shell 來確認。然後確保 Firefox 運行。
快捷方式命令列
當您處於互動的shell,因為 rc 檔案源自互動式 shell。但是,當您透過快捷方式啟動 Firefox 時,您需要使用該wsl.exe
命令,並且預設情況下不是互動式(或登入)shell。
根據記憶,嘗試將 Windows 快捷方式設定為:
wsl -e bash -lic "firefox"
這將運行 Bash:
- 作為登入 shell (
-l
),它將取得您的~/.bash_profile
- 作為一個互動式 shell (
-i
),它將為您提供~/.bashrc
- 並運行指令 (
-c
) firefox
答案2
我建議使用以下語法:
wsl -e bash -lic "nohup firefox &"
Linux 中的「&」表示「在背景啟動」。如果沒有“&”,我們的活動視窗將具有父進程(bash),如果有“&”但沒有“nohup”,我們的進程將與父進程一起結束(bash 視窗)。
使用“nohup”和“&”看起來都很漂亮——只有 Firefox 進程。
答案3
進一步:
- @塞雷耶·科洛夫的回答:
wsl -e bash -lic "nohup firefox &"
- @不是TheDr01ds的
回答:
wsl -e bash -lic "firefox"
Windows 捷徑(目標指令)
在我的特殊情況下,即 Windows 10 和 WSL2 Debian,這對我來說效果最好、最可靠。
C:\Windows\System32\wsl.exe -d Debian -- bash -lic "nohup firefox &"
注意(如果從 GWSL 遷移)
如果您在升級到 WSL2 之前曾經使用 GWSL 啟動 GUI 應用程序,請務必仔細檢查您的~/.bashrc
& ~/.profile
(或~/.bash_profile
)文件,以刪除 GWSL 放置在那裡的任何配置,這可能會無意中將DISPLAY
環境變數覆蓋為包含您的名稱伺服器的無效內容IP 位址(來自/etc/resolve.conf
)。
就我而言,舊版 GWSL 配置設定DISPLAY
為1.1.1.1:0.0
,而不是:0
導致事情中斷。
答案4
在嘗試讓 Xilinx IDE 在 WSL 中運行所需的環境和我的工作目錄時,我得到了以下結果:
wsl.exe -e bash -lic ". /opt/Xilinx/14.7/ISE_DS/settings64.sh && cd /mnt/c/Users/%username%/Documents/ISE_Projects && nohup ise &"
使用 && 連結命令允許我在啟動程式之前強制使用所需的環境和工作目錄。
%username% 替換似乎有效。