Vcxsrv を使用した StartXCFE4 が動作しない

Vcxsrv を使用した StartXCFE4 が動作しない
  • WSL バージョン: 1.0.3.0
  • Ubuntu バージョン: 22.04.1 LTS

Vcxsrv はまだ黒です。

export DISPLAY=:172.X.XXX.X:0.0ファイルに追加しました.bashrc

コマンドを実行するとsudo startxfce4、次のメッセージが表示されます。

(xfwm4:4818): xfwm4-WARNING **: 15:06:25.234: Could not find a screen to manage, exiting

(xfsettingsd:4826): libupower-glib-WARNING **: 15:06:25.308: Couldn’t connect to proxy: Could not connect: No such file or directory
xfsettingsd: Another clipboard manager is already running.

(xfsettingsd:4826): xfsettingsd-WARNING **: 15:06:25.656: Failed to get the _NET_NUMBER_OF_DESKTOPS property.

答え1

解決すべきいくつかの問題:

  • startxfce4まず、を使用して実行しようとしていますsudo。これは、(a) デスクトップを root として実行したくないこと、(b)sudoデフォルトでは環境変数がユーザーからセッションに渡されないsudoため、設定されていないことが原因で問題になりますDISPLAY

  • 第二に、通常のユーザーとして実行した場合でも、Xfce4はWAYLAND_DISPLAYWSLgが提供する変数を認識し、実行を拒否します。これは、WSL上のWaylandがWestonによって提供されており、独自のウィンドウマネージャーを提供しているためです(この答え詳細については)。

次のようにして、フルスクリーンの VcXsrv セッションで Xfce4 を実行できました。

  • 「タイトルバーのない 1 つのウィンドウ」、「クライアントを起動しない」、「アクセス制御を無効にする」で Xlaunch を実行します。

  • Ubuntuの場合:

    export DISPLAY=$(hostname).local:0
    export WAYLAND_DISPLAY=
    startxfce4
    

    export DISPLAY私がそこで使用しているフォームは関係なくWSL、WSL2 ネットワーク スイッチ、または Windows 自体の IP アドレス。ただし、組み込みの WSL2 リゾルバーを使用する必要があります。

  • これにはファイアウォールルールも必要になるでしょう。通常、Windows Defenderは接続を承認するか拒否するかを尋ねるダイアログボックスを表示します。初めて使用されるとき過去に接続したことがある場合は、このルールが作成されている可能性があります。ただし、ダイアログボックスを見逃した場合(ポップアップ表示されることがあります)後ろに他のウィンドウなど) では、「拒否」ルールが設定されている可能性があり、これを修正する必要があります。

関連情報