electron 在正确的显示设备上打开(X11,多用户登录,不同的X服务器)或者始终尊重$DISPLAY

0ejtzxu1  于 2个月前  发布在  Electron
关注(0)|答案(5)|浏览(43)

预检清单

  • 我已阅读了此项目的 Contributing Guidelines
  • 我同意遵循此项目遵循的 Code of Conduct
  • 我在问题跟踪器中搜索了一个与我想提交的功能请求相匹配的问题,但没有成功。

问题描述

在 Linux、Atom 和 VSCode 中都出现了这个问题,但我认为 electron 本身并没有出现这个问题,我需要至少得到一个确认,这是一个应用程序实现问题,而不是核心 electron 问题。
我有一个新系统,我已将其设置为最新的 Arch 版本,并且直到今天都是最新的;但行为仍然存在。

  • 使用一个使用 Wayland 的 Linux 系统,并支持 X11 模块,例如 weston -xwayland(我不认为这是 Wayland 的问题,但这就是我正在使用的)。
  • 使用 SSH 客户端登录到同一个 Linux 系统,并启用 X11 转发,使用相同的用户帐户。
  • 在任一会话中启动 atomcode
  • 在另一个会话中启动 atomcode,新的会话将在第一个示例的显示上打开。

一些其他注意事项:DISPLAY=:0 在系统上的 Wayland/本地 X 服务器上;本地主机的一个。DISPLAY=:10.0 在 SSH X 转发登录上。虽然我认为如果多个系统使用相同的登录并通过 X 转发连接到每个系统,也会出现这种情况,因为它们应该有一个不同的 DISPLAY 环境设置指示它们自己的显示。
我报告了这个问题 microsoft/vscode#87498 但尚未接近 atom,但我得到了“@d3x0r 其他 electron 应用程序是否也发生这种情况?”作为第一个响应... 所以,它确实发生了。这是否意味着 electron 不是有意设计的,而是 Atom 在做的,VSCode 也继承了它?

建议的解决方案

已考虑的其他方案

其他信息

我最近买了这个系统;它是一个 AMD 1605B 无风扇盒子,配有 4 个 HDMI 输出。我打算用这样的系统做广告牌。但在开发过程中,我连接了一个 4k 投影仪(AAXA 4K1),同时我还有一个 Windows 系统,那是我的主要操作系统终端。所以,我有 SSH 连接到它以在该系统上本地编辑代码,但我也可以在舒适的椅子里躺下并进行编码(投影仪是原生的 4k,尽管黑色在白色上会消失,但白色在黑色文本上完全可读,即使在 Linux 默认控制台字体大小为 4K。我开始运行 'code .',但显示器没有显示出来... 我走到另一个地方并启动了另一个... 最终我回到了我的 Windows 终端,发现该系统上有另外三个编辑器打开,而在我启动它们的系统中没有一个。似乎有一个共享的内存区域(用户?组?系统?)共享,覆盖了当前的 DISPLAY 环境变量。
我还没有测试如果我启动...(修订). 我做了 xhost + 并能够测试在同一本地显示上启动 root 时,应用程序会出现在正确的“本地”显示上。所以它至少是隔离的;我本想把这个问题当作安全问题发布...

vtwuwzda

vtwuwzda1#

增强!?这是一个明显的安全漏洞!(好吧,它不是,如果没有物理访问双方的设备)实际上它是这样的...如果我使用SSH登录并在连接上首先启动atom(代码),那么每个连接本地都会在远程查看器的终端上打开。

pprl5pva

pprl5pva2#

所以...我启动了一个桌面weston-launch,并在开发自己的Wayland显示驱动程序。
在Linux上使用VS Code(它使用electron),我切换到了另一个虚拟控制台,开始在plasma上进行测试,在测试过程中,我发现需要做一些小改动,并尝试启动code。它什么都没有显示出来...然后我想起来-它可能在原始桌面上打开的,而不是新的那一个。
这个连接共享真的不是一个很好的功能...electron不知怎么知道它是从第一次启动的地方打开的,而不是在我所在的地方启动一个新的。

q9rjltbz

q9rjltbz3#

没有人能提供一个解决方法吗?有没有类似于--user-data-dir(Chrome选项)的功能,我可以用来指定不与第一个登录的终端共享显示器?

  1. 连接到Linux服务器,打开代码,进行工作
  2. 去另一个地方,连接到Linux服务器,尝试打开代码,记住这个“特性”使得它在错误的计算机上打开(那个回家的计算机)...关于如何解决这个问题的辩论*我想让另一个计算机保持登录状态,我猜我可以只是杀死代码并在这里启动一个新的。...
    哦,但实际上问题不是VS Code,而是Electron的一个功能;尽管我正在使用的特定应用程序是VS Code。
0md85ypi

0md85ypi4#

@d3x0r 经过这么多年,这个问题有解决办法吗?紧急。

pengsaosao

pengsaosao5#

我没有注意到,也许可以使用--user-data-dir标志?

相关问题