機能しているXorgウィンドウ環境を含む、機能しているCygwinが私のWindows 10デバイス(Surface 3、重要な場合)にインストールされています。 Linux用のWindowsサブシステムについても実験を始めたばかりです。 WSLからGUIアプリケーションを実行するためのアドバイスは、別のXサーバーをインストールすることです。通常はXmingが推奨されますが、Cygwinが機能しないはずの提案は見ていません。
ただし、単純な方法は失敗します。
WSL $ export DISPLAY=:0
WSL $ emacs &
Display :0 unavailable, simulating -nw
ネットワーキングの問題かもしれないと思った
WSL $ telnet localhost 6000
Trying 127.0.0.1...
telnet: Unable to connect to remote Host: Connection refused
WSL $ /sbin/ifconfig
Warning: cannot open /proc/net/dev (No such file or directory). Limited output.
WSL $ # there was no output at all, actually
...しかし、リモートマシンへのsshは正常に機能し、Xserverは前回デバッグしたときから、ポート6000でのリッスンを停止しているようです。
実行してみましたcygwin $ xhost +localhost
、xhost
が現在そこにインストールされていないことを発見するためだけです。これは次に試すことになるかもしれませんし、野生のガチョウの追跡かもしれません--- xhost
(または少なくとも裸のxhost +
)was前回Xサーバーをデバッグしたときはほとんどお勧めできませんでした。
WSLがCygwin Xサーバーを使用できないようにする根本的な欠陥はありますか?そうでない場合、どうすればよいですか?
Cygwin/XにTCPをリッスンするように指示する必要があります。デフォルトではTCPをリッスンしません。これを行うには、オプション-listen tcp
をXLaunchに渡します。これを行うと、それは本当にうまくいきます。私は実際にはXmingよりCygwin/Xを好みます。詳細は マニュアル をご覧ください。
Cygwin/Xを起動するために使用しているショートカットを見つけます。 (ユーザーごとのスタートアップショートカットはC:\Users\<you>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
にありますが、システム全体のスタートアップショートカットはC:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
にあります。このリンクの[プロパティ]を開き、ターゲットを
C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin"
に
C:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; exec /usr/bin/startxwin -- -listen tcp"
xauth
をサポートするには、CygwinのホームディレクトリからWSLのホームディレクトリに~/.Xauthority
をコピーする必要があります。
または、xauth
を無効にする場合は、Cygwinの/usr/bin/startxwin
を編集して、上部近くの適切な行をenable_xauth=0
に変更します。
Xサーバーはstartx
で起動する必要があります。 X Windowsをインストールしていない場合は、Cygwin setup.exe
をクリックし、すべてのX Windowsシステムとウィンドウマネージャーを選択します。