Comportement des applications par défaut xdg-open

13

Quand je n'ai pas defaults.listet mimeapps.list, xdg-openouvre text/plainavec gvim. Mais quand je crée defaults.listdans /usr/share/applications/et ajouter les lignes suivantes:

[Default Applications]
text/plain=emacs.desktop

il ouvre des fichiers texte avec firefox.

Cependant, si je passe /usr/share/applications/defaults.listà ~/.local/share/applications/mimeapps.list, il ouvre les fichiers texte avec emacscomme prévu.

Mes questions:

  1. Comment xdg-opendétermine quelle application lancer lorsqu'il n'y a pas de defaults.listet mimeapps.list?
  2. Pourquoi xdg-openutilise Firefox lorsque j'écris simplement /usr/share/applications/defaults.list?

J'utilise Arch linux.

Pente
la source
1
J'utilise Openbox. De plus, j'ai remarqué un /usr/share/applications/mimecache.infofichier qui semble répertorier les applications par défaut. C'est encore plus déroutant ...
Gradient
1
J'ai trouvé ce fichier de configuration dans~/.config/mimeapps.list
Sam Mason

Réponses:

23

Si vous utilisez xdg-openpour ouvrir des applications, utilisez xdg-mimepour définir l'application par défaut pour un type MIME donné (généralement, l'installation de xdg-utils vous donne le xdg-mime et les programmes associés).

Par exemple, pour voir le "filetype" (type mime, si vous voulez) du fichier donné:

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

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

$ xdg-mime query filetype $PWD
inode/directory

Exemple de changement du gestionnaire de fichiers par défaut pour l'ouverture des répertoires (pourrait choisir caja.desktop (par défaut pour mint), nautilus.desktop (ubuntu), etc:

$ xdg-mime default Thunar.desktop inode/directory

Et aussi faire locate -i foo.desktoppour vérifier que foo.desktopcela existe bien.

Plus précisément, afin de voir ce qu'est l'éditeur de texte par défaut,

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

Pour utiliser un autre éditeur de texte par défaut (encore une fois, en vérifiant que le fichier ".desktop" existe):

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

$ xdg-mime default gvim.desktop text/plain

Maintenant, soit en double-cliquant sur "foo.txt" (dans votre gestionnaire de fichiers GUI) ou en cours d'exécution xdg-open foo.txtutilisera à la gvimplace de gedit.

Dépannage: assurez-vous que le fichier ".desktop" pour une application donnée peut être trouvé, car il doit être utilisé avec l' xdg-mimeutilitaire; par exemple,

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

De plus, cela ne fonctionne silencieusement pas comme prévu si le fichier ".desktop" n'existe pas:

$ locate -i emacs.desktop
(none)

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

Le fichier emacs ".desktop" (dans mon env):

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

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

Voir aussi: https://wiki.archlinux.org/index.php/xdg-open

Michael
la source
3
Des années plus tard, mais merci! Un développeur a mis une très mauvaise blague dans le vin, il a dû penser "si vous voulez vraiment récupérer une partie de la douleur de Windows, vous devriez tout avoir pour ne jamais devenir nostalgique!" Et depuis que tous les programmes X11 démarrent un clone de bloc-notes lors de l'ouverture de Text-Files. L'ouverture de fichiers à partir d'une application est rare pour moi, mais le bloc-notes fait vraiment mal. Avec votre aide, j'ai récupéré un gvim.
flaschenpost