diff -Naur xf86-video-i810-1.4.1.3.old/man/i810.man xf86-video-i810-1.4.1.3/man/i810.man --- xf86-video-i810-1.4.1.3.old/man/i810.man 2005-12-19 01:07:50.000000000 -0800 +++ xf86-video-i810-1.4.1.3/man/i810.man 2006-03-02 11:48:07.000000000 -0800 @@ -158,6 +158,10 @@ local mirroring and disable the use of this option. Default: Clone mode on pipe B is disabled. .TP +.BI "Option \*qCloneOnHotKey\*q \*q" boolean \*q +This is exactly the same as Clone, above, except on startup the second +head is turned off. +.TP .BI "Option \*qCloneRefresh\*q \*q" integer \*q When the Clone option is specified we can drive the second monitor at a different refresh rate than the primary. diff -Naur xf86-video-i810-1.4.1.3.old/src/i830_driver.c xf86-video-i810-1.4.1.3/src/i830_driver.c --- xf86-video-i810-1.4.1.3.old/src/i830_driver.c 2005-10-03 02:39:17.000000000 -0700 +++ xf86-video-i810-1.4.1.3/src/i830_driver.c 2006-03-02 11:50:37.000000000 -0800 @@ -146,6 +146,8 @@ * * 30/2005 Alan Hourihane * - Add Intel(R) 945G support. + * 03/2006 Carl Michal + * - Add CloneOnHotKey option */ #ifdef HAVE_CONFIG_H @@ -231,6 +233,7 @@ OPTION_DEVICE_PRESENCE, OPTION_MONITOR_LAYOUT, OPTION_CLONE, + OPTION_CLONE_ON_HOT_KEY, OPTION_CLONE_REFRESH, OPTION_CHECKDEVICES, OPTION_FIXEDPIPE, @@ -252,6 +255,7 @@ {OPTION_DEVICE_PRESENCE,"DevicePresence",OPTV_BOOLEAN,{0}, FALSE}, {OPTION_MONITOR_LAYOUT, "MonitorLayout", OPTV_ANYSTR,{0}, FALSE}, {OPTION_CLONE, "Clone", OPTV_BOOLEAN, {0}, FALSE}, + {OPTION_CLONE_ON_HOT_KEY, "CloneOnHotKey",OPTV_BOOLEAN, {0}, FALSE}, {OPTION_CLONE_REFRESH,"CloneRefresh",OPTV_INTEGER, {0}, FALSE}, {OPTION_CHECKDEVICES, "CheckDevices",OPTV_BOOLEAN, {0}, FALSE}, {OPTION_FIXEDPIPE, "FixedPipe", OPTV_ANYSTR, {0}, FALSE}, @@ -1936,6 +1940,7 @@ const char *chipname; unsigned int ver; char v[5]; + Bool CloneOnHotKey = FALSE; if (pScrn->numEntities != 1) return FALSE; @@ -2398,7 +2403,11 @@ pI830->specifiedMonitor = TRUE; } - if (xf86ReturnOptValBool(pI830->Options, OPTION_CLONE, FALSE)) { + if (xf86ReturnOptValBool(pI830->Options, OPTION_CLONE_ON_HOT_KEY, FALSE)) + CloneOnHotKey = TRUE; + + if (xf86ReturnOptValBool(pI830->Options, OPTION_CLONE, FALSE) + || CloneOnHotKey ) { if (pI830->availablePipes == 1) { xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Can't enable Clone Mode because this is a single pipe device\n"); @@ -2768,7 +2777,8 @@ pI830->operatingDevices = (pI830->MonType2 << 8) | pI830->MonType1; - if (!xf86IsEntityShared(pScrn->entityList[0]) && !pI830->Clone) { + if ((!xf86IsEntityShared(pScrn->entityList[0]) && !pI830->Clone) + || CloneOnHotKey) { /* If we're not dual head or clone, turn off the second head, * if monitorlayout is also specified. */