Lista os tipos MIME que padronizam para um determinado arquivo .desktop

2

Eu posso listar os mimetypes potencialmente manipulados por um arquivo .desktop fazendo algo assim:

$ grep 'MimeType' /usr/share/applications/eog.desktop | tr ';' '\n'
MimeType=image/bmp
image/gif
image/jpeg
image/jpg
image/pjpeg
image/png
image/tiff
...

E eu posso mostrar qual é o aplicativo padrão para um determinado tipo de mim:

$ gvfs-mime --query image/tiff
Default application for 'image/tiff': eog.desktop
Registered applications:
        eog.desktop
        gimp.desktop
...
Recommended applications:
        eog.desktop
        gimp.desktop
...

Mas como faço para listar os tipos de mimes que eog.desktop realmente manipula?

    
por Nathaniel M. Beaver 10.09.2015 / 06:32

1 resposta

2

Eu não conheço nenhuma ferramenta que faça isso.
Você poderia escrever o seu próprio embora. Aqui está um script python3 muito simples que deve ser executado em qualquer sistema que use GIO por baixo (por exemplo, Gnome 3):

#!/usr/bin/env python

from sys import argv
from gi.repository import Gio

app = argv[1]
glauncher = Gio.DesktopAppInfo.new_from_filename(app)
for mtype in Gio.AppInfo.get_supported_types(glauncher):
    ghandler = Gio.AppInfo.get_default_for_type(mtype, False)
    launcher = glauncher.get_executable()
    handler = ghandler.get_executable()
    if launcher == handler:
        print (mtype)

O script recebe um argumento: o caminho completo para o arquivo da área de trabalho

myscript /usr/share/applications/eog.desktop

O script obtém a lista de tipos MIME que o seu aplicativo suporta e, para cada item da lista, obtém o manipulador padrão e, se for o mesmo aplicativo, imprime o tipo MIME.

Eu acho que você também pode tentar analisar mimeapps.list , mimeinfo.cache ou defaults.list (o último está obsoleto, veja especifica o freedesktop.org para possíveis nomes de arquivos e locais) e extrai as informações relevantes de lá, mas seus resultados podem variar, como em algumas distros alguns desses arquivos estão faltando. / p>     

por 10.09.2015 / 13:46