चर को .desktop फ़ाइल में सेट करें


75

वहाँ .desktop फ़ाइल में पर्यावरण चर सेट करने के लिए एक रास्ता है? मैं कस्टम gtk स्टाइल के साथ एप्लिकेशन (ग्रहण) चलाने की कोशिश कर रहा हूं, इसलिए मूल रूप से मैं .desktop फ़ाइल चलाकर निम्न परिणाम प्राप्त करना चाहता हूं:

GTK2_RC_FILES=gtkrc.custom /path/to/eclipse

मैंने इसे एक बैश स्क्रिप्ट में रखने और इसे .desktop फ़ाइल से चलाने का प्रयास किया है, लेकिन तब यह एकता लांचर के साथ अच्छी तरह से एकीकृत नहीं होता है।

जवाबों:


111

आप इसकी .desktopफ़ाइल को संपादित करके एक एप्लिकेशन के लिए एक पर्यावरण चर जोड़ सकते हैं । उदाहरण के लिए, पर्यावरण चर के साथ "डिजीकैम" को चलाने के लिए, APPMENU_DISPLAY_BOTH=1संबंधित digikam.desktopफ़ाइल को ढूंढें और चर की सेटिंग को envकमांड के माध्यम से, प्रविष्टि "एक्सेक" में जोड़ें:

Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i

आपके मामले में:

Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/eclipse

1
मैं कैसे उपयोगकर्ता के साथ चर चर सेट कर सकते हैं $HOME? न तो Exec=env MYVAR="$HOME/foo"है और न ही Exec=env MYVAR="~/foo"विस्तार किया जाता है। इसके बजाय, उन्हें शाब्दिक रूप से पारित किया जाता है।
— 400 द कैट

ऐसा लगता है कि आप इसे stackoverflow.com/a/8980518/1446479
— peedee

9

.desktopफ़ाइल को संशोधित करने का एक विकल्प उदाहरण के लिए एक रैपर स्क्रिप्ट रखना है ~/bin।

$ cat ~/bin/eclipse
#!/bin/sh
export GTK2_RC_FILES=gtkrc.custom
exec /usr/bin/eclipse "$@"

अगली बार एप्लिकेशन पैकेज अपडेट होने पर इस तरह से अनुकूलन ओवरराइट नहीं किया जाएगा।

संपादित करें:

एक संकेत क्यों यह काम करता है के बारे में आप यह जाँच कर सकते हैं कि PATHचर में क्या है । मेरे मामले में:

$ echo $PATH
/home/gunnar/bin:/home/gunnar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

~/binसूची में पहला फ़ोल्डर है, और इस तरह से पहले देखा गया है /usr/bin।


यदि आप अपनी .desktop फ़ाइल को अपनी स्थानीय सेटिंग में रखते हैं, तो यह वैसे भी ओवरराइड नहीं होगा।
— Auspex

@ एसेक्स: सच। लेकिन एक ही समय में, यदि आप एक स्थानीय कॉपी का उपयोग करते हैं, तो आपको पैकेज स्वामित्व वाली .desktopफ़ाइल के संभावित अपडेट से लाभ नहीं होगा ।
— गुन्नार हेजलारसन

मैं यह नहीं देख रहा हूं कि एक रैपर को किस तरह से रखा ~/binजा रहा है। पैकेज के स्वामित्व वाली .desktopफ़ाइल कभी भी उस आवरण को देखने वाली नहीं है! आपको यह भी उपयोग करने की आवश्यकता होगीupdate-alternatives
— Auspex

@ एसेक्स: .desktopफ़ाइल को रैपर को "देखने" की आवश्यकता नहीं है। यह सिर्फ निष्पादित करता है eclipse, और PATHआवरण के कारण के बजाय उठाया जाता है /usr/bin/eclipse। मैंने स्पष्ट करने के लिए उत्तर संपादित किया।
— गुन्नार हजलमर्सन

हाँ, .desktop फ़ाइल करता आवरण को देखने की जरूरत है। मैं सोच रहा था कि औसत .desktop फ़ाइल एक पूर्ण पथ निर्दिष्ट करती है, लेकिन आगे के निरीक्षण पर मुझे लगता है कि अधिकांश सिस्टम केवल एक कमांड नाम निर्दिष्ट करते हैं - और इसलिए आपका आवरण दिखाई देगा । हालाँकि, मेरे पास एकमात्र ग्रहण डेस्कटॉप फाइलें हैं जो प्रश्न में निर्दिष्ट प्रारूप में हैं - ग्रहण बाइनरी के लिए एक पूर्ण मार्ग दे रही हैं।
— शुभ अंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.