Cygwin Xサーバ

CygwinのXサーバをSolaris 9と共に使うためのインストールと設定メモ。

たまにしか使わないので、ずっとASTEC-Xの評価版を使っていたものの、使うたびにダウンロードしてくるのも悲しく、けどXサーバのみに4万円出す踏ん切りもつかず、Cygwinを使うことに。

使ってみた感想としては、「個人で使うなら、これで十分。商用Xサーバなど購入する必要なし」。フォントサーバの設定など、多少サーバ側でも設定変更が必要ではあるけれども、設定さえきちんとすればASTEC-Xの代替フォントよりずっときれいに表示できる(もちろん、ASTEC-Xでだってフォントサーバを使えばきれいに表示できるけど)。

何よりフリーなのが素敵。そして、くだらなくも重要な点は、ASTEC-Xと違ってアイコンがダサくない。アイコントレイに入りっぱなしのアイコンがダサいのって、結構気になりますからね。

インストール

  1. Cygwinトップページの右上にある「Install Cygwin now」をクリックしてsetup.exeをダウンロードし、実行。

  2. Select Packagesで、X11以下の次のものを選択(ディスクに余裕があるなら、X11以下すべてをインストールしてもたぶん特に害なし)。

    • WindowMaker
    • X-startup-scripts
    • lesstif
    • xorg-x11-* すべて(ただし、パッケージ説明に「EXPERIMENTAL」なんて怖い文字が入っているモノを除く)
    • xwinclip
    • xwinwm

日本語環境のインストール

  1. Cygwin + X + 日本語アプリケーション を参照し、適宜ファイルをインストール。

Solaris CDEの日本語化設定

特に設定しなくても日本語で表示されてたから、別にいらないかも。

  1. /etc/dt/configディレクトリを作成
  2. /usr/dt/config/Xconfigを/etc/dt/configにコピーし、languageの定義行を次のように追加。
    Dtlogin*language: ja
    

Solarisのフォントサーバ設定

SolarisのOpenWindowsやCDEのフォントは、CygwinのXサーバをインストールしただけだと表示できない。表示のためにはSolaris側でフォントサーバを起動する必要がある(らしい)。どうも、ASTEC-Xなど有償のPC用Xサーバでは、相手がSolarisだと自動的に代替フォントを使用したりしているみたい。だから、あんなダサダサな明朝体なのですね。ほんとはゴシック体で表示しているのに。

  1. Solaris 2.6以降では、フォントサーバはinetdから自動起動されるようにデフォルト設定されている。一度でも誰かがフォントサーバにアクセスするとfsというデーモンが起動され、再起動するまで設定変更しても有効にならない。設定変更前に、デーモンが起動されていないか確認し、起動されていたらkill。

    ps -ef | grep fs
    
  2. /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/
    

    フォントサーバにアクセスすればデーモンが自動起動されるので、ファイルを書き換えるだけで設定変更は完了。

  3. 追加設定したフォントがフォントサーバから読めるか確認。svrの部分はフォントサーバのホスト名に置き換える。エラーを出さずにフォント情報が表示されれば正常。

    showfont -server svr:7100 -fn gotb12
    

起動スクリプト作成

  1. 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マシンのホスト名に置き換える。

  2. 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コンパイル

拾ってくるセットに入っているのでいらなそうだけど、一応自力でコンパイルしてみたのでメモを。

  1. tgif公式サイトよりパッケージダウンロード
  2. 解凍
  3. Makefile作成。

    cd tgif-QPL-4.1.43
    xmkmf
    
  4. MakefileのDEFINESに「-D_NO_RAND48 -D_NO_DL_SUPPORT」を追加。

    DEFINES = -D_NO_RAND48 -D_NO_DL_SUPPORT ¥
    
  5. PROGRAMSの行をtgif.exeに書き換え

    PROGRAMS	= tgif.exe
    
  6. SYS_LIBRARIESの定義から-ldlをはずす。

    SYS_LIBRARIES = -lm
    
  7. コンパイル、インストール。

    make
    make install
    

関連リンク

タイトルとURLをコピーしました