How to find the default file manager?

22

3

as a Linux user, I see that some applications can request a path to be opened and this causes a file manager to be launched. I'd like to do this programmatically, but how can I know which is the default file manager? Is there a way to find this info? Any environment variable? By "file manager", I mean applications that allow you to administer your files: create, rename, create folders, etc., like Nautilus (in GNOME) or Dolphin (in KDE).

Thanks in advance!

Mauren

Posted 2012-08-23T17:34:00.533

Reputation: 549

Answers

7

There is no such thing as a "Default File Manager for Linux". It all depends how you might be trying to open one. If you ask XDG, then you'll have to check what XDG thinks this file manager should be. Same deal for any other "environment", such as Gnome, or KDE. If you have all of them installed, it's perfectly possible (and fine) for each of them to have a different "default file manager".

The case for default apps seems to come mainly from Windows. Over there, we only have one environment, the one Windows presents us with. As such, the notion of a default application is indeed effectively system wide. This is not the case with Linux.

What you might perceive as default apps under Linux, such as what is stored in the $EDITOR environment variable, is not as much a "true" default app, as simply a convention used by a lot of people who write system tools and scripts. Feel free to define $FILEMANAGER, if that suits your use case.

mkaito

Posted 2012-08-23T17:34:00.533

Reputation: 1 651

I was thinking there might be an environment variable for this, and actually thought about defining one. Nice answer, thank you very much. – Mauren – 2012-08-23T19:35:16.027

I think you mean XFCE instead of XDG? – Gerhard Burger – 2014-03-18T15:36:47.717

1

I mean XDG: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

– mkaito – 2014-03-19T02:23:00.900

20

Use the xdg-mime command to this. xdg should be desktop-environment agnostic (eg xdg-open will pass the arguments on to the correct file opener). To get the default file manager use:

xdg-mime query default inode/directory

Source

Gerhard Burger

Posted 2012-08-23T17:34:00.533

Reputation: 377

2This should be the correct answer. – crypdick – 2018-06-21T22:36:55.167

17

You can use xdg-open <DIR> to launch the file manager on a directory. You might be able to query some xdg application to find out what file manager is used.

src

Posted 2012-08-23T17:34:00.533

Reputation: 331

Thanks for the hint. I will try to use this to solve my problem. – Mauren – 2012-08-23T19:36:09.737

1

Wow, unbelievable that nobody postet the correct answer here.

Default applications on Linux are handled by the Freedesktop (former XDG) Mimeapps Standard and several other specs that this one is based on.

The Arch Linux Wiki contains a comprehensible article too. What you are looking for is the association of the mimetype inode/directory.

ManuelSchneid3r

Posted 2012-08-23T17:34:00.533

Reputation: 503

Thanks for this. I use Arch & should've thought to check the wiki, but didn't. – Colin Keenan – 2017-04-09T05:34:06.107

2And how is my answer not correct? I posted the exact command to query the inode/directory association with an xdg-mime query... – Gerhard Burger – 2017-12-18T15:00:30.290

1

i just came accross the same problem. (i would rather like to comment but my reputation isnt high enough)

i tried xdg-open and it startet EasyTag which is a id3-tag-editor (somehow funny) :-)

i tried Gerhard Burgers answer

xdg-mime query default inode/directory

and that returned dolphin.desktop in my case.

so in my case the correct solution was (replacing ".dektop" with ""):

xdg-mime query default inode/directory | sed 's/.desktop//g'

but i only testet this on this system i am running

coffeekid

Posted 2012-08-23T17:34:00.533

Reputation: 33

0

Seems everybody mentioned the inode/directory MIME-type and the xdg-open should works in most of the cases for your need (programmatically open a directory via a file manager), but sometimes wrong application (which is not a file manager, e.g. Visual Studio Code) can also associate it with the inode/directory as the default application.

In addition there is also a file-manager-interface for D-Bus (org.freedesktop.FileManager1 in Session Bus) which can be used for your requirement so you can also use this if your file manager support this D-Bus interface. Please make sure if you can use it since not all file manager implemented this, currently it seems Dolphin (KDE), Nautilus (GNOME) and Deepin File Manager (DDE) implemented this D-Bus interface. And to find out which process owner this D-Bus interface (you don't need to do it if you just would like to request a path to be opened via a file manager programmatically), see this answer

Gary Wang

Posted 2012-08-23T17:34:00.533

Reputation: 1