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
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.schemassebagai contoh.
KDE
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
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:
Bisakah Anda menyebutkan cara melakukan itu untuk semua DE resmi?
Oxwivi
Tidak persis terkait dengan pertanyaan, tetapi dapatkah Anda mengutip direktori lengkap di bagian bawah tangkapan layar? Terima kasih.
Oxwivi
4
xdg-open pada dasarnya hanya melihat untuk melihat lingkungan desktop mana yang Anda miliki dan kemudian menjalankan gnome-open, gvfs-open, xfce-open, dll --- Saya rasa tidak. Pertama, halaman manual tidak mengatakan itu, dan kedua, xdg-open berfungsi dengan sempurna tanpa lingkungan desktop. Misalnya saya menggunakannya dengan window manager i3.
Alois Mahdal
Apakah ada cara umum untuk membuat asosiasi URL / aplikasi baru saat pemasangan aplikasi?
jayarjo
14
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 :
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:
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:
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.
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:
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:
akan mengaitkan semua format video yang dikenal ke VLC.
Catatan 2: File .desktop sering berisi daftar tipe MIME yang mereka klaim dapat tangani menggunakan MimeTypebidang.
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).
Jawaban ini adalah cara terbaik. Kiat: 1) xdg-mime query filetype FILEadalah cara XDG untuk menemukan tipe mime. 2) Anda juga dapat mengedit sendiri default untuk menjaga hal-hal lebih teratur dan mendukungnya nanti: .config/mimeapps.listadalah file.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
memutar kembali 2 suntingan: @ jujur, ingin menjelaskan bagaimana xdg-mime "bekerja lebih baik"? File IMO adalah alat autoritatif untuk tipe MIME, xdg-mime query filetype xyz.wbemOTOH memberikan lebih sedikit info dan jauh lebih banyak mengetik.
Alois Mahdal
1
Penjelasan hebat dan tip untuk menggunakan satu-satunya nama file desktop adalah solusi yang saya cari terima kasih!
Andrea Richiardi
1
saran ini akhirnya membantu saya menyelesaikan masalah karena tidak bisa masuk menggunakan aplikasi desktop slack di linux. slack redirect ke browser, tetapi kemudian browser menggunakan skema URI untuk mengarahkan kembali ke slack. tips Anda membantu saya melihat bahwa pemetaan xri-mime URI kendur telah hilang. sangat senang saya menemukan ini setelah satu jam mencari! Terima kasih!
pestophagous
2
Saya ingin mengaitkan postmantautan 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:
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
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/
. Lihatxchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
sebagai contoh.KDE
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
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 .
sumber
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 :
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: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:
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 :
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:
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:
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).sumber
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:
Untuk melakukan asosiasi saya melakukan langkah-langkah berikut:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
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
sumber