Encontre o aplicativo padrão para uma determinada extensão

12

Dado o xdg-open e uma extensão, existe uma maneira de obter o aplicativo para o qual o xdg-open está definido para essa extensão específica?

Por exemplo, dado xdg-opene .jpgo resultado é eog.

sjsam
fonte
1
Qual sistema operacional você está usando?
heemayl
Este é o Ubuntu Trusty.
Sjsam

Respostas:

13

AFAIK, a escolha da ação é baseada no tipo de mimet do arquivo e não na sua extensão.

Pelo menos no Ubuntu, você deve poder usar a queryação de xdg-mimepara mostrar o aplicativo padrão para um tipo de mim específico

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

Você pode verificar o tipo de mimet para um arquivo específico usando, xdg-mime query filetypepor exemplo,

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

ou usando o filecomando, por exemplofile --mime-type <file>

Veja man xdg-mimepara mais informações de uso.

chave de aço
fonte
provavelmente vale a pena mencionar ao OP que o modo como você obtém o tipo MIME para o tipo de arquivo jpeg éxdg-mime query filetype <file_you_want_the_mimetype_of>
the_velour_fog
@the_velour_fog good point - adicionado
steeldriver
Infelizmente xdg-mime query default, nem sempre funciona se xdg-openapenas chama uma ferramenta subjacente (por exemplo pcmanfm); o exemplo que você usou na sua resposta não retorna nada no meu sistema LXDE.
Stephen Harris
Obrigado, eu iria primeira opção aqui,var="xdg-mime query default image/jpeg" && $(${var%.desktop})
sjsam
5

Para consultar o tipo mime usado por um arquivo existente usando xdg-utils, ele funciona como:

$ xdg-mime query filetype yourfile.xxx

Você também pode definir um novo padrão, por exemplo, para alterar uma entrada da área de trabalho associada, configurando Thunar - um gerenciador de arquivos moderno para o Xfce Desktop Environment - como o navegador de arquivos padrão que você deve inserir:

$ xdg-mime default Thunar.desktop inode/directory

Ou, por exemplo, para definir o aplicativo padrão para http(s)://protocolos da Internet, você pode usar:

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

OR

$ xdg-mime default midori.desktop x-scheme-handler/https
FarazX
fonte
Isso não se limita a rpmsistemas baseados; faz parte da área de trabalho padrão e funciona no Debian (por exemplo). Infelizmente, é assim que se define um valor padrão; não diz como encontrar qual valor está definido. E xdg-mime query defaultnem sempre informa o que fará se xdg-openchamar um programa de desktop subjacente (por exemplo, pcmanfmno LXDE).
Stephen Harris
@StephenHarris Eu pensei que as opções poderiam ser diferentes. Obrigado por me dizer.
FarazX 24/07
Essa deve ser a resposta aceita.
Navigaid