I just upgraded to a (way too) shiny HP Pavilion dv8t laptop and a pair of inexpensive Sceptre 1080p LCD panels. The laptop seems to work pretty well with Linux. I'm running Ubuntu 9.10 with a 2.6.34-rc1 kernel, before the laptop got here I read that the latest kernels have better support for Turbo Boost. I don't know for sure if the kernel is helping me, but nearly every piece of hardware is working fine without any tweaking. So far I am unable to control bass/treble (the sub woofer makes it pretty loud this way), it does not report how fast the battery is being drained, and I'm unable to connect to my 802.11a access point.
These Sceptre LCD panels are WAY too red. I read warnings in the comments on Newegg before I bought them but I figured they couldn't be that bad. They are. Reds and oranges are quite bright. I've tried to tone them down and I'm not very happy with any of my results. I got exactly what I paid for.
What is All This Really About?
Enough about the new hardware! My goal was to be able to plug the laptop into the monitors and have everything just work without any manual intervention. If the two Sceptres are plugged in, I want the desktop to automatically expand across them and shut off the laptop display. When they're unplugged I want it to revert to the laptop display.
Using Two Monitors with an Nvidia Card
I started with the open source driver and
xrandr. Using the VGA port was not a problem. For some reason, the open source driver was unable to detect when a device was plugged into the HDMI port. The proprietary Nvidia drivers did not have this problem. My hardware is able to drive any two out of the three displays. Unfortunately, it is not even able to use the third as a mirror of one of the other two.
Controlling the Outputs from the Command Line
I found an application called
disper that makes it very easy to control the active outputs from the command line. First I used the
nvidia-settings application to set up the two external displays the way I wanted them. Then I exported the settings with
Then I used
nvidia-settings to set up the single laptop display and ran:
disper can list the displays that are connected:
1 2 3 4 5 6 7
I wrote a short daemon-style shell script that periodically checks the connected displays and passes the correct settings to
1 2 3 4 5 6 7 8 9 10 11 12 13
I needed to add the
xset dpms force on line or else my display would never wake up on its own. I don't know how specific that is to my hardware.
Xinerama and Xrandr
I don’t see any reason why this couldn't be adapted to work with Xinerama and
xrandr can easily be used to detect and configure the displays. I know
xrandr sometimes caused the screens to briefly go blank on my old laptop when it was detecting displays. That would be a bit problematic…