Multiple-monitor support for X11 has greatly improved from when I started using it. For starters, you no longer have to edit a root-owned text file and restart your Xserver. Now we have the X11 RandR 1.2 extenstion and you can used use the command line on-the-fly or one of the many GUIs to change your output configuration. (If you don’t think this feature is that amazing, fair enough.)
All the major desktop environments have GUIs for display output configuration. Many times these desktop environments attempt to set output configuration at login. My primary computer is a laptop. At home I have a dock with an external monitor. Thus, 90% of the time my display output is in one of the two configurations: single headed laptop panel, or dual-headed laptop panel and external monitor. All the functionality I require is to toggle these modes. In Windows one can use the keystroke Super+P to quickly do so. In Gnome, whatever key generates XF86Display does this as well (if the gnome-settings-daemon xrandr plugin is enabled, which it is by default.)
The catch is that sometimes Gnome’s display output applet gets things wrong, or annoyingly my hardware likes to the generate the XF86Display keystroke when pressing Fn+F7, Dock Eject, Lid Open, Lid Close… etc. This causes my display configuration to change when I shut the lid (annoying), put the machine to sleep (annoying) or when I eject it from my dock (annoying if it didn’t notice that the external monitor isn’t there anymore.) I often find myself going to the command line and doing my output configuration manually.
Then a thought occurred; since I really only use two xrandr commands, there has to be a way to automate the process. One shell script plus Zenity later and this is the result:

#!/bin/bash
# multiple-monitors.sh: Quick-and-easy xrandr(1) arguments picker.
# (c) 2012 Arthur Taylor Permission is granted to any person to use, copy,
# modify, merge, publish, distribute, sublicense, and/or sell this script.
# This script is provided "as is", without warranty of any kind.
ICON="/usr/share/icons/gnome/48x48/devices/video-display.png"
XRANDR_COMMAND[0]=" --output LVDS1 --mode 1440x900 --output VGA1 --off"
XRANDR_COMMAND[1]=" --output LVDS1 --mode 1440x900 --output VGA1 --mode 1280x1024 --right-of LVDS1"
XRANDR_COMMAND[2]=" --output LVDS1 --off --output VGA1 --mode 1280x1024"
XRANDR_COMMAND[3]=" --auto"
TO_RUN=`zenity --list --width=640 --height=240 --window-icon $ICON --title="XRandR Settings" --text="Pick (or edit) an XRandR configuration:" --column="command" --hide-header --editable "${XRANDR_COMMAND[@]}"`
if [ "$TO_RUN" != "" ]; then
xrandr $TO_RUN
fi
All this script does is take chose text from the chosen list entry and pass it as arguments to the xrandr command (see xrandr(1) man page.) I know this isn’t to most user-friendly method of changing display outputs, and it doesn’t provide failure feed-back, but is quicker than opening a terminal and typing it from scratch.
If you use Openbox, then a keboard shortcut for can be done by simply adding the following to your rc.xml keybindings section:
<keybind key="XF86Display"> <action name="Execute"> <execute>bash /the/path/to/multiple-monitors</execute> </action> </keybind>