Running XBMC on 2 monitors
#1
I am running XBMC, version 11, in Windows 7. I have 2 widescreen 1080P monitors connected to the PC: a plasma TV and my regular monitor. They are both set to 1080P resolution, so they are exactly the same "shape". I also have UltraMon installed. I have set the display mode in XBMC to Full Screen #2, which is the plasma TV. However, sometimes I want to run XBMC on my widescreen PC monitor, which is Full Screen #1 in XBMC. Obviously, I can go into display mode after starting XBMC and switch it to Full Screen #1. However, I generally want to watch movies on the plasma screen, so I switch the display mode back to Full Screen #2 before exiting XBMC.

What I would like to do is have 2 shortcuts on my PC desktop: one which starts XBMC with the display mode set to Full Screen #1 (PC monitor), and another shortcut which starts XBMC in Full Screen #2 (plasma TV screen). That way, if I don't want to turn on the TV to start XBMC, I can just click the shortcut which starts XBMC on my PC monitor. It seems like this should be easy to do, but I don't know how to set up the shortcuts.

Would someone please explain the procedure or point me to the instructions for this?
Reply
#2
This might be over complicated, but it works for me... Note: I add in the advancedsettings.xml <fullscreen>true</fullscreen> and I take no responsibility for this script... picked it up moons ago in this forum, clip it out with notepad create a shortcut icon and stick the path in the target line "C:\Program Files (x86)\XBMC-extras\flip.vbs"

Dim WshShell
Dim scv
Set svc=getobject("winmgmts:root\cimv2")
Set sh = CreateObject("WScript.Shell")
Set WshShell = WScript.CreateObject("WScript.Shell")
Const DELAY = 1

'switch to TV only
execCMD = """C:\Windows\System32\DisplaySwitch.exe""/internal"
Wshshell.Run execCMD,2,false

'Launch Xbmc
WshShell.CurrentDirectory = "C:\Program Files (x86)\XBMC\"
execCMD = """C:\Program Files (x86)\XBMC\XBMC.exe"""
Wshshell.Run execCMD,3,true

'switch to LCD only
execCMD = """C:\Windows\System32\DisplaySwitch.exe""/external"
Wshshell.Run execCMD,2,false

Save as flip.vbs file, it looks like you need WshShell and it calls on DisplaySwitch. So you
click the local XBMC icon for your default display, or hit the flipper icon and XBMC launches on #2
and shuts down number #1 exiting XBMC causes the reminder of the script to continue and switches
back to default number #1

Note: a search in the dead letter office brought these links which may prove useful.

http://forum.xbmc.org/showthread.php?tid=44617
http://forum.xbmc.org/showthread.php?tid=90919
Reply
#3
You say you have Ultramon installed so why not just right click it and select Disable Secondary ?
This is what I do when I want to start XBMC on my Primary Display...
Box 1: ODroid N2+ 4GB
Box 2: Intel NUC D34010WYK (Windows afedchin's Krypton MVC Build)
Box 3: Vero 4K
RIP schimi2k | I miss you buddy :(
Reply
#4
(2012-05-19, 21:12)ArieS Wrote: You say you have Ultramon installed so why not just right click it and select Disable Secondary ?
This is what I do when I want to start XBMC on my Primary Display...

Even easier if you have Ultramon:

Setup a hotkey to move window to next monitor. For example I have Alt + Left and right arrow binded to it.

Only works if you have fullscreen window enabled and not true fullscreen though.
Reply
#5
Can't you set which monitor XBMC should start on in a settings file somewhere? If so you could just have two versions of the settings and two batch files which copies/enables the settingsfile you want and then launch XBMC.

I did find something about doing this with advancedsettings.xml, but I could not find the referenced screenmode variable (in the format specified on the page) - http://davor.no-ip.com/blog/2011/07/10/s...rty-tools/
Reply
#6
(2012-05-19, 21:12)ArieS Wrote: You say you have Ultramon installed so why not just right click it and select Disable Secondary ?
This is what I do when I want to start XBMC on my Primary Display...

This works perfectly! Thanks!
Reply
#7
I've been wanting to do this for a while but could never figure out how. Things seems to have changed since the instructions were posted on http://davor.no-ip.com/blog/2011/07/10/s...rty-tools/ or at least the settings don't override from advancedsettings for me.

The screen settings seem to be saved in the guisettings.xml, so i've made a copy of that file with my monitor as default. Using a batch file, it backs up the original, copies the monitor version, starts XBMC, then on exiting deletes the monitor version of guisettings and restores the original for normal use.

The following lines need to be changed, and should vary depending on your resolution:

For my monitor:
Code:
<videoscreen>
     <resolution>-1</resolution>
     <screen>0</screen>
     <screenmode>DESKTOP</screenmode>
</videoscreen>

For my TV:
Code:
<videoscreen>
     <resolution>0</resolution>
     <screen>1</screen>
     <screenmode>10192001080050.00000</screenmode>
</videoscreen>

I'm not aware of issues caused by altering the file in this way.
Reply
#8
(2012-05-20, 16:23)theotherguy Wrote: I've been wanting to do this for a while but could never figure out how. Things seems to have changed since the instructions were posted on http://davor.no-ip.com/blog/2011/07/10/s...rty-tools/, or at least the settings don't override from advancedsettings for me.

The screen settings seem to be saved in the guisettings.xml, so i've made a copy of that file with my monitor as default. Using a batch file, it backs up the original, copies the monitor version, starts XBMC, then on exiting deletes the monitor version of guisettings and restores the original for normal use.

The following lines need to be changed, and should vary depending on your resolution:

For my monitor:
Code:
<videoscreen>
     <resolution>-1</resolution>
     <screen>0</screen>
     <screenmode>DESKTOP</screenmode>
</videoscreen>

For my TV:
Code:
<videoscreen>
     <resolution>0</resolution>
     <screen>1</screen>
     <screenmode>10192001080050.00000</screenmode>
</videoscreen>

I'm not aware of issues caused by altering the file in this way.

The link in your post did not work for me. Can you post the complete batch file you use for this purpose?
Thanks.
Reply
#9
Code:
@echo off
REM change the following folder to your XBMC folder
SET XBMC_path=H:\XBMC
REM change the following folder to the XBMC userdata folder
SET XBMC_settings=C:\Users\USERNAME\AppData\Roaming\XBMC\userdata
REM change the following folder to where the revised version of guisettings is
SET XBMC_gui=C:\XBMC_misc

echo.
echo  ___ XBMC on Monitor
echo.

rename "%XBMC_settings%\guisettings.xml" guisettings.xml.org

copy "%XBMC_gui%\guisettings_Monitor.xml" "%XBMC_settings%\guisettings.xml" /Y

"%XBMC_path%\XBMC.exe"

del "%XBMC_settings%\guisettings.xml" /q

rename "%XBMC_settings%\guisettings.xml.org" guisettings.xml

:END

After you adjust the paths it should work properly.
Reply
#10
(2012-05-21, 03:35)theotherguy Wrote:
Code:
@echo off
REM change the following folder to your XBMC folder
SET XBMC_path=H:\XBMC
REM change the following folder to the XBMC userdata folder
SET XBMC_settings=C:\Users\USERNAME\AppData\Roaming\XBMC\userdata
REM change the following folder to where the revised version of guisettings is
SET XBMC_gui=C:\XBMC_misc

echo.
echo  ___ XBMC on Monitor
echo.

rename "%XBMC_settings%\guisettings.xml" guisettings.xml.org

copy "%XBMC_gui%\guisettings_Monitor.xml" "%XBMC_settings%\guisettings.xml" /Y

"%XBMC_path%\XBMC.exe"

del "%XBMC_settings%\guisettings.xml" /q

rename "%XBMC_settings%\guisettings.xml.org" guisettings.xml

:END

After you adjust the paths it should work properly.

Thanks. I'll give it a try.
Reply
#11
(2012-05-21, 03:35)theotherguy Wrote:
Code:
@echo off
REM change the following folder to your XBMC folder
SET XBMC_path=H:\XBMC
REM change the following folder to the XBMC userdata folder
SET XBMC_settings=C:\Users\USERNAME\AppData\Roaming\XBMC\userdata
REM change the following folder to where the revised version of guisettings is
SET XBMC_gui=C:\XBMC_misc

echo.
echo  ___ XBMC on Monitor
echo.

rename "%XBMC_settings%\guisettings.xml" guisettings.xml.org

copy "%XBMC_gui%\guisettings_Monitor.xml" "%XBMC_settings%\guisettings.xml" /Y

"%XBMC_path%\XBMC.exe"

del "%XBMC_settings%\guisettings.xml" /q

rename "%XBMC_settings%\guisettings.xml.org" guisettings.xml

:END

After you adjust the paths it should work properly.

I found this very useful and currently using and working well. I have one question, if you make any chnages to XBMC and given the script abouve wouldn't you have to update both guisettins.xml to reflect the changes less the display setting of course?
Reply
#12
Quote:Even easier if you have Ultramon:

Setup a hotkey to move window to next monitor. For example I have Alt + Left and right arrow binded to it.

Only works if you have fullscreen window enabled and not true fullscreen though.


I have Ultramon too, i think this is the easier way, but i dont know how to create a hotkey

Could you tell me how you did this?

Thanks
Reply
#13
Kind of related issue: I have a dual hdmi-out motherboard and set up ultramon with a hotkey to switch my xbmc display from monitor 1 (living room tv) to monitor 2 (bedroom tv). Problem is the audio is still coming out of monitor 1 and not my bedroom tv.

Does anyone know of a solution where I can switch the audio stream over to monitor 2 without having to go into windows playback devices and switching it every time?

Running frodo on windows 7 64.

thanks!
Reply

Logout Mark Read Team Forum Stats Members Help
Running XBMC on 2 monitors0