Se estiver usando xdg-open
para abrir aplicativos, use xdg-mime
para definir o aplicativo padrão para um determinado tipo mime (normalmente, a instalação do xdg-utils fornece o xdg-mime e os programas relacionados).
Por exemplo, para ver o "tipo de arquivo" (tipo MIME, se desejar) do arquivo fornecido:
$ xdg-mime query filetype tmp.txt
text/plain
$ xdg-mime query filetype foo.pdf
application/pdf
$ xdg-mime query filetype $PWD
inode/directory
Exemplo de alteração do gerenciador de arquivos padrão para abrir diretórios (pode escolher caja.desktop (padrão para mint), nautilus.desktop (ubuntu), etc:
$ xdg-mime default Thunar.desktop inode/directory
E também faça locate -i foo.desktop
para verificar foo.desktop
se realmente existe.
Mais precisamente, para ver qual é o editor de texto padrão,
$ xdg-mime query default text/plain
gedit.desktop
Para usar um editor de texto padrão diferente (novamente, verificando se o arquivo ".desktop" existe):
$ locate -i vim.desktop
/usr/share/applications/gvim.desktop
$ xdg-mime default gvim.desktop text/plain
Agora, clique duas vezes em "foo.txt" (no gerenciador de arquivos da GUI) ou em execução xdg-open foo.txt
será usado em gvim
vez degedit
.
Solução de problemas: verifique se o arquivo ".desktop" de um determinado aplicativo pode ser encontrado, pois ele deve ser usado com o xdg-mime
utilitário; por exemplo,
$ xdg-mime default emacs text/plain
xdg-mime: malformed argument 'emacs', expected *.desktop
Além disso, isso silenciosamente falha ao funcionar como esperado se o arquivo ".desktop" não existir:
$ locate -i emacs.desktop
(none)
$ xdg-mime default emacs.desktop text/plain # won't work
O arquivo ".desktop" do emacs (no meu ambiente):
$ locate -r 'emacs.*\.desktop'
/usr/share/applications/emacs24.desktop
$ xdg-mime default emacs24.desktop text/plain # does work
Veja também: https://wiki.archlinux.org/index.php/xdg-open
/usr/share/applications/mimecache.info
arquivo que parece listar os aplicativos padrão. Ele é ainda mais confusa ...