テレワーク環境の向上とモチベーションアップのために、以下の解像度WQHD+(3840×1600)のウルトラワイドモニタを導入しました。
筆者のテレワーク環境としては、自宅ではノートPCを俗にいうクラムシェルモードにした状態でウルトラワイドモニターに接続して作業を行っています。
その自宅のPCからSSL-VPNで社内のリモートアクセス用ネットワークに接続後、自宅PC(Windows)→踏み台PC(Windows)→踏み台サーバ(CentOS)→社内PC(Windows)と順にリモートデスクトップ接続するような多段構成となっています。
この場合、踏み台サーバであるCentOSの解像度がデフォルトだと「1920×1200」が上限であるため、その先の社内PCにウルトラワイドモニタの解像度(3840×1600)で接続することができません。
そのため、踏み台サーバの解像度をCLIで変更する必要があります。
(その点、Windowsはリモートデスクトップ接続設定で全画面表示にしておけば勝手に接続元PCの解像度に合わせてくれるので便利です)
設定方法
踏み台サーバ(CentOS)にリモートデスクトップ接続を行い、ターミナル画面で現在の出力モードを確認します。 「*」 は現在の解像度、「+」は推奨される解像度を表しています。
$ xrandr
Screen 0: minimum 32 × 32, current 1920 × 1080, maximum 32769 × 32768
VNC-0 connected primary 1920 × 1080+0+0 0mm × 0mm
1920×1200 60.00
1920×1080 60.00*+
1600×1200 60.00
1680×1050 60.00
1400×1050 60.00
1360×768 60.00
1280×1024 60.00
1280×960 60.00
1280×800 60.00
1280×720 60.00
1280×768 60.00
800×600 60.00
640×480 60.00
使用したい解像度を指定します。
$ cvt 3840 1600
# 3840×1600 59.96 Hz (CVT) hsync: 99.42 kHz; pclk: 521.75 MHz
Modeline "3840×1600_60.00" 521.75 3840 4128 4544 5248 1600 1603 1613 1658 -hsync +vsync
解像度を出力モードに登録します。
「–newmode」 以降の値は、一つ前で「cvt」を実行した際に出力される「Modeline」以降の値を入力します
$ xrandr --newmode "3840×1600_60.00" 521.75 3840 4128 4544 5248 1600 1603 1613 1658 -hsync +vsync
現在の出力モードを確認すると、先ほど追加した3840×1600の解像度が末尾に追加されています。この出力モード名(3840×1600_60.00)と3行目の出力端子名(VNC-0部分)を確認しておきます。
$ xrandr
Screen 0: minimum 32 × 32, current 1920 × 1080, maximum 32769 × 32768
VNC-0 connected primary 1920 × 1080+0+0 0mm × 0mm
1920×1200 60.00
1920×1080 60.00*+
1600×1200 60.00
1680×1050 60.00
1400×1050 60.00
1360×768 60.00
1280×1024 60.00
1280×960 60.00
1280×800 60.00
1280×720 60.00
1280×768 60.00
800×600 60.00
640×480 60.00
3840×1600_60.00 (0x2cl) 521.750MHz -HSync +VSync
h: width 3840 start 4128 end 4544 total 5248 skew 0 clock 99.45KHz
v: heigth 1600 start 1603 end 1613 total 1658 clock 59.96Hz
出力モードと出力端子を紐づけます。
この時「–addmode」の後は一つ前で確認した出力端子名と出力モード名を入力します。
$ xrandr --addmode VNC-0 3840×1600_60.00
実際に出力モードの解像度で出力端子に出力を行います。
この時、画面サイズが指定したサイズに切り替わります。
$ xrandr --output VNC-0 --mode 3840×1600_60.00
再度、現在の出力モードを確認すると解像度が「3840×1600」に変更されていることが分かります。
解像度を変更するときは「xrandr –output…」で出力モード名と出力端子名を指定すれば変更できます。
$ xrandr
Screen 0: minimum 32 × 32, current 3840 × 1600, maximum 32769 × 32768
VNC-0 connected primary 3840 × 1600+0+0 0mm × 0mm
1920×1200 60.00
1920×1080 60.00
1600×1200 60.00
1680×1050 60.00
1400×1050 60.00
1360×768 60.00
1280×1024 60.00
1280×960 60.00
1280×800 60.00
1280×720 60.00
1280×768 60.00
800×600 60.00
640×480 60.00
3840×1600_60.00 59.93*+
この状態でxfreerdpを「-f」オプション(全画面表示)をつけて実行することで、社内PCにウルトラワイドモニタの解像度(3840×1600)で接続することができました。
$ xfreerdp -f /d: /u:ユーザ名 /v:接続先アドレス
なお、この解像度の設定は設定した機器(踏み台サーバ)が再起動されると消えてしまうため再設定する必要があります。
これでウルトラワイドモニタで広々と作業ができるようになりました。
ちなみに「xrandr」は 踏み台サーバ(CentOS)にSSH接続した状態だと、以下のように表示されてしまいました。「xrandr」はX Windows Systemのディスプレイ周りの設定を変更するコマンドのようなので、 X Windows System上でないと動かないということのような気がしました。
$ xrandr
Can't open display
また、解像度の切り替えを行った後、一度切断すると再度リモートデスクトップで接続できなくなる(パスワード入力後ウィンドウごと落とされログインできない)といった事象が発生しました。
その場合はSSH接続を行い「ps aux」等でプロセスを確認すると、変更前の解像度のプロセスが残ったままになっていたので該当プロセスをkillしてあげると接続できるようになりました。