Emacs का मेन्यू बार कलर बदलना (GTK + 3)


2

मैं अपने एमएसीएस इंस्टॉलेशन के मेनू बार का रंग बदलना चाहता हूं (संस्करण 24.5.1 जीटीके + 3 के साथ और केडीई डेस्कटॉप के साथ डेबियन टेस्टिंग पर चलता है)। वेब में ब्राउज़ करने के बाद, मुझे पता है कि मेनू बार का रंग Emacs के भीतर नहीं बदला जा सकता है, लेकिन किसी को GTK / 3 संसाधनों का उपयोग करना होगा। मैंने इस संदर्भ में वर्णित दृष्टिकोण का उपयोग किया है: जीटीके + 3 एमएसीएस के लिए मेनू कॉन्फ़िगरेशन

पहले मैंने निम्नलिखित पथ "/home/USERHOME/.themes/.configure/gtk-3.0" के साथ एक फ़ोल्डर बनाया। फिर मैंने इस फ़ोल्डर में 2 सीएसएस-फाइलें बनाईं, जिन्हें "emacs.css" और "gtk.css" नाम दिया गया है। "Gtk.css" की सामग्री है

@import url("/home/zufall/.themes/Emacs/gtk-3.0/emacs.css") 

और "emacs.css" में मैंने लिखा है

#pane #menubar
{
    background-color: #00FF00;
    foreground-color: #000000;
    border: none;
    padding: 0px 0px;
    margin: 25px;
}

दुर्भाग्य से, यह सेटअप काम नहीं किया, मेनू बार का रंग अभी भी डिफ़ॉल्ट एक है (अग्रभूमि: काला, पृष्ठभूमि: ग्रे)। मुझे लगता है, कि "emacs.css" -file पूर्ण नहीं है, लेकिन मुझे यकीन नहीं है कि वास्तव में मुझे क्या जोड़ना है। क्या कोई मुझे संकेत दे सकता है, जो मैंने संभवतः याद किया है?

जवाबों:


1

मैंने आपकी नमूना CSS फ़ाइल को एक फ़ाइल में सहेजने का परीक्षण किया, emacs-zufall.cssजिसका gtk.cssउपयोग करके मैंने अपनी स्थानीय रूप से संशोधित फ़ाइल से आयात किया था

@import url("apps/emacs-zufall.css");

और यह काम किया: मेरा मेनूबार काले पाठ के साथ साइकेडेलिक हरे रंग में बदल गया।

मैं अनुमान लगा रहा हूं कि आपके ईमेक उस फ़ाइल को नहीं पढ़ रहे हैं जिसे आपने बनाया था। स्थान थीम के नाम पर निर्भर करता है। मैं विषय का उपयोग कर रहा हूं Orionऔर emacs gtk.cssपथ का उपयोग करके रीड को लोड करने का प्रयास कर रहा हूं

~/.local/share/themes/Orion/gtk-3.0/gtk.css

और अगर असफल रहा तो

~/.themes/Orion/gtk-3.0/gtk.css

सिस्टम कॉल को ट्रेस करने के लिए इसे देखने का सबसे आसान तरीका। यदि लिनक्स का उपयोग कर रहे हैं, तो आप चला सकते हैं

$ strace -o strace.log emacs &

और स्ट्रिंग के लिए खोज themesमें strace.logअपने पसंदीदा पेजर या संपादक का उपयोग (exmple के लिए emacs!)। बहुत अधिक आउटपुट है, लेकिन आप उस खोज स्ट्रिंग (थीम फ़ाइल को खोजने के प्रयासों से मिलान करने के लिए) का उपयोग करके जल्दी से पथ पा सकते हैं। straceजब मैंने अस्थायी रूप से स्थानीय रूप से संशोधित थीम निर्देशिका को स्थानांतरित कर दिया, तो मैंने अपने आउटपुट में क्या पाया :

access("/home/foof/.local/share/themes/Orion/gtk-3.0/gtk.css", F_OK) = -1 ENOENT (No such file or directory)
access("/home/foof/.themes/Orion/gtk-3.0/gtk.css", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/share/themes/Orion/gtk-3.0/gtk.css", F_OK) = 0

यदि आप इसी तरह के ENOENTपरिणाम को इंगित करते हुए देखते हैं emacsऔर आपके पास सीएसएस फाइलों को देखने के बारे में अलग-अलग राय है, तो आप कर सकते हैं:

  1. विषय को अपने स्थानीय निर्देशिका में कॉपी करें और आवश्यक संशोधन करें:

    $ mkdir -pv ~/.local/share/themes/Orion
    $ cp -ai /usr/share/themes/Orion/gtk-3.0 ~/.local/share/themes/Orion/
    
  2. स्थानीय स्तर पर संशोधित gtk.cssफ़ाइल में @import स्टेटमेंट जोड़ें :

    @import url("apps/emacs.css");
    
  3. और apps/emacs.cssवांछित संशोधनों के साथ अपेक्षित स्थान में फ़ाइल बनाना या सुनिश्चित करना मौजूद है।

emacsCSS संबंधित त्रुटियों को देखने के लिए कमांड लाइन का उपयोग करके लॉन्च करना याद रखें । मेरे अनुभव में कोई भी विषय कैशिंग नहीं है, इसलिए लिंक किए गए सुपरयूज़र के उत्तर के विपरीत विभिन्न थीम सेटिंग्स के साथ कई एमएसीएस एप्लिकेशन को खोलना संभव था; लेकिन यह इसलिए हो सकता है क्योंकि मैं गनोम डेस्कटॉप सिस्टम नहीं चला रहा हूं (केडीई मेरी पसंद है)।

यदि आप किसी अन्य ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं, तो सिस्टम कॉल का पता लगाने के लिए अन्य उपयोगिता होनी चाहिए। OS X और हो सकता है कि अन्य BSD सिस्टम DTrace आदि का उपयोग करें। आप डिबगर के तहत ईमैक चलाने पर भी विचार कर सकते हैं यदि आप नहीं पा सकते हैं कि आपके सिस्टम पर सिस्टम कॉल का पता कैसे लगाया जाए, हालांकि यह बहुत अधिक परेशानी वाला है।

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