Como o xdg-open faz seu trabalho?

24

De acordo com a página do manual, xdg-open abrirá um arquivo usando o aplicativo que o usuário configurou. Mas como essa aplicação é realmente determinada? Não consigo ver arquivos de configuração associados a xdg-utils , então onde estão minhas configurações armazenadas e como posso modificá-las? Vendo como um simples arquivo PNG abre o Internet Explorer usando o Wine, vejo necessidade urgente de alterar essas configurações.

    
por MvG 11.07.2014 / 20:59

1 resposta

24

Veja o conteúdo do arquivo xdg-open , e você notará que é um script de shell simples. Sua principal tarefa é identificar o ambiente de desktop em uso, que será usado para delegar a tarefa a uma ferramenta específica:

  • KDE delega para kde-open ou kfmclient
  • Gnome delega para gvfs-open ou gnome-open
  • Parceiro delega para gvfs-open ou mate-open
  • XFCE delega para exo-open
  • LXDE delega para pcmanfm , com fallback para "genérico" para a maioria dos URLs
  • Enlightenment delega para enlightenment_open
  • Todo o resto é denominado " genérico " e o script tenta a sua própria sorte

Portanto, a mensagem principal é a seguinte: na maioria das situações, um desses representantes fará o trabalho real, portanto, você deve verificar como eles estão configurados.

Por exemplo, estou executando o XFCE, portanto xdg-open chama exo-open , que usa as configurações do XFCE disponíveis por meio da interface com o usuário de configurações do XFCE e armazenadas em ~/.local/share/applications/mimeapps.list .

Para detalhes sobre os arquivos de configuração em uso, strace -e file pode ser útil. E se você estiver na situação "genérica" e quiser ver o que o xdg-open em si, você pode tentar sh -x 'which xdg-open' file.name .

    
por 11.07.2014 / 20:59