Misaligned Display on Resume
- by Shaun Killingbeck
I have an odd issue with my laptop display when resuming from suspend. When I have an additional monitor connected there is no issue. However without an additional monitor connected, after resuming only the left 10% of the laptop screen (just enough to show the Unity Launcher and a bit more) is visibly working, although strangely in a screenshot this same 10% is shown on the right hand side of the screenshot:
I ran xrandr --verbose before and after resume, and the only difference (using diff) was:
2c2
< LVDS connected 1366x768+0+0 (0x98) normal (normal left inverted right x axis y axis) 344mm x 194mm
---
> LVDS connected 1366x768+1280+0 (0x98) normal (normal left inverted right x axis y axis) 344mm x 194mm
This seems to suggest the screen position has been shifted by 1280 horizontally, the width of the second monitor I use. Indeed, running the command xrandr --output LVDS --pos 0x0 does bring the screen back to normal. However, I don't want to have to run this command every time, I'd prefer to cure the source of the problem than just correct the symptoms.
Any ideas on how to get Ubuntu to keep the display configuration settings from before suspend when it resumes? or why it changes at all?
Heres some technical details that might be pertinent:
HP Pavilion DV6 Laptop
Ubuntu 13.04
AMD Radeon HD 6400M Series
AMD Radeon HD 6520G
Using proprietary flgrx-updates driver and amdcccle (Catalyst Control Center)
(Unfortunately the open source driver causes my laptop to run even hotter than it already does, otherwise I'd use that)
The contents of Xorg.conf:
Section "ServerLayout"
Identifier "amdcccle Layout"
Screen 0 "amdcccle-Screen[0]-0" 0 0
EndSection
Section "Module"
Load "glx"
EndSection
Section "Monitor"
Identifier "0-LVDS"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Option "PreferredMode" "1280x768"
Option "TargetRefresh" "60"
Option "Position" "0 0"
Option "Rotate" "normal"
Option "Disable" "false"
EndSection
Section "Monitor"
Identifier "0-CRT1"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Option "PreferredMode" "1280x768"
Option "TargetRefresh" "60"
Option "Position" "0 0"
Option "Rotate" "normal"
Option "Disable" "false"
EndSection
Section "Monitor"
Identifier "1-LVDS"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Option "TargetRefresh" "60"
Option "Position" "1280 0"
Option "Rotate" "normal"
Option "Disable" "false"
Option "PreferredMode" "1366x768"
EndSection
Section "Monitor"
Identifier "1-CRT1"
Option "VendorName" "ATI Proprietary Driver"
Option "ModelName" "Generic Autodetecting Monitor"
Option "DPMS" "true"
Option "TargetRefresh" "60"
Option "Position" "0 0"
Option "Rotate" "normal"
Option "Disable" "false"
Option "PreferredMode" "1280x1024"
EndSection
Section "Device"
Identifier "amdcccle-Device[0]-0"
Driver "fglrx"
Option "Monitor-LVDS" "1-LVDS"
Option "Monitor-CRT1" "1-CRT1"
BusID "PCI:0:1:0"
EndSection
Section "Device"
Identifier "amdcccle-Device[0]-1"
Driver "fglrx"
Option "Monitor-LVDS" "1-LVDS"
BusID "PCI:0:1:0"
Screen 1
EndSection
Section "Screen"
Identifier "Default Screen"
DefaultDepth 24
EndSection
Section "Screen"
Identifier "amdcccle-Screen[0]-0"
Device "amdcccle-Device[0]-0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Virtual 2646 2646
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "amdcccle-Screen[0]-1"
Device "amdcccle-Device[0]-1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection