如何在 Plasma 任务切换器中更改应用程序的图标?

如何在 Plasma 任务切换器中更改应用程序的图标?

我使用的是带有 KDE Plasma 桌面环境的 Ubuntu 22.04。我下载了 Obsidian 个人 wiki 作为 AppImage,并为其添加了菜单项并.desktop在 中创建了一个文件~/.local/share/applications/

创建菜单项时,我添加了 Obsidian 徽标作为应用程序的图标。在菜单和任务栏中,Obsidian 会显示此图标。然而,在 Alt+Tab 任务切换器中,它显示为一个我认为是“占位符”图标的灰色方块,上面有一个黑色“X”,周围有一个黄色/橙色赤道环。

如果我右键单击菜单中的应用程序并选择“编辑应用程序”,图标选择小部件将显示正确的图标。该.desktop文件有以下行来定义图标:

Icon=/home/username/icons/Obsidian.png

我确信这一行是正确的,因为如果我将其更改为其他任何内容(例如Icon=~/icons/Obsidian.png),菜单将不再显示 Obsidian 的图标(而只是空白区域)。但是,出于某种原因,任务切换器不会从该文件中获取图标。

我正在使用“MediumDefault”任务切换器。如何配置它才能为给定的应用程序使用正确的图标文件?

编辑:更多

根据 @vanadium 的回答,我发现xprop这是他们提到的唯一一个我已经拥有的工具。我用它来查找WM_CLASS(STRING) = "obsidian", "obsidian"。(要使用它,请xprop在终端中运行,然后单击所需信息的窗口)。

~/.local/share/applications/Obsidian.desktop我在StartupWMClass末尾添加了一行,然后依次尝试了以下每种形式:

  • StartupWMClass="黑曜石", "黑曜石"
  • StartupWMClass="黑曜石"
  • StartupWMClass=黑曜石

然而,在保存文件后,它们都没有导致 Obsidian 图标取代任务切换器中的占位符图标。

答案1

桌面无法将桌面启动器与最终进程连接起来。要解决此问题,您需要在桌面文件中指定 Obsidian 窗口的 WMClass。

  1. wmctrl -lx使用或xprop(仅适用于 Xorg)或使用 Gnome Shell 镜子(按 Alt+F2,输入lg然后按 Enter 并前往“Windows”选项卡以查看列出的打开窗口的属性)确定窗口的 WMClass 。

  2. 在桌面启动器中添加一行来指定 WMClass

    StartupWMClass=<windowclass>
    

    <windowclass>其中,您在步骤 1 中找到的值是,例如obsidian

相关内容