Ubuntuで外部ディスプレイを活用する方法 (デュアルディスプレイとか回転表示とか)

モバイルノートPCは非常に持ち運びに便利ですが、液晶ディスプレイの解像度が小さいケースが多く、宅内で作業する時なんかは大きいディスプレイを使いたくなるかと思います。

で、マルチモニタというか、外部ディスプレイ出力をあれこれするとき、最近は"/etc/X11/xorg.conf"をモリモリといじらなくても良いんですね。


最近、"XRandR"を使えば、Xの再起動もいらずに簡単に様々なディスプレイの設定が出来ることがわかりました。
ここに、そのメモを残しておくことにします。
尚、試した環境は、Ubuntu 8.04 (Hardy Helon) on ThinkPad X61です。

とはいっても、少しだけ"xorg.conf"を設定

デュアルヘッドを有効にするべく"/etc/X11/xorg.conf"の"Screen"セクションに仮想ディスプレイサイズを入れておきます。このサイズは2画面の合計サイズを超えていたらOK。

Section "Screen"
        Identifier      "Default Screen"
        Monitor         "Configured Monitor"
        Device          "Configured Video Device"
        Subsection "Display"
                Virtual 3000 3000
        EndSubsection
EndSection

↑のような感じね。一部抜粋。
設定したらXを再起動します。・・・んまぁ、"Ctrl + Alt + Backspace"でいっちゃってもOKです。

まずは状況確認

$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 3000 x 3000
VGA connected (normal left inverted right x axis y axis)
   1920x1200      60.0 +
   1600x1200      59.9  
   1680x1050      60.0  
   1280x1024      75.0     59.9  
   1152x864       74.8  
   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  
LVDS connected 1024x768+0+0 (normal left inverted right x axis y axis) 246mm x 185mm
   1024x768       50.0*+   60.0     40.0  
   800x600        60.3  
   640x480        60.0     59.9  

今、使える外部出力の一覧が出ます。
↑の出力例では、ノートPCの液晶ディスプレイと、VGA接続している外部ディスプレイの情報が出ています。

デュアル出力してみる

$ xrandr --output VGA --auto --right-of LVDS

VGA接続している外部ディスプレイに出力、かつノートPCの液晶ディスプレイの右側に来るように設定。
"--right-of"の部分を"--left-of"にすると、液晶ディスプレイの左側にすることも可能。

$ xrandr --output VGA --mode "1920x1200" --right-of LVDS

解像度を明示する場合は、↑のような感じで、解像度を指定して実行します。

ディスプレイ出力のON/OFFを制御する

$ xrandr --output VGA --off

デュアルで出力しているときに、↑を実行すると、液晶ディスプレイのみの出力に戻すことが出来ます。

$ xrandr --output LVDS --off

逆に、↑を実行すると、外部ディスプレイのみの出力にすることも出来ます。

液晶ディスプレイと外部ディスプレイに表示する画面を同じ(クローン)にする

$ xrandr --output VGA --same-as LVDS

こないな感じでOKなはず。

画面を回転させる

$ xrandr --output LVDS --rotate left

とか

$ xrandr --output VGA --rotate left

ディスプレイが縦回転できるタイプだと、これで回転させてやると、読み物とかコーディングをするときなんかは結構使えます。

鏡面ディスプレイ!

$ xrandr --output "LVDS" --reflect x

とか

$ xrandr --output "LVDS" --reflect xy

結構、酔いそうになるので注意ww

実は、簡単な設定に関してはGUIで出来る

[システム] ⇒ [設定] ⇒ [画面の解像度] で、かなりWindowsライクな設定が可能です。

https://farm4.static.flickr.com/3224/2927160210_f86b074650_o.png

散々、コマンドベースで紹介してきましたが、簡単な設定のみならこっちがお手軽ですw

XRandR、その他オプション

ヘルプを見る限り、細かいオプションが色々あるので、他にも設定できそうですね。
これはなかなか便利です。

$ xrandr --help
usage: xrandr [options]
  where options are:
  -display <display> or -d <display>
  -help
  -o <normal,inverted,left,right,0,1,2,3>
            or --orientation <normal,inverted,left,right,0,1,2,3>
  -q        or --query
  -s <size>/<width>x<height> or --size <size>/<width>x<height>
  -r <rate> or --rate <rate> or --refresh <rate>
  -v        or --version
  -x        (reflect in x)
  -y        (reflect in y)
  --screen <screen>
  --verbose
  --dryrun
  --prop or --properties
  --fb <width>x<height>
  --fbmm <width>x<height>
  --dpi <dpi>/<output>
  --output <output>
      --auto
      --mode <mode>
      --preferred
      --pos <x>x<y>
      --rate <rate> or --refresh <rate>
      --reflect normal,x,y,xy
      --rotate normal,inverted,left,right
      --left-of <output>
      --right-of <output>
      --above <output>
      --below <output>
      --same-as <output>
      --set <property> <value>
      --off
      --crtc <crtc>
  --newmode <name> <clock MHz>
            <hdisp> <hsync-start> <hsync-end> <htotal>
            <vdisp> <vsync-start> <vsync-end> <vtotal>
            [+HSync] [-HSync] [+VSync] [-VSync]
  --rmmode <name>
  --addmode <output> <name>
  --delmode <output> <name>