Jawaban:
Manajer file (Nautilus, secara default) menggunakan tipe file MIME untuk menentukan program mana yang akan dibuka. Ketika aplikasi diinstal, ia dapat menentukan jenis MIME apa yang dapat dibuka dan perintah yang digunakan untuk membuka file dalam file .desktop yang ditempatkan /usr/share/applications
. Ini adalah file yang digunakan untuk menu, pintasan desktop, dll.
Misalnya, GIMP memiliki file .desktop berikut:
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
Lihat MimeType
bidang - ini mencantumkan jenis MIME yang didukung. Exec
Bidang ini memberitahu sistem untuk menggunakan perintah gimp-2.7 %U
, menggantikan '% U' dengan file yang akan dibuka. (Catatan GIMP 2.7 adalah versi yang telah saya instal dari PPA, jadi lebih tinggi dari versi saat ini di repositori Ubuntu).
Ketika paket aplikasi diinstal, sistem mengekstrak data tipe MIME ini ke dalam basis data yang lebih mudah diakses karena melihat di setiap file .desktop akan memakan waktu terlalu lama jika dilakukan setiap kali file dibuka.
Ini memberi tahu sistem aplikasi apa yang dapat digunakan untuk tipe MIME itu dan menyediakan aplikasi dalam daftar 'Open With'. Defaultnya didefinisikan di tempat lain. File /usr/share/applications/defaults.list
menyediakan informasi untuk standar sistem. Kecuali Anda memilih sebaliknya, ini adalah aplikasi yang digunakan saat Anda 'Membuka' file.
sudo update-desktop-database
Lihat jarrpa.net/2011/10/10/28/...
/usr/local/share/applications
. Saya pikir gtk terlihat di sana juga, secara default. Itu pada sistem saya, tetapi sudah ditingkatkan (tidak diinstal ulang) sejak Ubuntu 7.04 atau lebih.
Untuk melengkapi jawaban luar biasa dv3500ea, saya ingin menambahkan beberapa informasi tentang apa yang terjadi ketika Anda mengubah asosiasi Anda.
Sementara defaults.list (yang dapat Anda temukan dengan mengetikkan 'loc defaults.list') memberikan daftar aplikasi yang terkait dengan setiap jenis MIME, setiap kustomisasi yang Anda buat disimpan di direktori home Anda, di ~ / .local / bagikan / aplikasi / mimeapps.list. Jadi, jika Anda menambah atau menghapus asosiasi, atau mengubah asosiasi default, file ini diperbarui.
Panduan Administrasi Sistem Desktop GNOME di http://library.gnome.org/admin/system-admin-guide/stable/ tampaknya tidak membahas mimeapps.list, tetapi saya menemukan uraian berikut di http: //live.gnome .org / SysAdminGuideUpdate :
mimeapps.list terletak di $ XDG_DATA_DIRS / aplikasi. Tujuannya adalah untuk menambah atau menghapus asosiasi mime dari aplikasi. nautilus menulis ~ / .local / share / aplikasi / mimeapps.list ketika pengguna membuat perubahan dalam dialog "Buka Dengan".
mimeapps.list
itu ditimpa oleh entri di defaults.list
.
~/.local/share/applications/mimeapps.list
, dan menjalankan proses seperti pcmanfm mengambil perubahan tanpa memulai ulang. (mplayer.desktop hanya menjalankan mplayer. Saya punya satu yang tergeletak di instal mplayer lama di / usr / local, saya kira. IDK jika MimeType=list;
diperlukan atau tidak.
mimeapps.list
bisa di mana saja di jalur pencarian berikut: spesifikasi.freedesktop.org/mime-apps-spec/…
Saya menemukan bahwa di sistem saya (Debian Jessie) ada juga ~/.config/mimeapps.list
yang memiliki asosiasi yang secara tidak sengaja saya buat untuk membuka jenis file tertentu dengan gedit. Tidak ada cara standar untuk memperbaiki ini (pengaturan aplikasi default, Thunar terbuka dengan properti) mencerminkan hal ini, tetapi gedit adalah aplikasi default.
Saya dapat menghapus garis dari ~/.config/mimeapps.list
dan sekarang aplikasi yang benar membuka file.
~/.config/mimeapps.list
.
mimeapps.list
dapat di mana saja di jalur pencarian berikut: spesifikasi.freedesktop.org/mime-apps-spec/…
Saya menemukan tautan ini tentang asosiasi default, mungkin bermanfaat.
https://wiki.archlinux.org/index.php/Default_Applications
untuk asosiasi global:
/usr/share/applications/mimeapps.list
per asosiasi pengguna:
~/.local/share/applications/mimeapps.list
sintaksnya adalah sebagai berikut:
[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
Bagian [Added Associations] digunakan untuk menentukan aplikasi yang disukai (default) dalam mengurangi preferensi. yang berarti desktopfile1 adalah yang paling disukai dan desktopfileN paling tidak disukai.
Bagian [Asosiasi Dihapus] digunakan untuk menghapus secara eksplisit asosiasi yang diwarisi sebelumnya.
/usr/share/applications/mimeapps.list
tidak ada.
mimeapps.desktop
dengandefaults.desktop
Buat file truecrypt.desktop
di ~/.local/share/applications
dengan baris berikut:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes
kemudian edit file ~/.local/share/applications/mimeapps.list
dan tambahkan baris berikut:
application/octet-stream=truecrypt.desktop
Saya menemukan tipe mime dari Truecrypt dengan mengikuti menjalankan perintah ini:
file --mime-type -b <any truecrypt filename>
mimeapps.list
jalur pencarian
Orang lain telah menyebutkan file ini, tetapi tidak ada yang menjelaskan lokasinya dengan tepat.
Standar freedesktop.org mengatakan di https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :
Urutan pencarian untuk file ini adalah sebagai berikut:
$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list distribution-provided defaults
dan kemudian nilai default untuk variabel lingkungan tersebut diberikan di https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html :
$XDG_DATA_HOME
: $HOME/.local/share
$XDG_CONFIG_HOME
: $HOME/.config
$XDG_DATA_DIRS
: tidak ada, ditambahkan ke XDG_DATA_HOME
$XDG_CONFIG_DIRS
: tidak ada, ditambahkan ke XDG_CONFIG_HOME
Versi Ubuntu yang lebih lama mungkin tidak memeriksa ~/.config
, jadi pastikan Anda juga mencoba ~/.local/share
.
Perintah seperti:
xdg-settings set default-web-browser chromium-browser.desktop
xdg-settings get default-web-browser
akan secara otomatis mengedit file-file itu.
Untuk semua pengguna:
/usr/share/applications/defaults.list
Setiap pengguna memiliki file konfigurasi untuk mengganti default ini:
~ / .config / mimeapps.list
lihat juga https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html untuk tempat-tempat yang mungkin digunakan untuk mengganti defaut.
Anda harus mengetahui tipe mime dari file yang ingin Anda ubah hubungannya.
Juga semua asosiasi dapat ditangani-diubah di baris perintah menggunakan:
xdg-mime
Freedesktop.org (sebelumnya bernama X Desktop Group, dengan demikian singkatan "XDG") adalah grup yang saat ini mengendarai standar X seperti ini ( pelajari lebih lanjut di Wikipedia ).
Jawaban warvariuc sudah menyebutkan penggunaan xdg-mime seperti:
xdg-mime default xnview.desktop image/jpeg
Setelah banyak bermain dengan editor gambar dan pemirsa, saya berakhir dengan pemirsa yang berbeda untuk jenis gambar yang berbeda dengan hampir tidak ada konsistensi, terutama di antara jenis gambar yang lebih jarang.
Saya mengambil perintah di atas dan menetapkannya untuk masing-masing jenis MIME yang dikendalikan oleh pemirsa gambar dan kemudian membuat yang baru image-viewer.desktop
dengan mengkloning salah satu dari mereka (ini opsional, Anda hanya dapat menggunakan kembali favorit Anda). Selanjutnya, saya memverifikasi secara manual bahwa tidak ada tipe MIME yang tidak sesuai dengan aplikasi pilihan saya yang baru. Akhirnya, saya menetapkan aplikasi itu sebagai default untuk semua jenis MIME aplikasi lain:
sed '/^MimeType=/!d; s///; s/;/\n/g' \
/usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
|xargs xdg-mime default image-viewer.desktop
Ini memeriksa .desktop
file untuk masing-masing pemirsa ( Ristretto , Geeqie , dan GThumb dalam kasus saya), mengekstrak definisi MIME (yang diawali oleh MimeType=
dan kemudian berisi daftar tanda titik koma), menghapus label kata pengantar (yang sebelumnya cocok), dan membagi daftar menjadi satu entri per baris. sort -u
kemudian menghapus garis-garis yang berlebihan, lalu mereka diserahkan xdg-mime
untuk mengatur default baru.
(Jika Anda ingin menguji ini sebelum menjalankannya langsung, ubah xargs
ke xargs echo
dan itu akan mencetak perintah yang dihasilkan alih-alih menjalankannya.)
Teknik ini harus bekerja untuk apa pun yang Anda ingin mendapatkan kembali untuk aplikasi target. Anda bahkan tidak perlu membuat .desktop
file baru (Anda dapat menggunakan yang sudah ada). Saya melakukan langkah ekstra itu sehingga ketika saya mau tidak mau mengubah kesetiaan saya di antara pratinjau gambar, saya hanya perlu mengubah satu file itu.
Di Ubuntu 18.04, saya telah menemukan urutan prioritas sebagai berikut, dari yang terkuat ke yang terlemah:
~/.local/share/applications/defaults.list
/usr/share/applications/defaults.list
~/.config/mimeapps.list
("Buka Dengan Aplikasi Lain" akan memperbarui ini)~/.local/share/applications/mimeapps.list
mimeinfo.cache
registri aplikasi yang kompatibel, yang dihasilkan dari .desktop
file yang ada pada /usr/share/applications
dan /usr/local/share/applications
, dan dapat dibuat kembali menggunakan update-desktop-database
./etc/gnome/defaults.list
/usr/share/applications
.desktop
file, apakah ada perintah untuk membuat kembali database MIME untuk melihat asosiasi baru beraksi?