GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Cara Mengaitkan Semua Jenis File Dalam Wine Dengan Aplikasi Aslinya yang Sesuai?

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.

Terkait:Apakah sistem dapat menjalankan OS 64-bit?

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!


Ubuntu
  1. Bagaimana Menggandakan File Tanpa Menyalin Datanya Dengan Btrfs?

  2. Bagaimana Cara Menulis Jalur Folder Dengan Spasi Di Namanya??

  3. Bagaimana Agar Autocad Bekerja Dengan Anggur?

  1. Cara Menginstal File deb di Ubuntu (dengan Contoh)

  2. Bagaimana Cara Membuka File .8 Dengan Man?

  3. Bagaimana cara tar jenis file tertentu di semua subdirektori?

  1. Kaitkan Jenis File Secara Global Dengan Aplikasi Tertentu?

  2. Bagaimana Menyembunyikan File Dengan Ekstensi Tertentu?

  3. Bagaimana Cara Mengganti Semua String Dalam File Yang Dimulai Dengan Beberapa Awalan?