微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ElectronJS 应用程序在多个 X11 显示器上有多个显示器

如何解决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 举报,一经查实,本站将立刻删除。