我有一个单显示器系统,我想测试为多显示器设计的 xmonad 配置。有没有办法使用 Xephyr 之类的工具模拟一个有 3 个显示器的系统来测试我的配置?
答案1
我使用 Xephyr 和 Xdmx 找到了解决方案
首先创建 Xephyr 显示器
Xephyr -screen 1920x1080 -ac :1
Xephyr -screen 1920x1080 -ac :2
Xephyr -screen 1920x1080 -ac :3
这将创建 3 个 1920x1080 的窗口,每个窗口将充当显示器
接下来将 xinerama 层添加到这些虚拟显示器上
Xdmx +xinerama -xinput local -display :1 -display :2 -display :3 -ac :4
接下来创建一个新的终端并启动你的窗口管理器或应用程序,如下所示
DISPLAY=:4.0
xmonad
或者如果您只是想测试应用程序的 xinerama 支持,而不是xmonad
您可以运行xterm
或thunar
。
答案2
您只需要一个 Xephyr 实例。
Xephyr +xinerama -screen 1920x1080 -screen 1920x1080 -screen 1920x1080 -ac :1
如果需要 RANDR 扩展,请添加+extension RANDR
参数。
Xephyr +extension RANDR +xinerama -screen 1920x1080 -screen 1920x1080 -screen 1920x1080 -ac :1
答案3
这对我有用:
Xephyr +xinerama +extension RANDR -screen 800x600+0+0 -screen 800x600+800+0 -ac :1
虽然DISPLAY=:1 xrandr
仍然只返回一个屏幕,但我的 C 应用程序调用XineramaQueryScreens(dpy, &new_num_mons);
给了我正确的几何形状。
答案4
虽然这回答了问题,但这并不是一个全面的解决方案。这些解决方案将三个屏幕放在水平行中(至少根据 xinerama ( xdpyinfo -ext XINERAMA -display :1
) 的说法,实际的窗口位置将由窗口管理器负责)。如果您想将屏幕放置在其他位置,这将无济于事。