.desktopファイルのStartupWMClassフィールドは何を表していますか?

Oct 28 2013

私はこの既存の.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;

このファイルのStartupWMClassフィールドは正確に何を表していますか?

回答

118 chaos Oct 29 2013 at 12:51

最新のLinuxデスクトップ環境(Gnome 3、Ubuntu Unity、Docky)は、WMClassプロパティを使用してウィンドウを所有するアプリケーションに関連付けます。多くのJavaベースのアプリケーションには、アプリケーションによって作成されたウィンドウが、アプリケーションの起動に使用されるショートカットに関連付けられていないという問題があります(したがって、ドックには同じアイコンの複数のコピーが含まれます)。

したがって、呼び出されるフィールドStartupWMClassは、起動時にアプリケーションがUnityLauncherでグループ化されるクラスを定義する文字列です。

WM_CLASSターミナルに入力すると、ウィンドウにどのウィンドウがあるかがわかります。

xprop WM_CLASS

次に、ウィンドウをクリックします。gnomeターミナルの場合、出力は次のようになります。

WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"

したがって、WM_CLASS「gnome-terminal」と「Gnome-terminal」のあるすべてのウィンドウがグループ化されます。