Kubuntuにおけるマルチモニタ構成の設定
Kubuntuでマルチモニタ環境を設定したときのメモ。
環境
- Kubuntu 8.04 日本語ローカライズド
- ビデオカード: nVidia Quadro 980XGL
- プライマリモニタ: IBM L200p
- セカンダリモニタ: IBM T120
インストール直後では、想定されるプライマリモニタ(L200p)ではなく、T120のみが利用可能となっている。
このため、T120を利用可能とするとともにL200pをプライマリモニタにするための方策を検討する。
ドライバのインストール
[KDEメニュー] - [システム] - [Hardware Drivers Manager]を起動し、NVIDIAの高性能グラフィックドライバを有効にするにチェックを入れ、ダイアログを閉じるとKubuntuが自動的にNVIDIA謹製のドライバを当ててくれます。
NVIDIAのドライバと差し替えるためにXの再起動を行う*1。
NVIDIA X Server Settingsのインストール
NVIDIA製のドライバを当てた後はKDEで用意されているX構成ツール*2を使うのではなく、NVIDIA X Server SettingsによりXの構成を行う。このため、まずはNVIDIA X Server Settingsをインストールする必要がある。
# sudo apt-get install nvidia-settings
NVIDIA X Server Settingsの構成
NVIDIA X Server Settingsで構成可能なマルチモニタ設定
- Disabled
- マルチモニタの構成を行わない
- Separate X screen
- 各モニタ毎に独立したデスクトップを構成する。基本的にモニタ間を行き来できるのはポインタのみで、モニタをまたいだアプリケーションの表示などは行えない。
- Separate X screen + Enable Xinerama
- Windowsにおけるマルチモニタ構成と似たようなデスクトップ構成となる。モニタをまたいだアプリケーションの表示やなどが行え、最大化時はモニタをまたがないように最大化される。
- TwinView
- 複数のモニタまとめて1つの高解像度のディスプレイとして利用する。このため、アプリケーションの最大化を行うとモニタをまたいでしまう。
使い勝手を考えると、Windowsと同じようなモニタ構成が幸せになれそう。と、いうことで[X Server Display Configuration] - [Configure...]から、"Separate X screen"を選択。なお、"Disabled"以外を選択すると自動的にセカンダリモニタが有効になる構成となる。
xorg.confファイルの保存および修正
ここで多くの場合、一般ユーザ権限でNVIDIA X Server Settingsを起動していると思われる。このため、構成の保存を行おうとしてもパーミッションの関係から/etc/X11/xorg.confが上書きすることができない。とりあえず自分のホームディレクトリにでも保存しておく。
キーボード定義の修正
保存が完了したら適当なエディタで保存したxorg.confを開いて編集を行う必要がある。
まず、NVIDIA X Server Settingsを利用するとxorg.confにおけるキーボード定義が英語キーボードになっているため、これを現在のxorg.confと比較しながら戻す。
# NVIDIA X Server Settingsにより作成されたキーボード構成をコメントアウト #Section "InputDevice" # # generated from default # Identifier "Keyboard0" # Driver "kbd" #EndSection # 現在のxorg.confからキーボード部分の定義を貼り付け Section "InputDevice" IdentifierはNVIDIA X Server Settingsにより作成されたものと差し替える #Identifier "Generic Keyboard" Identifier "Keyboard0" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp,jp" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" Option "XkbVariant" "106,kana" EndSection
プライマリモニタ/セカンダリモニタの入れ替え
プライマリモニタが意図したものと異なる場合、Screenセクションを修正する必要がある。
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "DFP-0: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
デュアルヘッド可能なカード1枚で構成されている場合、上記部分のDFP-0とDFP-1を入れ替えるだけでいいらしい。
修正が終わったらxorg.confを入れ替え、Xを再起動すれば有効になる。
そのほか、注意点
NVIDIA X Server Settingにて構成した後にKDEのX構成ツールを利用すると解像度が妙なことになったりと、xorg.confファイルのバックアップを取っていない状態だと元に戻すのも苦労するため使わない方が幸せになれるかもしれません。
カスタマイズ後の/etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings # nvidia-settings: version 1.0 (buildd@vernadsky) Tue Mar 4 20:24:34 UTC 2008 Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" LeftOf "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" EndSection Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" EndSection Section "Module" Load "dbe" Load "extmod" Load "type1" Load "freetype" Load "glx" EndSection Section "ServerFlags" # Removed Option "Xinerama" "0" Option "Xinerama" "1" EndSection Section "InputDevice" # generated from default Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection #Section "InputDevice" # # generated from default # Identifier "Keyboard0" # Driver "kbd" #EndSection Section "InputDevice" #Identifier "Generic Keyboard" Identifier "Keyboard0" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp,jp" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" Option "XkbVariant" "106,kana" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor0" VendorName "Unknown" ModelName "IBM T120" HorizSync 30.0 - 83.0 VertRefresh 56.0 - 85.0 Option "DPMS" EndSection Section "Monitor" # HorizSync source: edid, VertRefresh source: edid Identifier "Monitor1" VendorName "Unknown" ModelName "IBM L200P" HorizSync 31.0 - 80.0 VertRefresh 56.0 - 85.0 Option "DPMS" EndSection Section "Device" Identifier "Videocard0" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "Quadro4 980 XGL" BusID "PCI:1:0:0" Screen 0 EndSection Section "Device" Identifier "Videocard1" Driver "nvidia" VendorName "NVIDIA Corporation" BoardName "Quadro4 980 XGL" BusID "PCI:1:0:0" Screen 1 EndSection Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" DefaultDepth 24 Option "TwinView" "0" Option "metamodes" "DFP-1: nvidia-auto-select +0+0" SubSection "Display" Depth 24 EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "Videocard1" Monitor "Monitor1" DefaultDepth 24 Option "TwinView" "0" Option "metamodes" "DFP-0: nvidia-auto-select +0+0" SubSection "Display" Depth 24 EndSubSection EndSection