ฟิลด์ StartupWMClass ของไฟล์ .desktop แสดงถึงอะไร


69

ฉันกำลังทำงานกับไฟล์ . 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ข้อมูลของไฟล์นี้แทน?

คำตอบ:


94

สภาพแวดล้อมเดสก์ท็อป Linux สมัยใหม่ (Gnome 3, Ubuntu Unity, Docky) ใช้WMClassคุณสมบัติเพื่อเชื่อมโยง windows กับแอปพลิเคชันที่เป็นเจ้าของ แอปพลิเคชันที่ใช้ Java จำนวนมากมีปัญหาที่หน้าต่างที่สร้างขึ้นโดยแอปพลิเคชันไม่เกี่ยวข้องกับทางลัดที่ใช้ในการเริ่มต้นแอปพลิเคชัน (เพื่อให้ Dock มีไอคอนสำเนาเดียวกันหลายชุด)

ดังนั้นฟิลด์ที่เรียกว่าStartupWMClassเป็นสตริงที่กำหนดว่าคลาสใดที่แอปพลิเคชันถูกจัดกลุ่มใน Unity Launcher เมื่อเริ่มต้น

คุณสามารถค้นหาว่าWM_CLASSหน้าต่างของคุณมีอะไรบ้างเมื่อคุณพิมพ์เทอร์มินัล:

xprop WM_CLASS

จากนั้นคลิกที่หน้าต่าง ในกรณีของเทอร์มินัล gnome เอาต์พุตจะเป็นดังนี้:

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

ดังนั้นหน้าต่างทั้งหมดที่มีWM_CLASS"gnome-terminal" และ "Gnome-terminal" จะถูกจัดกลุ่มเข้าด้วยกัน


3
ผมพบว่ามีประโยชน์ในการเชื่อมโยงไปยังหน้าอย่างเป็นทางการรายละเอียด freedesktop แม้ว่ามันจะไม่เพิ่มข้อมูลจำนวนมาก: standards.freedesktop.org/desktop-entry-spec/latest/...
Pisu

1
มากกว่าคำตอบ: อย่าใช้อัญประกาศในค่าของไฟล์เดสก์ท็อป
โจ๊ก
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.