<戻る> <bottom>  <home>

WindowsにXwindowを入れよう

2006年4月13日製作(*access count*)
Xwindowとはウィンドウズと紛らわしい名前ですが、ウィンドウズがOSの一つであるのに対して、XwindowとはXという名のウィンドウ、すなわちコンピューターの入出力を司る部分です。歴史的にはこちらの方がはるかに古く、ユニックスの標準システムです。Xwindowの特徴は、入出力(キーボードと表示画面およびそれを動かすコンピュータ=Xサーバー)が、アプリケーションプログラムを動かすコンピュータ-(=Xクライアント)と機能的に切り離されていて、物理的に違った場所におけるということです。


もちろん同一のコンピューターであっても構いません。つまりXウィンドウを介して見ると、ネットワークが全く透明であると言うことです。典型的な使い方は、自宅からオフィスにあるコンピュータ-を動かすことです。ユニックス使用者にとっては当たり前のことですが、ウィンドウズユーザーの私にとっては、使えるまでにそれなりの苦労をしたので、簡単な使用法をメモに残す次第です。

 

目 次

1.はじめに

2.とりあえず動かす

2a. Cygwinのインストール

2b. Xwindowを立ち上げる

2c. リモートコンピューターにネットで繋ぐ

2d. リモートのXクライアントを動かす

3.設定についての豆知識

3a .bashrcの変更

3b. Xwindowの3種類の立ち上げ方

3c.PuTTYを使ってリモートホストにつなぐ

4.日本語アプリケーション

4a インストール

4b. 日本語端末を動かす

5. 参照サイト

 

1. はじめに

フリーのXwindowシステムとしては、Linux 標準装備のXFree86があります。本家XFree86にもしくはXorgに詳しい説明があります。ウィンドウズ上で動く Xwindow としては商用のASTEC-Xがあります。高機能ですが、10万円近くもするのではなかなか手が出ません。ウィンドウズ上で動くフリーなシステムが、Cygwin/X で私が試用したものです。基本的に英語ベースであり、日本語を使いたい場合は、機能を別途自分で追加せねばならずそれなりに不自由さを覚悟する必要があります。商用の XonWindows は、Cygwin/X に日本語機能を付加し、使いやすいようにまとめたパッケージです。なお、私が参考にしたサイトは、"真ゼロ円でできるXサーバ「ウィンドウズXP編」"であり、日本語化機能は、「Cygwin+X+日本語アプリケーション」に従って行いました。

Cygwinはウィンドウズ上に、リナックスの疑似環境を実現するソフトです。完全なリナックスではありませんが、リナックスで動くコマンドを多く備えており、普段はウィンドウズを使用するが、時々リナックスの機能を使いたい人(もしくはその逆)に、便利な機能を提供してくれます。Cygwin/X は、リナックス上で動くXwindow=XFree88の機能を、Cygwin上で実現するパッケージです。

2.とりあえず動かす

2a. Cygwinのインストール

Cygwin パッケージのインストール法の詳しい解説は、別途記述してあるのでそちらを参考にしていただくとして、ここでは簡単なインストールと使い方を説明します。基本的には cygwin パッケージを導入する際に、Xwindow オプションを入れるのみでOKです。

★1 Cygwinオフィシャルサイトから、setup.exe をダウンロードしてきてたとえば、

D:\tmp

インストールします。

★2 D:\tmp\setup.exe をダブルクリックして実行します。

後は指示に従い何回かクリックします。

☆インストールの際の選択質問には大抵”default”を選んでかまいません。パッケージを選ぶ画面で は、はじめは全てDefault となっているはずです(下図)。この画面が出ないときは、右上の”view”ボタンを右隣に「category」という文字が出るまでクリックします。デフォルトパッケージに何が含まれているかを知りたければ、各カテゴリーの前の+印をクリックすれば、選択されているファイルには ヴァージョン番号が、選択されてないファイルには Skip が表示されるので判ります。この段階で選ばれているファイルは、基本的にはカテゴリー「Base」の中に入っており、他のカテゴリーからは数個のファイルのみです。

● Xwindowを動かすには、X11の右のDefaultをクリックして、Installに変えねばなりません。クリックしてから変わるまでに、しばらく時間が掛かることがありますから辛抱強く待ちましょう。


● 必要追加ファイル

◆openssh:   OpenSSHのCygwin移植版です。

  関連必要パッケージ例えば openssl などは自動的に選択されます。

Xwindowを動かすだけなら、必要ありませんが、リモートXクライアントを動かす時は、ネットでつなげる必要があります。最近はセキュリティが厳しいので、SSHで暗号化して送ることは、ほぼ必須であると思われます。


★3 パッケージ選択画面で「Net」から「openssh」を選びます。

関連パッケージの OpenSSL などが自動的に選択されます。

「次へ」を押して、以下インストールを続行します。

★4 インストールが完了したら、環境変数の設定を行います。

☆ マイコンピュータアイコンを右クリックして、「プロパティ」ー「詳細設定」ー「環境変数」をクリックすると環境変数画面が現われます。システム環境変数窓で「Path」を選択し「編集」をクリックすればシステム編集の画面が現れますので、変数値の最後に 「;C:\cygwin\bin」 を付け加えてOKします (C:cygwin をインストール先に選んだ場合)。

☆ システム環境変数の「新規」をクリックして、変数名欄に「CYGWIN」、変数値欄に「binmode ntsec tty」 を打ち込みOKします。

★5 デスクトップのホッチキスみたいなアイコン をクリックすると、 cygwin の窓(テキスト入力画面)が開きます。ここで既にホームディレクトリー/home/”username” ( ~ 印)に入っています。ウインドウズ上ではD;\cygwin\home\”username”です(インストール先としてD:\cygwinを指定した場合)。

2b. Xwindowを立ち上げる。

Cygwinウィンドウに

startxwin.sh

と打ち込むか、ウィンドウズのエクスプローラーで startxwin.bat (D:\cygwin\usr\X11R6\bin に入っている)をクリックすると、Xwindow がローカルに立ち上がります。そしてX端末が現れます。図はCygwin窓とX端末の絵を示します。startxwin.batで起動した場合はCygwin窓は現れません。

2c. リモートコンピューターにネットで繋ぐ。

  リモートホストはユニックス/リナックスで動いていると想定します。リモートコンピューターのURLが、 remotehost.co.jp 、ポート番号12345でSSH通信を受け付けるものとし、ユーザー名をfooとします。上のX端末に

ssh -X remotehost.co.jp -p 12345 -l foo

と打ち込むと、パスワードを要求されますので、それを入れると、正常に働けば

プロンプトが出て再びコマンド待ちになります。これでX端末はリモートホストに乗りました。

2d. リモートのXクライアントを動かす。

例としてブラウザーのmozillaを立ち上げます。

mozilla &

と打ち込むと、mozilla がリモートホストで起動し、そのmozilla画面が(ローカルホストに)表示されます。

(リモートホストでmozilla が起動できるよう別途設定しておくことが必要です。) "&"はバックグラウンドで走らせるということで、コマンド打ち込んだ後ただちにプロンプトが現れ、次のコマンドを受け付けます。

これでローカル端末からリモートホストで mozilla を立ち上げて、その画面をローカルに表示できました。

3.設定についての豆知識

ユニックス系OSは融通性が高いだけに、逆に言うと好みの設定にすることが難しく、Cygwinを始めて使う場合も、いろいろ戸惑うものです。初期設定のままでは、動かないこともしばしばあり、そのときどうすればよいか途方にくれます。「Cygwinを使う」「Windowsユーザーに教えるLinuxの常識」などが参考になります。ただし、最近のCygwinは随分便利になり、これらのサイトに書かれていることはかなり不要になっているようです。

3a .bashrcの変更

.bashrcは、Cygwinをインストールして最初に起動したとき、ホームディレクトリに作られます。そして、プロセスとしてbashを起動するたびに読み込まれます。つまり、いったんログインした後でも、

$ bash

などとして新しくbashを起動するたびに読み込まれるというわけです。.bashrcの初期設定ではほとんど何もしませんし、そのままでも動きますが、好みの環境を構築するためには、多少変更した方がいいでしょう。次はよく使われる参考例です。ウィンドウに表示されるプロンプトの変更や。よく使うlsコマンド(ファイル名や特性を表示する)をカスタマイズし、ファイル種類により色分けを行います。

export SHELL=/bin/bash
export PS1="$HOSTNAME:\w$ "
export PATH=/usr/X11R6/bin:$PATH
export PS1="$HOSTNAME:\w$ "

if [ -n ${DISPLAY} ]; then
export DISPLAY=localhost:0.0
fi
if [ ! -n "${TERM}" ]; then
TERM=cygwin
fi

alias ls='ls -hF --color=tty'
alias la="ls -aF"
alias ll="ls -l"

なお、.bashrcを変更しただけでは反映されません。一度ログアウトして再度ログインし直す必要があります。

3b. Xwindowの3種類の立ち上げ方。

(i) Cygwin窓に、startxwin.sh を打ち込む方法。

(ii)  ウィンドウズのエクスプローラーから、c:\cygwin\usr\X11R6\bin\startxwin.bat またはこれのショートカットをダブルクリックする方法。

(iii) Cygwin窓に、startx を打ち込む方法

の3種類があります。初期設定ではどれを使っても差はありません。自分にあった設定をするときに違いを意識することになります。(1)は、あまり複雑な設定をしないでシンプルにXwindowを立ち上げる時に使います。(2)は同様の趣旨ですが、ウインドウズエクスプローラーから立ち上げられるバッチファイルです。Xwindowに複雑な設定をするとき(例えば後に述べる日本語設定)は、(3)を使います。.xinitrc という設定ファイルにいろいろなオプションを書き込むようになっています。

(i) startxwin.sh

Default(初期)設定での、startxwin.shファイルの中の実行命令を掲げます。実際にはいろいろなコメントが付いてある程度理解できるようになっていますが、ここでは省きました。なお、#で始まる行はコメント行です。

export DISPLAY=127.0.0.1*0.0
export PATH=/usr/X11R6/bin:"$PATH"
export XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
export XCMSDB=/usr/X11R6/lib/X11/Xcms.txt
export XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
export XNLSPATH=/usr/X11R6/lib/X11/locale
# Cleanup from last run.
rm -rf /tmp/.X11-unix
# Startup the programs
XWin -multiwindow -clipboard -silent-dup-error &
# Startup an xterm, using bash as the shell.
xterm -e /usr/bin/bash -l &
# Startup the twm window manager.
# twm &
exit

このリストを見ると、Xwindowの実行コマンドは基本的に二つです。

XWin -multiwindow -clipboard -silent-dup-error &

は Xwindow を立ち上げるコマンドです。オプションの意味については、startxwin.sh ファイル本体にコメントが書いてありますのでそれを参照してください。&はバックグラウンドで走らせることです。これだけでは何も表示されません。

xterm -e /usr/bin/bash -l &

は、コマンドを打ち込むための窓 xterminal (x端末)を表示し、bash という shell (打ち込んだコマンドを解釈してOSに伝える基本ソフト)を立ち上げます。bash はリナックスの標準 shell です。これを次の startxwin.bat と比較してみましょう。

(ii) startxwin.bat でウィンドウマネージャーを走らす。

startxwin.batファイルの実行コマンドを抜き出したものです。

@echo off
SET DISPLAY=127.0.0.1:0.0
SET CYGWIN_ROOT=\cygwin
SET RUN=%CYGWIN_ROOT%\bin\run -p /usr/X11R6/bin
SET PATH=.;%CYGWIN_ROOT%\bin;%CYGWIN_ROOT%\usr\X11R6\bin;%PATH%
SET XAPPLRESDIR=/usr/X11R6/lib/X11/app-defaults
SET XCMSDB=/usr/X11R6/lib/X11/Xcms.txt
SET XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
SET XNLSPATH=/usr/X11R6/lib/X11/locale
REM Cleanup after last run.
if not exist %CYGWIN_ROOT%\tmp\.X11-unix\X0 goto CLEANUP-FINISH
attrib -s %CYGWIN_ROOT%\tmp\.X11-unix\X0
del %CYGWIN_ROOT%\tmp\.X11-unix\X0
:CLEANUP-FINISH
if exist %CYGWIN_ROOT%\tmp\.X11-unix rmdir %CYGWIN_ROOT%\tmp\.X11-unix
if "%OS%" == "Windows_NT" goto OS_NT
echo startxwin.bat - Starting on Windows 95/98/Me
goto STARTUP
:OS_NT
echo startxwin.bat - Starting on Windows NT/2000/XP/2003
:STARTUP
REM Startup the programs
REM %RUN% XWin -multiwindow -clipboard -silent-dup-error
%RUN% XWin -rootless -clipboard -silent-dup-error
REM Startup an xterm, using bash as the shell.
REM %RUN% xterm -e /usr/bin/bash -l
%RUN% xterm -geometry 100x70+100+100 -e /usr/bin/bash -l
REM Dispplay a clock

%RUN% xclock -geometry 50x50-5+171
REM %RUN% twm
%RUN% wmaker

startxein.shでは exportとなっているところが、startxwin.bat ではSETになっている以外は、設定は基本的に同じです。青色のコマンドがDefault(初期)設定で、startxwin.shの二つの命令と同一であることが判ります。それにREMを入れてコメント行とし、Window Maker という画像表示のできるウィンドウマネージャーを使うために、緑色のコマンドで置き換えました。同じことはstartxwin.shでもできます。

★XWinのオプションが -multiwindow では、各種ある Window Manager (twm, wmaker, Gnome, KDE 等)が使えませんのではずします。代わりに -rootless を入れたのは、window を透明にして親システムのウインドウズのアイコンも見えるようにするためです。GnomeやKDEはウィンドウズ並の高機能の Window Manager ですが、ウィンドウズ上では使う意味があまりなく、しかも非常に重くなります。それほど遅くなくかつある程度の画像表示ができる妥協点が Window Maker というところでしょう。

★xterm の表示は前と同じですが、窓のサイズと位置を調節できる -geometry オプションを入れました。型式は

-geometry (窓サイズの幅)x(高さ)+(x座標)+(y座標)

です。座標位置は+がxは左端からyは上端からの距離を意味し、-はxが右端からyが下端からの距離を意味します。xclockで時計を表示したのはお遊びです。

★%RUN% wmaker がWindow Maker を起動するコマンドです。

以上の変更を加えた startxwin.bat で起動すると、次のような画面となります。

白い窓が startxwin.bat ファイルで表示するよう指定した x端末で、"Application","Applications Menu Definition"は右上にある緑のアイコンをクリックして表示させたメニューです。

(iii) startx あるいは、startx が参照する .xinitrc をいじるのは、初心者にはかなりなチャレンジです。とりあえずは、誰かの設定を持ち込んだ方がよいでしょう。後述する日本語設定の前後でファイルの中身を比較してみるのも良いでしょう。

3c.PuTTYを使ってリモートホストにつなぐ。

「とりあえず動かす」ではリモートホストにつなぐとき、コマンドライン

ssh -X remotehost.co.jp -p 12345 -l foo

を使いましたが、PuTTYが入れてあれば、PuTTYを起動するだけでリモートホストにつながります。PuTTYの一般的な使い方は、こちらを参照していただくとして、Xwindowを使う時の設定だけを述べます。PuTTYのSSH-トンネル設定画面で、X11フォワーディング欄にチェックを入れるだけです。

PuTTYの設定が完了していれば、Xwindowを立ち上げた後、PuTTTを起動すれば、PuTTYの窓がX端末とは別個に開きすでにリモートホストに入れるので、そこでアプリケーションを立ち上げるだけです。

4.日本語アプリケーション

英語のキーボード配列は101で、日本語対応の配列は106です。以前はこのマッピング設定から始めなければならなかったのですが、最近の Cygwin パッケージでは自動的に判別してくれますので問題はありません。しかし、アプリケーションが日本語を表示できないといった問題は残ります。Cygwin で日本語環境を実現する方法は、「Cygwin+X+日本語アプリケーション」に出ています。書いてあるとおりに実行すれば、実現できますのでここにわざわざ書くこともないのですが、Xwindowインストール法の記述を自己完結にするという趣旨で、一通りの操作をメモしておきます。

4a インストール

★1 Cygwinにwgetをインストールしていない場合は、セットアッププログラム(D:\tmp\setup)を

再び起動して、webカテゴリーのwgetをインストールします。

★2 適当なところにworkディレクトリーを作り、日本語環境設定用の追加バイナリーをhttp://www.eaflux.com/~maru/cygwin-xfree-jp-supplement/binaries/からダウンロードします。★1により wgetがインストールしてあれば次の操作が簡明で良いでしょう。

$mkdir work
$cd work
$wget -A tgz,sum,sh -r -l0 -nd http://www.eaflux.com/cygwin/x-jp-supplement/binaries/

★3 次にバイナリーを展開します。

$tar Cxzf / Xbin-corrected.tgz
$tar Cxzf / kterm.tgz
$tar Cxzf / canna.tgz
$tar Cxzf / imeproxy.tgz
$tar Cxzf / kinput2.tgz
$tar Cxzf / xfig.tgz # xfig を使う場合
$tar Cxzf / tgif.tgz # tgif を使う場合
$tar Cxzf / idraw.tgz # idraw を使う場合

★4 $sh fixappedefaults.sh を実行します。

★5 設定

$tar xzf startup.tgz $cd $startup
$sh install.sh

replace /home/tokki/.Xresources (y/n)? y

以下同文が .canna, .fvwm2rc, .termcap, .xinitrc, .xserverrc, .ttfonts について繰り返されて、インストールが終了する。 

4b. 日本語端末を動かす。

★1 Cygwin窓から、startx を実行すれば、xterm端末の代わりに、kterm端末が現れる。

★2 ctrl \ で[あ]が現れれば日本語入力モードとなる。再び ctrl \ で元に戻る。

5. 参照サイト

○ Xwindow開発元

 XFree86 フリーXwindowの元々の開発元

 Xorg   ライセンスポリシーの相違から分離したグループ。現在のメイン。

  

○ ウィンドウズ上で動くXサーバー

商用:   

 ASTEC-X  高価高機能和製 

 X-Win32   試用期間45日間、期間終了後も2時間以内であれば利用できる。和製。

 XonWindows  Cygwin/X に日本語機能を付加し、まとめたパッケージ。和製。

 Xmanager 2

 MI/X     

フリー

 Weird X Javaで書いてある。  

 Cygwin/X   

○ 参考サイト

  X server on Windows   

 

○Cygwin/X の解説

★初心者向け

 真ゼロ円でできるXサーバ「ウィンドウズXP編 

 同上Windows2000編 インストール編 設定運用編 

 Cygwinを使う    

 CygwinでX11を使って見よう。 

 Remote X Apps mini-HOWTO (日本語)  

 Cygwin/XFree86   

 X Window on Win32   

 Windowsユーザーに教えるLinuxの常識   

      

★日本語環境 

 Cygwin+X+日本語アプリケーション」 

 Cygwin/X-Windowにおける日本語環境の設定   

     

★本格派

 本家 Cygwin/X User's Guide    

 X Window User HOWTO (Ray Brigleb) (日本語訳)  

 The X Window User HOWTO (Hal Burgiss )  

 Remote X Apps mini-HOWTO (日本語訳) 

 XFree86 情報源

 IT用語辞典XFree86

○ Cygwin情報

  Cygwin情報源  

  Cygwin何でも掲示板     

  プロジェクトCygwin JE Cygwin日本語化フォーラム

○ VNC: ウィンドウズからGUIでリモート操作するソフト

自宅コンピューターを出先から操作しよう  ここにはVNCに関するリンクも載っています。

Windows でLinuxをリモート操作 前編 後編 

  VNCの使い方・その1 その2(SSH経由の方法)    

  ちょっと風変わりなSSH経由VNC     

   <戻る>  <top>  <home>