Saya ingin menggunakan xdg-open
untuk membuka irc://
tautan, bagaimana saya bisa membuat parameter yang diperlukan?
Saya ingin menggunakan xdg-open
untuk membuka irc://
tautan, bagaimana saya bisa membuat parameter yang diperlukan?
Jawaban:
xdg-open pada dasarnya hanya melihat untuk melihat lingkungan desktop mana yang Anda miliki dan kemudian menjalankan gnome-open, gvfs-open, xfce-open, dll. Lihat di bawah untuk petunjuk spesifik lingkungan desktop ...
Gnome menggunakan program gnome-open yang menggunakan gconf untuk menyimpan semuanya. Sebagai contoh pada mesin saya dengan Ubuntu 10.10 menjalankan gnome-open irc: // bla membuka xchat karena xchat menyertakan tambalan gconf untuk menambahkan irc: // handler.
Ini menunjukkan bagaimana gnome melakukan ini, dengan pengaturan gconf di /desktop/gnome/url-handlers/
. Lihat xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
sebagai contoh.
Untuk KDE Anda harus melihat file .protocol di / usr / share / kde4 / services /, buat yang baru untuk protokol baru Anda dan masukkan ke ~ / .kde / share / kde4 / services /, jika itu super berguna maka pertimbangkan untuk menambahkannya ke paket sebagai perbaikan untuk pengguna lain.
KDE menggunakan kde-open atau kfmclient tergantung pada apa yang tersedia dan versi KDE yang Anda miliki.
XFCE menggunakan program yang disebut exo-open, program ini tidak memiliki cara untuk mengkonfigurasinya atau menambah uri handler. Melihat melalui kode sumber menunjukkan bahwa menggunakan file desktop untuk menentukan hanya tiga jenis program. TerminalEmulator, WebBrowser dan EmailClient.
Dengan XFCE4 (dan mungkin juga yang lain) dimungkinkan untuk mengkonfigurasi xdg-open untuk mendefinisikan handler protokol kustom. Dalam beberapa Anda harus membuat / mengedit file-file berikut:
~ / .local / share / application / protocolhandler.desktop ~ / .local / share / Applications / mimeapps.list
Contoh menambahkan handler untuk protokol ed2k disediakan di stackexchange.com 2 .
Saya akan menjelaskan ini dengan magnet:
tipe URI dan Transmisi (yaitu kasus bittorent), tetapi metode yang sama dapat diterapkan pada skema atau tipe file apa pun.
Saya juga memeriksa ini dengan Debian Jessie, dan saya tidak benar-benar memiliki mesin Ubuntu, tetapi saya percaya itu harus bekerja sama (setidaknya untuk xdg-open , perhatikan bahwa manajer file dapat memilih untuk menggunakan logika yang berbeda).
Cari tahu tipe string MIME. Untuk jenis file MIME, Anda dapat menemukannya dengan perintah file :
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
Untuk file di atas, tipe MIME adalah video/webm
.
Untuk penangan URI, tipenya adalah x-scheme-handler/<scheme>
, di mana
<scheme>
bagian URI sebelum titik dua, misalnya "http", "mailto" "irc" atau "magnet". Berikut ini adalah contoh jenis MIME yang valid:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
Cari tahu nama file aplikasi .desktop.
Seringkali itu tidak sama dengan nama "resmi" tetapi versi lebih kecil dari itu, atau nama yang sama sekali berbeda. File .desktop yang terinstal langsung di / usr / share / aplikasi. Karena mereka adalah file teks normal dan berisi nama "resmi", perintah berikut dapat membantu Anda:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
Perintah ini secara efektif berarti "daftar file di bawah direktori ini yang berisi kata 'Transmisi'". Beberapa aplikasi mungkin diinstal hanya untuk pengguna, dalam hal ini jalurnya
~/.local/share/applications
.
Jika Anda memiliki aplikasi "aneh" yang mungkin tidak memiliki file sama sekali, Anda selalu dapat membuatnya (dan mungkin mengirimkannya ke pengembang aplikasi). Cara mudah adalah menyalin yang sudah ada, menulis ulang bidang yang Anda pahami, dan menghapus bidang yang tidak Anda miliki. Lihat spesifikasi untuk detailnya.
Buat tugas menggunakan perintah xdg-mime :
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
Perhatikan bahwa di mana pun file itu berada (/ usr / share / aplikasi, ~ / .local / share / aplikasi ...), Anda selalu menggunakan hanya nama , bukan path lengkap.
Biasanya perintah tidak akan menghasilkan apa pun - tidak apa-apa. Jika Anda ingin memverifikasi apa yang baru saja Anda lakukan atau melihat apa yang saat ini ditetapkan untuk jenis MIME apa pun tanpa membukanya:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
Catatan 1: Jika Anda ingin memeriksa tipe MIME lainnya, Anda dapat melihat /etc/mime.types. Itu tidak mengandung semua tipe di dunia; misalnya penangan URI, tetapi dapat digunakan untuk bentuk "agresif" penanganan asosiasi. Sebagai contoh:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
akan mengaitkan semua format video yang dikenal ke VLC.
Catatan 2: File .desktop sering berisi daftar tipe MIME yang mereka klaim dapat tangani menggunakan MimeType
bidang.
Halaman manual xdg-mime mengatakan bahwa file .desktop harus mengklaim tipe MIME sebelum perintah yang disebutkan di atas akan berfungsi, tetapi bagi saya sepertinya berfungsi bahkan jika bidangnya tidak ada. (Maksud saya, asosiasi akan diterapkan dan aplikasi akan diluncurkan - jika benar-benar dapat menangani jenisnya adalah pertanyaan yang berbeda). Saya tidak yakin apa kekurangannya (mungkin di masa depan xdg-mime akan lebih ketat).
xdg-mime query filetype FILE
adalah cara XDG untuk menemukan tipe mime. 2) Anda juga dapat mengedit sendiri default untuk menjaga hal-hal lebih teratur dan mendukungnya nanti: .config/mimeapps.list
adalah file.
xdg-mime query filetype xyz.wbem
OTOH memberikan lebih sedikit info dan jauh lebih banyak mengetik.
Saya ingin mengaitkan postman
tautan dengan aplikasi tukang pos yang saya instal secara manual (bukan ekstensi chrome) sehingga saya dapat membuka dokumen tukang pos dari browser seperti ini:
Tautan yang ingin saya kaitkan terlihat seperti ini:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
Untuk melakukan asosiasi saya melakukan langkah-langkah berikut:
/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
tautan xdg dengan aplikasi dengan menjalankan:xdg-mime default Postman.desktop x-scheme-handler/postman
Saya telah melakukan kesalahan konfigurasi ini jika ada yang tertarik: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml