Howto toggle fullscreen screen#1 -> #2 ?
#1
When I set my Nvidia conf for dual screens to Clones, I get terrible tearing. When expanded my desktop to the TV and set video output fullscreen to screen#2 there is no tearing at all!!

Little issue then is when I toggle to windowed xbmc will appear on screen#1. Going back to fullscreen it will automatically display on #1.

Is there a possibility to make a keyboard shortcut to toggle fullscreen between screen#1 and #2?
Reply
#2
Hey Jazz!

I've been looking everywhere for this feature, but it doesn't seem to exist. I'm not sure if my issue is the same as yours, but I'd say it's a pretty standard functionality: however, as far as I understand, multiple screen support was added in Dharma, so this is quite new and maybe the XBMC ninjas didn't have time to implement it yet.

Anyway, I have two screens enabled (LCD TV + SD TV) and I would also like to cycle between them with a keyboard shorcut instead of navigating all the way into the settings. Another issue I'm having is that I'd like XBMC to start on a default screen regardless of which one I used last: I can change that on advancedsettings.xml, but doing so removes the option from the GUI and, I'm stuck without the ability to change it. I'm hoping a keyboard shortcut will take care of that (in the sense that I wouldn't need to go into the settings) but maybe someone can suggest a more civilized way of doing it (or some way to set an option on advanced settings while retaining the ability to change it from the GUI)

In any case, this topic has been covered before, but solutions suggested on this thread don't really cut it for me: XBMC does such a great job managing multiple displays (a lot better than NVIDIA's drivers, I might say) that I don't want to install any additional script, use Win7's display switcher or anything like that. I'd rather have a native way of doing it, or I'll keep changing the settings on the System tab.

By the way, everyone working on this project, CONGRATULATIONS! I've been using XBMC for the last couple of months and it never ceases to amaze me with its quality, its looks and features. Thank you!
Reply
#3
A feature to toggle the fullscreen monitor within XBMC would be useful - surprised that's not implemented as a keyboard / remote shortcut. That said, at the moment, whichever 'fullscreen' monitor I choose, it just won't go on one of my monitors, the choice of #1 or #2 has no effect at all.

Another feature would be to have the 'go fullscreen' toggle taking effect on the monitor on which XBMC is currently displayed, rather than the one set in options.
Reply
#4
(2011-07-17, 19:40)Leopold Hardin Wrote: Hey Jazz!

I've been looking everywhere for this feature, but it doesn't seem to exist. I'm not sure if my issue is the same as yours, but I'd say it's a pretty standard functionality: however, as far as I understand, multiple screen support was added in Dharma, so this is quite new and maybe the XBMC ninjas didn't have time to implement it yet.

Anyway, I have two screens enabled (LCD TV + SD TV) and I would also like to cycle between them with a keyboard shorcut instead of navigating all the way into the settings. Another issue I'm having is that I'd like XBMC to start on a default screen regardless of which one I used last: I can change that on advancedsettings.xml, but doing so removes the option from the GUI and, I'm stuck without the ability to change it. I'm hoping a keyboard shortcut will take care of that (in the sense that I wouldn't need to go into the settings) but maybe someone can suggest a more civilized way of doing it (or some way to set an option on advanced settings while retaining the ability to change it from the GUI)

In any case, this topic has been covered before, but solutions suggested on this thread don't really cut it for me: XBMC does such a great job managing multiple displays (a lot better than NVIDIA's drivers, I might say) that I don't want to install any additional script, use Win7's display switcher or anything like that. I'd rather have a native way of doing it, or I'll keep changing the settings on the System tab.

@Leopold Hardin, have you perchance stumbled upon anything that works for your problem (cause yours is almost identical to mine). If you have please post it here for meSmile
Reply
#5
Put in a trac feature request.. I did for something similar but so far it has been ignored. The devs don't seem interested in making multi monitors work better.

Part of the problem is we have a lot of people complaining about multi display shortcomings but no one other than me putting in bugs or feature requests for it.
I'm not an expert but I play one at work.
Reply
#6
I'm no programmer, unfortunately, but I have an idea that might help someone who's better with these things. IIRC, the full screen and screen number can be specified in guisettings.xml. If a script, add-on, or core feature could change this data and then force XBMC to reload the guisettings (I know we can reload skin files. Maybe using profiles and scripting log-off and then log-in?), then you would have an easily scriptable ability to do this. Then it just needs to be associated with a keyboard/remote keymap.

Assuming I got all that correctly.
Reply
#7
Ned, while that is a nice idea - and might work by forcing the skin to reload... it is only a hack. A true fix needs to be built-into XBMC. This should be dead simple for a windows dev to do since everything they need is already built into XBMC to do this.

Two more feature requests are along these same lines but makes things even more solid...

1) reading of a command line option to ensure the proper guisetting is in place during XBMC's launch
2) a watch dog should be added to make XBMC's persistence robust.
I'm not an expert but I play one at work.
Reply
#8
Not sure if this will help, but in this thread http://forum.xbmc.org/showthread.php?tid=131899 I posted a small batch file that you can run so you choose what screen to run on. Just copies different versions of guisettings.xml to the settings folder.

Not the most elegant way of doing things, and not sure if it's what you want, but it might help.

A few modifications can have it prompt what screen you want before it starts.

Works fine for what I use it for, but obviously subject to any changes to the xml files coding by the dev team.
Reply
#9
(2012-07-05, 13:14)theotherguy Wrote: Not sure if this will help, but in this thread http://forum.xbmc.org/showthread.php?tid=131899 I posted a small batch file that you can run so you choose what screen to run on. Just copies different versions of guisettings.xml to the settings folder.

Not the most elegant way of doing things, and not sure if it's what you want, but it might help.

A few modifications can have it prompt what screen you want before it starts.

Works fine for what I use it for, but obviously subject to any changes to the xml files coding by the dev team.

@theotherguy: I saw that. Thanks for the tip, but I think something very similar is baked into Eventghost. My issue is that I'd really like to avoid actually messing with what the primary monitor is defined as. I do not want the taskbar on my TV and don't want programs to open for the first time on the TV (and any number of other issues I haven't predicted that would arise from messing with the primary monitor designation). But from my research, there doesn't seem to be any other option.

I think the best option is to install UltraMon (or some similar 3rd party multi-monitor utility) that puts a taskbar on both monitors and allows me to designate which programs open on which monitor. Then install something like your bat file or implement the Eventghost option. I just wish xbmc would be better at accepting something simple like a default monitor setup.

@Livin: you are absolutely right, I will try to be better about submitting bugs to trac. I just feel like more often than not, its my fault something's not working how I want and not an actual bug, so I avoid the practice.
Reply
#10
(2012-07-05, 16:44)seth.feinberg Wrote: My issue is that I'd really like to avoid actually messing with what the primary monitor is defined as.

That particular workaround doesn't affect any of the system settings related to the monitors. It's all solely XBMC settings that are used.
Reply
#11
@theotherguy OK then, guess I have some reading to do Smile
Reply
#12
(2012-07-05, 23:03)theotherguy Wrote:
(2012-07-05, 16:44)seth.feinberg Wrote: My issue is that I'd really like to avoid actually messing with what the primary monitor is defined as.

That particular workaround doesn't affect any of the system settings related to the monitors. It's all solely XBMC settings that are used.

@theotherguy, finally got around to reading, and more importantly understanding, that post you linked to. Needed to google a few things here and there about BAT files but I think i understand it now. That bat file resides on your desktop and double clicking it just replaces the guisettings.xml, closes xbmc and reopens with the new settings, right?

Brilliant, but a bit more than what I need. I don't really need the active switching as much as I just want xbmc to ALWAYS run on Fullscreen 2 (honestly at this point I'd even settle for DISABLING Fullscreen #1). Is it possible to launch a bat file like yours with a hotkey? Seems like that would be easy with eventghost. Is XBMC completely closed down and reopened during the switching? How long does the process usually take? I realize this is probably too many questions and I'll just give it a whirl and see how it works.

One last thing, I saw this: http://amzn.com/B001RIMZUW and it offers another interesting solution which I think is actually my best bet, but its seems ultra expensive for what it accomplishes (though so does Ultramon).

Anyways thanks for your help and i'll report back with how it goes!

Edit: I gave it a shot and unfortunately couldn't get it to work. Re-reading what I wrote I guess I didn't fully understand how it worked. XBMC needs to be fully closed when you double click the bat file right? And then you just have 2 options for starting XBMC: one for just the TV and one for the monitor.

As a partial fix I put those specific <videoscreen> xml tags into my advancedsettings.xml and was able to get XBMC to default back to the TV upon a close and reopen, which I suppose will do for now, since it seems like even if I got your implementation working I'd still have to close xbmc and click on the appropriate link each time which is more than I'm willing to do. I'll keep hacking at it and see if I can figure anything else out, but I might give that Amzn link i posted about a whirl.
Reply
#13
(2012-07-09, 21:23)seth.feinberg Wrote: That bat file resides on your desktop and double clicking it just replaces the guisettings.xml, closes xbmc and reopens with the new settings, right?
More or less...

Quote:I don't really need the active switching as much as I just want xbmc to ALWAYS run on Fullscreen 2 (honestly at this point I'd even settle for DISABLING Fullscreen #1).
Once set XBMC should stay on the same screen till you change it. If not then there is a problem somewhere. If you are using the nightlies, try updating to a more recent version. There was a problem a few weeks ago when XBMC would forget all the screen settings. Could very well be your problem.

Answering the rest might not be required based on the above, but i'm going to anyways :-)

Quote:Is it possible to launch a bat file like yours with a hotkey? Seems like that would be easy with eventghost.
Yes, using EventGhost if that's what you're used to, or just create a shortcut to the .bat file, then right-click > properties > add a shortcut key combination.

Quote:Is XBMC completely closed down and reopened during the switching?
XBMC can't be running when this is done. I should have added a few lines to stop it from running if XBMC is running. I only wrote it for myself so it's only used when I want to test something on my PC instead of the TV. I haven't made it foolproof enough for anyone to use yet.

Quote:How long does the process usually take? I realize this is probably too many questions and I'll just give it a whirl and see how it works.
1second. No problem with the questions. I find it's the best way to learn :-)

Quote:One last thing, I saw this: http://amzn.com/B001RIMZUW and it offers another interesting solution which I think is actually my best bet, but its seems ultra expensive for what it accomplishes (though so does Ultramon).
Not even sure what that does/is for. I don't think you need it for what you want.

Quote:XBMC needs to be fully closed when you double click the bat file right? And then you just have 2 options for starting XBMC: one for just the TV and one for the monitor.
since it seems like even if I got your implementation working I'd still have to close xbmc and click on the appropriate link each time which is more than I'm willing to do.
With a few extra lines added to the batch file, it can be made so that you can have two sets of hotkeys for different screens. When pressed xbmc will close, settings files changed and xbmc started again. Can probably make it a toggle as well, now that I think about it.

Once again, not the most elegant way of doing things, but it works (at least for me and for what I need). As Ned Scott pointed out, it seems someone just needs to figure out a way of implementing it, as most of the code is in XBMC. Till then hopefully some people might find my little batch file useful.


Reply
#14
Been playing around some more.

Ended up with a batch file that you can set to start on a particular screen all the time, and subsequent executions will exit XBMC and toggle to the other screen. Create a shortcut and add a hotkey if you want access that way as well.

I tried to make it as foolproof as possible. Tested on my own system and it works fine. But as user interaction is required to set it up no guarantees it will work straight up

As always make backups before trying it out. Although all files are only renamed, so you shouldn't ever lose any data.

NOTE: Any changes made to the GUI (eg. layouts) won't carry over between screens as they are using different files.

You need two copies of the guisettings.xml file. Note the settings should be different depending on your resolution. Best way is to run XBMC on the screen you want, exit and copy the guisettings.xml file.

The following are data excerpts from my setup just FYI:
To display on monitor - saved as guisettings.xml.mon
Code:
<videoscreen>
     <resolution>-1</resolution>
     <screen>0</screen>
     <screenmode>DESKTOP</screenmode>
</videoscreen>

To display on TV - saved as guisettings.xml.tv
Code:
<videoscreen>
     <resolution>0</resolution>
     <screen>1</screen>
     <screenmode>10192001080050.00000</screenmode>
</videoscreen>


Copy/paste the following to a txt file and save.
You need to edit the paths in the top section, so the batch knows where XBMC and the XBMC settings files are.
You also need to edit the section tagged :NotRunning_Start depending on what screen you want to start on all the time. As it is now, it will start on whatever screen it is already on. Add REM to disable or remove the REM to enable.

Code:
@echo off
REM change the following folder to your XBMC folder
SET XBMC_path=C:\xbmc
REM change the following folder to the XBMC userdata folder
SET XBMC_settings=C:\Users\user\AppData\Roaming\XBMC

:CheckForXBMC
TASKLIST | find /i "XBMC.exe" >nul
IF ERRORLEVEL 1 (GOTO :NotRunning_Start) ELSE GOTO :IsRunning_TOGGLE

:IsRunning_TOGGLE
TASKKILL /IM XBMC.exe

IF EXIST "%XBMC_settings%\*.tv" GOTO :tv
IF EXIST "%XBMC_settings%\*.mon" GOTO :mon

:NotRunning_Start
REM >>>>> NOTE: REM whichever lines are not required.
REM >>>>> MORE THAN ONE CANNOT BE ENABLED AT THE SAME TIME! <<<<<<

REM Use last screen setting (add REM before GOTO, if not using)
GOTO :Start

REM To always Start on Monitor (add REM before IF, if not using)
REM IF EXIST "%XBMC_settings%\*.mon" (GOTO :mon) ELSE GOTO :Start

REM To always Start on TV (add REM before IF, if not using)
REM IF EXIST "%XBMC_settings%\*.tv" (GOTO :tv) ELSE GOTO :Start

:mon
RENAME "%XBMC_settings%\guisettings.xml" guisettings.xml.tv
RENAME "%XBMC_settings%\guisettings.xml.mon" guisettings.xml
GOTO :Start

:tv
RENAME "%XBMC_settings%\guisettings.xml" guisettings.xml.mon
RENAME "%XBMC_settings%\guisettings.xml.tv" guisettings.xml
GOTO :Start

:Start
"%XBMC_path%\XBMC.exe"

:END

So you should have:
1 batch file saved somewhere, set with a hotkey through a shortcut (if desired & required if you want to run it from a button set on the remote)
2 copies of guisettings.xml. (1 should be named guisettings.xml and the other named guisettings.xml.tv or guisettings.xml.mon depending on it's contents. Both files should be in the XBMC userdata folder.

Any problems, let me know.
Reply
#15
(2012-07-11, 08:25)theotherguy Wrote: Copy/paste the following to a txt file and save.
You need to edit the paths in the top section, so the batch knows where XBMC and the XBMC settings files are.
You also need to edit the section tagged :NotRunning_Start depending on what screen you want to start on all the time. As it is now, it will start on whatever screen it is already on. Add REM to disable or remove the REM to enable.

Code:
@echo off
REM change the following folder to your XBMC folder
SET XBMC_path=C:\xbmc
REM change the following folder to the XBMC userdata folder
SET XBMC_settings=C:\Users\user\AppData\Roaming\XBMC

:CheckForXBMC
TASKLIST | find /i "XBMC.exe" >nul
IF ERRORLEVEL 1 (GOTO :NotRunning_Start) ELSE GOTO :IsRunning_TOGGLE

:IsRunning_TOGGLE
TASKKILL /IM XBMC.exe

IF EXIST "%XBMC_settings%\*.tv" GOTO :tv
IF EXIST "%XBMC_settings%\*.mon" GOTO :mon

:NotRunning_Start
REM >>>>> NOTE: REM whichever lines are not required.
REM >>>>> MORE THAN ONE CANNOT BE ENABLED AT THE SAME TIME! <<<<<<

REM Use last screen setting (add REM before GOTO, if not using)
GOTO :Start

REM To always Start on Monitor (add REM before IF, if not using)
REM IF EXIST "%XBMC_settings%\*.mon" (GOTO :mon) ELSE GOTO :Start

REM To always Start on TV (add REM before IF, if not using)
REM IF EXIST "%XBMC_settings%\*.tv" (GOTO :tv) ELSE GOTO :Start

:mon
RENAME "%XBMC_settings%\guisettings.xml" guisettings.xml.tv
RENAME "%XBMC_settings%\guisettings.xml.mon" guisettings.xml
GOTO :Start

:tv
RENAME "%XBMC_settings%\guisettings.xml" guisettings.xml.mon
RENAME "%XBMC_settings%\guisettings.xml.tv" guisettings.xml
GOTO :Start

:Start
"%XBMC_path%\XBMC.exe"

:END

So you should have:
1 batch file saved somewhere, set with a hotkey through a shortcut (if desired & required if you want to run it from a button set on the remote)
2 copies of guisettings.xml. (1 should be named guisettings.xml and the other named guisettings.xml.tv or guisettings.xml.mon depending on it's contents. Both files should be in the XBMC userdata folder.

Any problems, let me know.

@theotherguy. Holy crap. Thank you so much. very very cool. I wish I'd seen you're posts a little earlier (stupid Tapatalk didn't give me a notification).

I actually bot one of those HDMI Detective's from Amazon and installed it last night (yay Prime!) and it really does work. Basically you hook it up between HDMI-connected TV and the Source and it saves the EDID information and "tricks" the source into thinking the HDMI is always connected even if its not. The problem I was describing of xbmc opening on the wrong monitor would happen when I turned off the TV or switched sources on my Denon while xbmc was running on "Fullscreen 2" (and my PC no longer recognized a second monitor). So its not strictly an xbmc problem, more of a video card/hdmi/general hardware problem (though I will fault xbmc for not having a simple "toggle fullscreen" button that actually cycles through all the available screens). With the HDMI Detective this is no longer an issue as the PC always thinks the TV is connected even when its not (I don't even get screen flickering when switching sources, which was every time). It actually is a pretty fantastic little doohickey. Not sure its worth the $85 price tag but it very simply does exactly what it claims to.

That being said however, I would still like an easy way to toggle around the fullscreen mode (not entirely sure why, but sounds funBig Grin). I don't have quite as much of an urgency as before, but I'll def try to implement this soon and report back. Thanks again for your help! As amazing as all the developers and team-xbmc is, its regular users like you willing to lend a helping hand to the less-experienced (i.e.dumber) user that makes xbmc so great (well at least contributes to its greatness, xbmc itself is pretty amazingSmile)
Reply

Logout Mark Read Team Forum Stats Members Help
Howto toggle fullscreen screen#1 -> #2 ?0