CygwinのXサーバをSolaris 9と共に使うためのインストールと設定メモ。
たまにしか使わないので、ずっとASTEC-Xの評価版を使っていたものの、使うたびにダウンロードしてくるのも悲しく、けどXサーバのみに4万円出す踏ん切りもつかず、Cygwinを使うことに。
使ってみた感想としては、「個人で使うなら、これで十分。商用Xサーバなど購入する必要なし」。フォントサーバの設定など、多少サーバ側でも設定変更が必要ではあるけれども、設定さえきちんとすればASTEC-Xの代替フォントよりずっときれいに表示できる(もちろん、ASTEC-Xでだってフォントサーバを使えばきれいに表示できるけど)。
何よりフリーなのが素敵。そして、くだらなくも重要な点は、ASTEC-Xと違ってアイコンがダサくない。アイコントレイに入りっぱなしのアイコンがダサいのって、結構気になりますからね。
インストール
-
Cygwinトップページの右上にある「Install Cygwin now」をクリックしてsetup.exeをダウンロードし、実行。
- Select Packagesで、X11以下の次のものを選択(ディスクに余裕があるなら、X11以下すべてをインストールしてもたぶん特に害なし)。
- WindowMaker
- X-startup-scripts
- lesstif
- xorg-x11-* すべて(ただし、パッケージ説明に「EXPERIMENTAL」なんて怖い文字が入っているモノを除く)
- xwinclip
- xwinwm
日本語環境のインストール
- Cygwin + X + 日本語アプリケーション を参照し、適宜ファイルをインストール。
Solaris CDEの日本語化設定
特に設定しなくても日本語で表示されてたから、別にいらないかも。
- /etc/dt/configディレクトリを作成
- /usr/dt/config/Xconfigを/etc/dt/configにコピーし、languageの定義行を次のように追加。
Dtlogin*language: ja
Solarisのフォントサーバ設定
SolarisのOpenWindowsやCDEのフォントは、CygwinのXサーバをインストールしただけだと表示できない。表示のためにはSolaris側でフォントサーバを起動する必要がある(らしい)。どうも、ASTEC-Xなど有償のPC用Xサーバでは、相手がSolarisだと自動的に代替フォントを使用したりしているみたい。だから、あんなダサダサな明朝体なのですね。ほんとはゴシック体で表示しているのに。
-
Solaris 2.6以降では、フォントサーバはinetdから自動起動されるようにデフォルト設定されている。一度でも誰かがフォントサーバにアクセスするとfsというデーモンが起動され、再起動するまで設定変更しても有効にならない。設定変更前に、デーモンが起動されていないか確認し、起動されていたらkill。
ps -ef | grep fs
-
/usr/openwin/lib/X11/fontserver.cfg を編集し、catalogue定義を次のように書き換える(実際には改行なしで記述)。
catalogue = /usr/openwin/lib/X11/fonts/Type1/, /usr/openwin/lib/X11/fonts/Type1/sun/, /usr/openwin/lib/X11/fonts/F3bitmaps/, /usr/openwin/lib/X11/fonts/Speedo/, /usr/openwin/lib/X11/fonts/misc/, /usr/openwin/lib/X11/fonts/75dpi/, /usr/openwin/lib/X11/fonts/100dpi/, /usr/openwin/lib/X11/fonts/Xt+/, /usr/openwin/lib/locale/ja/X11/fonts/75dpi/, /usr/openwin/lib/locale/ja/X11/fonts/TT/, /usr/openwin/lib/locale/ja/X11/fonts/TTbitmap/, /usr/openwin/lib/locale/ja/X11/fonts/UTF8/
フォントサーバにアクセスすればデーモンが自動起動されるので、ファイルを書き換えるだけで設定変更は完了。
-
追加設定したフォントがフォントサーバから読めるか確認。svrの部分はフォントサーバのホスト名に置き換える。エラーを出さずにフォント情報が表示されれば正常。
showfont -server svr:7100 -fn gotb12
起動スクリプト作成
-
PCの$HOME/.bashrcに次のaliasを定義(実際には改行なしで記述)。
alias xsun="XWin :1 -screen 0 1152 864 -xkbmap jp106 -query xxx.xxx.xxx.xxx -from yyy.yyy.yyy.yyy -fp tcp/svr:7100 &"
xxx.xxx.xxx.xxx はSolarisマシンのIPアドレス、yyy.yyy.yyy.yyy はPCのIPアドレス、svr はSolarisマシンのホスト名に置き換える。
-
pathの通ったディレクトリにxlocalという名前で次の内容のスクリプトを作成し、実行権を与える。
#!/bin/bash export DISPLAY=127.0.0.1:0.0 PATH=/usr/X11R6/bin:$PATH rm -rf /tmp/.X11-unix XWin -multiwindow -clipboard -silent-dup-error & xterm -sl 1000 -sb -rightbar ¥ -ms red -fg yellow -bg black -e /usr/bin/bash -l &
この設定で、xsunを実行すればSolarisマシンへのCDEログイン画面が表示され、xlocalを実行すればPC上のデスクトップでXサーバが起動されるようになる。2つを同時に起動可。DISPLAYはCDEログイン用のXサーバがunix:1.0、デスクトップのXサーバがunix:0.0。
tgifコンパイル
拾ってくるセットに入っているのでいらなそうだけど、一応自力でコンパイルしてみたのでメモを。
- tgif公式サイトよりパッケージダウンロード
- 解凍
-
Makefile作成。
cd tgif-QPL-4.1.43 xmkmf
-
MakefileのDEFINESに「-D_NO_RAND48 -D_NO_DL_SUPPORT」を追加。
DEFINES = -D_NO_RAND48 -D_NO_DL_SUPPORT ¥
-
PROGRAMSの行をtgif.exeに書き換え
PROGRAMS = tgif.exe
-
SYS_LIBRARIESの定義から-ldlをはずす。
SYS_LIBRARIES = -lm
-
コンパイル、インストール。
make make install