仕事の大部分をオフィスでVNCを使用しています。 SSH経由でログインして作業を行うために、Linuxサーバーのクラスターをセットアップしました。これにより、VNCを使用して、ワークフローを容易にするための永続的なデスクトップ環境を取得できます。デスクのデュアルモニターWindowsシステムから接続しています。必要に応じて、セッション用にTightVNCサーバーを設定できます。
私ができることは、2つの別々のモニターを持つセッションを作成するようにサーバーをセットアップすることです。それらを1つのビューポートにまとめることができますが、水平解像度を2倍にしたときのように、Fluxboxタスクバーや最大化されたウィンドウが画面全体に広がらないようにします。 Xには、2つの画面が表示されるようにします。しかし、TightVNCビューアーには、単一のワイドディスプレイとして表示されます。
私はオンラインで周りを見回して、これを行うことができる人々の言及を見ましたが、それを実現するために渡す実際のチュートリアルやスイッチのリストはありません。ルートがないため(そしてシステム全体のxorg.confファイルがないため)、xorg.confを使用して複数のアダプターを作成することはできません。サーバーはラック上に存在し、ヘッドレスであるため、VNCの仮想モニターとして再利用できる未使用の物理アダプターはありません。 vncserver
コマンドラインで-screen
を使用して複数の画面を指定し、xrandr
を使用して「VNC-1」を「VNC-0」の隣に配置しようとしましたが、 xrandr
に--screen 1
を使用してクエリを実行しても、それに接続されたディスプレイが表示されていても、「VNC-1」という名前の出力が見つからないという報告が続きます。この方法で設定されたセッションにVNCを実行しても、画面0のみが表示されます(出力 "VNC-0")。
何か足りないものがあるに違いないと思います。 xrandr
を使用した構成が重要と思われますが、VNCサーバーを呼び出すときに必要な手順を理解できていないようです。
また注意してください:
何が欠けていますか?それとも私がやりたいことは可能ですか?
編集:(2016年6月16日)強調するために、利用可能な物理ディスプレイ(使用または未使用)はありません。物理的なマシンがどのように見えるかはわかりませんが、ヘッドレスなので、物理的なディスプレイアダプターがありません。
X転送でSSH経由で接続した後、xrandr
を実行すると、次のようになります。
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 0 x 0, current 3840 x 1200, maximum 32768 x 32768
default connected 3840x1200+0+0 0mm x 0mm
3840x1200 0.0*
VNCセッションから:
Screen 0: minimum 32 x 32, current 1920 x 1200, maximum 32768 x 32768
VNC-0 connected 1920x1200+0+0 0mm x 0mm
1920x1200 60.0*
1920x1080 60.0
1600x1200 60.0
1680x1050 60.0
1400x1050 60.0
1360x768 60.0
1280x1024 60.0
1280x960 60.0
1280x800 60.0
1280x720 60.0
1024x768 60.0
800x600 60.0
640x480 60.0
名前のない出力にモードを追加しようとすると、次のように表示されます。
> xrandr --addmode VIRTUAL2 1920x1200_60.00
xrandr: cannot find output "VIRTUAL2"
出力には任意の名前を使用できます(いくつか試してみました)。このエラーだけが表示されます。
ここでの秘訣は、サーバー上にvirtualモニターを生成し、実際のモニターとの相対位置に配置して、[〜#〜] vnc [〜 #〜]使用したいモニター全体(リアル+仮想)のその部分を使用します。これはすべて これまでに役立つArch Linuxフォーラム に文書化されています。
仮想ミラーを作成するには:
$ gtf 1920 1080 60
# 1920x1080 @ 60.00 Hz (GTF) hsync: 67.08 kHz; pclk: 172.80 MHz
Modeline "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
必要なモードラインを見つけることができます。これは1920x1080のサイズの仮想モニターと60Hzのリフレッシュレートレートを想定しているので、必要に応じてこれを調整できます。
これで、次の方法で新しいモードラインを生成できます
xrandr --newmode "1920x1080_60.00" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 -HSync +Vsync
これで、次の方法でVIRTUAL1モニターを生成できます。
xrandr --addmode VIRTUAL1 1920x1080_60.00
これで、仮想モニターを既存のモニター(私の場合、HDMI1)の左側に配置できます。
xrandr --output VIRTUAL1 --mode 1920x1080_60.00 --left-of HDMI1
最後に、あなたはmayディスプレイの(たとえば)仮想部分のみを表示することを決定します
x11vnc -clip 1920x1080+0+0
x11vnc -clip xinerama1
(あなたのために働くどちらでも)。モニタースペース全体(仮想+リアル)を表示する場合は、上記を省略してください。
上で参照されている元の投稿は、vncセッションを開始するときに、リモートコンピューターで次の2つのパラメーターを渡すことを推奨しています。
vncviewer -encodings "tight copyrect"
私はこれが必要だとは思いませんでしたが、YMMVからそれをあなたに渡します。
P.S.:X11が2つの異なるモニターの存在をどのように処理するかについての説明は混乱を招きます。 X11が簡単に、そして何の介入も必要とせずに、既存のモニターから単一のワークスペース(screenと呼ばれる)を作成することです。あるモニターから別のモニターにドラッグすることができ、マウスはwholeモニタースペース(screen)の上に障壁なしで流れます。また、ウィンドウを最大化すると、ウィンドウが配置されているモニターのみが塗りつぶされ、画面は塗りつぶされません。これは私があなたが望んでいたと想定していることであり、上記は追加の作業なしで達成するものです。それ以外の場合は、作業が必要です(それが可能な場合)。
Fedora 26を使用して、VIRTUAL1がxrandrコマンドで表示されないという同じ問題に直面しました。
次に、HDMI-2のような空の出力を再利用するために他の指示に従いましたが、それは非常にうまくいきましたが、
その後、ダミーのドライバーで少し試行錯誤した結果、完全なxorg.confファイルは必要ありませんが、「インテル」ドライバー(私の場合は、独自のドライバー名を使用する必要があります)情報をファイルに追加するだけで十分であることがわかりました/etc/X11/xorg.conf.dディレクトリの下でVIRTUAL1およびVIRTUAL2出力をアクティブ化し、gnome-Shellにそれらを有効な出力として認識させます。 (また、出力名がわずかに変更されていることに気付きました。たとえば、「eDP-1」から「eDP1」に変わります)さらに、「TearLess」オプションをtrueに設定して、コンポジットマネージャーが再描画しない場合にドライバーを再描画できるようにしました。
~# vi /etc/X11/xorg.conf.d/01-dummy-monitor.conf
Section "Device"
Identifier "Configured Video Device"
Driver "intel" #CHANGE THIS
Option "TearLess" "1"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
EndSection
その後、 上記の応答 の指示が適切に機能し、新しい仮想モニターをGnome画面の設定で管理できます。異なる解像度のVNCクライアントデバイスがある場合は、説明に従ってxrandrを使用して追加し、Gnome画面の設定でそれらを割り当てることができます。