फ़ायरफ़ॉक्स को फ़ाइलों को खोलने के लिए "डिफ़ॉल्ट" एप्लिकेशन कहां से मिलते हैं?


12

डिफ़ॉल्ट रूप से, मेरे FreeBSD 11.0-CURRENT पर फ़ायरफ़ॉक्स (33.0) में इंकस्केप के लिए निर्धारित पीडीएफ फाइलों को खोलने के लिए डिफ़ॉल्ट एप्लिकेशन है। फ़ायरफ़ॉक्स मेरे पिछले विकल्प है, याद करता जताना में "क्या फ़ायरफ़ॉक्स इस फ़ाइल के साथ क्या करना चाहिए?", संवाद, इसलिए हाल ही में जब तक मैं उलझन में था कि यह कॉन्फ़िगरेशन कहां से आया था, लेकिन ज्यादातर ने इसे नजरअंदाज कर दिया क्योंकि इसने मुझे मुश्किल से परेशान किया।

लेकिन मैंने हाल ही में अपने साहित्य डेटाबेस के रूप में ज़ोटेरो का उपयोग करना शुरू कर दिया है। ज़ोटेरो एक फ़ायरफ़ॉक्स प्लगइन के रूप में चलता है, और पीडीएफ फाइलों को खोलने के लिए मेरी फ़ायरफ़ॉक्स प्राथमिकताओं में पसंद किए गए विकल्पों को अनदेखा करता है या मुझसे पूछता है कि उनके साथ क्या करना है, और बस उन्हें इंकस्केप का उपयोग करके खोलता है। इसने मुझे फ़ायरफ़ॉक्स के इस विशेष कॉन्फ़िगरेशन आइटम का अनुसरण करने का प्रयास किया, लेकिन मुझे यह नहीं मिला कि वह डिफ़ॉल्ट कहाँ सेट है।

मैं अपने होम डायरेक्टरी में किसी भी फ़ायरफ़ॉक्स-संबंधित फ़ाइल में स्ट्रिंग Inkscape(या inkscape) नहीं ढूंढ सका ।



मेरा फ़ायरफ़ॉक्स डिफ़ॉल्ट फॉण्ट-व्यूअर पर सेट है।
उपयोगकर्ता

जवाबों:


14

"समान प्रश्न" का लिंक ( xdg-खुले डिफ़ॉल्ट अनुप्रयोग व्यवहार - स्पष्ट रूप से संबंधित नहीं है, लेकिन कुछ प्रयोग से पता चला कि व्यवहार वास्तव में एक के बराबर है xdg-open) ने मुझे खरगोश के छेद को और गहरा कर दिया। जबकि फ़ायरफ़ॉक्स पर निर्भर नहीं है, या नियमों से विरासत में मिला है xdg-open, यह MIME विनिर्देशन फ़ाइलों का उपयोग xdg-openकरता है।

उपयोगकर्ता के आधार पर, MIME उद्घाटन व्यवहार को विनिर्देश फ़ाइल द्वारा कॉन्फ़िगर किया गया है ~/.local/share/applications/mimeapps.list

मेरे लिए, इस फ़ाइल में कुछ उचित प्रोटोकॉल और HTML (और इसी तरह) से जुड़ी फाइलें हैं userapp-Firefox-??????.desktop, लेकिन आप आसानी से एक लाइन जोड़ सकते हैं

application/pdf=evince.desktop

प्रति-उपयोगकर्ता के आधार पर उस समस्या को हल करने के लिए। यदि फ़ाइल अभी तक मौजूद नहीं है, तो अनुभाग हेडर जोड़ना सुनिश्चित करें, जैसे कि

[Default Applications]
application/pdf=evince.desktop

नीचे की ओर, माइम प्रकार को परिभाषित किया गया है /usr/local/share/applications/mimeinfo.cache(यह हो सकता है /usr/share/…यदि आप फ्रीबीएसडी सिस्टम पर नहीं हैं), जो सूची करता है application/pdf=inkscape.desktop;evince.desktop;। दोनों evince.desktopऔर inkscape.desktopउस फ़ोल्डर में शामिल MimeType=[…]application/pdf;[…]

mimeinfo.cacheस्वचालित रूप से में सूचीबद्ध माइम प्रकार से उत्पन्न होता है .desktop, किसी भी अच्छी तरह से परिभाषित आदेश के बिना फ़ाइलों को तो आप या तो इंकस्केप से PDF माइम प्रकार दूर करने के लिए और का उपयोग कर कैश को पुनर्जीवित करना होगा update-mime-databaseमें विश्व स्तर पर, या एक mimeapps.list उत्पन्न (या तो /usr/local/share/applications/, या अपने उपयोगकर्ता के लिए ~/.local/share/applications/mimeapps.list)।


मेरे प्राचीन डेबियन लिनक्स पर, update-mime-databaseकुछ अलग करता है , जिसकी मुझे जरूरत थी update-desktop-database ~/.local/share/applications
पालेक

इसके अलावा, xdg-open file.pdfEvince खोलता है (जैसा कि Nautilus करता है), जबकि फ़ायरफ़ॉक्स xpdf खोलता है। उपयोग करते हुए find ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +मैंने पाया कि पीडीएफ का उल्लेख उपयोगकर्ता विन्यास में कहीं नहीं है, केवल /usr/share/applications/mimeinfo.cacheऔर संबंधित *.desktopफाइलों में है। में लाइन mimeinfo.cacheहै application/pdf=xpdf.desktop;evince.desktop;xournal.desktop;। मुझे लगता है कि एफएफ पहला आइटम लेता है। लेकिन xdg-openमुझे कैसे पता चलेगा कि मुझे एवियन चाहिए?
पालेक

1
का उपयोग करते हुए strace, मैंने पाया कि xdg-openकॉल gnome-openऔर gnome-openरीड /usr/share/gnome/applications/defaults.list, जो कि एक सिमिलिंक है /etc/gnome-vfs-2.0/defaults.list, जो निर्दिष्ट करता है application/pdf=evince.desktop। जाहिर है, वेनिला एफएफ में GNOME एकीकरण का अभाव है और इस प्रकार यह वरीयता को अनदेखा करता है।
पालेक

7

फ़ायरफ़ॉक्स 38.8.0 ESR में, गेनोम 2 के साथ डेबियन लेनी के तहत, मुझे पता चला कि XDG ( ओपी द्वारा जवाब में वर्णित) के माध्यम से जुड़े एप्लिकेशन का उपयोग केवल लाइब्रेरी में डाउनलोड से एक फ़ाइल खोलने के दौरान किया जाता है।

और वहां भी, कार्यान्वयन असंगत परिणाम देता है xdg-openक्योंकि यह गनोम-विशिष्ट पथों को अनदेखा करता है (मेरे मामले में /usr/share/gnome/applications/defaults.list, जो एक सिम्लिंक है /etc/gnome-vfs-2.0/defaults.list)। मैं निर्दिष्ट करने के लिए किया था application/pdf=evince.desktopमेरी में ~/.local/share/applications/defaults.list। (ध्यान दें कि XDG के अधिक हाल के संस्करणों में defaults.listविलय कर दिया गया था mimeapps.list।)

XDG के बजाय, मेटामेल क्षमताओं (मेलकैप) का उपयोग निम्नलिखित उपयोग के मामलों के लिए संबंधित एप्लिकेशन को हल करने के लिए किया जाता है:

  • डाउनलोड पैनल से डाउनलोड की गई फ़ाइल को खोलना (टूलबार में डाउनलोड बटन दबाने के बाद प्रदर्शित)
  • फ़ाइल डाउनलोड संवाद में ड्रॉप-डाउन में डिफ़ॉल्ट अनुप्रयोग
  • प्राथमिकताओं में ड्रॉप-डाउन में डिफ़ॉल्ट अनुप्रयोग → अनुप्रयोग ( about:preferences#applications)

वरीयता about:preferences#applicationsका उपयोग तब किया जाता है जब उस सामग्री प्रकार के साथ किसी URL पर नेविगेट किया जाता है, जब तक कि डाउनलोड मजबूर न हो।

मेलकैप XDG से अधिक पुराना एक तंत्र है और इसकी जड़ें ई-मेल में हैं, जहाँ MIME भी आता है। run-mailcapउपयोगिता को अलंकारिक है xdg-open। इसके विन्यास में तीन फाइलें शामिल हैं (पूर्ववर्ती घटने में):

  • ~/.mailcap - उपयोगकर्ता प्रविष्टियों
  • /etc/mailcap.order - सिस्टम-वाइड प्रविष्टियों के विनिर्देश विनिर्देश
  • /etc/mailcap - सिस्टम-वाइड प्रविष्टियाँ (उपयोगकर्ता प्रविष्टियों के समान प्रारूप)

साथ में वे एक-लाइन प्रविष्टियों की एक सूची तैयार करते हैं जो किसी भी MIME प्रकार के लिए उपयोग किए जाने वाले एप्लिकेशन को निर्दिष्ट करते हैं। प्रविष्टियों का मिलान नीचे से किया जाता है, इसलिए जो पहले आता है वह पूर्वता लेता है।

प्रविष्टियों की पूर्ववर्ती प्रणाली में व्यापक परिवर्तन करने के लिए, आपको संपादित करने /etc/mailcap.orderऔर चलाने की आवश्यकता है update-mime

कुछ प्रविष्टियों को ओवरराइड करने के लिए या अपनी खुद की, सिस्टम-वाइड निर्दिष्ट करने के लिए, आपको /etc/mailcapऔर चलाने के लिए शीर्ष अनुभाग (मैन्युअल रूप से निर्मित प्रविष्टियों के लिए) को संपादित करने की आवश्यकता है update-mime। शीर्ष अनुभाग में टिप्पणियां देखें।

उपयोगकर्ता प्रविष्टियों और ओवरराइड के लिए, का उपयोग करें ~/.mailcap। बदलाव तुरंत प्रभावी होते हैं। कोई ~/.mailcap.orderमौजूद नहीं है; यदि आप प्रविष्टियों को बदलना चाहते हैं, तो उन्हें भौतिक रूप से (यदि वे हैं ~/.mailcap) में पुनः व्यवस्थित करें , या उन्हें पसंदीदा संस्करण (यदि वे हैं /etc/mailcap) के साथ ओवरराइड करें ।

देखें man update-mime, man mailcapऔर man mailcap.order

ध्यान दें कि कुछ एप्लिकेशन पसंदीदा एप्लिकेशन का पता लगाने के बजाय जेनेरिक उपयोगिताओं (जैसे कि x-www-browserया तो pager) का उपयोग करते हैं। update-alternativesअपने डिस्ट्रो में एक सामान्य उपयोगिता के पसंदीदा कार्यान्वयन को चुनने के लिए आपको या इसी तरह के तंत्र का उपयोग करने की आवश्यकता हो सकती है । या, किसी विशिष्ट उपयोगकर्ता के लिए सिस्टम-वाइड पसंदीदा विकल्प को ओवरराइड करने के लिए, पर्यावरण चर जैसे EDITOR(या VISUAL), PAGERऔर सेट करें BROWSER। वे द्वारा समर्थित हैं sensible-browserऔर अन्य, अक्सर अधिक विशिष्ट उपकरण (जैसे git commitउपयोग करता है EDITORऔर VISUAL)।


1
यह उत्तर अभी भी फ़ायरफ़ॉक्स क्वांटम (64.0) में मान्य नहीं है। हालांकि, मेलकैप वास्तविक फ़ायरफ़ॉक्स की तुलना में बेहतर प्रदर्शन करता है, इसलिए आप रन-मेलकैप --debug --norun पर पूरी तरह से भरोसा नहीं कर सकते। मैं इस तरह एक प्रविष्टि है: application/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'"। फ़ायरफ़ॉक्स फिर आह्वान sh downloaded_file.pdf। अपने कंसोल पर मैं तब दूसरों के बीच में देखता हूं, /tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not foundयह व्यवहार हमेशा के लिए रहेगा, जब तक कि कोई इसे ठीक नहीं करता। मोज़िला बुगज़िला देखें ।
u_Ltd।

1
इसलिए, अपने उपयोगकर्ताओं के लिए एक सुसंगत अनुभव बनाने के लिए, एक व्यवस्थापक, जो गनोम के साथ डेबियन के संयोजन को तैनात करता है, को 4 से कम उपयोगिताओं का उपयोग करके माइम चूक सेट करना चाहिए: update-mime(मेलकैप अपडेट करने के लिए), xdg-settings(xdg-open को अपडेट करने के लिए), gio(सूक्ति-मुक्त अद्यतन करने के लिए) और update-alternatives(तथाकथित सामान्य उपयोगिताओं को अद्यतन करने के लिए)। और निश्चित रूप से वह सिस्टम-वाइड और प्रत्येक उपयोगकर्ता दोनों के लिए अलग-अलग सेटिंग्स का प्रबंधन करना नहीं भूल सकता है (शायद सबसे बड़ी चूक को बदलने के लिए उपयोगकर्ता की क्षमता को अवरुद्ध करने के लिए) ... - आह, और एफएफ के हैंडलर.जॉन फ़ाइल भी: mzl.la/1xKrLAq
zenlord
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.