ซิงโครไนซ์ไอคอนระหว่าง. desktop และ dock
ฉันสร้างรายการ. desktop แบบกำหนดเองในโฮมไดเร็กทอรีของ~/.local/share/applications/startMyApp.desktopฉันฉันสร้างขึ้นเพื่อที่จะใช้ xterm แทน gnome-terminal ฉันต้องการให้ท่าเรือมีรูปลักษณ์ที่แตกต่างจากเทอร์มินัล gnome ของฉันที่ฉันใช้แบบโต้ตอบ
startMyApp.desktopดูเหมือนว่า:
[Desktop Entry]
Type=Application
Name=MyScript
Terminal=false
Exec=xterm -e myScript.sh
Icon=myIcon.png
 
    ฉันได้สร้างไฟล์ไอคอนใน ~/.icons/myIcon.png
ไอคอนปรากฏขึ้นอย่างถูกต้องในเบราว์เซอร์ไฟล์เริ่มต้น เมื่อเปิดจากเบราว์เซอร์ไฟล์จะเรียกใช้สคริปต์ใน xterm ตามที่คาดไว้อย่างไรก็ตามไอคอนในท่าเรือจะปรากฏเป็นไอคอน xterm ทั่วไปอื่น ๆ ไอคอนนั้นมาจากไหน? มันฝังอยู่ในไบนารีหรือไม่?
ฉันจะเปลี่ยนสิ่งนี้ได้อย่างไร? ฉันต้องการให้ไอคอนในท่าเรือปรากฏขึ้นเหมือนกับที่ระบุไว้ใน.desktopไฟล์ แอปพลิเคชันที่มาพร้อมกับ Ubuntu จะมีไอคอนเดียวกันใน Dock เมื่อเปิดใช้งาน (นอกเหนือจากจุดสีแดงที่ระบุจำนวนหน้าต่างที่เปิดอยู่)
คำตอบ
คุณต้องเพิ่มStartupWMClassรายการที่เหมาะสมลงใน.desktopไฟล์ของคุณ โดยทำตามขั้นตอนด้านล่างนี้
- เปิดแอปพลิเคชันที่เป็นปัญหา
 - เปิดหน้าต่าง terminal 
xprop WM_CLASSแยกต่างหากและเรียกใช้ - วางเคอร์เซอร์ไว้เหนือหน้าต่างแอปพลิเคชันที่เปิดอยู่ที่เป็นปัญหา ตอนนี้เคอร์เซอร์ควรเปลี่ยนเป็น crosshair คลิก. คุณควรได้รับ
WM_CLASSสตริงสำหรับแอปพลิเคชันในหน้าต่าง Terminal ใน
.desktopไฟล์ให้เพิ่มบรรทัดต่อไปนี้StartupWMClass=OBTAINED-VALUEแทน
OBTAINED-VALUEค่าที่คุณได้รับจากขั้นตอนที่ 3 โดยไม่มีเครื่องหมายคำพูดใด ๆ
อัปเดตจาก OP:
ดูเหมือนว่าฉันต้องตั้งชื่อให้กับอินสแตนซ์ xterm ตอนนี้ดูเหมือนว่าสาย exec
xterm -name myApp -e myScript.sh