Visual Studio Code打开文件对话框在后台打开

9
我发现有多个讨论抱怨VSCode的OpenFile对话框窗口在后台打开,因此需要使用鼠标指针将其提起,这有点烦人,但没有找到解决方案。 这是一个bug还是不愉快的特性? 有任何解决方法吗?
我正在使用。
Version: 1.71.2
Commit: 74b1f979648cc44d385a2286793c226e611f59e7
Date: 2022-09-14T21:12:14.256Z
Electron: 19.0.12
Chromium: 102.0.5005.167
Node.js: 16.14.2
V8: 10.2.154.15-electron.0
OS: Linux x64 5.15.0-48-generic
Sandboxed: No

在Ubuntu 20.04上。

这是最让人烦恼的问题。而且这只出现在本地编辑上。远程编辑使用菜单。我认为一个好的解决方法是让 vscode 总是使用菜单而不是系统对话框。 - Peter Moore
4
实际上,我找到了解决方法 设置 -> 文件对话框 -> 点击启用简单对话框。这只是打开菜单文件对话框。 - Peter Moore
6个回答

6
我使用的解决方法是这样的。VSCode打开本地文件编辑对话框,但对于远程文件编辑,则使用简单菜单。因此,我只需将VSCode始终设置为使用简单菜单即可。
我只需设置以下设置:文件 -> 简单对话框 = true

enter image description here


1
对于那些直接使用JSON文件而不是用户界面的人来说,这是你要找的代码行:"files.simpleDialog.enable": true - undefined

4

我将三个解决方法(包括来自 Vladimir Ulianitsky的解决方法)合并为一个答案,解决了我在VSCode Chrome浏览器和Typora应用程序中遇到的问题。对于我来说,这三个都是必要的,以解决我的程序问题。

在此页面中缺少的一个针对VScode的解决方法是安装GNOME扩展"Grand Theft Focus",以便将焦点放在Visual Studio Code的对话框窗口上。

这里是完整的三个解决方法答案链接。


感谢您的回答,我明白这个令人烦恼的Chrome打开文件对话框错误几乎是相同的。因此,我修改了我的devilspie2配置: if (get_application_name() == 'xdg-desktop-portal-gnome' and get_window_type() == 'WINDOW_TYPE_DIALOG') then focus_window() center(); end 我选择了get_window_type,因为get_window_role()为空。 - vladimir ulianitsky
顺便说一下,这个扩展会破坏Telegram桌面版的通知。 - vladimir ulianitsky

4

我想出了如何使用this instruction创建一个解决办法。

我创建了一个文件~/.config/devilspie2/code.lua,其内容如下:

if (get_application_name() == 'code' and get_window_role() == 'GtkFileChooserDialog') then focus_window() center(); end

谢谢。这是我在一年多时间里找到的唯一可行的解决方案。 对于沉默了一年的问题,vscode应该感到羞耻。 - Manel R. Doménech

2

这是一个上游问题,我也面临同样的问题。我所知道的最好的解决方案是将 vscode 从 v1.71.2 降级到 v1.67.2

截至目前,还没有任何修复措施,如此处所述:这里


2
如果你使用的是GNOME桌面环境,尝试安装并启用下面的扩展。 Grand Theft Focus

1
更快、更简便的工作解决方案在Manjaro 11/2023中。 - undefined

0

另一种在 Ubuntu 20.04 上运行最新版本 1.72.2 并在前景中使用 openFile 对话框(到目前为止该错误仍未修复)的解决方法是在运行 vscode 时添加环境变量 GTK_USE_PORTAL=1,在 Bash 中键入:

> GTK_USE_PORTAL=1 code

此外,您可以创建一个新的桌面启动器,并将其添加到任务栏中,在~/.local/share/application/vscode.desktop中:

[Desktop Entry]
Name=VSCode
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=env GTK_USE_PORTAL=1 /usr/share/code/code --unity-launch %F
Icon=com.visualstudio.code
Type=Application
StartupNotify=false
StartupWMClass=Code
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-code-workspace;
Actions=new-empty-window;
Keywords=vscode;

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=env GTK_USE_PORTAL=1 /usr/share/code/code --new-window %F
Icon=com.visualstudio.code

1
这对我不起作用。一如既往,vscode启动后的初始打开对话框将会在前面,但之后它总是在后台打开。这是vscode中最让人烦恼的事情,因为你必须多次使用鼠标才能打开文件。 - Peter Moore

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接