Trouver l'application par défaut pour une certaine extension

12

Étant donné xdg-open et une extension, existe-t-il un moyen d'obtenir l'application à laquelle xdg-open est définie pour cette extension particulière?

Par exemple donné xdg-openet .jpgle résultat est eog.

sjsam
la source
1
Quel système d'exploitation utilisez-vous?
heemayl
Voici Ubuntu Trusty.
sjsam

Réponses:

13

AFAIK le choix de l'action est basé sur le type de mime du fichier plutôt que sur son extension.

Au moins sur Ubuntu, vous devriez pouvoir utiliser l' queryaction de xdg-mimepour afficher l'application par défaut pour un type de mime spécifique

$ xdg-mime query default image/jpeg
eog.desktop

Vous pouvez vérifier le type MIME pour un fichier particulier en utilisant xdg-mime query filetypepar exemple

$ xdg-mime query filetype kqDRdnW.jpg
image/jpeg

ou en utilisant la filecommande par exemplefile --mime-type <file>

Voir man xdg-mimepour plus d'informations sur l'utilisation.

tournevis
la source
vaut probablement la peine de mentionner à l'OP que la façon dont vous obtenez le type mime pour le jpeg de type de xdg-mime query filetype <file_you_want_the_mimetype_of>
fichier
@the_velour_fog good point - ajouté
steeldriver
Malheureusement, xdg-mime query defaultne fonctionne pas toujours si on xdg-openappelle simplement un outil sous-jacent (par exemple pcmanfm); l'exemple que vous avez utilisé dans votre réponse ne renvoie rien sur mon système LXDE.
Stephen Harris
Merci, je choisirais la première option ici,var="xdg-mime query default image/jpeg" && $(${var%.desktop})
sjsam
5

Pour interroger le type MIME utilisé par un fichier existant à l'aide de xdg-utils, cela fonctionne comme:

$ xdg-mime query filetype yourfile.xxx

Vous pouvez également définir une nouvelle valeur par défaut, par exemple pour modifier une entrée de bureau associée en définissant Thunar - un gestionnaire de fichiers moderne pour l'environnement de bureau Xfce - comme navigateur de fichiers par défaut, vous devez entrer:

$ xdg-mime default Thunar.desktop inode/directory

Ou par exemple pour définir l'application par défaut pour les http(s)://protocoles Internet, vous pouvez utiliser:

$ xdg-mime default midori.desktop x-scheme-handler/http

OR

$ xdg-mime default midori.desktop x-scheme-handler/https
FarazX
la source
Cela ne se limite pas aux rpmsystèmes basés; cela fait partie du bureau standard et fonctionne sur Debian (par exemple). Malheureusement, voici comment définir une valeur par défaut; il ne dit pas comment trouver la valeur définie. Et xdg-mime query defaultne rapporte pas toujours ce qu'il fera s'il xdg-openappelle un programme de bureau sous-jacent (par exemple pcmanfmsur LXDE).
Stephen Harris
@StephenHarris Je pensais que les options pourraient être différentes. Merci de me le dire.
FarazX
Cela devrait être la réponse acceptée.
navigaid