Comportamento de aplicativos padrão xdg-open

13

Quando não tenho defaults.liste mimeapps.list, xdg-openabre text/plaincom gvim. Mas quando eu criar defaults.listem /usr/share/applications/e adicione as seguintes linhas:

[Default Applications]
text/plain=emacs.desktop

abre arquivos de texto com o Firefox.

No entanto, se eu mudar /usr/share/applications/defaults.listpara ~/.local/share/applications/mimeapps.list, ele abre arquivos de texto com emacso esperado.

Minhas perguntas:

  1. Como xdg-opendetermina qual aplicativo iniciar quando não existe defaults.liste mimeapps.list?
  2. Por xdg-openque estou usando o firefox quando simplesmente escrevo /usr/share/applications/defaults.list?

Estou usando o Arch linux.

Gradiente
fonte
1
Eu uso o Openbox. Além disso, notei um /usr/share/applications/mimecache.infoarquivo que parece listar os aplicativos padrão. Ele é ainda mais confusa ...
Gradient
1
Eu encontrei este arquivo de configuração em~/.config/mimeapps.list
Sam Mason

Respostas:

23

Se estiver usando xdg-openpara abrir aplicativos, use xdg-mimepara 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.desktoppara verificar foo.desktopse 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.txtserá usado em gvimvez 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-mimeutilitá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

Michael
fonte
3
Anos depois, mas obrigado! Algum desenvolvedor colocou uma piada muito ruim no vinho, ele deve ter pensado "se você realmente quer voltar um pouco dessa dor no Windows, deve ter tudo para nunca ficar nostálgico!" E como todos os programas X11 iniciam um clone de bloco de notas ao abrir arquivos de texto. Abrir arquivos de um aplicativo é raro para mim, mas o bloco de notas realmente dói. Com sua ajuda, recebi de volta um gvim.
Flaschenpost