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.


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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.