当前位置:   article > 正文

配置cygwin/x以及自动设置DISPLAY

cygwin xhost export display
我们平时使用Hummingbird Exceed/X-manager其实只用到了它们的X server。而上述两个软件都不是免费软件。我们完全可以使用cygwin的X server来替代它们。
使用cygwin的x-server优点:中文自动支持、鼠标支持特别是用emacs浏览code时的滚轮支持等等。下面是使用cygwin的X server的配置过程。

1. 启动cygwin/x
有几种方法,参见:
http://x.cygwin.com/docs/ug/using.html#using-starting

startx 每次启动会弹出一个必须保留弹出的xterm,如果退出这个xterm,X-Server自动退出。而且你必须运行xhost + 来允许远程服务器弹出窗口到你的机器上来。
可以通过更改startxwin.sh脚本来启动x-server而无其他窗口弹出,并自动设置xhost:
1) 脚本位置
/usr/X11R6/bin/startxwin.sh
2) 屏蔽掉这几行:
# Startup an xterm, using bash as the shell.
# xterm -e /usr/bin/bash -l &
3) 加上这几行来允许可以显示到你桌面上的服务器:
# add XXX server
xhost + 135.123.123.123
xhost + 135.123.123.124
当然,加入 xhost + 则允许任何机器连接到该 X server
4) 每次启动cygwin后,直接运行startxwin.sh 即可,任务栏会显示Cygwin/X server图标
5) 使用完毕后,记得在图标上点右键退出X-server,要不cygwin会等待它的关闭而长时间退不出。

2. 为了将远程机器(server)上运行的GUI程序显示到本地,你必须在远程机器上设置DISPLAY, 我们在使用Exceed或者X-Manager时,startx会在启动Xterm时自动设置,其实我们也可以在.bashrc中加入自动设置 DISPLAY的脚本:
#-------------------------------------------------------------
# Set The DISPLAY automatically
#-------------------------------------------------------------
S_TTY=$(who am i | awk ' { print $2; } ')
S_IP=$(last -i $S_TTY -n1 | head -1 | awk ' { print $3; } ')
if [ -n "$S_IP" ]; then
DISPLAY="$S_IP":0.0
export DISPLAY
fi

3. 经过如上设置,每次启动Cygwin后,运行startxwin.sh 后,使用任意工具(如DOS的telnet命令,putty,securCRT等)telnet到服务器上后,直接运行任何图形界面的X-windows 程序即可,如emacs,tkcvs等。

4. Enjoy ~
参考文档:
1.http://x.cygwin.com/docs/ug/using.html#using-starting
2.http://www.x.org/wiki/FAQErrorMessages
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/316953
推荐阅读
  

闽ICP备14008679号