Giter VIP home page Giter VIP logo

multibrowse's Introduction

Multibrowse: Multi-Monitor Kiosk Mode

Utility to open several full-screen browser windows onto multiple monitor setups.

Browser is currently set to Google Chrome, but can be adapted to use any browser.

Supported platforms: Windows(7/8/10)/Linux/MacOS(x86/arm64)

Installation

Installing with a package manager is recommended.

Chocolatey

choco install multibrowse

Manual Installation

Binaries can be found on the releases page. To build yourself, see below.

Additional Requirements (Linux)

On linux, xrandr is used to find display configuration and must be available on PATH.

To install:

  • Install with Apt: apt install lxrandr
  • Install with Pacman: pacman -S xorg-xrandr

Usage

Open http://ivo.la on display 1 and http://bbc.com on display 2

multibrowse http://ivo.la http://bbc.com

Open http://ivo.la on display 1 and http://bbc.com on display 3

multibrowse http://ivo.la - http://bbc.com

To exit windows opened in fullscreen, use:

  • Mac: โŒ˜-Q
  • Windows/Linux: Alt-F4

Display Order

Displays are ordered according to their x/y position from left to right, then top to bottom. Top-left display is always display #1.

Additional Options

Additional CLI options passed to the multibrowse binary will be delegated to the browser instance. Check out the wiki page for common options.

Development

Requirements

  • Rust

Running

cargo run

Building

cargo build --release

License

MIT

multibrowse's People

Contributors

foxxyz avatar hkozachkov avatar kylemcdonald avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

multibrowse's Issues

Displays should be sorted by x/y to combat Windows display reordering

Windows seems to have a tendency to occasionally update display identities, even when a display configuration has not changed, causing the user to change the specified order when invoking multibrowse. This can be quite annoying.

It might be a better approach to sort the displays by ascending x and y values, so that even if Windows assigns different identities to the displays, provided they are in the same spatial configuration, the invocation order will remain the same.

Allow passing of custom flags to browser binary

Sometimes you might want to add additional flags to the invocation of Chrome, but multibrowse has a hardcoded list of flags and currently does not allow this.

Ideally, one would invoke it as follows:

multibrowse.exe --ui-disable-zero-copy http://url1.com http://url2.com

However, the argument order shouldn't matter.

This would also make it possible to override any of the flags already present in multibrowse.

displays sorted error

Hello there,

When trying to use your multibrowse program on Ubuntu we get the traceback following :

Multibrowse v2.0.0
Traceback (most recent call last):
File "multibrowse.py", line 34, in
displays = sorted(sorted(platform.displays, key=itemgetter('x')), key=itemgetter('y'))
File "systems/linux.py", line 32, in displays
display = {k: int(v) for k, v in matches.groupdict().items()}
AttributeError: 'NoneType' object has no attribute 'groupdict'
[8330] Failed to execute script multibrowse

Do you have any idea ?

Thank a lot

Open URLS with login, and bypass cookies

Hi,

Let me start off with what an amazing tool!

I see that the script should support Chromimum, where should I add --ignore-certificate-errors-spki-list
Could it also be possible to support login to a dashboard, with username & password.

Cookies

Thanks for creating this...much appreciated.

Basically, I have 2 issues:

  1. when launching, it never remembers any previous selections we store in cookies.

  2. I need all the browser windows we open to be able to share cookies (same site)

Is this possible? I'm assuming there's a way to assign a profile at launch, but I'm not seeing it.

Thanks for your help!

Support Chromium on Linux

We should prefer the chromium-browser/chromium binary on Linux if available and use google-chrome-stable/google-chrome as a fallback.

Problem when execute from remote.

Hi, in local machine everything works fine, but when i try to execute the program from a ssh connection i get this error.

Multibrowse v2.1.0
Can't open display
Traceback (most recent call last):
File "/home/pi/Desktop/multibrowse/multibrowse.py", line 34, in
displays = sorted(sorted(platform.displays, key=itemgetter('x')), key=itemgetter('y'))
File "/home/pi/Desktop/multibrowse/systems/linux.py", line 29, in displays
for idx, line in enumerate(check_output(['xrandr']).decode('utf8').split('\n')):
File "/usr/lib/python3.9/subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "/usr/lib/python3.9/subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['xrandr']' returned non-zero exit status 1.

There is any way to fix it?

Thanks and amazing program!

open urls with login pages

Hi,
it's possible to configure this system to open webpages that requires login and pass this credentials somehow?

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.