Bagaimana perintah xdg-open tahu aplikasi mana yang digunakan untuk membuka file?

21

Saya mengharapkan perintah xdg-open untuk menggunakan aplikasi yang sama yang terbuka ketika saya mengklik dua kali file di manajer file default, tetapi ini tidak selalu benar.

Misalnya DE saya adalah XFCE, manajer file saya adalah Thunar dan penampil gambar default saya adalah Ristretto. Namun, xdg-open example.pngbuka contoh file PNG di Pinta. Mengapa?

Ivan
sumber

Jawaban:

23

xdg-open adalah alat desktop-independent untuk mengkonfigurasi aplikasi default pengguna. Banyak aplikasi menjalankan perintah xdg-open secara internal. Di dalam lingkungan desktop (seperti GNOME, KDE, atau Xfce), xdg-open hanya meneruskan argumen ke aplikasi pembuka file lingkungan desktop tersebut (mis. Gvfs-open, kde-open, atau exo-open). yang berarti bahwa asosiasi diserahkan kepada lingkungan desktop. Ketika tidak ada lingkungan desktop yang terdeteksi (misalnya ketika seseorang menjalankan window manager mandiri seperti misalnya. Openbox), xdg-open akan menggunakan file konfigurasinya sendiri.

dari archwiki

khusus untuk pertanyaan Anda, Anda bisa mencoba ini untuk mengatur aplikasi default yang terkait dengan file png:

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

Anda perlu mencari tahu apa sebenarnya nama file desktop Ristretto. setelah itu, Anda bisa memeriksanya dengan ini:

xdg-mime query default image/png
oxnz
sumber
1
Ini dapat dianggap sebagai jawaban secara formal tetapi sebenarnya tidak menjelaskan fenomena yang telah saya sebutkan.
Ivan
diperbarui, silakan periksa lagi
oxnz
Terima kasih. Dan ini sangat lucu: xdg-mime query default image/pngpengembalian wine-extension-png.desktop:-)
Ivan
2

@Van Itu mungkin terjadi, karena Anda tidak memberikan jenis file yang tepat ketika meminta aplikasi default. Penting adalah bagaimana xdg memanggil tipe file tertentu. Ini dapat dengan mudah ditemukan dengan menjalankan

xdg-mime query filetype example.png

Sebagai contoh, jika saya melakukan ini dengan file png tertentu di komputer saya itu kembali image/x-apple-ios-png. Setelah Anda mengetahui jenis file yang sebenarnya, Anda dapat menjalankannya

xdg-mime query default <new filetype>

dan dapatkan aplikasi yang digunakan oleh xdg untuk tipe file spesifik ini. Dalam hal tidak ada aplikasi yang ditentukan untuk tipe file ini, xdg-open memeriksa apakah file /etc/debian_versiontersedia, jika ini masalahnya, ia akan diluncurkan run-mailcap, yang sangat mirip dengan xdg-open dan mencoba mencari program untuk membuka file juga .

Hanya jika ini gagal juga, xdg-open akan meminta pengguna untuk menentukan program untuk membuka file.

lauve
sumber
Bukankah itu yang sudah ditulis oleh oxnz ?
Jeff Schaller
oxny hanya menyebutkan cara mengatur dan memeriksa aplikasi untuk tipe file yang dikenal. Dia tidak memiliki referensi untuk xdg-mime query filetype example.pngmemeriksa filetype dari file tertentu, karena hanya dengan asumsi bahwa file .png juga termasuk dalam kategori gambar / png tidak selalu benar. Melihat komentar Ivan , saya pikir masalahnya belum terselesaikan.
lauve