It took me a while to work this out, so I wanted to share it with others. I hope it can help someone. 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.
- Select "X Server Display Configuration" from the menu on the left.
- On the right-hand side, change "Configuration" to "Separate X screen (requires X restart".
- Check "Enable Xinerama".
- 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
- Linux Dual Monitor Setup: Nvidia & Xinerama Guide: Rotating just one monitor