我正在 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 现在再次像信息亭一样。
希望这对某人有帮助。