Coder Social home page Coder Social logo

Add multi-display support about kiosk HOT 11 OPEN

lookitscook avatar lookitscook commented on May 18, 2024
Add multi-display support

from kiosk.

Comments (11)

thedittmer avatar thedittmer commented on May 18, 2024

I'm using Kiosk with dual monitors to display digital signage. The primary display on the left is the Kiosk window and the secondary screen on the right is a full screen browser window. At this point I'm using Kiosk basically just to keep the chromebox from going to sleep. In this video it's actually just displaying two browser windows full screen, but I installed the Kiosk app after I made the video.
https://www.youtube.com/watch?v=JBBq-hSOWjc

from kiosk.

matt-cook avatar matt-cook commented on May 18, 2024

One option is to use hardware compatible with NVIDIA Mosaic: http://www.nvidia.com/object/nvidia-mosaic-technology.html

from kiosk.

matt-cook avatar matt-cook commented on May 18, 2024

May be possible to implement a solution for other (non-Mosaic) hardware using a combination of:

https://developer.chrome.com/apps/system_display#property-callback-displayInfo
https://developer.chrome.com/apps/app_window

from kiosk.

matt-cook avatar matt-cook commented on May 18, 2024

The simplest, most flexible solution I can think of would be set of fields under a new "Display" section:

"Window Location" (or similar wording, drop-down menu):

  • "Fullscreen: Primary Display"
  • "Fullscreen: All Screens"
  • "Fullscreen: Display 1"
  • ... "Fullscreen: Display n", (number of displays from chrome.system.display.getInfo())
  • "Custom"

If "Custom" was selected we could then conditionally show additional fields: x,y,width,height.

The core functionality that will need to be modified lives here:
https://github.com/zebradog/kiosk/blob/master/src/js/main.js#L29
and here: https://github.com/zebradog/kiosk/blob/master/src/js/browser.js#L230

Probably that should be moved to a shared.js file or similar rather than reproducing twice, a bit sloppy currently. Logic should remain the same for "Fullscreen: Primary Display" to protect existing functionality state: fullscreen will need to be removed as well as the calls to win.fullscreen() if a setting other than "Fullscreen: Primary Display" is selected.

from kiosk.

matt-cook avatar matt-cook commented on May 18, 2024

Work on this has been started by @seantrace in https://github.com/zebradog/kiosk/pull/88

from kiosk.

wvengen avatar wvengen commented on May 18, 2024

It sounds like this is about displaying a single window on a specific or all screens.
I'd be interested in showing different URLs on different screens.

from kiosk.

wvengen avatar wvengen commented on May 18, 2024

A very rough idea sketching how the setup screen could look like. Might this work?
kiosk-multi-display-mockup

With only one screen attached, something very much like the current setup screen would be shown.
The Display section would be missing for the Primary Display.

from kiosk.

wvengen avatar wvengen commented on May 18, 2024

Also, with @seantrace's PR missing now, one can find the code here.

from kiosk.

wvengen avatar wvengen commented on May 18, 2024

If I were to try implementing multi-screen functionality that would allow showing different URLs on different screens, would #88 be good to start from, or master?

from kiosk.

matt-cook avatar matt-cook commented on May 18, 2024

This issue was moved to https://discuss.kiosk.cook.company/t/add-multi-display-support/65

from kiosk.

matt-cook avatar matt-cook commented on May 18, 2024

https://cookcompany.zendesk.com/agent/tickets/532

from kiosk.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.