คำสั่ง xdg-open รู้ได้อย่างไรว่าจะใช้แอปพลิเคชันใดในการเปิดไฟล์


21

ฉันคาดว่าคำสั่ง xdg-open จะใช้แอปพลิเคชันเดียวกันกับที่เปิดขึ้นเมื่อฉันดับเบิลคลิกที่ไฟล์ในตัวจัดการไฟล์เริ่มต้น แต่นี่ไม่ได้เป็นจริงเสมอไป

ตัวอย่างเช่น DE ของฉันคือ XFCE ตัวจัดการไฟล์ของฉันคือ Thunar และโปรแกรมดูรูปภาพเริ่มต้นของฉันคือ Ristretto อย่างไรก็ตามxdg-open example.pngเปิดไฟล์ PNG ตัวอย่างใน Pinta ทำไม?

คำตอบ:


23

xdg-open เป็นเครื่องมือที่ไม่ขึ้นกับเดสก์ท็อปสำหรับการกำหนดค่าแอปพลิเคชันเริ่มต้นของผู้ใช้ แอ็พพลิเคชันจำนวนมากเรียกใช้คำสั่ง xdg-open ภายใน ภายในสภาพแวดล้อมเดสก์ท็อป (เช่น GNOME, KDE หรือ Xfce), xdg-open จะส่งผ่านอาร์กิวเมนต์ไปยังแอปพลิเคชันเปิดไฟล์ของสภาพแวดล้อมเดสก์ทอป (เช่น gvfs-open, kde-open หรือ exo-open) ซึ่งหมายความว่าการเชื่อมโยงจะถูกปล่อยไว้จนถึงสภาพแวดล้อมเดสก์ท็อป เมื่อตรวจไม่พบสภาพแวดล้อมเดสก์ทอป (ตัวอย่างเช่นเมื่อมีการเรียกใช้ตัวจัดการหน้าต่างแบบสแตนด์อโลนเช่น Openbox) xdg-open จะใช้ไฟล์การกำหนดค่าของตัวเอง

จากarchwiki

เฉพาะคำถามของคุณคุณสามารถลองตั้งค่าแอปพลิเคชั่นเริ่มต้นที่เชื่อมโยงกับไฟล์ png:

xdg-mime default <ristretto.desktop> image/png

คุณต้องการค้นหาว่าชื่อแฟ้มเดสก์ท็อปของ Ristretto คืออะไร หลังจากนั้นคุณสามารถตรวจสอบกับสิ่งนี้:

xdg-mime query default image/png

1
นี่ถือได้ว่าเป็นคำตอบอย่างเป็นทางการ แต่จริงๆแล้วมันไม่ได้อธิบายปรากฏการณ์ที่ฉันได้กล่าวถึง
อีวาน

อัปเดตโปรดตรวจสอบอีกครั้ง
oxnz

ขอบคุณ และนี่เป็นเรื่องตลกมาก: xdg-mime query default image/pngผลตอบแทนwine-extension-png.desktop:-)
อีวาน

2

@Ivan นั่นอาจเกิดขึ้นเพราะคุณไม่ได้ระบุประเภทไฟล์ที่ถูกต้องเมื่อขอแอปพลิเคชันเริ่มต้น สำคัญคือวิธีที่ xdg เรียกใช้ไฟล์ประเภทนั้น ๆ สิ่งนี้สามารถพบได้โดยการวิ่ง

xdg-mime query filetype example.png

ตัวอย่างเช่นถ้าฉันทำเช่นนี้กับไฟล์ png เฉพาะบนคอมพิวเตอร์ของฉันมันจะกลับimage/x-apple-ios-pngมา เมื่อคุณพบไฟล์ประเภทจริงแล้วคุณสามารถเรียกใช้

xdg-mime query default <new filetype>

และรับแอปพลิเคชันที่ xdg ใช้สำหรับไฟล์ประเภทนี้โดยเฉพาะ ในกรณีที่ไม่มีการกำหนดแอปพลิเคชันสำหรับไฟล์ประเภทนี้ xdg-open จะตรวจสอบว่าไฟล์/etc/debian_versionพร้อมใช้งานหรือไม่หากเป็นกรณีนี้มันจะเปิดrun-mailcapขึ้นมาซึ่งคล้ายกับ xdg-open และพยายามหาโปรแกรมเพื่อเปิดไฟล์เช่นกัน .

เฉพาะในกรณีที่ล้มเหลวเช่นกัน xdg-open จะขอให้ผู้ใช้กำหนดโปรแกรมเพื่อเปิดไฟล์


นั่นไม่ได้เป็นสิ่งที่oxnzเขียนไว้แล้ว?
Jeff Schaller

oxnyกล่าวถึงวิธีการตั้งค่าและตรวจสอบแอปพลิเคชันสำหรับประเภทไฟล์ที่รู้จักเท่านั้น เขากำลังขาดการอ้างอิงถึงxdg-mime query filetype example.pngเพื่อตรวจสอบประเภทไฟล์ของไฟล์เฉพาะเพราะเพียงแค่สมมติว่าไฟล์. png ยังอยู่ในหมวดหมู่อิมเมจ / png ไม่ถูกต้องเสมอไป เมื่อดูความคิดเห็นของIvanฉันคิดว่าปัญหาของเขายังไม่ได้รับการแก้ไข
lauve
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.