以前,このページではCygwinで動作するXについて,日本語に関連した次のよ うな問題を取り上げていました。
これらのうち,キーボードの問題など,Cygwinのパッケージやその他のネット 上のバイナリで解決しているものもありますが,不十分なものもあります。ま た,最近のCygwinのバイナリの問題として,
などの問題もあります。
ということで,いくつかバイナリを作りました。これらを導入すると, スクリーンショット のような環境が使えるようになります。
当然ですが,まず,Cygwinをインストールする必要があります。 真ゼロ円でできるXサーバ[Windows XP編]Cygwin/XFree86最新事情と日本語化 のPage 1などを参照してください。
なお,パッケージを選ぶ際は,デフォルトの他にXを全て選び,さらに Devel/gccも選んでください。これはXのコマンドの幾つかがcppに依存するた めです。
また,画像変換のため,tgifを使う場合は,Graphics/netpbmを選んでください。 後述のidrawを使う場合は,Graphics/ImageMagickをここで選ぶか,非Cygwin版 のImageMagickをダウンロードしてインストールしてください。最新版は ImageMagickにあります。
次に追加するファイルをダウンロードします。適当なディレクトリ(ここでは workとします)を作り,次の場所にあるファイルをダウンロードしてください。 対象となるCygwin/Xは,現時点(Feb 27 2005)で最新のものを前提としていま す。
もしwgetをインストールしているなら,次のようにすればよいです。
$ mkdir work $ cd work $ wget -A tgz,sum,sh -r -l0 -nd http://www.eaflux.com/cygwin/x-jp-supplement/binaries/
まず,各バイナリを展開します。
$ 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を使う場合
canna.tgzは/usr/local/canna以下,imeproxy.tgzは/usr/sbinおよび/etc以下, それ以外のものは/etc/X11や/usr/X11R6以下に展開されます。 Xbin-corrected.tgzの内容はCygwinのXのパッケージが更新されると上書きされ ます。その場合は改めて展開しなおしてください。
なお,imeproxyを使わず,cannaのみを使う場合は,imeproxy.tgzは展開しな くてもかまいません。kinput2が依存するため,canna.tgzは常に展開してくだ さい。
注:上記の展開や過去のcygwinのパッケージの影響で, /usr/X11/lib/X11/app-defaultsの状態がおかしくなる場合があります。そこで, 展開をした後,次のようにしてください(問題がなければ何もしないスクリプト です)。
$ sh fixappdefaults.sh
次に設定を行います。次のようにstartup.tgzを展開し,install.shを実行し ます。古いファイルはバックアップされます。
$ tar xzf startup.tgz $ cd startup $ sh install.sh replace /home/maru/.Xresources (y/n)? y moving last /home/maru/.Xresources to /home/maru/.Xresources.20050227-090237 replace /home/maru/.canna (y/n)? y moving last /home/maru/.canna to /home/maru/.canna.20050227-090237 replace /home/maru/.fvwm2rc (y/n)? y moving last /home/maru/.fvwm2rc to /home/maru/.fvwm2rc.20050227-090237 replace /home/maru/.termcap (y/n)? y moving last /home/maru/.termcap to /home/maru/.termcap.20050227-090237 replace /home/maru/.xinitrc (y/n)? y moving last /home/maru/.xinitrc to /home/maru/.xinitrc.20050227-090237 replace /home/maru/.xserverrc (y/n)? y moving last /home/maru/.xserverrc to /home/maru/.xserverrc.20050227-090237 replace /home/maru/.ttfonts (y/n)? y moving last /home/maru/.ttfonts to /home/maru/.ttfonts.20050227-090237
もし,全てにyで答えるなら,
$ yes | sh install.sh
とすればよいです。
適切に設定が行なわれていれば,後は/usr/X11R6/binにパスを通してstartxと するだけです。/usr/X11R6/binの他,idrawで画像の読み込みを行なう場合は ImageMagickのconvert.exeやidentify.exeがある場所にパスを通してください。 なお,startxから色々なメッセージが出力されるので,以下のよう に.bashrc/.tcshrcなどでエイリアスを作っておくと便利です。
alias xin='(cd; startx > .startx.log 2>&1) &'
alias xin '(cd; startx >& .startx.log) &'
この設定で,ktermなどとWindows側の間で日本語テキストを含むコピー&ペー ストが可能です。また,動作は重くなりますが,.xserverrc内の-rootlessの ところを-multiwindowとして,.xinitrcの`fvwm2 &'となっているところを `#fvwm2 &'とすると,各ウインドウをWindowsの通常のウインドウとして操作 できるようになります。この辺りの改善は ペパーミント の松崎さんの貢献が大きいようです。
kinput2による日本語入力のON/OFFは`Ctrl-\'で行なうようになっています (ktermでは元のShift-spaceも使えます)。違う設定にしたい場合 は,.canna,.Xresourcesなどの設定を変更してください。
ところで,最近のXWin.exeは,OSの種類を見て自動的にキーボードの種類を切 り替えます。従って,以前のようにxmodmapによる明示的な設定を行なう必要 はありません。私は窓使いの憂鬱や 最近は猫まねきを愛用し ていますが,問題なく動作します。
ただし,Windows日本語版を使っていながら,USキーボードを使っていたりす ると,この判定が仇になります。その場合は,startup.tgzの_xinitrc内にあ るsetxkbmapのコメントアウト(#のこと)を外してください。
setxkbmap us
これで,キーボードがUSキーボードになります。
(ソース,パッチはもう少し整理してから公開します)
.xinitrcとしてホームディレクトリに置きます。Xを立ち上げるためのス クリプトです。次のような処理をします。
そして,ktermでexitすると,canna2imm32 (またはcannaserver)を終了し ます。他のプロセスはXと共に終了します。
Cygwinに関する情報は沢山ありますが,丁寧に勉強したい方には, Cygwin+Cygwin JE をお勧めします。このCygwin JE (Cygwin用の各種日本語用パッケージ)は setup.exeでインストールできる形で,著者の1人である佐藤さんによって提供 されています (ProjectHeavyMoonを参照, ただ,このページで提供しているファイルをインストールする場合は,重複す るパッケージを避けるように気をつけてください)。
最近は更新されていないようですが,早田さんの Using Cygwin. にも,各種の情報がよくまとまっています。
中丸 幸治