Como configurar corretamente e com facilidade 'xdg-open' sem nenhum ambiente?

55

Estou usando o gerenciador de janelas OpenBox sem nenhum ambiente de área de trabalho .

xdg-open se comporta de maneira estranha. Ele abre tudo com firefox .

$ xdg-settings --list
Known properties:
  default-web-browser           Default web browser

Estou procurando um programa simples; algo como ler todos os arquivos *.desktop na pasta /usr/share/applications/ e definir automaticamente as configurações do xdg.

    
por kravemir 13.04.2012 / 19:08

5 respostas

20

Você pode usar perl-file-mimeinfo no repositório extra para gerenciar mimetypes.

Exemplo para abrir todos os arquivos .pdf em apvlv :

/usr/bin/vendor_perl/mimeopen -d $file.pdf

e, em seguida, no prompt, insira o aplicativo: apvlv .

    
por 15.04.2012 / 05:47
53

Por que não usar utilitários do próprio xdg?

Para tornar o Thunar o navegador de arquivos padrão, ou seja, o aplicativo padrão para abrir pastas.

$ xdg-mime default Thunar.desktop inode/directory

para usar o xpdf como visualizador de PDF padrão:

$ xdg-mime default xpdf.desktop application/pdf

Isso deve criar uma entrada em seu banco de dados MIME local:

~/.local/share/applications/defaults.list
[Default Applications]
application/pdf=xpdf.desktop

Seus arquivos PDF devem ser abertos com o xpdf agora.

    
por 21.12.2012 / 10:46
7

No Debian você pode usar o comando, como root

update-mime-database /usr/share/mime

com o pacote shared-mime-info instalado.

    
por 13.04.2012 / 22:06
4

Você poderia usar algo assim para gerar os comandos xdg-mime apropriados para cada um dos arquivos .desktop e os tipos MIME que eles contêm e, em seguida, executar aqueles que você gosta. Nota /usr/share/applications pode ter subdiretórios.

for dd in /usr/share/applications ~/.local/share/applications; do
  for d in $(ls $dd 2>/dev/null | grep "\.desktop$"); do
    for m in $(grep MimeType $dd/$d | cut -d= -f2 | tr ";" " "); do
      echo xdg-mime default $d $m;
    done;
  done;
done
    
por 08.03.2013 / 03:13
2

Isso é como @ resposta do aleb , mas funciona em arquivos da área de trabalho com espaços:

find /usr/share/applications ~/.local/share/applications -iname '*.desktop' -print0 | while IFS= read -r -d $'
find /usr/share/applications ~/.local/share/applications -iname '*.desktop' -print0 | while IFS= read -r -d $'%pre%' d; do
  for m in $(grep MimeType "$d" | cut -d= -f2 | tr ";" " "); do
    echo xdg-mime default "'$d'" "'$m'"
  done
done
' d; do for m in $(grep MimeType "$d" | cut -d= -f2 | tr ";" " "); do echo xdg-mime default "'$d'" "'$m'" done done
    
por 27.04.2017 / 17:23