最近,XFreeがCygwinでかなり安定して動作するようになりましたが,残念な がら日本語に関連した以下のような問題があります.
ということで,これらを解決するため,幾つかのアプリケーションにいろいろ 修正を加えてコンパイルしました.これで スクリーンショットのような環境が使えるよう になります.
当然ですが,まず,Cygwinをインストールする必要があります. 真ゼロ円でできるXサーバ[Windows XP編]Cygwin/XFree86最新事情と日本語化 を参照してください.この解説では Cygwin を使う。 の早田さんによる日本語インストーラを使っています.
なお,注意しなければならない点として,gccをインストールした方がよいと いうことがあります.これはXのコマンドの幾つかがcppに依存するためです. 余計なトラブルを避けるため,XFree86のパッケージもとりあえず全部インス トールする方がよいでしょう.特に,後述のstartup.tgzに含まれるファイル はウインドウマネージャとしてfvwm2を使っています.
また,改めて確認はしていませんが,/usr/X11R6/lib/X11/app-defaultsの状 態がおかしくなっていることがあります.最新のcygwinの場合,次のようにし て修正してください.
$ cd /usr/X11R6/lib/X11/ $ rm app-defaults.lnk; $ mv app-defaults/* /etc/X11/app-defaults $ rmdir app-defaults $ ln -s /etc/X11/app-defaults .
2,3,4行目はそれぞれ
rm: cannot remove `app-defaults.lnk': No such file or directory mv: cannot stat `app-defaults/*': No such file or directory rmdir: `app-defaults': No such file or directory
などといわれるかもしれませんが,無視して構いません.
次にこのページのバイナリをインストールします.以下に置いてあるのは Cygwin-1.3.9以降 + XFree-4.2.0用のアーカイブです.これら(startup.tgzを 除く)を次のようにルートから展開します.
$ tar Cxzf / kterm.tgz $ tar Cxzf / canna.tgz $ tar Cxzf / kinput2.tgz $ tar Cxzf / tgif.tgz # tgifを使う場合 $ tar Cxzf / idraw.tgz # idrawを使う場合 $ tar Cxzf / netpbm.tgz # tgifでpng形式などの画像を取り込む場合 $ tar Cxzf / libX11.tgz
canna.tgzは/usr/local/canna以下,netpbm.tgzは/usr/local/netpbm以下に, それ以外のものは/etc/X11や/usr/X11R6以下に展開されます.
startup.tgzには以下のファイルが含まれています.これらのうち`_'で始まる ものは,通常,ユーザのホームディレクトリ($HOME)に配置します.ま た,_XresourcesでTrueTypeフォントを使う設定をしているので, /usr/X11R6/lib/X11/fonts/TTの設定をします.
$ tar xzf startup.tgz $ cp startup/_Xmodmap-106 ~/.Xmodmap # 日本語キーボードの場合 $ cp startup/_termcap ~/.termcap $ cp startup/_canna ~/.canna $ cp startup/_fvwm2rc ~/.fvwm2rc $ cp startup/_Xresources ~/.Xresources $ cp startup/_xinitrc ~/.xinitrc $ mkdir /usr/X11R6/lib/X11/fonts/TT $ cp startup/fonts.{dir,alias} /usr/X11R6/lib/X11/fonts/TT $ cd /usr/X11R6/lib/X11/fonts/TT $ ln -s `cygpath -u $WINDIR`/Fonts/{ms*.ttc,arial*.ttf,times*.ttf} .
Xを立ち上げるためのスクリプトです.次のような処理をします.
そして,ktermでexitするとcannaserverを終了します.他のプロセスはXと 同時に終了します.
適切に設定が行なわれていれば,後は/usr/X11R6/binにパスを通してstartxと するだけです.tgif経由でnetpbmを使う場合は, /usr/local/netpbm/bin/netpbmにもパスを通してください.なお,startxから 色々なメッセージが出力されるので,以下のように.bashrc/.tcshrcなどでエ イリアスを作っておくと便利です.
alias xin='(cd; startx -- -emulate3buttons 200 -rootless -clipboard > .startx.log 2>&1) &'
alias xin '(cd; startx -- -emulate3buttons 200 -rootless -clipboard >& .startx.log) &'
この設定で,ktermなどとWindows側(例えばメモ帳)の間で日本語テキストを含 むコピー&ペーストが可能です. *1 また,動作は重くなりますが,上記のrootlessのところをmultiwindowとし て,.xinitrcの`fvwm2 &'となっているところを`#fvwm2 &'とすると,各ウイ ンドウをWindowsの通常のウインドウとして操作できるようになります.この 辺りの改善はペパーミント の松崎さんの 貢献が大きいようです.
kinput2による日本語入力のON/OFFは`Ctrl-\'で行なうようになっています (ktermでは元のShift-spaceも使えます).違う設定にしたい場合 は,.canna,.Xresourcesなどの設定を変更してください.
以下は以前に公開されていたものです.XFree-4.2.0にも適用可能ですが,最 新の情報については,sけいしさんの cygwinでコンパイルを参照してくだ さい.
中丸 幸治
*1May 02 2003 追記: どうも今は-clipboardがうまく動かないようで
す.-clipboardを外して.xinitrc中の`#xwinclip &'となっているところを
`xwinclip &'とすると,ある程度動作します.