Ini mudah dilakukan untuk satu jenis file, seperti yang dijawab dalam 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 jenis file yang mungkin diterima seseorang dalam email atau mengunduh dalam torrent.
Jadi saya butuh solusi untuk menjadi lebih umum dan luas. Saya membutuhkan 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 dengan mengganti aplikasi yang diluncurkan .reg
untuk winebrowser
, seperti ini:
[HKEY_CLASSES_ROOT\.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
@="C:\\windows\\system32\\winebrowser.exe \"%1\""
Saya sudah menguji ini dan berfungsi dengan benar. Karena winebrowser digunakan xdg-open
sebagai backend, dan mengubah jalur windows saya menjadi Unix, aplikasi yang benar (Linux) diluncurkan.
Jadi saya memerlukan "batch" updater ke registry wine, semacam wine-update-associations
skrip yang dapat saya jalankan setiap kali aplikasi baru diinstal. Mungkin alat yang bisa:
- Daftar semua Mime Jenis jenis dalam sistem saya yang memiliki default, diinstal aplikasi terkait
- Ekstrak semua info yang diperlukan (glob, tipe mime, dll)
- Buat file .REG dalam 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 sudah mengumpulkan 4 file yang berisi info asosiasi, tetapi saya tidak tahu harus menggunakan (atau mengapa) apa, atau bagaimana menggunakannya untuk menghasilkan .reg
file:
~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list
Bantuan, naskah, atau penjelasan apa pun akan sangat dihargai!
Terima kasih!
sumber
Everything
itu sendiri, tetapi saya hanya ingin memberi tahu AndaEDIT:
Ada bug anggur tentang ini - yang lebih merupakan perbaikan daripada bug. Intinya adalah memiliki
ShellExecute
panggilanxdg-open
, dan jika tidak ditemukan, cari default gnome dan kde. Anda harus dapat menerapkan tambalan dan akhirnya memiliki keajaiban :-). Solusi ini lebih bersih karena tidak perlu dipusingkan dengan registri.Untuk lebih lengkap di sini adalah cara menambal dan menyusun anggur dari sumber .
AKHIR EDIT
Saya memperbarui registri anggur dengan skrip di bawah ini untuk menambahkan daftar jenis file umum.
Anda dapat memperpanjang daftar untuk menambahkan lebih banyak jenis.
Itu memanfaatkan
/usr/bin/gnome-open
dalamgstart.exe
file sehingga tidak akan berfungsi untuk desktop non-gnome seperti ini .Masukkan ini
conf_wine.sh
:Ini
gstart.exe
adalah skrip bash..dan adalah jembatan ke kedua dunia:Catatan:
gstart.exe
di direktori kerja Anda saat ini sebelum dijalankanconf_wine.sh
karena akan menyalinnya ke.wine
folder.gstart.exe
tidak harus dudukc:\
.Wine FAQ: Bagaimana cara saya mengaitkan program asli dengan tipe file dalam Wine?
sumber
gnome-open
lebihxdg-open
, yang saya telah disebutkan dalam pertanyaan, dan jauh lebih portabel. Kedua, hardcoding beberapa ekstensi file tidak cukup bagi saya: seperti yang saya katakan, "Saya perlu asosiasi file untuk menghormati aplikasi asli apa pun yang saat ini dikonfigurasi. Dan saya ingin ini dilakukan untuk semua jenis file yang dikonfigurasi dalam sistem saya." Dan saya sadar ini rumit. Itu adalah "keajaiban" yang Anda sebutkan dalam catatan Anda # 3 yang saya tertarik;)mimeapps.lst
yang belum saya instal di sini, dan beberapa menunjuk kembali ke aplikasi Wine (yang akan menyebabkan loop tak terbatas)Saya telah mengumpulkan Info di semua tempat dan menemukan yang berikut ini berfungsi:
Saya telah membuat file bernama ~ / .wine / drive_c / gstart.exe
dengan yang berikut ini:
Kemudian: Membuat file bernama linuxnative.reg di ~ / bin saya
dengan yang berikut ini:
maka Anda melakukan
regedit linuxnative.reg
Semoga ini membantu.
sumber
gstart.exe
skripnya.