यूनिटी लांचर में कुछ खुले अनुप्रयोग "प्रश्न चिह्न" के रूप में क्यों दिखाई देते हैं?


22

मुझे कुछ ऐसे कार्यक्रमों में समस्या हो रही है जिनकी एकता में लांचर है लेकिन फिर लॉन्च के बाद एक अलग आइकन बनाएं। क्या लांचर के लिए यह संभव है कि वह खिड़कियों को ट्रैक कर सके जो बेहतर तरीके से व्यवस्थित हो? या यह एकता में ही एक बग है?

यहाँ छवि विवरण दर्ज करें

इससे कोई फर्क नहीं पड़ता है, लेकिन यह विशिष्ट कार्यक्रम एक मोनो प्रोग्राम है, और आइकन स्पान्ड पैनल के रूप में सूचीबद्ध है।


@ j-johan-edwards: मुझे यकीन नहीं है कि किस प्रोग्राम को लिंक करना है, लेकिन यह KeePass2 सॉफ्टवेयर सेंटर में उपलब्ध है।
एंड्रयू रेड

कुछ मामलों में आप StartupWMClassएप्लिकेशन के डेस्कटॉप लॉन्चर में संपत्ति सेट करके इसे कम कर सकते हैं: askubuntu.com/questions/36434/…
18

जवाबों:


23

क्या हो रहा है

इस तरह की समस्याएं एकता के अनुप्रयोग मिलान ढांचे से संबंधित हैं। तकनीकी विवरण को सरल बनाने के लिए, प्रोग्राम विंडो और एप्लिकेशन उबंटू में दो अलग-अलग चीजें हैं। उबंटू को यह अनुमान लगाने की आवश्यकता है कि कौन सी एप्लिकेशन किसी विशेष विंडो का मालिक है। और कभी-कभी वह अनुमान विफल हो जाता है, और लांचर में एक प्रश्न चिह्न दिखाई देता है।

इसके कारण विफलता हो सकती है:

  1. BAMF में एक बग (ऊपर उल्लिखित एप्लीकेशन मैचिंग फ्रेमवर्क)।
  2. एक दोषपूर्ण अनुप्रयोग विवरण (उर्फ '.desktop' फ़ाइल)।
  3. सभी में किसी भी आवेदन विवरण की कमी। विंडोज़ लॉन्च करने वाले अधिकारियों के पास स्वाभाविक रूप से यह मेटाडेटा नहीं है।

प्रश्न (KeePass2) में दिखाया गया आवेदन एक प्रकार की 1 समस्या से ग्रस्त है जिसे उपयुक्त बग ट्रैकर को सूचित किया गया है

समस्याओं के उदाहरण

नीचे दिए गए उदाहरण तकनीकी हैं, उन प्रोग्रामर के उद्देश्य से हैं जो उबंटू लांचर में अपने स्वयं के अनुप्रयोग को ठीक से प्रदर्शित करना चाहते हैं।

समस्या 3 - कोई आवेदन विवरण नहीं

एक आवेदन के लिए एकता के साथ एकीकृत करने के लिए - यह कहना है, डैश में खोजा जा सकता है और लांचर में रखा गया है - यह एक डेस्कटॉप प्रविष्टि की आवश्यकता है। इस तरह की प्रविष्टियों को रखा गया है /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निष्पादन योग्य कहकर एक कार्यक्रम शुरू करती है । जब भी वह कार्यक्रम एक विंडो या संवाद प्रदर्शित करता है, तो एकता यह ध्यान देगी कि इसका निष्पादन योग्य इस एप्लिकेशन विवरण के लिए "संबंधित" है, और दिए गए Nameऔर Iconलॉन्चर में उपयोग करें ।

यह एक नंगेपन का उदाहरण है। औपचारिक विनिर्देश कई उन्नत सुविधाओं को शामिल किया गया।

समस्या 2 - दोषपूर्ण अनुप्रयोग विवरण

आइए मान लें कि my_app.desktopएक मान्य एप्लिकेशन निर्देशिका में मौजूद है, लेकिन:

  • /file/path/of/my/icon फ़ाइल सिस्टम में मौजूद नहीं है।
  • /file/path/of/my/icon एक छवि नहीं है।
  • प्रविष्टि कुछ गलत सिंटैक्स या अमान्य टैग का उपयोग करती है।

उपरोक्त किसी भी मामले में, उबंटू लॉन्चर में एप्लिकेशन विंडो को ठीक से सूचीबद्ध करने में असमर्थ होगा।

समस्या 1 - BAMF में एक बग

उबंटू 11.10 के रूप में, BAMF में कई बग हैं जो सही एप्लिकेशन मिलान को रोकता है। सामान्य (अस्थायी) नुकसान में शामिल हैं:

  • Execपथ एक किया जा रहा प्रतीकात्मक कड़ी एक नियमित रूप से फ़ाइल के बजाय
  • निष्पादन योग्य एक स्क्रिप्ट जो मुख्य निष्पादन योग्य लॉन्च करता है।

इन मामलों में, प्रोग्रामर के पास वर्कअराउंड का उपयोग करने के अलावा कोई विकल्प नहीं होता है, जैसे कि प्रतीकात्मक लिंक को हटाने, या सीधे निष्पादन योग्य से जोड़ना। इनमें से किसी को भी डेस्कटॉप प्रविष्टि विनिर्देश द्वारा आवश्यक नहीं है।


एक और चीज़। आप हो सकता है .desktopदोनों में एक ही अनुप्रयोग के लिए फ़ाइलों ~/.local/share/applications/और /usr/share/applications/। पहली फ़ाइल ओवरराइड करती है, भले ही उसमें आइकन निर्दिष्ट न हो।

1

यदि WM_CLASS संपत्ति सेट की गई है, तो विंडो केवल उस एप्लिकेशन से मेल खा सकती है। ऐसा करने के लिए X11 में आप का उपयोग करें:

XSetClassHint( display, window, &class_hints );

आपको फ़ील्ड 'res_name' और 'res_class' के साथ XClassHint संरचना के लिए एक पॉइंटर पास करना होगा।


-1

मेरे पास 16.04 के साथ कुछ समस्याएँ थीं, जिनमें ग्रेयर्ड आउट आइकन्स भी शामिल हैं और कभी-कभी टचपैड इरोटिक (एसर V15 नाइट्रो) भी बन जाता है, सॉफ्टवेयर सेंटर (शायद अन्य आइकन भी) आइकन से नहीं खुलेंगे (केवल एक टर्मिनल कमांड से)। मुझे गनोम सॉफ़्टवेयर को अनइंस्टॉल करने और पुनर्स्थापित करने के लिए कहीं न कहीं एक सिफारिश मिली। जब से मैंने यह किया है कि यह पूरी व्यवस्था 100% स्थिर हो गई है, कोई और अधिक आकर्षक आइकन नहीं है और पूरी तरह से काम करता है। यह शुरू में डरावना लग रहा था जब मैंने इस बदलाव के बाद रिबूट किया - रिबूट पर बहुत सारे सिस्टम संदेश- इसलिए इसे अपने जोखिम पर करें।

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

2
यह प्रश्न से पूरी तरह से संबंधित नहीं है।
मार्टिन थॉर्नटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.