如何解决ElectronJS 应用程序在多个 X11 显示器上有多个显示器
我开发了一个 Electronjs 应用,它在启动时会在每个可用的显示器上打开一个 browserWindow
。只要所有显示器都配置在同一显示器 (display 0
) 上,它就可以正常工作。
如果我将某些监视器配置为 display 0
,而将其他一些监视器配置为 display 1
,则应用程序看不到后者,而 browserWindow
仅为前者创建。
我搜索了文档,但没有找到任何关于如何管理多显示器配置(或者它是否不受支持)的信息。
是否有任何选项(或解决方法)允许应用查看 display 1
监视器?
解决方法
TL;DR:X11 并非设计为以这种方式工作。
如 this answer over at Unix & Linux SE 所示,每个 X 服务器仅支持一个显示器。因此,您必须生成多个 X 服务器才能获得多个显示——并且明确指定要使用的设备是有问题的,因为我的 X11 配置文件有免责声明,例如“已知有多个 Device
部分是有问题的" 链接到此 bug at X11's bugtracker。
此外,环境变量 DISPLAY
确定应用程序将使用哪个 X 显示。在您选择的 shell 中尝试 echo $DISPLAY
;它很可能会输出 :0
,即显示 0。在运行时,X11 应用程序不能决定它想要与另一个 X 服务器通信,因为它无法确定是否存在另一个 X 服务器(或显示到哪个显示地址它会听)。它只知道(来自DISPLAY
)它应该与哪一个交谈。
要说明的另一点是,您不能在不花大力气的情况下跨多个 X 服务器运行相同的桌面会话(请参阅上面链接的答案)。此外,我不认为这在所有桌面环境中都是可行的,例如 KDE Plasma 绑定到一个特定的 X 服务器(以便能够处理它自己的一组监视器配置)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。