.desktop 文件的 StartupWMClass 字段代表什么?

And*_*ili 94 .desktop

我正在处理这个预先存在的.desktop文件,我有一个疑问:

文件内容为:

[Desktop Entry]
#Icon=connect-data-space
Icon=XCloud
Categories=Utility;
Type=Application
#Exec=/usr/share/ConnectDataSpace/appl/launcher.sh
Exec=/usr/share/XCloud/appl/launcher.sh
Name[en_US]=Connect Data Space
#Name=Connect Data Space
Name=XCloud
Comment[en_US]=
Comment=
StartupNotify=true
Terminal=false
OnlyShowIn=GNOME;Unity;
StartupWMClass=ConnectDataSpace
Actions=CheckUpgrade

[Desktop Action CheckUpgrade]
Name=Verifica Aggiornamenti
#Exec=java -jar /usr/share/ConnectDataSpace/appl/lib/shellExtBridge.jar -checkupgrade
Exec=java -jar /usr/share/XCloud/appl/lib/shellExtBridge.jar -checkupgrade
OnlyShowIn=GNOME;Unity;
Run Code Online (Sandbox Code Playgroud)

这个文件的StartupWMClass字段到底代表什么?

cha*_*aos 137

现代 Linux 桌面环境(Gnome 3、Ubuntu Unity、Docky)使用该WMClass属性将窗口与拥有的应用程序相关联。许多基于 Java 的应用程序存在一个问题,即应用程序创建的窗口与用于启动应用程序的快捷方式无关(因此 Dock 包含同一图标的多个副本)。

所以被调用的字段StartupWMClass是一个字符串,它定义了应用程序在启动时在 Unity Launcher 中的分组。

WM_CLASS当您输入终端时,您可以找出您的窗口有哪些:

xprop WM_CLASS
Run Code Online (Sandbox Code Playgroud)

然后点击窗口。在 gnome 终端的情况下,输出如下:

WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
Run Code Online (Sandbox Code Playgroud)

因此,所有带有WM_CLASS“gnome-terminal”和“Gnome-terminal”的窗口都组合在一起。

  • 我发现链接到 FreeDesktop 官方规范页面很有用,尽管它没有添加很多信息:http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html (7认同)
  • 更多答案:不要在桌面文件的值中使用引号。 (2认同)
  • 另请注意,这是 X11 概念。Ubuntu 22+ 默认使用 Wayland,它实际上并没有使用 `WM_CLASS`,所以不确定这个设置是否会产生任何影响。 (2认同)

小智 7

在使用 Wayland 的较新系统上,xprop工具将不再工作。

如果您使用的是 GNOME Shell,则可以使用内置工具Looking Glass

Alt+ F2,键入lg并按Enter。在右上角面板中,选择“Windows”。

WM_CLASS 将显示在该wmclass键下方。

例如: 在此输入图像描述