I keep hearing how Ubuntu has finally nailed the dual head hassles of the past, and now you can just plug in an external monitor and go. Alas I’ve never had that experience, either with this Dell Vostro 1400 or either of the two IBM Thinkpads I’ve run Ubuntu on.The IBMs were both 1024×768 resolution, as is my external monitor. The Dell is a less standard 1280×800 resolution. I also, on occasion plug it into my LCD TV, but that’s another story.
The internal “Screen Resolution” application seems to consistently get all the settings wrong, and has never managed to guess the correct resolutions for monitors. Sometimes it doesn’t detect them at all. Other times when I try to manually set the resolutions, it refuses as my instruction doesn’t match its guess. The real magic seems to depend on a combination of xrandr, xorg.conf, grandr and a lot of poking and fiddling. In this case it seems relatively straightforward.
The first thing you have to do is tell your xorg.conf the size of the virtual screen. This is the size of the maximum resolution of the screen when you’ve added both displays together. In my example, I have a laptop screen of 1280×800 on the left and an external screen of 1024×768 on the right. This makes the Virtual screen (1280+1024)x(800), so the virtual directive reads.
Virtual 2304 800
In my case the SubSection wasn’t already within the Screen section of my xorg.conf, so I created it by adding the three lines above. Time to restart X by logging out and in again.
Now when you use the Screen Resolution app, it should actually work: you can place the two screens side by side, uncheck the Clone Screens box and set the correct resolution and refresh rate for the monitors. The settings for the Vostro laptop screen are 1280×800 @ 60Hz. Great. No need for tinkering with xrandr or grandr.