我使用的是带有 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。
wmctrl -lx
使用或xprop
(仅适用于 Xorg)或使用 Gnome Shell 镜子(按 Alt+F2,输入lg
然后按 Enter 并前往“Windows”选项卡以查看列出的打开窗口的属性)确定窗口的 WMClass 。在桌面启动器中添加一行来指定 WMClass
StartupWMClass=<windowclass>
<windowclass>
其中,您在步骤 1 中找到的值是,例如obsidian
。