Windows 10 でショートカットを作成して VcXsrv で WSL2 GUI アプリを起動する方法

Windows 10 でショートカットを作成して VcXsrv で WSL2 GUI アプリを起動する方法

WSL2 から Windows 10 Home に Firefox のショートカットを作成しようとしていますが、作成できませんでした。VcXsrv を使用しており、自動的に起動するように設定しています。Windows 11 を使用していないため、WSLg は使用できません。

Firefox などのアプリを手動でエクスポートせずに Windows ショートカットで使用できますかDISPLAY?

答え1

あなたはこう思われるでしょう:

  • すでにDISPLAY変数が適切に設定されており、VcXsrv のコマンドラインから Firefox を実行できます。これは素晴らしいスタートです。

  • しないでください手動でエクスポートする必要があると述べているため、DISPLAY変数は にエクスポートされています。~/.bashrc

その場合は、まず起動設定で変数をエクスポートする必要があります。この部分をすでに行っている場合は、「ショートカット コマンドライン」以下のセクションを参照してください。

起動時にDISPLAYをエクスポートする

以下の内容を に追加します~/.bashrc:

export DISPLAY="$(hostname).local:0"

これは、mDNSを使用して、私のこのトピックについてここで回答してください自分に適した別の設定がある場合は、代わりにそれを使用することもできますが、ほとんどの場合、 ベースのアプローチが最も簡単だDISPLAYと思います。hostname

それから:

source ~/.bashrc

設定を再度読み込みます。念のためシェルを再起動することもできます。その後、Firefox が動作することを確認します。

ショートカットコマンドライン

上記は、相互の作用rcファイルは対話型シェル用にソース化されているため、シェルは不要です。ただし、ショートカットからFirefoxを起動する場合は、コマンドを使用する必要があります。wsl.exeデフォルトでは、ない対話型(またはログイン)シェル。

記憶をたどって、Windows ショートカットを次のように設定してみてください。

wsl -e bash -lic "firefox"

これでBashが実行されます:

  • ログインシェル(-l)として、~/.bash_profile
  • 対話型シェル(-i)として、~/.bashrc
  • そして、コマンド(-c)firefoxを実行します

答え2

次の構文を使用することをお勧めします。

wsl -e bash -lic "nohup firefox &"

Linux の「&」は「バックグラウンドで開始」を意味します。「&」がない場合、親プロセス (bash) でアクティブなウィンドウが開きます。「&」があっても「nohup」がない場合、プロセスは親プロセスとともに終了します (bash ウィンドウ)。

「nohup」と「&」を使用すると、Firefox プロセスのみですべてがきれいに表示されます。

答え3

さらにへ:

Windows ショートカット (ターゲット コマンド)

これは、私の特定の状況、つまり WSL2 Debian を搭載した Windows 10 では、最もうまく機能し、最も信頼性が高い方法です。

C:\Windows\System32\wsl.exe -d Debian -- bash -lic "nohup firefox &"

注記 (GWSL から移行する場合)

WSL2 にアップグレードする前に GUI アプリの起動に GWSL を使用していた場合は、~/.bashrc& ~/.profile(または) ファイル全体を再確認し、GWSL によってそこに配置され、環境変数をネーム サーバーの IP アドレス ( から)を含む無効なものに~/.bash_profile誤って上書きしてしまう可能性のある構成を削除してください。DISPLAY/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% の置換が機能しているようです。

関連情報