firefox จะรับแอปพลิเคชั่น "ค่าเริ่มต้น" สำหรับเปิดไฟล์จากที่ไหน


12

ตามค่าเริ่มต้น Firefox (33.0) บน FreeBSD 11.0-CURRENT ของฉันมีแอปพลิเคชั่นเริ่มต้นสำหรับการเปิดไฟล์ PDF ที่ตั้งค่าเป็น Inkscape Firefox ไม่จำทางเลือกของฉันก่อนหน้าEvinceใน“สิ่งที่ Firefox ควรจะทำอย่างไรกับแฟ้มนี้?” ดังนั้นเมื่อไม่นานมานี้ฉันเพิ่งสับสนว่าการกำหนดค่านี้มาจากไหน แต่ส่วนใหญ่ก็ไม่สนใจเพราะมันแทบจะไม่เกี่ยวข้องกับฉันเลย

อย่างไรก็ตามฉันเพิ่งเริ่มใช้ Zotero เป็นฐานข้อมูลวรรณกรรมของฉัน Zotero ทำงานเป็นปลั๊กอินของ Firefox และไม่สนใจตัวเลือกที่ทำในการตั้งค่า Firefox ของฉันเพื่อเปิดไฟล์ PDF ด้วย evince หรือถามฉันว่าจะทำอย่างไรกับพวกเขาและเพียงแค่เปิดพวกเขาโดยใช้ Inkscape สิ่งนี้ทำให้ฉันพยายามติดตามรายการการกำหนดค่าเฉพาะนี้ของ Firefox แต่ฉันไม่พบว่ามีการตั้งค่าเริ่มต้นไว้ที่ใด

ฉันไม่พบสตริงInkscape(หรือinkscape) ในไฟล์ที่เกี่ยวข้องกับ Firefox ในไดเรกทอรีบ้านของฉัน


1
ที่เกี่ยวข้อง: unix.stackexchange.com/questions/149033/…
John WH Smith

Firefox เริ่มต้นของฉันถูกตั้งค่าเป็น Font-Viewer
ผู้ใช้

คำตอบ:


14

ลิงก์ไปยัง“ คำถามที่คล้ายกัน” ( พฤติกรรมของแอปพลิเคชันเริ่มต้นที่เปิด xdg - ไม่เกี่ยวข้องอย่างเห็นได้ชัด แต่การทดลองบางอย่างแสดงให้เห็นว่าพฤติกรรมนั้นเทียบเท่ากับหนึ่งในนั้นxdg-open) ทำให้ฉันลึกลงไปในโพรงกระต่าย แม้ว่า Firefox จะไม่พึ่งพาหรือสืบทอดกฎ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

ลึกลงชนิด MIME ที่มีการกำหนดไว้ใน/usr/local/share/applications/mimeinfo.cache(นี้อาจจะ/usr/share/…ถ้าคุณไม่ได้อยู่ในระบบ FreeBSD) application/pdf=inkscape.desktop;evince.desktop;ซึ่งไม่รายการ ทั้งสองevince.desktopและในโฟลเดอร์ที่ประกอบด้วยinkscape.desktopMimeType=[…]application/pdf;[…]

mimeinfo.cacheถูกสร้างขึ้นโดยอัตโนมัติจากประเภทละครใบ้ที่ระบุไว้ใน.desktopไฟล์โดยไม่ต้องสั่งซื้อที่ดีที่กำหนดใด ๆ ดังนั้นคุณจะต้องลบไฟล์ PDF ประเภทละครใบ้จาก Inkscape และงอกใหม่แคชใช้update-mime-databaseหรือสร้าง mimeapps.list (ทั้งทั่วโลกใน/usr/local/share/applications/หรือ สำหรับผู้ใช้ของคุณใน~/.local/share/applications/mimeapps.list)


โบราณของฉัน Debian Linux, ไม่สิ่งที่แตกต่างที่ฉันต้องการupdate-mime-database update-desktop-database ~/.local/share/applications
Palec

นอกจากนี้ยังxdg-open file.pdfเปิด Evince (เช่นเดียวกับ Nautilus) ในขณะที่ Firefox เปิด xpdf ใช้find ~/.local/share/applications/ /usr/share/applications/ -type f -exec grep -i pdf '{}' +ฉันพบว่า PDF ถูกกล่าวถึงในการกำหนดค่าผู้ใช้เฉพาะใน/usr/share/applications/mimeinfo.cacheและตามลำดับ*.desktopไฟล์ บรรทัดในคือmimeinfo.cache application/pdf=xpdf.desktop;evince.desktop;xournal.desktop;ฉันเดาว่า FF ใช้รายการแรก แต่จะxdg-openรู้ได้อย่างไรว่าฉันต้องการ Evince
Palec

1
ใช้straceผมค้นพบว่าxdg-openการโทรgnome-openและการgnome-openอ่าน/usr/share/gnome/applications/defaults.listซึ่งเป็น symlink ไปซึ่งระบุ/etc/gnome-vfs-2.0/defaults.list application/pdf=evince.desktopเห็นได้ชัดว่าวานิลลา FF ขาดการรวม GNOME ดังนั้นจึงละเว้นการตั้งค่านี้
Palec

7

ใน Firefox 38.8.0 ESR ภายใต้ Debian Lenny กับ GNOME 2 ฉันค้นพบว่าแอปพลิเคชันที่เชื่อมโยงผ่านXDG (อธิบายในคำตอบโดย OP ) จะใช้เมื่อเปิดไฟล์ที่ดาวน์โหลดจากดาวน์โหลดในห้องสมุด

และถึงแม้จะมีการใช้งานจะให้ผลลัพธ์ที่ไม่สอดคล้องกับxdg-openมันละเว้นเส้นทางเฉพาะของ GNOME (ในกรณีของฉัน/usr/share/gnome/applications/defaults.listซึ่งเป็น symlink ไป/etc/gnome-vfs-2.0/defaults.list) ฉันจะต้องระบุในของฉันapplication/pdf=evince.desktop ~/.local/share/applications/defaults.list(โปรดทราบว่าdefaults.listมีการรวมอยู่mimeapps.listใน XDG รุ่นที่ใหม่กว่า)

แทนที่จะใช้ XDG ความสามารถของเมตาเมล (mailcap)จะถูกใช้เพื่อแก้ไขแอปพลิเคชันที่เกี่ยวข้องสำหรับกรณีการใช้งานต่อไปนี้:

  • การเปิดไฟล์ที่ดาวน์โหลดจากแผงดาวน์โหลด (ปรากฏขึ้นหลังจากกดปุ่มดาวน์โหลดในแถบเครื่องมือ)
  • แอปพลิเคชั่นเริ่มต้นในดรอปดาวน์ในกล่องโต้ตอบดาวน์โหลดไฟล์
  • แอปพลิเคชันเริ่มต้นในเมนูแบบเลื่อนลงในการตั้งค่า→แอปพลิเคชัน ( about:preferences#applications)

การกำหนดค่าตามความชอบabout:preferences#applicationsจะใช้เมื่อนำทางไปยัง URL ที่มีประเภทเนื้อหานั้นเว้นแต่จะมีการบังคับให้ดาวน์โหลด

Mailcap เป็นกลไกที่เก่ากว่า XDG และมีรากฐานมาจากอีเมลซึ่ง MIME ก็มาจากด้วยเช่นกัน ยูทิลิตี้เป็นกระเชอไปrun-mailcap xdg-openการกำหนดค่าประกอบด้วยสามไฟล์ (ในการลดความสำคัญ):

  • ~/.mailcap - รายการผู้ใช้
  • /etc/mailcap.order - ข้อกำหนดการสั่งซื้อรายการทั้งระบบ
  • /etc/mailcap - รายการทั้งระบบ (รูปแบบเดียวกับรายการผู้ใช้)

พวกเขาช่วยกันสร้างรายการของรายการหนึ่งบรรทัดที่ระบุแอปพลิเคชันที่จะใช้สำหรับประเภท MIME ที่กำหนด รายการจะถูกจับคู่จากบนลงล่างดังนั้นสิ่งที่มาก่อนจะมีความสำคัญกว่า

จะทำให้การเปลี่ยนแปลงทั้งระบบของรายการที่มีความสำคัญที่คุณจะต้องแก้ไขและเรียกใช้/etc/mailcap.orderupdate-mime

เมื่อต้องการแทนที่บางส่วนของรายการหรือระบุตัวเองของคุณทั้งระบบคุณจะต้องแก้ไขส่วนบน (หมายสำหรับรายการที่สร้างขึ้นด้วยตนเอง) ของและเรียกใช้/etc/mailcap update-mimeดูความคิดเห็นในส่วนด้านบน

~/.mailcapสำหรับรายการของผู้ใช้และแทนที่การใช้งาน การเปลี่ยนแปลงจะมีผลทันที. ไม่มี~/.mailcap.orderอยู่; หากคุณต้องการเปลี่ยนลำดับความสำคัญของรายการให้เรียงลำดับใหม่ตามจริง (ถ้าอยู่ใน~/.mailcap) หรือแทนที่พวกเขาด้วยเวอร์ชันที่ต้องการ (หากอยู่ใน/etc/mailcap)

ดูman update-mime, และman mailcapman mailcap.order

โปรดทราบว่าบางแอปพลิเคชันใช้ยูทิลิตีทั่วไป (เช่นx-www-browserหรือpager) แทนการตรวจจับแอปพลิเคชันที่ต้องการ คุณอาจจำเป็นต้องใช้update-alternativesหรือกลไกที่คล้ายกันในการเลือกใช้งานยูทิลิตี้ทั่วไปที่ต้องการใน distro ของคุณ หรือแทนที่เป็นทางเลือกที่แนะนำทั้งระบบสำหรับผู้ใช้เฉพาะตัวแปรสภาพแวดล้อมเช่นชุดEDITOR(หรือVISUAL) และPAGER BROWSERเครื่องมือเหล่านี้ได้รับการสนับสนุนsensible-browserและอื่น ๆ ซึ่งมักจะเป็นเครื่องมือเฉพาะเพิ่มเติม (เช่นการgit commitใช้งานEDITORและVISUAL)


1
คำตอบนี้ยังคงใช้ได้ใน Firefox Quantum (64.0) อย่างไรก็ตาม mailcap ทำงานได้ดีกว่า Firefox จริงดังนั้นคุณจึงไม่สามารถพึ่งพา run-mailcap --debug --norun ได้อย่างเต็มที่ application/pdf; sh -c "MEANINGFUL_VAR=preset /usr/bin/evince '%s'"ฉันมีรายการเช่นนี้: Firefox sh downloaded_file.pdfจากนั้นจะเรียก ในคอนโซลของฉันฉันเห็นแล้วในหมู่คนอื่น/tmp/mozilla_user/downloaded_file.pdf: line 3: 5: command not foundๆ พฤติกรรมเช่นนี้จะคงอยู่ตลอดไปเว้นแต่มีคนแก้ไขสิ่งนี้ ดูMozilla Bugzilla
u_Ltd

1
ดังนั้นเพื่อสร้างประสบการณ์ที่สอดคล้องสำหรับผู้ใช้งานของเขา / เธอผู้ดูแลระบบที่ใช้ชุดของ Debian กับ Gnome ควรตั้งค่าเริ่มต้น mime โดยใช้ยูทิลิตี้ไม่น้อยกว่า 4: update-mime(เพื่ออัพเดท mailcap), xdg-settings(เพื่ออัพเดท xdg-open) gio(เพื่ออัปเดต gnome-open) และupdate-alternatives(เพื่ออัปเดตยูทิลิตีทั่วไปที่เรียกว่า) และแน่นอนว่าเขา / เธอไม่ควรลืมที่จะจัดการการตั้งค่าทั้งระบบและสำหรับผู้ใช้แต่ละคนแยกกัน (น่าจะดีที่สุดในการปิดกั้นความสามารถของผู้ใช้ในการเปลี่ยนค่าเริ่มต้น) ... - ah, และ FF ของไฟล์ breaker.json mzl.la/1xKrLAq
zenlord
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.