i3 dmenu $ PATH ब्राउज़ नहीं करता है


13

मैं एक खोल स्क्रिप्ट चलाना चाहते हैं ~/.local/bin/test.shके माध्यम से dmenu। अगर मैं चलाने dmenuके माध्यम से $mod+Dप्रवेश के लिए ब्राउज़ और test.shमैं इसे नहीं मिला।

पथ ~/.local/binमेरे $PATHचर में पहले से ही सेट है~/.profile

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

मैंने ~/.cache/dmenu_runi3 को भी हटा दिया और पुनः आरंभ किया। मैं dmenu के माध्यम से परीक्षण स्क्रिप्ट लॉन्च करने के लिए क्या कर सकता हूं?

जवाबों:


7

हटाएं ~/.cache/dmenu_runया ~/dmenu_cache, जिसके आधार पर आपके पास है, और लॉग इन करें। आपके PATH से पुनः लोड होने के बाद। लॉग इन करने के बाद, dmenu को $ PATH से कैश पुनः प्राप्त करना चाहिए। dmenu अपने स्वयं के कैश को नवीनीकृत करने के बारे में बुरा लगता है, और इसे कभी-कभी करने के लिए मजबूर होने की आवश्यकता होती है।

यह भी जांचें कि आपने स्क्रिप्ट के लिए निष्पादन योग्य बिट सक्षम किया है:

$ ls -l ~/.local/bin/test.sh
-rwxrwxrwx 1 user group 152 Jan 11 04:09 /home/user/.local/bin/test.sh

क्षमा करें, मैं यह उल्लेख करना भूल गया कि मैंने पहले ही ~/.cache/dmenu_runi3 को हटा दिया है और पुनः आरंभ कर रहा हूं लेकिन यह व्यवहार को प्रभावित नहीं करता है dmenu
होल्डरलिन

@ Hölderlin यह महत्वपूर्ण है कि आप लॉगआउट करें, और पुनः लोड करने के लिए लॉग इन करें~/.profile
केनेथ बी। जेनसेन

4

मुझे भी यही समस्या थी।

यह आर्क लिनक्स फोरम पोस्ट समस्या का वर्णन करता है:

~ / .Bashrc में $ PATH की स्थापना यह सुनिश्चित नहीं करती है कि आपका WM / dmenu इस env को इनहेरिट करेगा।
एक और अधिक प्रासंगिक प्रश्न पूछना है, "आप कैसे लॉगिन करते हैं?" आमतौर पर ~ / .bash_profile या ~ / .profile में निर्यात किए गए env आपके X अनुप्रयोगों में उपलब्ध हैं।
Dmenu_run लॉन्च करें जैसा कि आप सामान्य रूप से करते हैं, फिर dmenu में टाइप करें
echo $PATH > /tmp/path
फिर एक टर्मिनल में, cat /tmp/pathयह देखने के लिए कि $ PATT क्या है।

मेरे मामले में, मेरे ~/.profileद्वारा निर्धारित $ PATH निर्देशिकाओं को dmenu द्वारा नहीं उठाया गया था। मेरे विंडो मैनेजर को .xinitrc से शुरू किया गया है, और लाइन को समस्या को ठीक करने export PATH=$PATH:/dir/of/interestसे पहले .xinitrc फ़ाइल में एक अतिरिक्त जोड़ना exec my_wm। हालांकि यह थोड़ा सांवला है।

जैसा कि पहले उल्लेख किया गया था, मुझे ~/.cache/dmenu_runइसे काम करने के लिए परिवर्तन करने के बाद फाइल को निकालना होगा और फिर से लॉग इन करना होगा।


2
कुछ के लिए कोशिश echo $SHELL > /tmp/shellभी इसके लायक हो सकती है। मुझे लगा कि मेरा उपयोग किया जा रहा है, bashलेकिन यह इसका उपयोग करता है zshइसलिए इसने अलग-अलग कॉन्फ़िगरेशन फ़ाइलों की जाँच की। इसके अलावा xinitrcऔर इसे i3कॉन्फ़िगर करने की कोशिश की, लेकिन दोनों में से कोई भी काम नहीं किया - लेकिन / etc / zprofile ने किया! स्थानीय ~ / .zshrc पर्याप्त नहीं था। /etc/profileदोनों में zshऔर साथ ही काम कर सकते हैं bash
मियालिस

0

मैं पूर्ण एल्गोरिथ्म पोस्ट करता हूं:

  1. प्लेस env में वार्स ~/.profileया ~/.xprofile(अगर मौजूद नहीं है बनाएं), में नहीं~/.bashrc
  2. rm -f ~/.cache/dmenu_run
  3. लॉग आउट करें और लॉग इन करें

Env vars डिबग करने के लिए:

  1. Dmenu में: echo $PATH > /tmp/path
  2. टर्मिनल में: cat /tmp/path
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.