0

我正在开发将在带有两个监视器(垂直设置)的终端上运行的网络应用程序。在终端上安装了 linux mint。我需要在 2 个不同的显示器上打开 2 个不同的 google-chrome 实例,但在同一个会话中。

到目前为止,我已经达到了这一点:

#clear any cache from previous run of terminal
rm -rf /dev/shm/Chrome 
mkdir -p /dev/shm/Chrome 

export DISPLAY=:0.0
exec /usr/bin/google-chrome \
    --display=":0.0" \
    --new-window \
    --no-sandbox \
    --disable-setuid-sandbox \
    --start-maximized \
    --kiosk-printing \
    --start-fullscreen \
    --user-data-dir=/dev/shm/Chrome \
    --no-first-run \
    'http://google.com/'

第二个脚本

#second instance started in different place

export DISPLAY=:0.1
exec /usr/bin/google-chrome \
    --display=":0.1" \
    --new-window \
    --no-sandbox \
    --disable-setuid-sandbox \
    --start-maximized \
    --kiosk-printing \
    --start-fullscreen \
    --user-data-dir=/dev/shm/Chrome \
    --no-first-run \
    'http://google.com/'

它确实:打开两个不同的谷歌浏览器窗口并全屏打开它们。

但是,如果他们共享配置文件(在本例中为 --user-data-dir=/dev/shm/Chrome),他们将在同一显示器上打开。

如果它们是不同的文件夹,那么它们将在不同的监视器上打开,但它们不会共享相同的会话,我确实需要进一步开发。我打算使用广播频道 api,示例可以在这里找到:https ://github.com/irekrog/broadcast-channel-api-simple-example 。如果 Chrome 不共享会话,则无法与广播频道通信。

注意:还有标签 --window-position=X,Y 似乎不起作用,如果它们在同一个会话中,只会破坏一切

Windows有这个问题的克隆:How to open two instances of Chrome kiosk mode in different display (Windows)但我需要linux的解决方案,我不相信我可以像那里接受的答案那样访问 WinApi。

任何解决方案或解决方法表示赞赏

4

0 回答 0