解决方案

解决方案

我正在运行最新的 Raspbian,它使用LXDEOpenbox,并且我想将 2 个离散输出视为 1。当我单击最大化或全屏时,我希望应用程序跨越两个显示器。

最终我将以自动化的方式使用它chromium-browser --kiosk,因此手动在两个屏幕上拖动应用程序不是一种选择。我还希望能够灵活地使用不同的程序,因此chromium不需要特定的命令行选项。

我试图开始Compiz工作,因为我看到了一个关于如何让它跨越 2 个输出并将它们视为 1 个显示器的教程,但我似乎无法让它运行。compiz --replace丢弃我的窗口装饰并抛出一些警告(见下文),并且在我这样做之前我无法使用桌面openbox --replace。无论如何,我不确定我是否想要一个像合成窗口管理器一样繁重的解决方案——尽管在这一点上我会采取一切我能做的工作。

顺便说一句,有一个Xinerama关于那里的过时信息。

我对任何能够实现能够运行chromium-browser --kiosk并让一个窗口横跨两个显示器的目标的选项持开放态度。

pi@raspberrypi:~ $ xrandr
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 7680 x 7680
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080     60.00*+  60.00    50.00    59.94  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1280x720      60.00    60.00    50.00    59.94  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00    50.00  
   720x480       60.00    60.00    59.94    59.94    59.94  
   640x480       75.00    60.00    59.94    59.94  
   720x400       70.08  
HDMI-2 connected 1920x1080+1920+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080     60.00*+  60.00    50.00    59.94  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1280x720      60.00    60.00    50.00    59.94  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00    50.00  
   720x480       60.00    60.00    59.94    59.94    59.94  
   640x480       75.00    60.00    59.94    59.94  
   720x400       70.08  
pi@raspberrypi:/etc/X11/openbox $ compiz --replace

(process:10097): dbind-WARNING **: 22:08:01.498: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

(process:10097): dbind-WARNING **: 22:08:01.500: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
dbus[10097]: arguments to dbus_connection_get_data() were incorrect, assertion "connection != NULL" failed in file ../../../dbus/dbus-connection.c line 6080.
This is normally a bug in some application using the D-Bus library.

  D-Bus not built with -rdynamic so unable to print a backtrace
Aborted

答案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

争论--kiosk的焦点是摆脱地址栏等chromium-browser。这sleep是为了确保窗口有时间显示。前两wmctrl行从窗口中删除最大化和全屏属性(并且不能合并,因为wmctrl只允许您同时删除“最多两个窗口属性”)。最终的wmctrl工作实际上是移动窗口。g,x,y,w,h是参数(g是重力)。 3840x1080 覆盖了我的两个 1920x1080 并排显示器,其中一个 Chromium 浏览器在 kiosk 模式下运行。

已测试

这适用于当前版本的 Raspbian:

Raspbian Buster with desktop
Image with desktop based on Debian Buster
Version:July 2019
Release date:2019-07-10
Kernel version:4.19
Size: 1149 MB
SHA-256:6a1a5f20329e580d5161a0255b3d4163db6f56c3997e1c3b36bdd51140bd768e

相关内容