Vine Linux を TightVNC経由で使ってみる(Sep. 2001)


はじめに(事の経緯とか)

仕事で使っているメインのデスクトップ環境は、やはりというか、しかたなくというか、MS-Windowsなわけですが、オフィスではサーバ環境を中心としたLinuxマシンも常時稼働していたりします。しかし、(物理的に)狭い(現実の)デスクトップにモニタやキーボードを並べるわけにもいかず、普段はTeraTermからリモートログインして使っていました。サーバだから、別にそれでも構わないんですが、それじゃぁ何かもったいないし、X-Windowベースのフリーなアプリケーションも同時に使いたいな、という欲求に駆られ、VNCを使ってみることにしました。

VNCは遅い?

VNCは、3年ぐらい前に使ったことがあるのですが、その時の印象としては、まぁ、えらく遅くてつかえんなぁ、、という感じでしばらく記憶の彼方に遠ざかっていました。 しかし、最近ではCPUも早くなったし、以前ほどでもなかろうと、期待を込めてインストールしてみたものの、8ビットカラーならともかく、16ビットでgnomeなんか動かそうものなら、カクカク、タラタラと動くその様に、改めて失望感を覚えたのでありました。 そんな折、(どこか忘れたが)海外のLinux系ニュースサイトで、偶然にもTightVNCなるものに出会いました。駄目元で試してみたら、これがなかなかいけるみたいなので、今回、きちんと導入してまとめておくことにした次第であります。

TightVNCとは

Webサイトの説明によれば、TightVNCとは、低速のネットワーク経由での利用に最適化されたVNCの改良版です。効果的な圧縮アルゴリズムの採用、マウスカーソル動作のローカル処理化、圧縮レベルの選択機能などを実現しており、オリジナルのVNCにさまざまな改良や最適化が施されています。
従来のVNCと比較して、どの程度改善されているのかは、こちらのページにありますが、なるほど、すごい圧縮率です。 同サイトにrpmやtar-ball、zipなどで固められたパッケージがあるので、それをインストールするだけ。私の場合は、rpm形式のLinux用サーバとzip形式のWindows用クライアント(ビューワ)をそれぞれインストールしました。

TightVNCの環境設定

サーバ側の設定

サーバ側の設定は、デフォルトのままでも一応は使えるのですが、 といったシンプルな画面が現れます。普段使っている、Vine標準のGnomeなデスクトップや日本語環境に慣れた人は納得がいかないはず? そこで、次のような設定を行います。
・/etc/X11/xinit/xinitrcを ~/.vnc/xstartup としてコピー。
$ cd ~/.vnc/ ; cp -a xstartup xstartup.org $ cp -a /etc/X11/xinit/xinitrc ~/.vnc/xstartup
これで、普段使い慣れたデスクトップ環境が立ち上がるようになります。しかし、フォントが変。。これは、VNC自体ではTrueTypeフォントを扱えないため、Gnomeのデスクトップの日本語文字などがバケバケになってしまうから。そこで、VNCでもxfs経由でTrueTypeを使うよう、次のような設定を行います。
・root権限で、/usr/bin/vncserver (vnc起動用のperlスクリプト)を編集。
  140行目付近に↓を追加
    $cmd .= " -fp tcp/localhost:7100";
    $cmd .= " -co /usr/X11R6/lib/X11/rgb";
    $cmd .= " -deferglyphs 16";

・やっぱ、16ビットカラーでしょ。
  36行目付近にある↓を変更
    $geometry = "1024x768";
    $depth = 16;

・META キーをALTキーに割り当てたい。
  140行目あたりに↓を追加
    $cmd .= " -compatiblekbd";
さぁ、これで、サーバ側の準備ができたので、上記で設定したポート番号でxfsを起動し、続けて、vncserverを起動します。xfsはroot権限で起動しますが、vncサーバはログオンするuidで起動します。
    $ su -c "xfs -droppriv -daemon -port 7100"
    $ vncserver
xfsを毎回起動するのが面倒なら、/etc/rc.d/init.d/xfs に追加すればいいかな。
あと、これは、私のノートPC固有の問題なのかもしれないけど、VNC経由で数字の5が入力できない、という困った問題が発生。これは、なぜか数字の5のキーがキーコード=22(日本語106キーではBackSpace)になっているため、/etc/X11/xinit/Xmodmap の中で、
  keycode 22 = BackSpace
  !keycode 49 = Kanji
  keycode 111 = Print
  keycode 113 = Alt_R
  keycode 120 = Katakana
  keycode 129 = Henkan
  keycode 131 = Muhenkan
  keycode 133 = backslash bar
とされていることから、5=BackSpace となってしまうため。そこで、1行目を
  !keycode 22 = BackSpace
とすることで、解決しました。他のマシン(106キーボード)でも問題ないみたいなので、これでよしとしよう。:-)

※注:その後、VineSeedにupdateしたら、いつの間にか日本語環境でのキーマップの設定を、/etc/X11/xinit/Xmodmap.jp から読み込むようになっていました。。

クライアント側の設定

Windows用の専用ビューワ(クライアントでは、圧縮アルゴリズムやレベルを選択できます。私は、Tightというアルゴリズムを選択しました。その他はとりあえずデフォルトのまま。接続先として、ホスト名:ディスプレイNo. としますが、私の場合、接続するホスト側で既に起動されているXサーバがディスプレイNo.= 0 を使っているので、VNCは1番を使うようになります。
では、クライアントを起動。

めでたく、WindowsからVine LinuxのGnomeが使えるようになりました(パチパチ)。

個人的にはフルスクリーンにする方が使いやすいと思いますが、撮影の都合上、ウィンドウ表示にしました。(笑)

おまけ

標準的なGNOMEでは、M-TAB でウィンドウの切替えをショートカットできるようになっていますが、VNC経由でこれをやると、Windows側のタスク(ウィンドウ)切替えが働いてしまい、Gnome上にMS-Windowsの窓がかぶさってしまいます。これはこれで便利なこともあるのですが、Gnome上のウィンドウ切替えをショートカットで実現できないのは不便なので、これを回避するため、GNOME(ウィンドウマネージャ)側でC-TABにウィンドウ切替えを割り当てることにしました。
具体的には、GNOME Control Center −> Sawmillウィンドウマネージャ −> ショートカット −> 挿入 で、C-TAB に Cycle windows を割り当てます。

Copyright (c) 2001-2004 Ryoichi "Rio" MURASHIMA
[戻る] [R!o Interactive top]