GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie ordnet man alle Dateitypen in Wine der entsprechenden nativen Anwendung zu?

Für Single ist das problemlos möglich Dateityp, wie in How to assoziiere ich einen Dateityp in Wine mit einer nativen Anwendung beantwortet?, indem Sie eine .reg erstellen für den gewünschten Dateityp. Aber das ist nur für AVI. Ich verwende einige Wein-Apps (uTorrent, Soulseek, Eudora, um nur einige zu nennen), die eine Vielzahl von Dateien starten können. E-Mail-Anhänge können beispielsweise JPG, DOC, PDF, PPS sein … es ist unmöglich (und nicht wünschenswert), alle möglichen Dateitypen aufzuspüren, die man in einer E-Mail erhalten oder in einem Torrent herunterladen kann.

Also brauche ich eine Lösung, die allgemeiner und breiter ist. Ich brauche die Dateizuordnung, um die derzeit konfigurierte native App zu berücksichtigen. Und ich möchte, dass dies für alle getan wird Dateitypen, die in meinem System konfiguriert sind.

Ich habe bereits herausgefunden, wie man die Lösung generisch macht. Einfach die gestartete App in .reg ersetzen für winebrowser , etwa so:

[HKEY_CLASSES_ROOT.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOTPDFfileShellOpencommand]
@="C:\windows\system32\winebrowser.exe "%1""

Ich habe dies getestet und es funktioniert korrekt. Da winebrowser xdg-open verwendet als Backend und wandelt meinen Windows-Pfad in einen Unix-Pfad um, die richtige (Linux-)App wird gestartet.

Also brauche ich einen „Batch“-Updater für die Wine-Registrierung, eine Art wine-update-associations Skript, das ich ausführen kann, wenn eine neue App installiert wird. Vielleicht ein Tool, das Folgendes kann:

  • Alle Mime-Typen in meinem System auflisten, die standardmäßig installiert sind App verknüpft
  • Extrahieren Sie alle erforderlichen Informationen (Glob, MIME-Typ usw.)
  • Generieren Sie die .REG-Datei im obigen Format

Der knifflige Teil ist:Ich habe VIEL gesucht, um Informationen darüber zu finden, wie die Zuordnung in Ubuntu 10.10 und höher erfolgt, und die Dokumentation ist knapp und verwirrend, um es gelinde auszudrücken. Freedesktop.org hat keine vollständige Spezifikation, und selbst Gnome-Dokumente sind veraltet. Bisher habe ich 4 gesammelt Dateien, die Zuordnungsinformationen enthalten, aber keine Ahnung haben, welche (oder warum) ich verwenden soll oder wie ich sie verwenden soll, um die .reg zu generieren Datei:

~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list

Jede Hilfe, jedes Skript oder jede Erklärung wäre sehr willkommen!

Danke!

Akzeptierte Antwort:

Jahre später habe ich ein kleines Dienstprogramm erstellt, das die MIME-Datenbank (sowohl System als auch Benutzer) scannt und alle registriert bekannte native MIME-Typen in der Windows-Registrierung.

Es verwendet xdg-open um eine Datei zu öffnen, wenn es eine standardmäßige (native) Anwendung für diesen
Mime-Typ gibt, ansonsten wird packagekit verwendet um nach einem Paket zu suchen, das
diese Datei handhaben kann (genau wie es Nautilus tut). Meine anfängliche Anforderung, nur Erweiterungen zu registrieren, die eine installierte, native Anwendung haben, wurde also nicht mehr benötigt. Eine frühe Version des Skripts hat jedoch nur solche Typen gefiltert. Das Snippet, das dies ermöglichte, war:

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)
    }'

Standardmäßig registriert mein Skript nur native Typen, die keinen Handler in der Windows
-Registrierung haben, aber es kann auch solche Zuordnungen überschreiben (so werden beispielsweise jpeg
-Dateien im nativen Viewer statt im Standard-Gecko-Wein geöffnet browser).
Es kann auch einige Erweiterungen ignorieren, selbst wenn sie keinen Handler in Windows haben.

Verwandte Themen:Kann das System 64-Bit-Betriebssysteme ausführen?

Es versucht sein Bestes, winemenubuilder-freundlich zu sein, was bedeutet, dass alle Assoziationen, die es
erstellt, nicht als native Assoziationen (oder als x-wine-extension
Mimetypes) von winemenubuilder veröffentlicht werden, was hässlich wäre und möglicherweise Schleifen verursachen würde .
Das ist sehr knifflig und noch nicht perfekt, besonders bei Erweiterungen mit gemischten Groß- und Kleinschreibung
(z. B. .C und .c)

Trotzdem hoffe ich, dass dieses Skript für alle hilfreich ist:

https://github.com/MestreLion/wine-tools/blob/master/wine-import-extensions

Verbesserungen willkommen!


Ubuntu
  1. Wie bekomme ich Autocad zum Arbeiten mit Wine?

  2. Dateityp global einer bestimmten Anwendung zuordnen?

  3. Wie öffne ich eine .8-Datei mit Man?

  4. Wie verstecke ich Dateien mit einer bestimmten Erweiterung?

  5. Wie tariere ich bestimmte Dateitypen in allen Unterverzeichnissen?

Umgang mit Dateien mit Scilab unter Ubuntu 15.04

So lesen Sie eine Datei mit Leerzeichen in Linux

So führen Sie .sh-Dateibefehle auf einmal in Linux aus

So konfigurieren Sie das Netzwerk mit Netplan unter Ubuntu

So fügen Sie Anwendungsverknüpfungen auf Ubuntu Desktop hinzu

Wie erhalte ich einen Link der Datei zum Herunterladen mit Wget?