Como encontrar o gerenciador de arquivos padrão?

22

como usuário do Linux, vejo que alguns aplicativos podem solicitar a abertura de um caminho e isso faz com que um gerenciador de arquivos seja iniciado. Eu gostaria de fazer isso programaticamente, mas como posso saber qual é o gerenciador de arquivos padrão? Existe uma maneira de encontrar essas informações? Alguma variável de ambiente? Por "gerenciador de arquivos", quero dizer aplicativos que permitem administrar seus arquivos: criar, renomear, criar pastas etc., como Nautilus (no GNOME) ou Dolphin (no KDE).

Desde já, obrigado!

Mauren
fonte

Respostas:

7

Não existe um "Gerenciador de Arquivos Padrão para Linux". Tudo depende de como você pode estar tentando abrir um. Se você perguntar ao XDG, precisará verificar o que o XDG pensa que esse gerenciador de arquivos deve ser. O mesmo acordo para qualquer outro "ambiente", como o Gnome ou o KDE. Se você tiver todos eles instalados, é perfeitamente possível (e adequado) que cada um deles tenha um "gerenciador de arquivos padrão" diferente.

O caso dos aplicativos padrão parece vir principalmente do Windows. Por lá, temos apenas um ambiente, o que o Windows nos apresenta. Como tal, a noção de um aplicativo padrão é realmente eficaz em todo o sistema. Este não é o caso do Linux.

O que você pode perceber como aplicativos padrão no Linux, como o que é armazenado na variável de ambiente $ EDITOR, não é tanto um aplicativo padrão "verdadeiro", como simplesmente uma convenção usada por muitas pessoas que escrevem ferramentas e scripts do sistema. Sinta-se à vontade para definir $ FILEMANAGER, se isso for adequado ao seu caso de uso.

mkaito
fonte
Eu estava pensando que poderia haver uma variável de ambiente para isso, e realmente pensei em definir uma. Boa resposta, muito obrigado.
Mauren
Eu acho que você quer dizer XFCE em vez de XDG?
Gerhard Burger
18

Use o xdg-mimecomando para isso. O xdg deve ser independente do ambiente de área de trabalho (por exemplo xdg-open, passará os argumentos para o abridor de arquivos correto). Para obter o gerenciador de arquivos padrão, use:

xdg-mime query default inode/directory

Fonte

Gerhard Burger
fonte
2
Essa deve ser a resposta correta.
Crypdick
17

Você pode usar xdg-open <DIR>para iniciar o gerenciador de arquivos em um diretório. Você pode consultar um xdgaplicativo para descobrir qual gerenciador de arquivos é usado.

src
fonte
Obrigado pela dica. Vou tentar usar isso para resolver meu problema.
Mauren
1

Acabei de encontrar o mesmo problema. (eu gostaria de comentar, mas minha reputação não é alta o suficiente)

Eu tentei xdg-opene ele startet EasyTag, que é um id3-tag-editor (de alguma forma engraçado) :-)

eu tentei a resposta de Gerhard Burgers

xdg-mime query default inode/directory

e isso voltou dolphin.desktopno meu caso.

portanto, no meu caso, a solução correta foi (substituindo ".dektop" por ""):

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

mas eu só testo isso neste sistema que estou executando

coffeekid
fonte
1

Uau, inacreditável que ninguém poste a resposta correta aqui.

Os aplicativos padrão no Linux são gerenciados pelo Mimeapps Standard do Freedesktop (antigo XDG) e várias outras especificações nas quais este se baseia.

O Arch Linux Wiki também contém um artigo compreensível . O que você está procurando é a associação do tipo mimético inode/directory.

ManuelSchneid3r
fonte
Obrigado por isso. Eu uso o Arch e deveria ter pensado em verificar o wiki, mas não o fiz.
Colin Keenan
2
E como minha resposta não está correta? Eu publiquei o comando exato para consultar a inode/directoryassociação com uma xdg-mimeconsulta ...
Gerhard Burger
0

Parece que todo mundo mencionou o inode/directorytipo MIME e o xdg-opendeveria funcionar na maioria dos casos para sua necessidade (abra programaticamente um diretório por meio de um gerenciador de arquivos), mas às vezes o aplicativo errado (que não é um gerenciador de arquivos, por exemplo, Visual Studio Code) também pode associar com o inode/directoryaplicativo padrão.

Além disso, há também uma interface de gerenciamento de arquivos para o D-Bus ( org.freedesktop.FileManager1no barramento de sessão) que pode ser usada para os seus requisitos, para que você também possa usá-lo se o seu gerenciador de arquivos suportar essa interface do D-Bus. Verifique se você pode usá-lo, pois nem todos os gerenciadores de arquivos implementaram isso, atualmente parece que o Dolphin (KDE), o Nautilus (GNOME) e o Deepin File Manager (DDE) implementaram essa interface D-Bus. E para descobrir qual proprietário do processo essa interface D-Bus (você não precisa fazê-lo se quiser solicitar que um caminho seja aberto por meio de um gerenciador de arquivos programaticamente), consulte esta resposta

Gary Wang
fonte