tigervnc-serverで解像度を変更する(CentOS 6.7、CentOS 7.1)
この時代にもLinux系のプログラムでインストーラーがGUIでしか立ち上がらない(インストーラーがXクライアントになっている)ものがある。そんなわけでたまにはLinuxというかCentOSでもGUIが必要になる。もちろんサーバーにはディスプレイをつなげてないというか今サーバー立てるなら普通VPSだろうからそもそもディスプレイポートがない。というわけでネットワーク越しに便利にXが使えるXvncというものがある。サーバー内でXサーバーを立ち上げ、それがVNCサーバーになっているというスグレモノだ。おうちからVPS(つまりインターネット)相手にXを飛ばすなんて事をしなくてもVNC Viewerというプログラムが一つあれば良くなるのだ。
CentOS 6.7にはtigervnc-server 1.1.0がCentOS 7.1にはtigervnc-server 1.2.80がコアリポジトリーにて提供されている。どちらも
# yum install tigervnc-server # vncpasswd # vncserver :1
というコマンドを打てばVNC経由でLinuxをGUIでぐいぐい操作する事ができるようになる。
さて、vncserverというコマンド(中身はperlスクリプトのようだ)のコマンドライン引数に-geometry XXXXxYYYYというのがあり、これを指定すると任意の画面サイズでVNCを実行する事ができる。CentOS 6.7付属の奴は少なくともそうなっている。CentOS 7.1ではそれと同じ事をしても何故か反応せず1920×1080くらいの大きさになってしまう。
調査の結果、XRANDRというX拡張が悪さをしている(?)と。で、CentOS 7.1標準のGnomeだとメニュー→システムツール→設定でディスプレイから画面の解像度を変更したら次回起動時もその解像度になる事が分かった。Xvncも進化してるなぁ。
もしCentOS 7.1でHDDを2GB消費するGnomeではなくtwmとか果てはウィンドウマネージャーも立てずに生Xでやるとか、GnomeのXRANDRツールを使えない場合はXRANDRを無効にするとgeometryがきくようになるようだ。
# vncserver :1 -geometry 1024x768 -extension RANDR
-geometryのマイナスはオプションだよという意味なのに-extensionのマイナスは拡張を無効にしますという宣言(拡張を有効にする宣言は+extension)なのがなんとも。