Bagaimana xdg-open melakukan tugasnya

27

Menurut halaman manual, xdg-openakan membuka file menggunakan aplikasi yang telah dikonfigurasi pengguna. Tetapi bagaimana sebenarnya aplikasi itu ditentukan? Saya tidak dapat melihat file konfigurasi yang terkait xdg-utils, jadi di mana pengaturan saya disimpan dan bagaimana cara memodifikasinya? Melihat bagaimana file PNG sederhana membuka Internet Explorer menggunakan Wine, saya perlu mengubah pengaturan ini.

MvG
sumber

Jawaban:

27

Lihatlah isi xdg-openfile, dan Anda akan melihat bahwa itu adalah skrip shell sederhana. Tugas utamanya adalah mengidentifikasi lingkungan desktop yang digunakan, yang kemudian akan digunakan untuk mendelegasikan tugas ke alat tertentu:

  • Delegasi KDE ke kde-openataukfmclient
  • Gnome delegasi ke gvfs-openataugnome-open
  • Mate delegasi ke gvfs-openataumate-open
  • Delegasi XFCE keexo-open
  • LXDE mendelegasikan pcmanfm, dengan fallback ke "generic" untuk sebagian besar URL
  • Delegasi pencerahan untukenlightenment_open
  • Segala sesuatu yang lain disebut " generik ", dan skrip mencoba keberuntungannya sendiri

Jadi pesan intinya adalah ini: dalam kebanyakan situasi, salah satu dari delegasi ini akan melakukan pekerjaan yang sebenarnya, jadi Anda harus memeriksa bagaimana ini dikonfigurasi.

Misalnya, saya menjalankan XFCE, jadi xdg-openpanggilan exo-openyang menggunakan pengaturan XFCE tersedia melalui antarmuka pengguna pengaturan XFCE dan disimpan di ~/.local/share/applications/mimeapps.list.

Untuk detail tentang file konfigurasi yang digunakan, strace -e filedapat bermanfaat. Dan jika Anda berada dalam situasi "generik" dan ingin melihat apa yang xdg-opendilakukannya, Anda dapat mencobanya sh -x `which xdg-open` file.name.

MvG
sumber
2
Jawaban serupa untuk pertanyaan berbeda. :-)
patryk.beza