适用于Linux的Cygwin / X和Windows子系统


12

我在Windows 10设备上安装了有效的Cygwin(如果需要的话,请安装Surface 3),包括可运行的Xorg窗口环境。我也刚刚开始尝试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可以正常工作,而且自上次调试端口以来,Xservers显然已停止侦听端口6000。

我尝试运行cygwin $ xhost +localhost,只是发现xhost那里目前尚未安装。这可能是尝试接下来的事情,或者可能是白费力气--- xhost(或者至少,一个裸体xhost +主要劝阻我最后一次调试X服务器。

是否有一些基本的缺陷阻止WSL使用Cygwin X服务器?如果没有,我应该如何进行?


1
由于您使用的是高DPI设备(Surface 3),因此这一额外的技巧可能对您有用。您可以通过更改CygwinX认为屏幕DPI的内容来增加字体大小,窗口大小等。编辑默认值/etc/X11/Xresources并将其更改为Xft.dpi96。默认显示为214 DPI,因此通过CygwinX,文本看起来必须很小。无论如何,您都可以调整DPI值以根据自己的喜好更改缩放比例。(只需在更改之间重新启动CygwinX。)
克里斯(Chris

Answers:


12

您需要告诉Cygwin / X侦听TCP,默认情况下它不会侦听TCP。您可以通过将选项传递 -listen tcp给XLaunch来实现。当您这样做时,它确实可以正常工作。我确实比Cyming更喜欢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支持,您应该~/.Xauthority从Cygwin的主目录复制到WSL的主目录。

或者,如果您想禁用它xauth,则可以编辑Cygwin /usr/bin/startxwin,将顶部附近的相应行更改为enable_xauth=0


1

您必须使用来启动X服务器startx。如果没有安装X Windows,请运行Cygwin setup.exe并选择所有X Windows系统和一个窗口管理器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.