Given xdg-open and an extension, is there a way to get the application which xdg-open is set to for that particular extension?

For example given xdg-open and .jpg the result is eog.

  • 1
    Which OS are you using? – heemayl Jul 24 '16 at 11:27
  • This is Ubuntu Trusty. – sjsam Jul 24 '16 at 11:29

AFAIK the choice of action is based on the file's mimetype rather than its extension.

At least on Ubuntu, you should be able to use the query action of xdg-mime to show the default application for a specific mimetype

$ xdg-mime query default image/jpeg

You can check the mimetype for a particular file using xdg-mime query filetype e.g.

$ xdg-mime query filetype kqDRdnW.jpg

or using the file command e.g. file --mime-type <file>

See man xdg-mime for further usage information.

  • probably worth mentioning to the OP that the way you get the mime-type for the filetype jpeg is xdg-mime query filetype <file_you_want_the_mimetype_of> – the_velour_fog Jul 24 '16 at 12:21
  • @the_velour_fog good point - added – steeldriver Jul 24 '16 at 12:24
  • Unfortunately xdg-mime query default doesn't always work if xdg-open just calls an underlying tool (eg pcmanfm); the example you used in your answer returns nothing on my LXDE system. – Stephen Harris Jul 24 '16 at 12:49
  • Thankyou, I would go first option here, var="xdg-mime query default image/jpeg" && $(${var%.desktop}) – sjsam Jul 24 '16 at 15:37

To query the mime type used by an existing file by using xdg-utils, it works as:

$ xdg-mime query filetype yourfile.xxx

You can also set a new default, for instance to change an associated desktop entry by setting Thunar - a modern file manager for the Xfce Desktop Environment - as the default file browser you should enter:

$ xdg-mime default Thunar.desktop inode/directory

Or for example to set the default application for http(s):// internet protocols, you can use:

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


$ xdg-mime default midori.desktop x-scheme-handler/https
  • This isn't limited to rpm based systems; it's part of the standard desktop and works on Debian (for example). Unfortunately this is how to set a default value; it doesn't say how to find what value is set. And xdg-mime query default doesn't always report what it will do if xdg-open calls an underlying desktop program (eg pcmanfm on LXDE). – Stephen Harris Jul 24 '16 at 12:47
  • @StephenHarris I thought options might be different. Thanks for telling me. – FarazX Jul 24 '16 at 13:01
  • This should be the accepted answer. – navigaid Jul 10 '18 at 1:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.