预检清单
- 我已阅读了此项目的 Contributing Guidelines。
- 我同意遵循此项目遵循的 Code of Conduct。
- 我在问题跟踪器中搜索了一个与我想提交的功能请求相匹配的问题,但没有成功。
问题描述
在 Linux、Atom 和 VSCode 中都出现了这个问题,但我认为 electron 本身并没有出现这个问题,我需要至少得到一个确认,这是一个应用程序实现问题,而不是核心 electron 问题。
我有一个新系统,我已将其设置为最新的 Arch 版本,并且直到今天都是最新的;但行为仍然存在。
- 使用一个使用 Wayland 的 Linux 系统,并支持 X11 模块,例如
weston -xwayland
(我不认为这是 Wayland 的问题,但这就是我正在使用的)。 - 使用 SSH 客户端登录到同一个 Linux 系统,并启用 X11 转发,使用相同的用户帐户。
- 在任一会话中启动
atom
或code
。 - 在另一个会话中启动
atom
或code
,新的会话将在第一个示例的显示上打开。
一些其他注意事项: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 时,应用程序会出现在正确的“本地”显示上。所以它至少是隔离的;我本想把这个问题当作安全问题发布...
5条答案
按热度按时间vtwuwzda1#
增强!?这是一个明显的安全漏洞!(好吧,它不是,如果没有物理访问双方的设备)实际上它是这样的...如果我使用SSH登录并在连接上首先启动atom(代码),那么每个连接本地都会在远程查看器的终端上打开。
pprl5pva2#
所以...我启动了一个桌面
weston-launch
,并在开发自己的Wayland显示驱动程序。在Linux上使用VS Code(它使用electron),我切换到了另一个虚拟控制台,开始在plasma上进行测试,在测试过程中,我发现需要做一些小改动,并尝试启动
code
。它什么都没有显示出来...然后我想起来-它可能在原始桌面上打开的,而不是新的那一个。这个连接共享真的不是一个很好的功能...electron不知怎么知道它是从第一次启动的地方打开的,而不是在我所在的地方启动一个新的。
q9rjltbz3#
没有人能提供一个解决方法吗?有没有类似于--user-data-dir(Chrome选项)的功能,我可以用来指定不与第一个登录的终端共享显示器?
哦,但实际上问题不是VS Code,而是Electron的一个功能;尽管我正在使用的特定应用程序是VS Code。
0md85ypi4#
@d3x0r 经过这么多年,这个问题有解决办法吗?紧急。
pengsaosao5#
我没有注意到,也许可以使用--user-data-dir标志?