xdg-buka perilaku aplikasi default

13

Ketika saya tidak punya defaults.listdan mimeapps.list, xdg-openbuka text/plaindengan gvim. Tapi ketika saya membuat defaults.listdi /usr/share/applications/dan tambahkan baris berikut:

[Default Applications]
text/plain=emacs.desktop

itu membuka file teks dengan firefox.

Namun, jika saya pindah /usr/share/applications/defaults.listke ~/.local/share/applications/mimeapps.list, itu membuka file teks dengan emacsseperti yang diharapkan.

Pertanyaan saya:

  1. Bagaimana cara xdg-openmenentukan aplikasi mana yang akan diluncurkan ketika tidak ada defaults.listdan mimeapps.list?
  2. Mengapa xdg-openmenggunakan firefox ketika saya hanya menulis /usr/share/applications/defaults.list?

Saya menggunakan Arch linux.

Gradien
sumber
1
Saya menggunakan Openbox. Juga, saya perhatikan sebuah /usr/share/applications/mimecache.infofile yang sepertinya berisi daftar aplikasi default. Itu bahkan lebih membingungkan ...
Gradient
1
Saya menemukan file konfigurasi ini di~/.config/mimeapps.list
Sam Mason

Jawaban:

23

Jika menggunakan xdg-openuntuk membuka aplikasi, maka gunakan xdg-mimeuntuk mengatur aplikasi default untuk tipe mime tertentu (biasanya, menginstal xdg-utils memberi Anda xdg-mime dan program terkait).

Misalnya, untuk melihat "tipe file" (tipe mime, jika Anda mau) dari file yang diberikan:

$ xdg-mime query filetype tmp.txt
text/plain

$ xdg-mime query filetype foo.pdf 
application/pdf

$ xdg-mime query filetype $PWD
inode/directory

Contoh mengubah manajer file default untuk membuka direktori (bisa memilih caja.desktop (default untuk mint), nautilus.desktop (ubuntu), dll:

$ xdg-mime default Thunar.desktop inode/directory

Dan juga lakukan locate -i foo.desktopuntuk memverifikasi yang foo.desktopmemang ada.

Lebih tepatnya, untuk melihat apa editor teks default,

$ xdg-mime  query default text/plain 
gedit.desktop

Untuk menggunakan editor teks default yang berbeda (sekali lagi, pastikan file ".desktop" ada):

$ locate -i vim.desktop
/usr/share/applications/gvim.desktop

$ xdg-mime default gvim.desktop text/plain

Sekarang, klik dua kali "foo.txt" (di pengelola file GUI Anda) atau jalankan xdg-open foo.txtakan digunakan gvimsebagai gantinya gedit.

Pemecahan masalah: pastikan bahwa file ".desktop" untuk aplikasi yang diberikan dapat ditemukan, karena itu harus digunakan dengan xdg-mimeutilitas; misalnya,

$ xdg-mime default emacs text/plain 
xdg-mime: malformed argument 'emacs', expected *.desktop

Lebih lanjut, ini diam-diam gagal berfungsi seperti yang diharapkan jika file ".desktop" tidak ada:

$ locate -i emacs.desktop
(none)

$ xdg-mime default emacs.desktop text/plain  # won't work

File ".desktop" emacs yang sebenarnya (dalam env saya):

$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop

$ xdg-mime default emacs24.desktop text/plain  # does work

Lihat juga: https://wiki.archlinux.org/index.php/xdg-open

michael
sumber
3
Bertahun-tahun kemudian, tapi Terima kasih! Beberapa pengembang telah membuat lelucon yang sangat buruk dalam anggur, dia pasti berpikir "jika Anda benar-benar ingin mengembalikan sebagian dari rasa sakit Windows itu, Anda harus memiliki semuanya agar tidak pernah bernostalgia!" Dan sejak itu semua program X11 memulai tiruan notepad saat membuka File Teks. Membuka file dari suatu aplikasi jarang bagi saya, tetapi notepad sangat menyakitkan. Dengan bantuan Anda, saya mendapatkan gvim.
flaschenpost