`
garydo
  • 浏览: 155855 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

配置cygwin/x以及自动设置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
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics