किसी भी वातावरण के बिना `xdg-open` को कैसे ठीक से और आसानी से कॉन्फ़िगर करें?


63

मैं किसी भी डेस्कटॉप वातावरण के बिना OpenBox विंडो प्रबंधक का उपयोग कर रहा हूं ।

xdg-openअजीब व्यवहार करता है। इससे सब कुछ खुल जाता है firefox

$ xdg-settings --list
Known properties:
  default-web-browser           Default web browser

मैं एक साधारण कार्यक्रम की तलाश में हूं; हर *.desktopफाइल को /usr/share/applications/फ़ोल्डर में पढ़ने और xdg सेटिंग को स्वचालित रूप से सेट करने जैसा कुछ।


का उपयोग करना xdg-mime(का हिस्सा xdg-utils) के साथ काम करने के लिए सबसे अच्छा जवाब है (क्वेरी, कॉन्फ़िगर करना) xdg-open। इन्हें भी देखें unix.stackexchange.com/questions/8793/...
माइकल

जवाबों:


24

आप mimetypesextra को प्रबंधित करने के लिए रिपॉजिटरी में perl-file-mimeinfo का उपयोग कर सकते हैं ।

सभी .pdfफाइलें खोलने के लिए उदाहरण apvlv:

/usr/bin/vendor_perl/mimeopen -d $file.pdf

और फिर, प्रॉम्प्ट पर, एप्लिकेशन दर्ज करें apvlv:।


यह काम करता हैं। लेकिन यह केवल फ़ाइल खोलता है। तो मेरा xdg-openबायाँ अपुष्ट और उपयोग करने वाले अनुप्रयोग xdg-openदाईं ओर फाइलें नहीं खोलेंगे।
क्रविमीर

मैं आपकी टिप्पणी का पालन नहीं करता। क्या काम नहीं कर रहा है? -dस्विच डिफ़ॉल्ट सेट करता है। इसलिए यदि आप इसे खोलने के लिए उपयोग करते हैं fileA.pdf- तो आपको fileB.pdfअपने पसंदीदा एप्लिकेशन के साथ खोलने में सक्षम होना चाहिए ।
जसोनव्रीयन

1
हाँ। mimeopen -d a.pdfके लिए डिफ़ॉल्ट सेट करता है *.pdf, लेकिन यह स्वयं के लिए डिफ़ॉल्ट सेट mimeopen b.pdfकरता है - काम करता है। लेकिन xdg-openविन्यास अपरिवर्तित छोड़ दिया और यह अभी भी सब कुछ के साथ खुलता है firefox: /
kravemir

3
एक बार जब मैंने डिफ़ॉल्ट सेट कर लिया है mimeopen, तो xdg-openअपेक्षा के अनुरूप व्यवहार करता है - .pdfएस के मामले में , यह उनके साथ खुलता है apvlv
jasonwryan

1
यह मेरे लिए लुबंटू 16.04 में काम नहीं करता है। sudo xdg-mime default pluma.desktop text/plainदेता है touch: cannot touch "/home/user/.local/share/applications/mimeapps.list": No such file or directory /usr/bin/xdg-mime: 807: /usr/bin/xdg-mime: cannot create /home/user/.local/share/applications/mimeapps.list.new: Directory nonexistent; /usr/bin/vendor_perl/mimeopen -d $file.txtदेता है bash: /usr/bin/vendor_perl/mimeopen: No such file or directory
निकोलाई लेसचोव

62

Xdg से उपयोगिताओं का उपयोग क्यों नहीं करना चाहिए?

थुनार को डिफ़ॉल्ट फ़ाइल-ब्राउज़र बनाने के लिए, अर्थात फ़ोल्डर खोलने के लिए डिफ़ॉल्ट अनुप्रयोग।

$ xdg-mime default Thunar.desktop inode/directory

डिफ़ॉल्ट पीडीएफ दर्शक के रूप में xpdf का उपयोग करने के लिए:

$ xdg-mime default xpdf.desktop application/pdf

इसे आपके स्थानीय MIME डेटाबेस में एक प्रविष्टि बनाना चाहिए:

~/.local/share/applications/defaults.list
[Default Applications]
application/pdf=xpdf.desktop

आपकी पीडीएफ फाइलें अब xpdf के साथ खोली जानी चाहिए।


+1 और संबंधित प्रश्न पर मेरे संबंधित उत्तर भी देखें, unix.stackexchange.com/questions/77136/…
माइकल

2
सबसे उपयोगी उत्तर, धन्यवाद। defaults.listयह जानने के लिए सबसे आसान अगर जरूरत हो तो बस हाथ से संपादित किया जा सकता है।
एमवीसीएचआर

किसी कारण से xdg-mimeसंशोधित नहीं हुआ defaults.list, लेकिन इसे मैन्युअल रूप से संपादित करना (इस उत्तर में संकेत के लिए धन्यवाद) ने चाल चली।
स्किप्पी ले ग्रैंड गौरू

इसके लिए FYI की कुछ निर्भरताएं आवश्यक हैं, सुनिश्चित करें कि आपने उन्हें स्थापित किया है। RPM / DEB वितरण सामान्य रूप से आपके लिए ये स्थापित करेंगे।
लाज़प

2
defaults.listअब लगता है कहा जाता है mimeapps.list। के लिए वैध स्थानों की सूची के लिए आर्क विकी देखें mimeapps.list
मतीन उल्हाक

7

डेबियन पर आप रूट के रूप में कमांड का उपयोग कर सकते हैं

update-mime-database /usr/share/mime

होने shared-mime-infoपैकेज स्थापित।


2
मैंने इसे आजमाया है। यह काम नहीं करता है। मैं आर्च चला रहा हूं।
क्रैविमीर

-1 यह डेस्कटॉप वातावरण के लिए विशिष्ट है जो साझा-माइम-सूचना पर निर्भर करता है, जैसे कि GNOME
craymichael

7

आप xdg-mimeअपनी .desktopफ़ाइलों में से प्रत्येक के लिए उपयुक्त कमांड उत्पन्न करने के लिए कुछ इस तरह का उपयोग कर सकते हैं और उनके पास मौजूद mimetypes, फिर उन लोगों को निष्पादित करें जिन्हें आप पसंद करते हैं। नोट /usr/share/applicationsमें उपनिर्देशिकाएँ हो सकती हैं।

for dd in /usr/share/applications ~/.local/share/applications; do
  for d in $(ls $dd 2>/dev/null | grep "\\.desktop$"); do
    for m in $(grep MimeType $dd/$d | cut -d= -f2 | tr ";" " "); do
      echo xdg-mime default $d $m;
    done;
  done;
done

3

यह @ aleb के उत्तर की तरह है , लेकिन यह रिक्त स्थान के साथ डेस्कटॉप फ़ाइलों पर काम करता है:

find /usr/share/applications ~/.local/share/applications -iname '*.desktop' -print0 | while IFS= read -r -d $'\0' d; do
  for m in $(grep MimeType "$d" | cut -d= -f2 | tr ";" " "); do
    echo xdg-mime default "'$d'" "'$m'"
  done
done
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.