跨双显示器的 Chrom 信息亭模式

跨双显示器的 Chrom 信息亭模式

我正在 raspberrypi 4 上运行最新的 Raspbian,并配有 2 个 HDMI 触摸屏显示器。我的目标是让一个 Chromium 页面在两个屏幕上全屏打开。

我尝试了这里发布的解决方案: 在 Raspbian 中将 2 个显示器视为 1 个显示器

又名: https://gist.github.com/eslindsey/70bbc0080e335b38836fab09d19686d0

该要点允许您提供任意命令(和可选参数),并自动检测创建的​​窗口和屏幕尺寸。

概念

    chromium-browser --kiosk <url> &
    sleep 5
    wmctrl -r Chromium -b remove,fullscreen
    wmctrl -r Chromium -b remove,maximized_vert,maximized_horz
    wmctrl -r Chromium -e 0,0,0,3840,1080

Chromium 窗口确实会调整大小以填充两个屏幕的宽度,但顶部的最小化/最大化/关闭工具栏已重新打开,从而破坏了信息亭模式的要点。有没有人有这方面的经验?

答案1

我花了几个小时的研究和尝试才找到解决方案。在我用鼠标调整窗口大小一次之后,使用 wmctrl 调整窗口大小才起作用,因此不适合无鼠标和键盘的设置。此外,我是否想实现真正的全屏模式以获得最佳的信息亭式体验。这就是它最终对我有用的方式:

首先将第二个显示器设置为克隆模式,以便它克隆第一个显示器(在我的例子中是 Raspberry Pi 4 HDMI-1 和 HDMI-2):

xrandr --output HDMI-2 --same-as HDMI-1

接下来确定您的屏幕尺寸:

xrandr

这将为您提供已连接屏幕及其分辨率的列表。然后,您必须通过将所有显示器相加来计算出它们的总屏幕尺寸。我连接了两个 1280x1024 显示器,因此我的总屏幕尺寸为 2560x1024。由于 xrandr 不允许我们通过标志设置大于显示器本身的屏幕尺寸--fb,因此我们使用以下--panning选项:

xrandr --output HDMI-1 --panning 2560x1024+0+0/0x0+0+0/0/0/0/0

这会设置更大的屏幕,但仅在监视器 1 上显示一部分。它还会禁用鼠标平移,因为我们希望监视器 2 显示图像的其余部分。最后,我们必须将显示器 2 平移到大屏幕的右半部分:

xrandr --output HDMI-2 --pos 1280x0

1280 是监视器 1 的末尾。

您现在可以将这三个命令放入自动启动中,以便在启动时启用它们。

最后一些评论:

如果您正在使用 SSH 会话,则必须DISPLAY=:0在 xrandr 命令的开头添加(例如DISPLAY=:0 xrandr --output HDMI-2 --same-as HDMI-1)。

当您想要实现类似视频墙的外观时,您可以通过放大虚拟屏幕轻松实现边框补偿。就我而言,显示器的边框大约为 64 像素厚,因此您可以将显示器 1 上的输出设置为 2624,而不是 2560。然后,您将第二台显示器设置为从 pos 1344x0 开始,留下 64 像素不显示。

有帮助的链接:

https://bbs.archlinux.org/viewtopic.php?id=214841 http://www.straightrunning.com/tools/xrandr.html#sect3 http://www.mshopf.de/pub/Fosdem_2009_randr13_Slides.pdf 在 Raspbian 中将 2 个显示器视为 1 个显示器

祝你好运!

答案2

我看到这篇文章试图做同样的事情。经过一番争论后,这个过程让我在 kiosk 模式下看到了一个跨越 Chromium 窗口的两个显示器:

chromium --kiosk http://localhost:1337
wmctrl -r Chromium -b remove,fullscreen
wmctrl -r Chromium -e 0,0,0,1600,1280

标签栏仍然在那里,我发现(偶然)右键单击它会弹出“Undecorate”选项,它再次模仿信息亭模式。

我找到了这个“toggle-decorations”命令行工具: https://gist.github.com/cat-in-136/96ee8e96e81e0cc763d085ed697fe193

./toggle-decorations $(wmctrl -lx | grep -E "Chromium" | grep -oE "0x[0-9a-z]{8}")

Chromium 现在再次像信息亭一样。

希望这对某人有帮助。

相关内容