2013年12月27日

TigerVNC テスト 後編 TigerVNCサーバーの適切なディスプレイ設定をめぐる冒険

Ubuntu側のTigerVNCサーバーは、オプションでディスプレイの設定できるが、それはどれほど有効かわからなかった。
Windows7をUbuntuのRemminaで接続した際256色(8bit)が適切という意外な問題が生じた。一般的な色深度の設定であるハイカラーが16bit、トゥルーカラーが24bitである。コマンドラインで起動するのではないWindowsのTigerVNCのディスプレイの設定は直ちには扱いにくいので、UbuntuのTigerVNCサーバーをコマンドラインでオプションの設定を変更してみてテストしてみる。

(テスト1) 色深度
Remminaの色深度8bitという問題が、TigerVNCビューアーのオプションでどう変わるか?

(テスト2) 解像度
UbuntuマシーンとWindowsマシーンは標準の互いに全然違うディスプレイなので、解像度の問題は若干難しい。
デフォルト 1024x768
Ubuntuマシーン 1280x800(べつにUbuntuだからでなくUbuntuをインストールしたXPマシーンのスクリーンの仕様)
Windows7マシーン 1366x768(ムービー向けに横長になっている)
TigerVNCビューアーのscreenオプションには、ピクセル指定によるリサイズと、リモート(サーバー)にフィットさせるリサイズ、フルスクリーンの3つの選択肢があるが、これはサーバー側の解像度の設定に依存する。
サーバーのスクリーンをビューアーのスクリーンにフィットさせるというのは、どういうことなのかすら考える必要があった。

Ubuntu TigerVNCサーバーを8bitで起動。
$ vncserver :1 -depth 8

TigerVNC_Wn_to_Ubuntu_depth8.png

うわ、フラクタル模様かよ・・・
プラットホームが異なるがRemminaの8itが最適というのは一般的ではないことがわかった。しかし怖い・・・

16bitで起動
$ vncserver :1 -depth 16

TigerVNC_Win_to_Ubuntu_depth16.png

ハイカラーでデスクトップは十分らしい。写真の場合16bitでどうか?

TigerVNC_Win_to_Ubuntu_depth16_photo.png

16bitハイカラーでも十分(ぼくのなまくら目にとっては)。

24bitで起動接続しなおして、同じ写真を表示してみる。
$ vncserver :1 -depth 24

TigerVNC_Win_to_Ubuntu_depth24_photo.png

所詮圧縮画像だから同じか?

●クライアントのスクリーン・サイズの変更
 ビューアー側のオプション画面(F8)に
resize remote session on connect(ピクセルサイズ指定)
Resize remote sesshon to local windows
Full-screen mode
の選択ができる。
TigerVNC_Win_to_Ubuntu_connection-options.png
最初の2つに変化はない。フルスクリーンでも違いはない。単にWindowsのディスプレイが消え、下が切れていて見えなかったWindowsタスクバーが見えるようになるだけである。表示サイズは変わらない。


●サーバー側の解像度の設定を変更
おんぼろUbuntuマシーンの解像度 1280x800
Windows7マシーンの解像度 1366x768
標準的解像度 1024x768
とことなるから何を基準にすればいいのか現時点ではわからない。

Ubuntuマシーンに合わせるよう1366x768の解像度でサーバーを起動し、Windowsのビューアーで見る、上下かいずれかが若干切れ、左右に余白ができるはずだ。だがクライアントのピクセル指定のリサイズと、リモートスクリーンへのリサイズの設定ではことなることもある。
まず、クライアントをリモートスクリーンにリサイズの設定にして、サーバーをUbuntuサイズにして接続する
$ vncserver :1 -geometory 1280x800 -depth 24

TigerVNC_Win_to_Ubuntu_1280x800-1.png

これは予想したとおりに表示された。上下が切れ、左右に余白ができる。
クライアントをリモートに合わせるではなく、ピクセル指定でリサイズしても変わらないはずだ。
Pixelでリサイズするオプションで1280x800を指定

TigerVNC_Win_connection_options_1280x800.png

TigerVNC_Win_to_Ubuntu_1280x800px.png

当然ながら変化ない。

では、Windowsの解像度に合わせて、起動して同じ事をする。比率が異なるので結果は不明だ。
$ vncserver :1 -geometory 1366x768 -depth 24

TigerVNC_Win_to_Ubuntu_1366x768.png

なんと、リモートに合わせる設定だと、横にスクリーンがWindowsに合うように引き伸ばされ、下が(タスクバー分だけ)切れる結果となった。ピクセル指定でリサイズしても事態は変わらないので省略。

したがって、Ubuntuマシーンの縦横比率(1対1.6)を維持するよう、Windowsの縦(768)に合うよう横を1228.8pxにすれば良かろう。ただし小数は不可なので、切り捨てる。
$ vncserver :1 -geometory 1228x768 -depth 24

タスクバーの分を考慮してないから、下が切れるものの、解像度のオプションのない場合より横が長い。

TigerVNC_Win_to_Ubuntu_1288x768.png

マイクロソフトの公式フォーラムでは、ワークエリアの縦は740だとされているようだ。タスクバー(メニューバーと書いてきたが訂正)の値は環境依存だそうだ。なので縦740で換算すると、横は1184となる。これで、WindowsのワークエリアにフィットするリモートUbuntuデスクトップの表示ができるはずである。
$ vncserver :1 -geometory 1184x740 -depth 24

TigerVNC_Win_to_Ubuntu_1184x740.png

タスクバーによって下が切れず、縦のスクロールバーも表示されない状態が実現した。

だから?

なぜこのようなことをしたかというと、TigerVNCのフロントエンドはこの程度の調整を自動で適当にやって悪くはないはずだということだ。それを手動でやってみた、それだけのことだ。

ところでタスクバーの分を考慮してリサイズすることに多少は意味は感じられたが、サーバー側でスクリーンサイズのオプションを指定する必要はあるのだろうか。実は、TigerVNCデフォルトの「Resize remote session tothe local window」で自動的に解像度は自動的に(フルスクリーンにすればタスクバーの分が切れることはない)、おそらく色深度も適当に(おそらくハイカラーで)調整すると考えられる。
$ vncserver :1


この結果はピクセル解像度では、どれともあわない1040x768で、実は若干横が切れているが、ウィンドウをマウスポインターで広げると切れている部分を表示できる。その場合は1072x768となる。
1.6対1の横縦比の計算が間違っていたか?やり直す体力がないので、結論。

教訓1:TigerVNCサーバーにオプションは不要。
$ vncserver :1
 数字はポートの仕様状況で変える必要がある場合がある。
 ビューアーがサーバーの比率をクライアントにあわせてリサイズするよう設計されている。


教訓2:TigerVNCサーバーをTigerVNCビューアー以外の他のビューアーで接続する場合は、おそらくビューアーの仕様に従うだろうということ。

ポート、解像度、色深度についてテストが長くなった上、元も子もない結論になってし まった。
TigerVNCはあまりに不親切な感じがするが、全画面表示にして動画がスムースに再生された初めてのVNCだった。これは特筆に値する。サウンドはリモート側しか鳴らないのはVNCの性なんだからしょうがない。スピードに関しては最優秀賞である。

しつこいようだが、次は、もともとたぶん標準リポジトリに登録されている、CentOSでTigerVNCを使ってみたい。あるいはこのためにFedoraのインストールを余地もある。

その後、UKのWindow Switchを扱ってみたい。TigerVNCのフロントエンドが無愛想で、Ubuntuでは手動でメインメニューによって、メニューに登録しなくてはいけない状態だし、他のVNCサーバーと共存できないという問題があり、フロントエンドの問題を完全に無視しておすすめというわけに行かないが、ここで検証した限りでは、全くの初心者でなければかなりいいと思う。

【つづく】
posted by Mondayota at 09:53| リモートデスクトップ