การใช้ StartupWMClass สำหรับแอปพลิเคชันที่ทำงานในเทอร์มินัล
ใน 18.04 ฉันมีตัวเรียกใช้งานใน Dash เพื่อเรียกใช้แอปพลิเคชั่นในเทอร์มินัลโดย Dash แสดงจุดตัวบ่งชี้สำหรับตัวเรียกใช้งานเมื่อมันกำลังทำงานแทนที่จะเป็นตัวบ่งชี้สำหรับตัวเรียกใช้งานเทอร์มินัลทั่วไป (วิธีนี้ฉันสามารถค้นหาได้หาก หน้าต่างเทอร์มินัลอื่น ๆ เปิดอยู่) ฉันสามารถใช้ตัวเลือก --class ในรายการ Exec ร่วมกับ StartupWMClass เพื่อให้บรรลุสิ่งนี้
ใน 20.04 ตัวเรียกใช้งานไม่ทำงานเมื่อเปิดเทอร์มินัลแอปพลิเคชันจะพยายามเปิดใช้งานจากนั้นเทอร์มินัลจะปิด ฉัน googled สิ่งนี้และมีการพูดพล่อย ๆ เกี่ยวกับตัวเลือก - class ถูกหักค่าเสื่อมราคา หากฉันลบตัวเลือก --class ตัวเรียกใช้งานจะใช้งานได้ แต่จุดตัวบ่งชี้ติดอยู่กับตัวเรียกใช้งานเทอร์มินัลทั่วไป
นี่คือไฟล์. desktop ก่อนที่จะลบอ็อพชัน --class
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Encoding=UTF-8
StartupNotify=true
Icon[en_US]=sage-terminal
Icon=sage-terminal
Exec=/home/rquint/Sage/SageMath/sage --class=SageTerminal
StartupWMClass=SageTerminal
Name=SageTerminal
Name[en_US]=SageTerminal
Actions=SageDocumentation;
[Desktop Action SageDocumentation]
Name=Sage Documentation
Exec=firefox /home/rquint/Sage/SageMath/local/share/doc/sage/html/en/index.html
คำตอบ
นี่ไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์แบบ แต่ตอนนี้ใช้งานได้แล้ว Googling ไปรอบ ๆ ฉันพบสิ่งต่อไปนี้
https://itectec.com/ubuntu/ubuntu-how-to-make-a-custom-launcher-for-terminal-applications/
ซึ่งแสดงวิธีเปิดแอปพลิเคชันในเทอร์มินัลแม้ว่าตัวเรียกใช้งานจะใช้ Terminal = false ในสาระสำคัญคุณกำลังเปิดตัวโปรแกรมจำลองเทอร์มินัลซึ่งจะเรียกใช้แอปพลิเคชัน มี gotchas ที่เป็นไปได้สองวิธีด้วยวิธีนี้ ประการแรกเรียกโดยเฉพาะว่าโปรแกรมจำลองเทอร์มินัลเฉพาะ ประการที่สองอ็อพชัน - class เป็นค่าเสื่อมราคาและอาจใช้ไม่ได้ในอนาคต
ตอนนี้ (Ubuntu 20.04.1 และ Gnome 3.36.3) ฉันได้เปลี่ยนบรรทัดแล้ว
Terminal=true
Exec=/home/rquint/Sage/SageMath/sage --class=SageTerminal
ด้วย
Terminal=false
Exec=gnome-terminal --class=SageTerminal -e /home/rquint/Sage/SageMath/sage
และมีพฤติกรรมที่ฉันต้องการ