Antworten:
Der Dateimanager (standardmäßig Nautilus) verwendet den MIME-Typ einer Datei, um zu bestimmen, mit welchem Programm er geöffnet werden soll. Wenn eine Anwendung installiert ist, kann sie angeben, welche MIME-Typen sie öffnen kann, und den Befehl zum Öffnen der Dateien in der .desktop-Datei, in der sie abgelegt ist /usr/share/applications
. Dies ist die Datei, die für Menüs, Desktop-Verknüpfungen usw. verwendet wird.
Beispielsweise verfügt GIMP über die folgende .desktop-Datei:
[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;
Siehe das MimeType
Feld - hier werden die unterstützten MIME-Typen aufgelistet. Das Exec
Feld weist das System an, den Befehl zu verwenden gimp-2.7 %U
und '% U' durch die zu öffnenden Dateien zu ersetzen. (Hinweis: GIMP 2.7 ist eine Version, die ich von einem PPA installiert habe, also höher als die aktuelle Version in den Ubuntu-Repositories).
Wenn das Anwendungspaket installiert ist, extrahiert das System diese MIME-Typdaten in eine leichter zugängliche Datenbank, da das Durchsuchen der einzelnen .desktop-Dateien bei jedem Öffnen einer Datei zu lange dauern würde.
Dies teilt dem System mit, welche Anwendungen können für diesen MIME - Typ verwendet werden und bietet die Anwendungen in der ‚Öffnen mit‘ Liste. Der Standard ist an anderer Stelle definiert. Die Datei /usr/share/applications/defaults.list
enthält die Informationen für die Systemstandards. Sofern Sie nichts anderes auswählen, sind dies die Anwendungen, die beim 'Öffnen' einer Datei verwendet werden.
sudo update-desktop-database
Siehe jarrpa.net/2011/10/28/…
/usr/local/share/applications
. Ich denke, gtk sieht auch dort standardmäßig aus. Es funktioniert auf meinem System, aber es wurde seit Ubuntu 7.04 oder so aktualisiert (nicht neu installiert).
Um die hervorragende Antwort von dv3500ea zu ergänzen, möchte ich einige Informationen darüber hinzufügen, was passiert, wenn Sie Ihre Assoziationen ändern.
Während die defaults.list (die Sie finden, indem Sie 'locate defaults.list' eingeben) die Liste der Anwendungen enthält, die jedem MIME-Typ zugeordnet sind, werden alle von Ihnen vorgenommenen Anpassungen in Ihrem Ausgangsverzeichnis in ~ / .local / gespeichert. share / applications / mimeapps.list. Wenn Sie also Zuordnungen hinzufügen oder entfernen oder die Standardzuordnung ändern, wird diese Datei aktualisiert.
Im GNOME Desktop System-Administrationshandbuch unter http://library.gnome.org/admin/system-admin-guide/stable/ wird mimeapps.list anscheinend nicht behandelt, aber ich habe die folgende Beschreibung unter http: //live.gnome gefunden .org / SysAdminGuideUpdate :
mimeapps.list befindet sich in $ XDG_DATA_DIRS / applications. Der Zweck ist das Hinzufügen oder Entfernen von MIME-Zuordnungen zu Anwendungen. nautilus schreibt ~ / .local / share / applications / mimeapps.list, wenn der Benutzer Änderungen im Dialogfeld "Öffnen mit" vornimmt.
mimeapps.list
von Einträgen in der überschrieben wird defaults.list
.
~/.local/share/applications/mimeapps.list
, und laufende prozesse wie pcmanfm haben die änderungen ohne neustart übernommen. (mplayer.desktop läuft nur mit mplayer. Ich hatte einen, der von einem alten mplayer in / usr / local herumlag, denke ich. IDK, ob ein MimeType=list;
benötigt wurde oder nicht.
mimeapps.list
kann irgendwo in den folgenden Suchpfad sein: Specifications.freedesktop.org/mime-apps-spec/…
Ich habe festgestellt, dass es auf meinem System (Debian Jessie) auch eine ~/.config/mimeapps.list
Verknüpfung gibt, die ich versehentlich erstellt habe, um einen bestimmten Dateityp mit gedit zu öffnen. Keine der Standardmethoden zur Korrektur (Standardanwendungseinstellungen, Thunar wird mit der Eigenschaft geöffnet ) hat dies widergespiegelt, aber gedit war die Standardanwendung.
Ich konnte die Zeile entfernen ~/.config/mimeapps.list
und jetzt öffnet die richtige Anwendung die Datei.
~/.config/mimeapps.list
.
mimeapps.list
kann irgendwo in den folgenden Suchpfad sein: Specifications.freedesktop.org/mime-apps-spec/…
Ich habe diesen Link bezüglich der Standardzuordnung gefunden, er könnte hilfreich sein.
https://wiki.archlinux.org/index.php/Default_Applications
for global association:
/usr/share/applications/mimeapps.list
pro Nutzerverband:
~/.local/share/applications/mimeapps.list
Die Syntax lautet wie folgt:
[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
Im Abschnitt [Hinzugefügte Zuordnungen] werden bevorzugte (Standard-) Anwendungen in abnehmender Reihenfolge angegeben. was bedeutet, dass Desktopfile1 am meisten bevorzugt wird und DesktopfileN am wenigsten bevorzugt wird.
Der Abschnitt [Entfernte Verknüpfungen ] wird verwendet, um zuvor vererbte Verknüpfungen explizit zu entfernen.
/usr/share/applications/mimeapps.list
existiert nicht.
mimeapps.desktop
mitdefaults.desktop
Erstellen Sie eine Datei truecrypt.desktop
in ~/.local/share/applications
den folgenden Zeilen:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes
Bearbeiten Sie dann die Datei ~/.local/share/applications/mimeapps.list
und fügen Sie die folgende Zeile hinzu:
application/octet-stream=truecrypt.desktop
Ich habe den MIME-Typ von Truecrypt herausgefunden, indem ich diesen Befehl ausgeführt habe:
file --mime-type -b <any truecrypt filename>
mimeapps.list
Suchpfad
Andere haben diese Datei erwähnt, aber keiner hat ihren Speicherort genau erklärt.
Der freedesktop.org-Standard lautet unter https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :
Die Suchreihenfolge für diese Datei lautet wie folgt:
$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
Die Standardwerte für diese Umgebungsvariablen finden Sie unter 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
: keine, angehängt an XDG_DATA_HOME
$XDG_CONFIG_DIRS
: keine, angehängt an XDG_CONFIG_HOME
Ältere Versionen von Ubuntu können dies möglicherweise nicht überprüfen. ~/.config
Versuchen Sie es also ~/.local/share
auch.
Befehle wie:
xdg-settings set default-web-browser chromium-browser.desktop
xdg-settings get default-web-browser
bearbeitet diese Dateien automatisch.
Für alle Benutzer:
/usr/share/applications/defaults.list
Jeder Benutzer hat eine Konfigurationsdatei zum Überschreiben dieser Standardeinstellungen:
~ / .config / mimeapps.list
Unter https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html finden Sie Informationen zu Orten, die zum Überschreiben von Defauts verwendet werden können.
Sie müssen den MIME-Typ der Datei kennen, deren Zuordnung Sie ändern möchten.
Außerdem können alle Zuordnungen in der Befehlszeile bearbeitet und geändert werden, indem Folgendes verwendet wird:
xdg-mime
Freedesktop.org (früher als X Desktop Group bezeichnet, daher die Abkürzung "XDG") ist die Gruppe, die derzeit solche X-Standards anwendet ( weitere Informationen finden Sie bei Wikipedia ).
In der Antwort von warvariuc wird bereits die Verwendung von xdg-mime wie folgt erwähnt :
xdg-mime default xnview.desktop image/jpeg
Nachdem ich viel mit Bildbearbeitern und -betrachtern gespielt hatte, kam ich zu unterschiedlichen Bildbetrachtern für unterschiedliche Bildtypen mit fast keiner Konsistenz, insbesondere bei den selteneren Bildtypen.
Ich nahm den obigen Befehl und wies ihn jedem der von den Bildbetrachtern gesteuerten MIME-Typen zu und erstellte dann einen neuen, image-viewer.desktop
indem ich einen von ihnen klonte (dies ist optional, Sie können lediglich Ihren Favoriten wiederverwenden). Als Nächstes habe ich manuell überprüft, ob keiner der MIME-Typen mit meiner neuen bevorzugten Anwendung nicht kompatibel ist. Schließlich habe ich diese Anwendung als Standard für alle MIME-Typen der anderen Anwendungen festgelegt:
sed '/^MimeType=/!d; s///; s/;/\n/g' \
/usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
|xargs xdg-mime default image-viewer.desktop
Dabei werden die .desktop
Dateien für jeden der Betrachter untersucht ( in meinem Fall Ristretto , Geeqie und GThumb ), die MIME-Definition extrahiert (die MimeType=
eine durch Semikolons getrennte Liste enthält), und das (zuvor übereinstimmende) Vorwort entfernt teilt die Liste in einen Eintrag pro Zeile auf. sort -u
Entfernt dann die redundanten Leitungen und gibt sie weiter xdg-mime
, um die neuen Standardeinstellungen festzulegen.
(Wenn Sie dies testen möchten, bevor Sie es live ausführen, wechseln Sie xargs
zu xargs echo
und es wird der resultierende Befehl gedruckt, anstatt ihn auszuführen.)
Diese Technik sollte für alles funktionieren, was Sie für eine Ziel-App zurückfordern möchten. Sie müssen nicht einmal eine neue .desktop
Datei erstellen (Sie können eine vorhandene Datei verwenden). Ich habe diesen zusätzlichen Schritt ausgeführt, damit ich, wenn ich unweigerlich meine Loyalität zwischen Bildvorschauprogrammen ändere, nur diese eine Datei ändern muss.
Unter Ubuntu 18.04 habe ich folgende Rangfolge gefunden, von der stärksten zur schwächsten:
~/.local/share/applications/defaults.list
/usr/share/applications/defaults.list
~/.config/mimeapps.list
("Mit anderer Anwendung öffnen" aktualisiert dies.)~/.local/share/applications/mimeapps.list
mimeinfo.cache
Registrierung kompatibler Anwendungen, die aus den .desktop
in /usr/share/applications
und vorhandenen Dateien generiert /usr/local/share/applications
wurden und mit neu generiert werden können update-desktop-database
./etc/gnome/defaults.list
/usr/share/applications
.desktop
Dateien einen Befehl zum erneuten Erstellen dieser MIME-Datenbank, um neue Zuordnungen in Aktion zu sehen?