Ini mudah dilakukan untuk lajang jenis file, seperti yang dijawab di Bagaimana cara mengaitkan jenis file dalam Wine dengan aplikasi asli?, dengan membuat .reg
untuk tipe file yang diinginkan. Tapi ini hanya untuk AVI. Saya menggunakan beberapa aplikasi anggur (uTorrent, Soulseek, Eudora, untuk beberapa nama) yang dapat meluncurkan berbagai file. Lampiran email, misalnya, dapat berupa JPG, DOC, PDF, PPS… tidak mungkin (dan tidak diinginkan) untuk melacak semua kemungkinan jenis file yang mungkin diterima seseorang dalam email atau diunduh dalam torrent.
Jadi saya butuh solusi agar lebih umum dan luas. Saya memerlukan asosiasi file untuk menghormati aplikasi asli apa pun yang saat ini dikonfigurasi. Dan saya ingin ini dilakukan untuk semua jenis file yang dikonfigurasi di sistem saya.
Saya sudah menemukan cara membuat solusinya generik. Cukup mengganti aplikasi yang diluncurkan di .reg
untuk winebrowser
, seperti ini:
[HKEY_CLASSES_ROOT.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOTPDFfileShellOpencommand]
@="C:\windows\system32\winebrowser.exe "%1""
Saya sudah menguji ini dan berfungsi dengan benar. Karena winebrowser menggunakan xdg-open
sebagai backend, dan mengubah jalur windows saya menjadi jalur Unix, aplikasi (Linux) yang benar diluncurkan.
Jadi saya memerlukan pembaruan "batch" ke registri wine, semacam wine-update-associations
skrip yang dapat saya jalankan setiap kali aplikasi baru diinstal. Mungkin alat yang dapat:
- Mencantumkan semua jenis Mime Type di sistem saya yang memiliki default, terpasang aplikasi terkait
- Ekstrak semua info yang dibutuhkan (glob, tipe mime, dll)
- Buat file .REG dengan format di atas
Bagian yang sulit adalah:saya telah mencari BANYAK untuk menemukan info tentang bagaimana asosiasi dilakukan di Ubuntu 10.10 dan seterusnya, dan dokumentasi langka dan membingungkan, untuk sedikitnya. Freedesktop.org tidak memiliki spesifikasi lengkap, dan bahkan dokumen Gnome sudah usang. Sejauh ini saya telah mengumpulkan 4 file yang berisi info asosiasi, tetapi saya tidak tahu yang mana (atau mengapa) digunakan, atau bagaimana menggunakannya untuk menghasilkan .reg
berkas:
~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list
Bantuan, skrip, atau penjelasan apa pun akan sangat dihargai!
Terima kasih!
Jawaban yang Diterima:
Bertahun-tahun kemudian, saya telah membuat utilitas kecil yang memindai basis data MIME (baik sistem maupun pengguna) dan mendaftarkan semua tipe mime asli yang dikenal di registri Windows.
Ini menggunakan xdg-open
untuk membuka file jika ada aplikasi default (asli) untuk
tipe mime tersebut, jika tidak menggunakan packagekit
untuk mencari paket yang dapat menangani
file itu (seperti yang dilakukan Nautilus). Jadi persyaratan awal saya hanya mendaftarkan ekstensi yang telah diinstal, aplikasi asli tidak diperlukan lagi. Namun, versi awal skrip hanya memfilter jenis tersebut. Cuplikan yang memungkinkan adalah:
perl -e '
use strict; use warnings;
use File::MimeInfo::Magic; use File::MimeInfo::Applications;
while (my $line = <STDIN>) {
chomp($line);
my ($ext, $mime) = (split/t/, $line);
my ($def, @apps) = mime_applications_all($mime);
print "$linen" if ($def || @apps)
}'
Secara default, skrip saya hanya mendaftarkan tipe asli yang tidak memiliki penangan di registri windows
, tetapi skrip ini juga dapat mengesampingkan asosiasi semacam itu (jadi, misalnya, file jpeg
dibuka di penampil asli alih-alih anggur Gecko default browser).
Itu juga dapat mengabaikan beberapa ekstensi meskipun tidak memiliki handler di windows.
Ini mencoba yang terbaik untuk menjadi ramah-winemenubuilder, artinya semua asosiasi yang
buat tidak dipublikasikan sebagai asosiasi asli (atau sebagai mimetypes x-wine-extension
) oleh winemenubuilder, yang akan jelek dan berpotensi menyebabkan loop .
Ini sangat rumit dan belum sempurna, khususnya dengan ekstensi huruf besar campuran
(misalnya .C dan .c)
Karena itu, saya harap skrip ini bermanfaat untuk semua orang:
https://github.com/MestreLion/wine-tools/blob/master/wine-import-extensions
Peningkatan diterima!