読者です 読者をやめる 読者になる 読者になる

計算物理屋の研究備忘録

Linux, Cygwin, Mac, zsh, emacs等の使い方、設定などのメモ

Cygwinで X Windows を使う

Cygwin

CygwinにはCygwin/XというX Window Systemがある。インストールはsetup-x86.exe(32bit)かsetup-x86_64.exe(64bit)から行う。X 11カテゴリのxorg_serverをインストール。他に必要なものもあったかもしればいが忘れた。わからなければX 11のカテゴリを全部インストールしてもいい。

インストールするとWindowsのアプリ、7以前だとすべてのプログラムとかにXwin Serverというプログラムが出現するはず。

これをクリックして使おうとすると、デフォルトではxtermという汚いウィンドウが出てくる。これを使わずにターミナルにはMintty(デフォルトのCygwinのターミナル)を使い、Xサーバーだけ使う方法をメモしておく

環境変数DISPLAYの設定

自分の使用しているシェルの設定ファイルに1行下記のように追加しておく
~/.zshrc

export DISPLAY=:0.0

Xサーバーの起動

以前のCygwin/Xはホームに.startxwinrcという空のファイルを置いておけば、xtermを起動せずにサーバーだけ裏で起動することができた。最近はCygwin/Xの挙動が変わって、空の.startxwinrcを置いておくとサーバーが一瞬起動してすぐ終了するようになった。.startxwinrcを実行して(つまり空なのでなにもせずに)、すべて終わると終了するようになったようだ。

ここにいろいろ同じ問題に出くわした人の書き込みがあった

X does not start after cygwin upgrade - Stack Overflow

xtermを起動せずにXサーバーだけを起動するには、ターミナルから以下のコマンドでOK

$ run xwin -multiwindow -noclipboard

このrunコマンドはコンソールウィンドウを隠してプログラムを実行するCygwinのコマンド。新しいxtermの汚いウィンドウが出てくると困るのでrunコマンドを使う。裏でX serverが起動してくれる。

毎回このコマンドを打つのは面倒なのでエイリアスしておく

alias runx='run xwin -multiwindow -noclipboard'

runxでXサーバーが裏で起動してくれる。タスクトレイにCygwin/Xのアイコンが現れていれば成功。setupからxclockなどをインストールして実行して試して見るといい

ssh関係

sshの接続先でX Windowを使いたい場合は、接続するときに

$ ssh -X aaa.bbb.ccc

のように-Xもしくは-Yオプションをつける。ちなみにこのオプションを使って接続した後にローカルのCygwin/Xを起動してもちゃんと動いてくれるので順番はどっちでもいい。

デフォルトの設定では何分かするとXの接続が切れる設定らしい。これを回避するためには~/.ssh/config

ForwardX11Timeout   596h

と書いておく。596時間が最大値らしい