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?
2 Answers
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
.
- 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 beDFP-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
It seems the most recent version of the closed source NVIDIA drivers supports randr (see http://www.phoronix.com/scan.php?page=news_item&px=MTA5NTY). Just use the most recent driver and a RandR front-end of your choice. For example arandr will allow you to move monitors around and alter their orientation.