ฉันต้องการใช้xdg-open
เพื่อเปิดirc://
ลิงก์ฉันจะสร้างพารามิเตอร์ที่ต้องการได้อย่างไร
ฉันต้องการใช้xdg-open
เพื่อเปิดirc://
ลิงก์ฉันจะสร้างพารามิเตอร์ที่ต้องการได้อย่างไร
คำตอบ:
xdg-open เป็นเพียงแค่ดูว่าสภาพแวดล้อมของเดสก์ท็อปที่คุณมีแล้วเรียกใช้ gnome-open, gvfs-open, xfce-open, ฯลฯ ดูด้านล่างสำหรับคำแนะนำเฉพาะของสภาพแวดล้อมเดสก์ท็อป ...
Gnome ใช้โปรแกรม gnome-open ซึ่งใช้ gconf เพื่อเก็บทุกอย่าง ตัวอย่างเช่นบนเครื่องของฉันที่ใช้ Ubuntu 10.10 ที่รัน gnome-open irc: // blah จะเปิดขึ้น xchat เพราะ xchat มีโปรแกรมแก้ไขการตั้งค่า gconf เพื่อเพิ่มตัวจัดการ irc: //
/desktop/gnome/url-handlers/
นี้แสดงให้เห็นว่าคำพังเพยไม่นี้ด้วยการตั้งค่าใน GConf ดูxchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
เป็นตัวอย่าง
สำหรับ KDE คุณควรดูไฟล์. protocol ใน / usr / share / kde4 / services / ให้สร้างใหม่สำหรับโปรโตคอลใหม่ของคุณและวางไว้ใน ~ / .kde / share / kde4 / services / หากเป็นประโยชน์อย่างยิ่ง พิจารณาการเพิ่มลงในแพ็คเกจเป็นการแก้ไขสำหรับผู้ใช้รายอื่น
KDE ใช้ kde-open หรือ kfmclient ขึ้นอยู่กับว่ามีอะไรบ้างและ KDE รุ่นใดที่คุณมี
XFCE ใช้โปรแกรมที่เรียกว่า exo-open โปรแกรมนี้ไม่มีวิธีการกำหนดค่าหรือเพิ่มตัวจัดการ uri การดูซอร์สโค้ดแสดงว่าใช้ไฟล์เดสก์ท็อปเพื่อระบุโปรแกรมสามประเภท TerminalEmulator, เว็บเบราเซอร์และ EmailClient
ด้วย XFCE4 (และอาจเป็นอย่างอื่น) คุณสามารถกำหนดค่า xdg-open เพื่อกำหนดตัวจัดการโปรโตคอลที่กำหนดเอง ในบางอย่างคุณต้องสร้าง / แก้ไขไฟล์ต่อไปนี้:
~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list
ตัวอย่างการเพิ่มตัวจัดการสำหรับโปรโตคอล ed2k ที่มีให้ที่ stackexchange.com 2
ฉันจะอธิบายสิ่งนี้ด้วยmagnet:
ประเภท URI และการส่งข้อมูล (เช่นกรณีของ bittorent) แต่วิธีการเดียวกันนี้สามารถใช้ได้กับแบบแผนหรือประเภทไฟล์ใด ๆ
นอกจากนี้ฉันตรวจสอบเรื่องนี้กับ Debian Jessie และฉันไม่มีเครื่อง Ubuntu แต่ฉันเชื่อว่ามันควรจะทำงานเหมือนเดิม (อย่างน้อยสำหรับxdg-openโปรดทราบว่าตัวจัดการไฟล์อาจเลือกใช้ตรรกะที่แตกต่างกัน)
ค้นหาสตริงประเภท MIME สำหรับประเภทไฟล์ MIME คุณสามารถค้นหาด้วยคำสั่งfile :
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
สำหรับไฟล์ดังกล่าวข้างต้น, video/webm
ชนิดไมม์คือ
สำหรับตัวจัดการ URI ชนิดคือx-scheme-handler/<scheme>
ซึ่ง
<scheme>
เป็นส่วนหนึ่งของ URI ก่อนโคลอนเช่น "http", "mailto" "irc" หรือ "แม่เหล็ก" ต่อไปนี้เป็นตัวอย่างของประเภท MIME ที่ถูกต้อง:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
ค้นหาชื่อแอปพลิเคชันไฟล์ .desktop
บ่อยครั้งที่มันไม่เหมือนกับชื่อ "เป็นทางการ" แต่เป็นรุ่นที่เล็กกว่าหรือชื่อแตกต่างไปจากเดิมอย่างสิ้นเชิง ติดตั้งไฟล์. เดสก์ท็อปอยู่ภายใต้ / usr / share / applications เนื่องจากเป็นไฟล์ข้อความปกติและมีชื่อ "เป็นทางการ" คำสั่งต่อไปนี้สามารถช่วยคุณได้:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
คำสั่งอย่างมีประสิทธิภาพหมายถึง "รายการไฟล์ภายใต้ไดเรกทอรีนี้ที่มีคำว่า 'ส่ง' ~/.local/share/applications
การใช้งานบางคนอาจจะติดตั้งเฉพาะสำหรับผู้ใช้ในกรณีที่ว่าเส้นทางจะ
ในกรณีที่คุณมีแอปพลิเคชั่น "แปลก" ที่อาจไม่มีไฟล์เลยคุณสามารถสร้างได้ตลอดเวลา (และอาจส่งไปยังผู้พัฒนาแอพ) วิธีที่ง่ายคือการคัดลอกที่มีอยู่เขียนฟิลด์ที่คุณเข้าใจและลบสิ่งที่คุณไม่ต้องการ อ้างถึง ข้อกำหนดสำหรับรายละเอียด
ทำการกำหนดโดยใช้คำสั่งxdg-mime :
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
โปรดทราบว่าไม่ว่าไฟล์จะอยู่ที่ใด (/ usr / share / applications, ~ / .local / share / applications ... ) คุณจะใช้ ชื่อเท่านั้นไม่ใช่เส้นทางแบบเต็ม
โดยปกติคำสั่งจะไม่แสดงผลอะไร - ก็โอเค หากคุณต้องการตรวจสอบสิ่งที่คุณเพิ่งทำหรือดูสิ่งที่ได้รับมอบหมายให้กับประเภท MIME ใด ๆ ในปัจจุบันโดยไม่ต้องเปิดมัน:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
หมายเหตุ 1:หากคุณต้องการตรวจสอบประเภท MIME อื่น ๆ คุณสามารถดู /etc/mime.types มันไม่ได้มีทุกประเภทในโลก; ตัวอย่างเช่นตัวจัดการ URI แต่สามารถใช้สำหรับรูปแบบ "ก้าวร้าว" ในการจัดการความสัมพันธ์ ตัวอย่างเช่น:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
จะเชื่อมโยงทุกรูปแบบวิดีโอที่รู้จักกับ VLC
หมายเหตุ 2:ไฟล์ .desktop มักจะมีรายการประเภท MIME ที่พวกเขาอ้างว่าสามารถจัดการกับการใช้MimeType
ฟิลด์
หน้า man xdg-mimeบอกว่าไฟล์ .desktop ต้องอ้างสิทธิ์ประเภท MIME ก่อนที่คำสั่งดังกล่าวจะทำงาน แต่สำหรับฉันมันดูเหมือนจะทำงานแม้ว่าเขตข้อมูลจะหายไป (ฉันหมายถึงการเชื่อมโยงจะถูกนำไปใช้และแอปพลิเคชันจะเปิดใช้งาน - หากสามารถจัดการกับประเภทนั้นเป็นคำถามอื่นได้) ฉันไม่แน่ใจว่าข้อเสียเปรียบคืออะไร (ในอนาคตxdg-mimeจะถูก จำกัด มากขึ้น)
xdg-mime query filetype FILE
เป็นวิธี XDG ในการค้นหาประเภท mime 2) คุณยังสามารถแก้ไขค่าเริ่มต้นด้วยตัวคุณเองเพื่อให้สิ่งต่าง ๆ มีการจัดระเบียบมากขึ้นและสำรองในภายหลัง: .config/mimeapps.list
เป็นไฟล์
xdg-mime query filetype xyz.wbem
OTOH ให้ข้อมูลน้อยลงและเป็นวิธีการพิมพ์ที่มากขึ้น
ฉันต้องการเชื่อมpostman
โยงลิงก์กับแอพบุรุษไปรษณีย์ที่ติดตั้งด้วยตนเอง (ไม่ใช่ส่วนขยายของ Chrome) เพื่อให้ฉันสามารถเปิดบุรุษไปรษณีย์จากเบราว์เซอร์เช่นนี้:
ลิงก์ที่ฉันต้องการเชื่อมโยงมีลักษณะเช่นนี้:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
ในการทำสมาคมฉันทำขั้นตอนต่อไปนี้:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
postman
การเชื่อมโยงแบบ XDG กับการประยุกต์ใช้โดยการทำงาน:xdg-mime default Postman.desktop x-scheme-handler/postman
ฉันได้ยกเลิกการกำหนดค่านี้หากใครสนใจ: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml