How to setup dual-head monitors with an Nvidia drivers and one monitor rotated

multi-monitornvidia

I have an integrated ION GPU, which is supported by the proprietary drivers and I've never been able to get the open source drivers to work. I would like my left screen to be normal, but the right hand screen to be rotated. How do I achieve this?

Best Answer

It took me a while to work this out, so I wanted to share it with others.I will assume that the nvidia drivers and nvidia-settings are installed. (On Arch, run sudo pacman -S nvidia nvidia-utils.)

First, we need to generate a xorg.conf using nvidia-settings. From a GUI terminal, run sudo nvidia-settings.

  1. Select "X Server Display Configuration" from the menu on the left.
  2. On the right-hand side, change "Configuration" to "Separate X screen (requires X restart".
  3. Check "Enable Xinerama".
  4. Click "Save to X Configuration File"; /etc/xorg.conf will work, or you could add it as a new file to /etc/xorg.conf.d - e.g. /etc/xorg.conf.d/10-monitors.conf.

Now, we need to edit this file. Open it in your favourite editor as root. For example, run gksu gedit /etc/xorg.conf or sudo vim /etc/xorg.conf.

Find the correct Section "Screen". I did this by finding the correct Section "Monitor" and then finding the corresponding Section "Screen".

Find the line that looks like

Option "metamodes" "DFP-1: 1920x1080 +0+0"

and add { Rotation=Left }, so it looks like

Option "metamodes" "DFP-1: 1920x1080 +0+0 { Rotation=Left }".

Note DFP-1 could be DFP-0, depending on which monitor you are rotating; the resolution is also likely to be different.

Example

My xorg.conf reads as follows

Section "ServerLayout"
Identifier     "Layout0"
Screen      0  "Screen0" 0 28
Screen      1  "Screen1" 1280 0
InputDevice    "Keyboard0" "CoreKeyboard"
InputDevice    "Mouse0" "CorePointer"
Option         "Xinerama" "1"
EndSection

Section "Files"
EndSection

Section "InputDevice"
Identifier     "Mouse0"
Driver         "mouse"
Option         "Protocol" "auto"
Option         "Device" "/dev/psaux"
Option         "Emulate3Buttons" "no"
Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
Identifier     "Keyboard0"
Driver         "kbd"
EndSection

Section "InputClass"
Identifier         "Keyboard Defaults"
MatchIsKeyboard    "yes"
Option         "XkbLayout" "gb"
EndSection

Section "Monitor"
Identifier     "Monitor1"
VendorName     "Unknown"
ModelName      "HP w2228h"
HorizSync       24.0 - 83.0
VertRefresh     48.0 - 76.0
Option         "DPMS"
EndSection

Section "Monitor"
Identifier     "Monitor0"
VendorName     "Unknown"
ModelName      "DELL 1703FP"
HorizSync       30.0 - 80.0
VertRefresh     56.0 - 76.0
Option         "DPMS"
EndSection

Section "Device"
Identifier     "Device1"
Driver         "nvidia"
VendorName     "NVIDIA Corporation"
BoardName      "ION"
BusID          "PCI:3:0:0"
Screen          1
EndSection

Section "Device"
Identifier     "Device0"
Driver         "nvidia"
VendorName     "NVIDIA Corporation"
BoardName      "ION"
BusID          "PCI:3:0:0"
Screen          0
EndSection

Section "Screen"
Identifier     "Screen1"
Device         "Device1"
Monitor        "Monitor1"
DefaultDepth    24
Option         "TwinView" "On"
Option         "Stereo" "0"
Option         "metamodes" "DFP-1: 1920x1080 +0+0 { Rotation=Left }"
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "Monitor0"
DefaultDepth    24
Option         "TwinView" "On"
Option         "Stereo" "0"
Option         "nvidiaXineramaInfoOrder" "DFP-0"
Option         "metamodes" "DFP-0: 1280x1024 +0+0"
    SubSection     "Display"
    Depth       24
    EndSubSection
EndSection

Section "Extensions"
Option         "Composite" "Disable"
EndSection

References

  1. Linux Dual Monitor Setup: Nvidia & Xinerama Guide: Rotating just one monitor
Related Question