it-swarm.com.de

Woher weiß der Befehl xdg-open, mit welcher Anwendung eine Datei geöffnet werden soll?

Ich würde erwarten, dass der Befehl xdg-open dieselbe Anwendung verwendet, die geöffnet wird, wenn ich im Standard-Dateimanager auf die Datei doppelklicke, aber dies ist nicht immer der Fall.

Zum Beispiel ist mein DE XFCE, mein Dateimanager ist Thunar und mein Standardbildbetrachter ist Ristretto. Jedoch, xdg-open example.png öffnet die Beispiel-PNG-Datei in Pinta. Warum?

30
Ivan

xdg-open ist ein Desktop-unabhängiges Tool zum Konfigurieren der Standardanwendungen eines Benutzers. Viele Anwendungen rufen den Befehl xdg-open intern auf. In einer Desktop-Umgebung (wie GNOME, KDE oder Xfce) übergibt xdg-open die Argumente einfach an die Dateiöffner-Anwendung dieser Desktop-Umgebung (z. B. gvfs-open, kde-open oder exo-open). Dies bedeutet, dass die Zuordnungen der Desktop-Umgebung überlassen bleiben. Wenn keine Desktop-Umgebung erkannt wird (z. B. wenn ein eigenständiger Fenstermanager wie z. B. Openbox ausgeführt wird), verwendet xdg-open seine eigenen Konfigurationsdateien.

von archwiki

speziell für Ihre Frage können Sie dies versuchen, um die Standardanwendung festzulegen, die der PNG-Datei zugeordnet ist:

xdg-mime default <ristretto.desktop> image/png

sie müssen herausfinden, wie genau der Desktop-Dateiname von Ristretto lautet. Danach können Sie dies folgendermaßen überprüfen:

xdg-mime query default image/png
29
oxnz

@Ivan Das passiert wahrscheinlich, weil Sie nicht den richtigen Dateityp angegeben haben, als Sie nach der Standardanwendung gefragt haben. Wichtig ist, wie xdg diesen bestimmten Dateityp aufruft. Dies kann leicht durch Laufen herausgefunden werden

xdg-mime query filetype example.png

Wenn ich dies beispielsweise mit einer bestimmten PNG-Datei auf meinem Computer mache, wird image/x-Apple-ios-png Zurückgegeben. Sobald Sie den tatsächlichen Dateityp herausgefunden haben, können Sie ihn ausführen

xdg-mime query default <new filetype>

und rufen Sie die Anwendung ab, die von xdg für diesen bestimmten Dateityp verwendet wird. Falls für diesen Dateityp keine Anwendung definiert ist, prüft xdg-open, ob die Datei /etc/debian_version Verfügbar ist. In diesem Fall wird run-mailcap Gestartet, was xdg-open sehr ähnlich ist und versucht, ein Programm zu finden, um die Datei ebenfalls zu öffnen.

Nur wenn dies ebenfalls fehlschlägt, fordert xdg-open den Benutzer auf, ein Programm zum Öffnen der Datei zu definieren.

2
lauve