แอ็พพลิเคชันดีฟอลต์ของ xdg-open


13

เมื่อฉันไม่มีdefaults.listและmimeapps.list, xdg-openเปิดด้วยtext/plain gvimแต่เมื่อฉันจะสร้างdefaults.listใน/usr/share/applications/และเพิ่มบรรทัดต่อไปนี้:

[Default Applications]
text/plain=emacs.desktop

มันเปิดไฟล์ข้อความด้วย firefox

อย่างไรก็ตามถ้าฉันย้าย/usr/share/applications/defaults.listไปที่~/.local/share/applications/mimeapps.listอื่นมันจะเปิดไฟล์ข้อความemacsตามที่คาดไว้

คำถามของฉัน:

  1. วิธีการที่ไม่xdg-openตรวจสอบว่าโปรแกรมที่จะเปิดตัวเมื่อไม่มีdefaults.listและmimeapps.list?
  2. ทำไมxdg-openใช้ Firefox เมื่อฉันเพียงแค่เขียน/usr/share/applications/defaults.list?

ฉันใช้ Arch linux


1
ฉันใช้ Openbox นอกจากนี้ฉันสังเกตเห็น/usr/share/applications/mimecache.infoไฟล์ที่ดูเหมือนจะแสดงรายการแอปพลิเคชันเริ่มต้น มันยิ่งทำให้สับสน ...
ไล่ระดับสี

1
ฉันพบไฟล์กำหนดค่านี้ใน~/.config/mimeapps.list
Sam Mason

คำตอบ:


23

หากใช้xdg-openเพื่อเปิดแอปพลิเคชันให้ใช้xdg-mimeเพื่อตั้งค่าแอปพลิเคชันเริ่มต้นสำหรับประเภท mime ที่กำหนด (โดยทั่วไปการติดตั้ง xdg-utils จะให้ xdg-mime และโปรแกรมที่เกี่ยวข้อง)

ตัวอย่างเช่นหากต้องการดู "filetype" (mime-type หากคุณต้องการ) ของไฟล์ที่กำหนด:

$ xdg-mime query filetype tmp.txt
text/plain

$ xdg-mime query filetype foo.pdf 
application/pdf

$ xdg-mime query filetype $PWD
inode/directory

ตัวอย่างการเปลี่ยนตัวจัดการไฟล์เริ่มต้นสำหรับการเปิดไดเรกทอรี (สามารถเลือก caja.desktop (ค่าเริ่มต้นสำหรับมิ้นต์), nautilus.desktop (Ubuntu) ฯลฯ :

$ xdg-mime default Thunar.desktop inode/directory

และยังทำการlocate -i foo.desktopตรวจสอบว่าfoo.desktopมีอยู่จริงหรือไม่

ตรงประเด็นเพื่อดูว่าตัวแก้ไขข้อความเริ่มต้นคืออะไร

$ xdg-mime  query default text/plain 
gedit.desktop

หากต้องการใช้โปรแกรมแก้ไขข้อความเริ่มต้นอื่น (ให้ตรวจสอบว่ามีไฟล์ ".desktop" อยู่):

$ locate -i vim.desktop
/usr/share/applications/gvim.desktop

$ xdg-mime default gvim.desktop text/plain

ตอนนี้ทั้งสองครั้งคลิก "foo.txt" (ในตัวจัดการไฟล์ของ GUI) หรือวิ่งxdg-open foo.txtจะใช้แทนgvimgedit

การแก้ไขปัญหา: ตรวจสอบให้แน่ใจว่าสามารถพบไฟล์ ".desktop" สำหรับแอปพลิเคชันที่กำหนดเนื่องจากต้องใช้กับxdg-mimeยูทิลิตี้ เช่น,

$ xdg-mime default emacs text/plain 
xdg-mime: malformed argument 'emacs', expected *.desktop

นอกจากนี้จะไม่สามารถทำงานได้ตามปกติหากไม่มีไฟล์ ".desktop":

$ locate -i emacs.desktop
(none)

$ xdg-mime default emacs.desktop text/plain  # won't work

ไฟล์ emacs ".desktop" ที่แท้จริง (ใน env ของฉัน):

$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop

$ xdg-mime default emacs24.desktop text/plain  # does work

ดูเพิ่มเติมที่: https://wiki.archlinux.org/index.php/xdg-open


3
หลายปีต่อมา แต่ขอบคุณ! นักพัฒนาบางคนใส่เรื่องตลกที่เลวร้ายลงไปในไวน์เขาจะต้องคิดว่า "ถ้าคุณต้องการหวนความเจ็บปวดของวินโดวส์บางตัวคุณก็ควรจะมีทุกอย่างที่จะไม่คิดถึง!" และตั้งแต่นั้นโปรแกรม X11 ทั้งหมดก็จะเริ่มทำการลอกแบบสมุดบันทึกเมื่อเปิดไฟล์ข้อความ การเปิดไฟล์จากแอปพลิเคชันหายากสำหรับฉัน แต่แผ่นจดบันทึกจะเจ็บจริงๆ ด้วยความช่วยเหลือของคุณฉันได้รับ gvim กลับมา
flaschenpost
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.