Search code examples
javascriptgoogle-chromebrowsermultiple-monitors

Is there a way to control browser size and position across multiple displays / monitors?


Preface

First of all, I am very well aware that webapps should not fiddle with window size or position. Been through a lot of similar SO questions and forum posts.

But this is a special case, where the browser is just a platform to run an app on several specific machines in a controlled environment.

Task

The app should manage windows across several displays. (up to 5)

What I've tried until now

  1. Searched for methods for gaining information about the host system display information, but the window.screen object only reports properties of the display the window is currently on (or considered to be on, if it is halfway on one)
  2. Tried window.moveTo and window.open with flags "left=123,top=123" but they are always limited to the current display
  3. Tried window.resize and window.open with flags "height=123,width=123" but just as with the moveTo they are limited to the current display.

Question

What could I do to make my application use (without manual window positioning) all the available space in a multi display environment?

Scenario

Think of it like I have two projectors correctly aligned, and would like to make it possible for:

  • each project to project different things (each projector projecting its own browser window)
  • project an app seamlessly across both projectors (possibly fullscreen)

There could/should be a window running the master window layout logic

Note

I can use any flags, app or kiosk mode, as again: we deploy the app to the target environment.

The browser options are Chrome(preferred), Chromium, and Firefox on a Windows platform (because of the special video card we will be using for 5 displays).

Fallback solution

Manually stretch a window across available displays and run the apps in iframes within this master window.

Drawback: A single process is running everything, so should an app break within a frame it breaks everything.

Afterword

Also a solution to this question would be a great help as well: Windows / Chrome / ATI / Browser fullscreen across multiple monitors


Solution

  • Go with a chrome/firefox extension that has access to window/tabs specific APIs. Either embed your whole application in the extension or communicate with the extension through messages (chrome, there's an equivalent on firefox).

    Support in Chrome is experimental.