2012-04-19 30 views
7

मुझे प्रोग्रामिक रूप से यह निर्धारित करने की आवश्यकता है कि लिनक्स पर कौन सा विंडो मैनेजर चल रहा है। यह कैसे इस्तेमाल किया जाएगा के लिएयह पता लगाने के लिए कि क्या लिनक्स ओएस केडीई या जीनोम पर्यावरण का उपयोग करता है

स्यूडोकोड:

if(WindowManagerOfOS.isKDE()){ 
     do.anyThing(); 
} 

मैं यह कैसे कर सकते हैं? क्या यह भी संभव है?

+1

मैं अपने कंप्यूटर पर यह परीक्षण नहीं कर सकता लेकिन यह देखना कि UIManager.getSystemLookAndFeelClassName() या तो एक – Adam

+0

संबंधित पर रिटर्न का प्रयास करें: http://stackoverflow.com/questions/3376679/qt-how-to-detect-whether- एप्लिकेशन-ऑन-रन-ऑन-gnome-or-kde –

उत्तर

10
System.getenv("XDG_CURRENT_DESKTOP") 

मेरी मशीन पर "GNOME" देता है। इसे केडीई-आधारित बॉक्स पर आज़माएं।

भी

+0

कोई उपयोगकर्ता दोनों स्थापित हो सकता है, लेकिन केवल एक ही रन चलाता है जिसमें दोनों वातावरण चर मौजूद होंगे। आपको चल रही प्रक्रियाओं को जांचना होगा। – Adam

+0

तोमाज़, मैं इसे जांचने के लिए 'KDE_SESSION_VERSION' का उपयोग करूंगा। समस्या यह है कि केडीई में डेस्कटॉप नहीं है ... –

+0

मैं टिप्पणी भूल गया हूं ... System.getenv ("XDG_CURRENT_DESKTOP") केडीई मूल के साथ लिनक्स मिंट 12 में मेरे लिए शून्य प्रिंट करता है। –

1

देखें आधिकारिक जवाब यह है कि आप देखभाल करने के लिए नहीं जा सकते है। दोनों डेस्कटॉप मौजूदा मानकों का सम्मान करते हैं। दोनों एक दूसरे के सॉफ्टवेयर चला सकते हैं। आप क्या करने की कोशिश कर रहे हैं? यदि यह एक विशेष सेवा है तो आप डिफ़ॉल्ट रूप से केवल एक वितरण जहाजों की तलाश में हैं, इसके बजाय आपको इसके लिए जांच करनी चाहिए।

+3

-1 यह प्रश्न का उत्तर नहीं है और एक टिप्पणी होनी चाहिए थी। –

+0

मैं मतदान करने जा रहा हूं कि यह एक ठीक जवाब है। शायद सबसे अच्छा नहीं, लेकिन यह काम करता है क्योंकि कभी-कभी हमें यह कहने की ज़रूरत होती है कि "ऐसा न करें" जब लोग जानना चाहते हैं कि "ऐसा करने" कैसे करें। –

+1

ऐसे कई स्थान हैं जहां लोग देखभाल करते हैं और पता होना चाहिए, पहला उदाहरण xdg-utils के भीतर है http://cgit.freedesktop.org/xdg/xdg-utils/tree/scripts/xdg-utils-common.in detectDE देखें(), इसका उपयोग xdg-su/xdg-terminal आदि द्वारा किया जाता है ताकि हमारे ग्राफ़िकल सूडो रैपर का उपयोग किया जा सके। ऐसी कुछ चीजें भी हैं जैसे एक वॉलपेपर इत्यादि सेट करना जो किसी भी निश्चित एपीआई या मानक द्वारा कवर नहीं हैं। विविध वॉलपेपर एप्लिकेशन बस निम्न स्क्रिप्ट में है http://bazaar.launchpad.net/~peterlevi/variety/trunk/view/head:/data/scripts/set_wallpaper – simotek

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^