.Xresources और .Xdefaults में क्या अंतर है?


58

इन दो फ़ाइलों में एक ही फ़ंक्शन है। यदि कोई है तो दोनों में क्या अंतर है?

जवाबों:


68

~/.Xdefaultsएक्स संसाधनों के भंडारण की पुरानी विधि है। हर बार Xlib प्रोग्राम शुरू होने पर यह फाइल फिर से पढ़ी जाती है। यदि X11 का उपयोग नेटवर्क पर किया जाता है, तो फ़ाइल को प्रोग्राम्स के समान फाइल सिस्टम पर मौजूद होना चाहिए।

~/.Xresourcesनया है। इसे X11 रूट विंडो xrdbकी RESOURCE_MANAGERसंपत्ति में लोड किया गया है । जब भी कोई प्रोग्राम किसी संसाधन को देखता है, तो उसे सीधे से पढ़ा जाता है RESOURCE_MANAGER।

यदि यह गुण मौजूद नहीं है, तो Xlib .Xdefaultsहर प्रोग्राम स्टार्टअप पर पढ़ने की पुरानी पद्धति पर वापस आ जाता है । ध्यान दें कि अधिकांश वितरण ~/.Xresourcesस्वचालित रूप से लोड हो जाएंगे यदि यह मौजूद है, तो इसे .Xdefaultsअनदेखा कर दिया जाए, भले ही आपने xrdbमैन्युअल रूप से कभी नहीं चलाया हो ।

नई पद्धति का लाभ यह है कि यह xrdbएक बार कॉल करने के लिए पर्याप्त है , और संसाधन इस प्रदर्शन पर चलने वाले किसी भी कार्यक्रम के लिए उपलब्ध होंगे, चाहे वह स्थानीय हो या दूरस्थ। (नाम ~/.Xresourcesकेवल एक सम्मेलन है - आप xrdbकिसी भी फ़ाइल को लोड करने के लिए उपयोग कर सकते हैं , यहां तक ​​कि .Xdefaults)

Xlib प्रोग्रामिंग मैनुअल P.441:

X11R2 से पहले, X संसाधन सेटिंग्स को उपयोगकर्ता होम डायरेक्टरी में .Xdefaults फ़ाइल से पढ़ा जाता था और वैकल्पिक रूप से एक्स क्लाइंट जिस भी मशीन पर चल रहा था, उस पर कई फ़ाइलों को बनाए रखना मुश्किल था।

बाद में, xrdb प्रोग्राम को मौजूदा X सर्वर पर रूट विंडो के XA_RESOURCE_MANAGER में .Xresources से उपयोगकर्ता संसाधन सेटिंग्स को संग्रहीत करने के लिए बनाया गया था, इसलिए एक ही सर्वर से जुड़े सभी ग्राहकों तक उनकी पहुंच है। यदि उपयोगकर्ता ने संपत्ति सेट करने के लिए xrdb नहीं कहा है, तो .Xdeults पढ़ा जाता है।

विकिपीडिया :

[...] X संसाधन दो मानक स्थानों में संग्रहीत किए जाते हैं, यह इस बात पर निर्भर करता है कि वे सभी स्क्रीन पर लागू होते हैं या किसी विशेष पर:

  • स्क्रीन के रूट विंडो की RESOURCE_MANAGER संपत्ति
  • SCREEN_RESOURCES एक मनमाना स्क्रीन की जड़ विंडो की संपत्ति

यह उस पर काफी अंत नहीं है।

  • $XENVIRONMENTचर भी है , जो निर्धारित न होने पर चूक करता है । यह उसी तरह से उपयोग किया जाता है , लेकिन हमेशा मौजूद होने की परवाह किए बिना पढ़ा जाता है। आप वैश्विक लोगों के लिए उपयोग करते समय कुछ सेटिंग्स मशीन-विशिष्ट रखने के लिए फ़ाइलों का उपयोग कर सकते हैं।~/.Xdefaults-hostname.XdefaultsRESOURCE_MANAGER.Xdefaults-hostnamexrdb

नीचे सूचीबद्ध # 4 और # 5 दोनों आइटम केवल शुद्ध Xlib कार्यक्रमों द्वारा उपयोग किए जाते हैं - जीटीके 3 या अन्य टूलकिट नहीं।

  • चौथा स्थान $XAPPLRESDIRपर्यावरण चर द्वारा इंगित की गई निर्देशिका है । (अजीब तरह से, यदि चर सेट नहीं $HOMEकिया जाता है , तो इसे डिफ़ॉल्ट के रूप में उपयोग किया जाता है।) जब कोई प्रोग्राम शुरू किया जाता है, तो यह दिखता है कि क्या निम्न फ़ाइलों में से कोई मौजूद है (फ़ाइल का नाम प्रोग्राम के वर्ग नाम के समान है):

    • $XAPPLRESDIR/$LC_CTYPE/XTerm
    • $XAPPLRESDIR/language/XTerm
    • $XAPPLRESDIR/XTerm

    ( languageसे ली गई है $LC_CTYPE, लेकिन पहले घटक सभी अलग करना द्वारा, उदाहरण के लिए, en_US.utf-8→ en।)

  • पांचवें स्थान सिस्टम-वाइड "एप्लिकेशन-चूक" निर्देशिका है। यदि प्रोग्राम के नाम पर कोई फ़ाइल है, तो फिर से, ऐप-डिफॉल्ट निर्देशिका को प्रोग्राम स्टार्टअप पर चेक किया जाता है। उदाहरण के लिए, XTerm (आर्क लिनक्स पर) का उपयोग करता है:

    • /etc/X11/$LC_CTYPE/app-defaults/XTerm
    • /etc/X11/language/app-defaults/XTerm
    • /etc/X11/app-defaults/XTerm
    • /usr/share/X11/$LC_CTYPE/app-defaults/XTerm
    • /usr/share/X11/language/app-defaults/XTerm
    • /usr/share/X11/app-defaults/XTerm

    एप्लिकेशन-डिफॉल्ट्स फाइलें आमतौर पर /usr/shareकार्यक्रम के साथ ही स्थापित की जाती हैं ; व्यवस्थापक ओवरराइड करेगा /etc।


ऊपर उल्लिखित सब कुछ X.org टूलकिट प्रलेखन में महान विवरण में दर्ज किया गया है - लेख एक्स टूलकिट आंतरिक - सी भाषा इंटरफ़ेस , अनुभाग लोड हो रहा है संसाधन डेटाबेस ।

दुर्भाग्य से, मुझे एक्स रिसोर्स का वर्णन करने वाला कोई भी हालिया उपयोगकर्ता गाइड नहीं मिला, ज्यादातर इसलिए कि वे वर्ष 2012 में अप्रासंगिक हैं। लेकिन ऐतिहासिक (पढ़ें: बुरी तरह से बाहर) जानकारी के लिए, आप एक्स 11 आर 3 और आर 4 के लिए एक्स विंडो सिस्टम उपयोगकर्ता के गाइड को पढ़ सकते हैं। एक्स विंडो सिस्टम सेक्शन 9 में: सेटिंग संसाधन (पेज 181 से शुरू)।


महान जवाब, लेकिन यह ध्यान दिया जाना चाहिए कि सभी कार्यान्वयन नियमों का सही ढंग से पालन नहीं करते हैं। उदाहरण के लिए, मुझे याद है कि SunOS 4 और Solaris 6 ऐप तब तक नहीं चलेंगे। जब तक मैं स्पष्ट रूप से "xrdb" नहीं चला, तब तक। जब ऐप और एक्स सर्वर अलग-अलग होस्ट पर चल रहे हों तो कुछ अजीब भी हो सकते हैं। कुछ ऐप लोकल फाइल पढ़ते हैं और कुछ एक्स सर्वर से डेटाबेस पढ़ते हैं।
— डेविड सी।

1
@DavidC .: वह एक्सडेफॉल्ट्स व्यवहार ऊपर वर्णित नियमों का पालन ​​कर रहा है। अगर xrdbहै कभी प्रवेश के बाद इस एक्स प्रदर्शन के लिए चलाया जा रहा - यह है कि, अगर एक्स जड़ संपत्ति मौजूद है - तो Xlib .Xdefaults बिल्कुल अब और उपयोग नहीं होगा।
— ग्रैविटी

1
यह समझ आता है। लेकिन अभी भी कई जाहिरा तौर पर बोर्केन ऐप हैं जो ~ / .Xresources की सामग्री को पढ़ेंगे और xrdb डेटाबेस को अनदेखा करेंगे। जो वास्तव में कष्टप्रद हो सकता है यदि आप एक अलग होस्ट (जिसमें एक अलग .Xresource) का नारा लगाते हैं और पाते हैं कि ऐप अपनी सामग्री को उस तरह से प्रदर्शित नहीं कर रहा है जिस तरह से स्थानीय स्तर पर चलता है।
— डेविड सी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.