ทำไมบางแอปพลิเคชั่นที่เปิดอยู่ปรากฏเป็น“ เครื่องหมายคำถาม” ในตัวเรียกใช้งาน Unity


22

ฉันมีปัญหากับโปรแกรมสองตัวที่มีตัวเรียกใช้งานร่วมกัน แต่สร้างไอคอนแยกต่างหากหลังจากเปิดตัว เป็นไปได้หรือที่ตัวเรียกใช้เพื่อติดตามหน้าต่างที่วางไข่เพื่อจัดระเบียบที่ดีขึ้น? หรือนี่เป็นข้อบกพร่องใน Unity เองหรือ

ป้อนคำอธิบายรูปภาพที่นี่

มันอาจไม่สำคัญ แต่โปรแกรมเฉพาะนี้เป็นโปรแกรมโมโนและไอคอนที่วางไข่แสดงอยู่ในพาเนล


@ j-johan-edwards: ฉันไม่แน่ใจว่าจะเชื่อมโยงโปรแกรมใด แต่มันมี KeePass2 อยู่ใน Software Center
Andrew Redd

ในบางกรณีคุณสามารถบรรเทาสิ่งนี้ได้โดยการตั้งค่าStartupWMClassคุณสมบัติในตัวเรียกใช้งานเดสก์ท็อปของแอปพลิเคชัน: askubuntu.com/questions/36434/…
Glutanimate

คำตอบ:


23

เกิดอะไรขึ้น

ปัญหาเช่นนี้เกี่ยวข้องกับกรอบการจับคู่แอปพลิเคชันของ Unity เพื่อลดความซับซ้อนของรายละเอียดทางเทคนิคหน้าต่างโปรแกรมและแอพพลิเคชั่นเป็นสองสิ่งที่แยกต่างหากสำหรับ Ubuntu Ubuntu ต้อง 'เดา' ว่าแอปพลิเคชันใดเป็นเจ้าของหน้าต่างเฉพาะ และบางครั้งการเดาที่ล้มเหลวและเครื่องหมายคำถามปรากฏในตัวเรียกใช้งาน

ความล้มเหลวอาจเกิดจาก:

  1. ข้อผิดพลาดในBAMF (กรอบการจับคู่แอปพลิเคชันดังกล่าวข้างต้น)
  2. คำอธิบายแอปพลิเคชันผิดพลาด(ไฟล์ '.desktop')
  3. ไม่มีคำอธิบายแอปพลิเคชันใด ๆ เลย ไฟล์เรียกทำงานที่เรียกใช้ windows ไม่ได้มีข้อมูลเมตานี้โดยกำเนิด

แอพลิเคชันที่แสดงในคำถาม (KeePass2) ทนทุกข์ทรมานจากปัญหาชนิดที่ 1 ที่ได้รับการรายงานการติดตามข้อผิดพลาดที่เหมาะสม

ตัวอย่างของปัญหา

ตัวอย่างด้านล่างนี้เป็นข้อมูลทางเทคนิคโดยมีวัตถุประสงค์เพื่อโปรแกรมเมอร์ที่ต้องการให้แอปพลิเคชันของตัวเองแสดงผลอย่างถูกต้องในตัวเรียกใช้งาน Ubuntu

ปัญหา 3 - ไม่มีคำอธิบายแอปพลิเคชัน

เพื่อให้แอปพลิเคชันรวมเข้ากับ Unity - กล่าวคือสามารถค้นหาได้ใน Dash และวางไว้ในตัวเรียกใช้งาน - ต้องมีรายการเดสก์ท็อป รายการดังกล่าวจะอยู่ใน/usr/share/applications/, /usr/local/share/applications/และ$HOME/.local/share/applications/(หลังสองคนสำหรับซอฟต์แวร์บุคคลที่สามทั้งระบบและใช้งานเพียงตามลำดับ) ลงท้ายด้วย.desktopส่วนขยายและทำตามรูปแบบพื้นฐานนี้:

[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable

รายการนี้เริ่มต้นโปรแกรมโดยเรียกใช้Execไฟล์ที่เรียกทำงานได้ เมื่อใดก็ตามที่โปรแกรมนั้นแสดงหน้าต่างหรือไดอะล็อก Unity จะสังเกตเห็นว่าคำสั่งของแอปพลิเคชันนี้ "เป็นของ" ที่สามารถเรียกใช้งานได้และใช้คำสั่งที่กำหนดNameและIconในตัวเรียกใช้งาน

นี่คือตัวอย่างของแบร์โบน สเปคอย่างเป็นทางการครอบคลุมคุณลักษณะขั้นสูงมาก

ปัญหา 2 - คำอธิบายแอปพลิเคชันผิดพลาด

ให้เราสมมติว่าmy_app.desktopมีอยู่ในไดเรกทอรีแอปพลิเคชันที่ถูกต้อง แต่:

  • /file/path/of/my/icon ไม่มีอยู่ในระบบไฟล์
  • /file/path/of/my/icon ไม่ใช่ภาพ
  • รายการใช้ไวยากรณ์ที่ไม่ถูกต้องหรือแท็กที่ไม่ถูกต้อง

ในกรณีใด ๆ ข้างต้น Ubuntu จะไม่สามารถแสดงรายการหน้าต่างแอปพลิเคชั่นในตัวเรียกใช้งานได้อย่างถูกต้อง

ปัญหาที่ 1 - ข้อผิดพลาดใน BAMF

ตั้งแต่ Ubuntu 11.10 BAMF มีข้อผิดพลาดจำนวนหนึ่งที่ป้องกันการจับคู่แอปพลิเคชันที่ถูกต้อง ข้อผิดพลาดทั่วไป (ชั่วคราว) รวมถึง:

  • Execเส้นทางการเป็นผู้เชื่อมโยงสัญลักษณ์มากกว่าแฟ้มปกติ
  • ไฟล์สั่งการเป็นสคริปต์ที่เรียกใช้ไฟล์ปฏิบัติการหลัก

ในกรณีเหล่านี้โปรแกรมเมอร์ไม่มีทางเลือกนอกจากใช้วิธีแก้ปัญหาเช่นการลบการเชื่อมโยงสัญลักษณ์ที่เป็นนามธรรมหรือการเชื่อมโยงไปยังไฟล์ปฏิบัติการโดยตรง ข้อกำหนดเหล่านี้ไม่จำเป็นต้องมีจากสิ่งเหล่านี้


อีกหนึ่งสิ่ง. คุณสามารถมี.desktopไฟล์สำหรับแอปเดียวกันทั้งในและ~/.local/share/applications/ /usr/share/applications/ไฟล์แรกจะแทนที่ไฟล์ที่สองแม้ว่าจะไม่ได้ระบุไอคอนไว้

1

หน้าต่างสามารถจับคู่กับแอปพลิเคชันได้เฉพาะเมื่อมีการตั้งค่าคุณสมบัติ WM_CLASS ในการทำเช่นนี้ใน X11 คุณใช้:

XSetClassHint( display, window, &class_hints );

คุณต้องส่งตัวชี้ไปยังโครงสร้าง XClassHint พร้อมฟิลด์ 'res_name' และ 'res_class'


-1

ฉันมีปัญหาเล็กน้อยกับ 16.04 รวมถึงไอคอน greyed out และบางครั้งทัชแพดจะกลายเป็นเอาแน่เอานอนไม่ได้ (Acer V15 nitro) นอกจากนี้ศูนย์ซอฟต์แวร์ (อาจไอคอนอื่น ๆ ด้วย) จะไม่เปิดจากไอคอน ฉันพบคำแนะนำในการถอนการติดตั้งและติดตั้งซอฟต์แวร์ gnome อีกครั้ง ตั้งแต่ฉันทำสิ่งนี้ทั้งระบบมีความเสถียร 100% ไม่มีไอคอนสีเทาและทำงานได้อย่างสมบูรณ์แบบ มันดูน่ากลัวในตอนแรกเมื่อฉันรีบูตหลังจากการเปลี่ยนแปลงนี้ - มีข้อความระบบจำนวนมากในการรีบูต - ดังนั้นคุณต้องยอมรับความเสี่ยงเอง

sudo apt-get autoremove gnome-software && sudo apt-get install gnome-software

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