Abra um diretório no gerenciador de arquivos padrão e selecione um arquivo

6

Em um programa que estou escrevendo, quero oferecer a funcionalidade para abrir o diretório em que o arquivo que estou processando atualmente está localizado e selecioná-lo automaticamente (para que o usuário não precise procurá-lo).

Eu sei que posso abrir um diretório no gerenciador de arquivos padrão usando

xdg-open /path/to/directory

Eu sei que posso abrir um diretório no nautilus e selecionar um arquivo usando

nautilus /path/to/file.txt

Eu pensei que eu poderia usar

xdg-mime query default inode/directory

para obter o gerenciador de arquivos padrão e - se for nautilus - chamá-lo como mostrado acima. Mas, apesar do fato do nautilus ser o padrão no meu sistema ( xdg-open abre o nautilus e o mesmo acontece no menu de locais no shell do gnome), xdg-mime retorna Thunar.desktop . (Eu tentei find / -name Thunar.desktop -mount 2>/dev/null mas não encontrei nada.)

Além disso, eu não sei como abrir um diretório e selecionar um sub diretório no nautilus (com a abordagem acima mencionada ele abriria o subdiretório).

Como eu posso abrir um diretório no gerenciador de arquivos padrão e selecionar um arquivo nesse diretório (se selecionar um diretório também, seria possível que seria ótimo, mas para este aplicativo não é necessário) ou pelo menos descubra o gerenciador de arquivos padrão para que eu possa chamá-lo diretamente?

    
por jakun 14.05.2017 / 16:18

1 resposta

2

1. Para abrir um diretório e selecionar um subdiretório / arquivo no nautilus:

nautilus --select path/to/file/or/directory

De página do manual do nautilus (1) :

-s, --select
  Select specified URI in parent folder.

2. xdg-mime retorna Thunar.desktop mas xdg-open abre nautilus

xdg-mime usa mimeapps.list para determinar o aplicativo padrão a ser usado.

Existem arquivos mimeapps.list separados para lidar com requisitos específicos do usuário e específicos do sistema. Sua ordem de pesquisa pode ser encontrada em aqui .

mimeapps.list lista os aplicativos padrão para um determinado tipo MIME na seção [Aplicativos padrão]. Permite listar vários aplicativos padrão em sua ordem decrescente de preferência. Por exemplo:

[Default Applications]
mimetype1 = default1.desktop;default2.desktop;

onde mimetype1 é o tipo mime e *. desktop são os arquivos da área de trabalho.

xdg-open procura por arquivos da área de trabalho na ordem de pesquisa, na lista de preferências, até encontrar um arquivo de área de trabalho válido. Se esse arquivo não for encontrado em todos os arquivos, o mais preferido, de acordo com as associações, será escolhido e será usado como aplicativo padrão.

Portanto, no caso do nosso exemplo, suponhamos que default1.desktop não esteja presente em nosso sistema, portanto xdg-open tentará abrir nosso arquivo usando default2.desktop . No entanto, xdg-mime retorna default1.desktop , que é a primeira entrada no nosso arquivo mimeapps.list .

No seu caso, default1.desktop deve ser Thunar.desktop , portanto, a saída. No entanto, não está instalado no seu sistema. Então xdg-open abre seu arquivo / diretórios usando nautilus que está presente no seu sistema. Para verificar isso, você pode verificar o arquivo mimeapps.list da linha que contém inode/directory . Para o Ubuntu 17.10, a localização do arquivo mimeapps.list é: /usr/share/applications/defaults.list

NOTA: O algoritmo completo para determinar 'Aplicativos Padrão' pode ser encontrado aqui .

    
por 14.12.2017 / 08:15

Tags