Verhalten von xdg-open-Standardanwendungen

13

Wenn ich kein defaults.listund habe mimeapps.list, xdg-openöffnet sich text/plainmit gvim. Aber wenn ich schaffen defaults.listin /usr/share/applications/und fügen Sie die folgenden Zeilen:

[Default Applications]
text/plain=emacs.desktop

Es öffnet Textdateien mit Firefox.

Wenn ich jedoch /usr/share/applications/defaults.listzu ~/.local/share/applications/mimeapps.listgehe, werden Textdateien emacswie erwartet mit geöffnet .

Meine Fragen:

  1. Wie wird xdg-openbestimmt, welche Anwendung gestartet werden soll, wenn keine defaults.listund vorhanden sind mimeapps.list?
  2. Warum wird xdg-openFirefox verwendet, wenn ich einfach schreibe /usr/share/applications/defaults.list?

Ich benutze Arch Linux.

Gradient
quelle
1
Ich benutze Openbox. Außerdem ist mir eine /usr/share/applications/mimecache.infoDatei aufgefallen, in der die Standardanwendungen aufgelistet zu sein scheinen. Es ist noch verwirrender ...
Gradient
1
Ich fand diese Konfigurationsdatei in~/.config/mimeapps.list
Sam Mason

Antworten:

23

Wenn Sie xdg-openzum Öffnen von Anwendungen verwenden xdg-mime, legen Sie mit die Standardanwendung für einen bestimmten MIME-Typ fest (bei der Installation von xdg-utils erhalten Sie in der Regel xdg-mime und verwandte Programme).

Um zum Beispiel den "Dateityp" (wenn Sie so wollen MIME-Typ) einer bestimmten Datei zu sehen:

$ xdg-mime query filetype tmp.txt
text/plain

$ xdg-mime query filetype foo.pdf 
application/pdf

$ xdg-mime query filetype $PWD
inode/directory

Beispiel zum Ändern des Standard-Dateimanagers zum Öffnen von Verzeichnissen (z. B. caja.desktop (Standard für mint), nautilus.desktop (ubuntu) usw.):

$ xdg-mime default Thunar.desktop inode/directory

Und auch tun locate -i foo.desktop, um zu überprüfen, ob foo.desktopes tatsächlich existiert.

Mehr auf den Punkt, um zu sehen, was der Standard-Texteditor ist,

$ xdg-mime  query default text/plain 
gedit.desktop

So verwenden Sie einen anderen Standardtexteditor (überprüfen Sie erneut, ob die Datei ".desktop" vorhanden ist):

$ locate -i vim.desktop
/usr/share/applications/gvim.desktop

$ xdg-mime default gvim.desktop text/plain

Doppelklicken Sie nun entweder auf "foo.txt" (in Ihrem GUI-Dateimanager) oder xdg-open foo.txtverwenden Sie "running" gvimanstelle von gedit.

Fehlerbehebung: Stellen Sie sicher, dass die ".desktop" -Datei für eine bestimmte Anwendung gefunden wird, da diese mit dem xdg-mimeDienstprogramm verwendet werden muss. z.B,

$ xdg-mime default emacs text/plain 
xdg-mime: malformed argument 'emacs', expected *.desktop

Darüber hinaus funktioniert dies im Hintergrund nicht wie erwartet, wenn die Datei ".desktop" nicht vorhanden ist:

$ locate -i emacs.desktop
(none)

$ xdg-mime default emacs.desktop text/plain  # won't work

Die eigentliche emacs ".desktop" Datei (in meinem env):

$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop

$ xdg-mime default emacs24.desktop text/plain  # does work

Siehe auch: https://wiki.archlinux.org/index.php/xdg-open

michael
quelle
3
Jahre später, aber danke! Einige Entwickler haben einen wirklich schlechten Witz in Wein gesteckt, er muss gedacht haben "Wenn Sie wirklich etwas von diesem Windows-Schmerz zurückhaben wollen, sollten Sie alles haben, um niemals nostalgisch zu werden!" Und seitdem starten alle X11-Programme beim Öffnen von Text-Files einen Notepad-Klon. Das Öffnen von Dateien aus einer Anwendung ist für mich selten, aber der Notizblock tut wirklich weh. Mit deiner Hilfe habe ich ein Gvim zurückbekommen.
Flaschenpost