覆盖 VSCode .desktop 文件会导致停靠产生单独的图标

覆盖 VSCode .desktop 文件会导致停靠产生单独的图标

我使用带有默认 GNOME 的 Ubutnu 22.04,并且我的 VSCode 是从官方 APT repo 安装的。

为了永久启用 Wayland 渲染,我将原始文件code.desktopcode-url-handler.desktop文件从复制/usr/share/applications.local/share/applications并更改Exec部分以将附加命令行参数传递给 vscode 二进制文件。

[Desktop Entry]
Name=Visual Studio Code
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/share/code/code --enable-features=UseOzonePlatform --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto --unity-launch %F
Icon=vscode
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=/usr/share/code/code --enable-features=UseOzonePlatform --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto --new-window %F
Icon=vscode

(这是我的code.desktop文件的内容):

现在,如果我从系统菜单运行 VSCode,它可以工作,但出于某种原因,停靠图标上下文菜单中没有“添加到收藏夹”按钮。如果我从系统菜单本身添加它,它可以工作,但在我运行它时会产生单独的停靠图标(附有屏幕截图)。

ubuntu dock 中的错误

我可以使用覆盖的桌面文件以某种方式恢复原始行为吗?

答案1

您只需要在 .desktop 文件中将 StartupWMClass 更改为 code-url-handler。

[Desktop Entry]
Name=Visual Studio Code
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/share/code/code --enable-features=UseOzonePlatform --ozone-platform=wayland --unity-launch %F
Icon=vscode
Type=Application
StartupNotify=false
StartupWMClass=code-url-handler
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-code-workspace;
Keywords=vscode;

相关内容