यह स्थिति है:
यूनिटी क्विक लिस्ट के संपादक के अगले संस्करण पर काम करते हुए, मैं लॉन्चर आइकन "रीस्टार्टिंग" का एक विश्वसनीय तरीका जोड़ना चाहूंगा। ऐसा करने के लिए, मुझे आइकन (gsettings संपादन) को हटाने और इसे उसी स्थिति पर प्रतिस्थापित करने की आवश्यकता है। अब तक कोई समस्या नहीं। हालाँकि, यदि एप्लिकेशन विचाराधीन है, तो उपयोगकर्ता संभवतः डेटा खो देगा, क्योंकि लॉन्चर से आइकन हटाए जाने पर एप्लिकेशन छोड़ देगा। क्या मैं जरूरत है एक विश्वसनीय तरीका एक आवेदन की प्रक्रिया नाम खोजने के लिए, प्रक्रियाओं यदि आवेदन चल रहा है चल रहा है की सूची में संपादक की जांच करते हैं, और उपयोगकर्ता के लिए एक चेतावनी संदेश भेज कि आइकन को पुन: प्रारंभ नहीं किया जा सकता है , तो अनुप्रयोग है चल रहा है।
मैंने अब तक क्या किया है कि एडिटर को डेस्कटॉप फाइल में देखें, कमांड को पढ़ने के लिए, कमांड को पढ़ने के लिए, डायरेक्ट्री सेक्शन को छीनने के साथ-साथ संभव है कि डेस्कटॉप फाइल कमांड को देखें, जो स्टार्टिंग स्ट्रिंग्स की तलाश कर रहा है। साथ में "।/"
यद्यपि यह विधि उन सभी अनुप्रयोगों के साथ अच्छी तरह से काम करती है, जिन पर मैंने इसका परीक्षण किया, मुझे लगता है कि समस्या को "सभी में एक" तरीके से कवर करने का एक आसान तरीका होना चाहिए ...
है?
इसके अलावा अधिक असाधारण स्थितियों को पकड़ने के लिए सुझावों का स्वागत है!
ps
और xprop
आउटपुट में जानना है ?
.desktop
फ़ाइल से प्रक्रिया का नाम, "गणना" , जो जरूरी नहीं कि WM_CLASS हो। WM_CLASS को एप्लिकेशन के भीतर से सेट किया जा सकता है।
firefox.desktop
, यह पीआईडी 1234 के साथ फ़ायरफ़ॉक्स लॉन्च करता है, लेकिन WM_CLASS
'टोटली नॉट फ़ायरफ़ॉक्स' जैसी चीज़ में बदल गया। .desktop
फ़ाइल लेकिन नहीं बदलता है। आप बिना परवाह किए पीआईडी 1234 से जुड़ा नाम प्राप्त करना चाहते हैं WM_CLASS
। मुझे लगता है कि मुझे वही देखना है जो करने की जरूरत है। लेकिन आपने मेरे पहले सवाल का जवाब नहीं दिया - क्या यह केवल एकता के लिए ठीक है?