Apa yang diwakili oleh bidang StartupWMClass dari file .desktop?

Oct 28 2013

Saya sedang mengerjakan file .desktop yang sudah ada ini dan saya ragu:

Isi file adalah:

[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;

Apa sebenarnya yang diwakili oleh bidang StartupWMClass dari file ini?

Jawaban

118 chaos Oct 29 2013 at 12:51

Lingkungan desktop Linux modern (Gnome 3, Ubuntu Unity, Docky) menggunakan WMClassproperti untuk mengaitkan jendela dengan aplikasi pemilik. Banyak aplikasi berbasis Java memiliki masalah di mana jendela yang dibuat oleh aplikasi tidak terkait dengan pintasan yang digunakan untuk memulai aplikasi (jadi dok berisi banyak salinan dari ikon yang sama).

Jadi bidang yang dipanggil StartupWMClassadalah string yang menentukan di kelas mana aplikasi dikelompokkan dalam Unity Launcher saat startup.

Anda dapat mengetahui WM_CLASSjendela mana yang didapat saat Anda mengetik di terminal:

xprop WM_CLASS

lalu klik di jendela. Dalam kasus terminal gnome, hasilnya adalah sebagai berikut:

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

Jadi semua jendela dengan WM_CLASS"gnome-terminal" dan "Gnome-terminal" dikelompokkan bersama.