मैं जिस स्थान पर डेस्कटॉप फ़ाइल स्थित हूं, उसके सापेक्ष एक .desktop फ़ाइल में 'Path' चर कैसे सेट कर सकता हूं?


11

मैं एक .desktop फ़ाइल में 'Path' चर को उस स्थान के सापेक्ष सेट करना चाहता हूँ जहाँ डेस्कटॉप फ़ाइल स्थित है और मैं ऐसा करने का प्रबंधन नहीं कर सकता।

जब मैं इसे घोषित नहीं करता हूं या इसे अपने घर फ़ोल्डर में डिफॉल्ट करने के लिए सेट करता हूं, तो इससे कोई फर्क नहीं पड़ता कि मैं इसे कहां से चलाता हूं; और यह फाइल सिस्टम के भीतर मेरे वर्तमान स्थान के सापेक्ष मूल्यों को स्वीकार नहीं करता है।


मुझे यह समस्या हुई है। मुझे वर्कअराउंड मिला है, हालांकि कभी-कभी आप जो कर रहे हैं, उसके आधार पर मौलिक रूप से जटिल। क्या आप इस समय किसी काम का उपयोग कर रहे हैं? यदि नहीं, तो मैं उस के साथ मदद करने में सक्षम हो सकता है। मुझे xdg डॉक्स नहीं मिले हैं जो इस पर बहुत व्याख्या करते हैं।
बंबूतु

ओपी आप अभी भी एक उत्तर की तलाश कर रहे हैं? यदि ऐसा है, तो आपको अपने प्रश्न को फिर से लिखना होगा क्योंकि यह बंद होने के लिए चिह्नित है। सादर,
रिंगटोन

जवाबों:


3

आप एक .desktop फ़ाइल के अंदर CWD सेट नहीं कर सकते। यदि आप एक विशिष्ट CWD के लिए एक आवेदन चाहते हैं, तो आपको आवेदन के लिए एक सरल आवरण स्क्रिप्ट लिखना होगा, जो कुछ इस तरह दिखाई दे:

#!/bin/sh

(cd /where/you/want/it/to/be && exec your_program)

आप स्क्रिप्ट को तर्क के रूप में अपने_प्रोग्राम के your_programसाथ बदल सकते हैं $@और चला सकते हैं , जैसे run-in-dir.sh your_program। इस तरह से आप उसी स्क्रिप्ट को उसी निर्देशिका में लपेटने के लिए उपयोग कर सकते हैं जिसे आप उस निर्देशिका में शुरू करना चाहते हैं।


14

आप अपने Exec पर इन-लाइन बैश मिनी-स्क्रिप्ट का उपयोग करके इसके चारों ओर कीचड़ कर सकते हैं। यह आपके आदेश को चलाने से पहले PATH में .desktop फ़ाइल का पथ जोड़ देगा।

Exec=bash -c "export PATH=$PATH:`dirname %k`; your_command"

डेस्कटॉप फ़ाइल के पथ के द्वारा% k को प्रतिस्थापित किया जाएगा। dirnameआदेश फ़ाइल नाम हिस्सा कांट-छांट कर, केवल निर्देशिका छोड़कर। एक बार जब PATH इस तरह सेट your_commandहो जाता है , तो उसे पूर्ण पथ के बिना लागू किया जा सकता है।


1
मैंने त्वरित क्लिक किया और गलत वोट दिया लेकिन आपका समाधान एकदम सही है।
1948 में क्रैन्डेलडब्ल्यूएस

1
यह इस अन्य प्रश्न / उत्तर stackoverflow.com/a/3464561/1815624 के
CrandellWS

2

मैंने इसका उपयोग किया:

Exec=bash -c 'cd $(dirname %k) && ./SCRIPT_NAME'

% K इसका पथ सहित .desktop फ़ाइल का पूरा नाम है। फिर इसका उपयोग dirname द्वारा किसी स्थान को प्राप्त करने और निर्देशिका को उस स्थान पर बदलने के लिए किया जाता है। अंत में, अब यह सही जगह पर है, यह स्क्रिप्ट को ढूंढता है और इसे चलाता है।



0

इसने मेरे लिए Ubuntu 14.04 का काम किया:

Exec=bash -c "cd %k && ./app.run"

नवीनतम युक्ति कहती है कि % k डेस्कटॉप फ़ाइल के स्थान को इंगित करता है:

% k - एक URI के रूप में डेस्कटॉप फ़ाइल का स्थान (यदि उदाहरण के लिए vfolder सिस्टम से प्राप्त किया गया है) या कोई स्थान ज्ञात नहीं होने पर एक स्थानीय फ़ाइल नाम या रिक्त है।

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