我正在开发将在带有两个监视器(垂直设置)的终端上运行的网络应用程序。在终端上安装了 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。
任何解决方案或解决方法表示赞赏