gpt4 book ai didi

archlinux - Plank Dock - 错误的图标/wmclass

转载 作者:行者123 更新时间:2023-12-05 02:00:28 25 4
gpt4 key购买 nike

我的平板支撑有问题。不幸的是,我在 stackoverflow 或其他任何地方都找不到任何条目来解决我的问题。因此,我决定在这里提出一个新问题。

我的问题:

一些应用程序(.desktop 文件)在 plank dock 上显示错误的图标。不仅如此,它还会链接到错误的应用程序。例如 Visual Studio Code 。如果我运行代码(终端或阿尔伯特),那么电子图标会出现在 plank dock 上,但如果我缩小(gnome 40),正确的图标会显示在 vs 代码窗口中。这里是截图: Screenshot of plank and vs code

如果我使用鼠标中键启动一个新窗口,则会出现一个电子窗口,而不是第二个 vs 代码。

问题:

如何解决这个问题?有解决方法吗?

最佳答案

我在 arch linux 中遇到了同样的问题。不幸的是,我找到的解决方案只是临时的(除非他们修复了 the bug ),但只要您每次更新 vs 代码时重新实现它,它就可以工作

  1. 从木板上删除电子发射器。
  2. 将桌面文件中的 StartupWMClass 值更改为 code-oss。这是每次升级到 vs code 时都必须重复的步骤。
  3. 运行 vs code,然后使用“Keep in Dock”将启动器保持在 plank 中。

/usr/share/applications/code-oss.desktop

[Desktop Entry]
Name=Code - OSS
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/bin/code-oss --no-sandbox --unity-launch %F
Icon=com.visualstudio.code.oss
Type=Application
StartupNotify=false
StartupWMClass=code-oss
Categories=Utility;TextEditor;Development;IDE;
MimeType=text/plain;application/x-code-oss-workspace;
Actions=new-empty-window;
Keywords=vscode;

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/bin/code-oss --no-sandbox --new-window %F
Icon=com.visualstudio.code.oss

处理升级

任何时候升级 vs code,桌面文件都可能会重置 StartupWMClass。您有几个选择。

  1. 每次 vs 代码升级时更改桌面文件。您可以编写脚本并在每次系统升级后自动运行它。这是一个基本示例:

~/.bashrc

my_upgrade() {
sudo pacman -Syu
sudo sed -i 's/^StartupWMClass.*/StartupWMClass=code-oss/g' /usr/share/applications/code-oss.desktop
}

或者,您可以添加一个 pacman Hook 以在 pacman 本身内自动执行此操作,这样您就不需要 pacman 的自定义包装器(来源 tdy):

/etc/pacman.d/hooks/code-oss-desktop.hook

[Trigger]
Operation = Install
Operation = Upgrade
Type = Package
Target = code

[Action]
Depends = sed
Depends = sudo
When = PostTransaction
Exec = /bin/bash -c '/usr/bin/sudo /usr/bin/sed -i "s/^StartupWMClass.*/StartupWMClass=code-oss/g" /usr/share/applications/code-oss.desktop'
  1. 卸载 code 并为 vs code 创建您自己的 PKGBUILD 以修补此问题并确保它跟踪升级。有几种方法可以解决这个问题,但它可能会变得复杂,并且可能不在这个答案的范围内。
  2. 阻止对 code 的升级,以免意外重置,并在您准备好解决问题时定期显式升级包。

/etc/pacman.conf

...
IgnorePkg = code
...

关于archlinux - Plank Dock - 错误的图标/wmclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67325874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com