RealVNC セッションのデフォルトの解像度と色深度を設定する方法について Web で検索すると、vncserver
やvncserver -geometry 1024x768
などのコマンドライン パラメータを に渡す方法についての説明が常に出てきます。ただし、私のシステムは、RealVNC がインストールする/etc/init.d/vncserver-x11-serviced
スクリプトを使用して、起動時に RealVNC サーバーを起動するように設定されています (実行レベル 2 ~ 5、Debian を使用)。 コマンドは使用していませんvncserver
。特定のデフォルトの解像度と色深度を設定するにはどうすればよいでしょうか。使用できる設定ファイルはどこかにありますか。
答え1
注: この回答はRealVNCのサービスモード( vncserver-x11-serviced
)ではなく仮想モードに適用されることは承知していますが、仮想モードの方が一般的には便利だと思いますし、解像度を変更できるのは仮想モードだけです。動的にこれは、サービス モードで実行されている RealVNC の解像度を変更するのとほぼ同じテクニックです。
RealVNC (執筆時点ではバージョン 5.2.1) をインストールし、 を使用して無料ライセンスを適用しvnclicense -add ...
、VNC サーバーを「仮想モード」で実行した後 (サービス モードとユーザー モードもありますが、すでに複雑なのでここでは説明しません)、このウサギの穴がどれほど深いかがわかりました。 :-) これに関するドキュメントは包括的でもわかりやすくもなく、RealVNC のサイトにある KB 記事はやや時代遅れ(vncserver
コマンドではなく現在の推奨、vncserver-virtual
)、または約解像度を動的に変更するRandR とその間セッションでは、VNC サーバーの起動時に使用する解像度を選択できません。
まず、X ウィンドウ システムのコンテキストでは、「解像度」という単語の代わりに「ジオメトリ」という単語が使用される傾向があります。VNC サーバー (または X 自体?) によって提供されるデフォルトの解像度は 800x600 のようです。
これで、コマンドラインから手動で RealVNC サーバーを起動するときに (または、 などから起動時に自動的に起動するときにrc.local
)、X サーバーに直接パラメータを渡すことができます。解像度を設定するために渡すパラメータは ですgeometry
。つまり、これは 1280x1024 の解像度で仮想 RealVNC サーバー インスタンスを起動します。
> vncserver-virtual -geometry 1280x1024
このようなものをテストするときは通常、root として実行するため、最初に VNC でデスクトップにアクセスしたいユーザーに切り替えます。
> sudo -u [someuser] vncserver-virtual -geometry 1280x1024
geometry
もちろん、コマンドラインでパラメータを渡す必要があります。RealVNC は、さまざまな設定ファイルを通じて VNC サービスの設定もサポートしています。ただし、紛らわしいことに、「Xvnc」(UNIX システムで X と通信する基盤となる RealVNC サーバーで、geometry
設定パラメータを取る必要があります)の設定は、別の場所「通常の」RealVNC 設定ファイルから、/etc/vnc/config.custom
サーバー全体の設定または~/.vnc/config
ユーザー固有の設定のいずれかを選択します。これらは他の RealVNC 設定ファイルとは完全に分離されており、これを見つけるのはかなり困難でした。前述したように、これに関するドキュメントはひどいです。したがって、コマンドラインで解像度を指定しなくても済むように、ファイルを作成し/etc/vnc/config.custom
、次の内容を指定します。
-geometry 1280x1024
それから実行すると:
> sudo -u [someuser] vncserver-virtual
...その VNC サーバー インスタンスの解像度はデフォルトで 1280x1024 になります。
この設定ファイルはデーモンでも使用されると思いますvncserver-virtuald
また、それぞれのvncserver-virtual
インスタンスが生成されます (実際、デーモンのデフォルトの解像度を設定する唯一の方法である可能性があります) が、デーモンを使用するにはエンタープライズ ライセンスが必要であり、無料ライセンスのみを使用しているため、テストできませんでした。
ふう!
ところで、先ほどRandRについて触れました。これは、UNIXシステム上のRealVNCサーバーに接続する際に、異なる解像度/ジオメトリを取得する別の方法です。これは、RealVNCサーバーが「仮想モード」で実行されている場合にのみ機能します。また、VNCセッション中に解像度を動的に変更することもでき、よりよく文書化された上で述べたパラメータよりも優れています-geometry
。:-) この設定が設定されている場合(そしてそれ(Xvnc 用の個別のファイルではなく、RealVNC の「通常の」設定ファイル セットに含まれます... 想像してみてください)xrandr
VNC セッション内からコマンドを使用して、設定で指定された解像度の 1 つに解像度を動的に変更できるはずですRandR
。