Onde o Nautilus obtém a descrição do tipo de arquivo?

Onde o Nautilus obtém a descrição do tipo de arquivo?

Criei e registrei alguns arquivos de informações compartilhadas para tipos de arquivos personalizados. Por exemplo, em

~/.local/share/mime/packages

Eu adicionei arquivos como

x-myokit.xml

contendo uma descrição do tipo mime, por exemplo

<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="text/x-myokit">
    <comment xml:lang="en">Myokit model definition</comment>
    <glob pattern="*.mmt"/>
  </mime-type>
</mime-info>

O Nautilus agora reconhece meus arquivos, mas ainda exibe o tipo de arquivo como “Desconhecido”. Como faço para mostrar algo mais útil nesta coluna?

Responder1

Isso foi codificado de Nautilusacordo com a decisão dos desenvolvedores demostrar apenas informações básicas do tipona Typecoluna por padrão, para que a classificação por tipo agrupe famílias de tipos.
Os tipos básicos são definidos emarquivo nautilus.cbaseado em nomes de ícones genéricos (simbólicos) 1 :

struct {
        const char *icon_name;
        const char *display_name;
} mime_type_map[] = {
    { "application-x-executable", N_("Program") },
    { "audio-x-generic", N_("Audio") },
    { "font-x-generic", N_("Font") },
    { "image-x-generic", N_("Image") },
    { "package-x-generic", N_("Archive") },
    { "text-html", N_("Markup") },
    { "text-x-generic", N_("Text") },
    { "text-x-generic-template", N_("Text") },
    { "text-x-script", N_("Program") },
    { "video-x-generic", N_("Video") },
    { "x-office-address-book", N_("Contacts") },
    { "x-office-calendar", N_("Calendar") },
    { "x-office-document", N_("Document") },
    { "x-office-presentation", N_("Presentation") },
    { "x-office-spreadsheet", N_("Spreadsheet") },
};

Os tipos que não se enquadram nas categorias acima são mostrados como Unknown:

if (basic_type == NULL) {
    basic_type = g_strdup (_("Unknown"));

Como resultado, um arquivo com tipo MIME application/x-myokit(com um nome de ícone simbólico correspondente application-x-generic) será listado como Unknownna Typecoluna enquanto um arquivo com tipo MIME text/x-myokit(com um nome de ícone simbólico correspondente text-x-generic) será listado como Textna Typecoluna (veja também vários sistemas arquivos como *.soarquivos em /usr/libou *.moarquivos em /usr/share/locale- eles estão todos listados como, Unknownmas se você selecionar um deles e clicar em Alt+, Enterobterá informações detalhadas e precisas).


Você pode fazer com que o Nautilus liste outra coisa se usar generic-icon nameem seu xmlarquivo. Embora suas opções sejam limitadas às categorias mencionadas acima. Então, por exemplo, se você quisesse que cada um dos seus *.mmtarquivos fosse listado como Programna Typecoluna, você editaria x-myokit.xmlassim:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <mime-type type="application/x-myokit">
        <comment>Myokit model definition</comment>
        <generic-icon name="text-x-script"/>
        <glob pattern="*.mmt"/>
    </mime-type>
</mime-info>

Não se esqueça de atualizar o banco de dados mime com:

update-mime-database ~/.local/share/mime

Se precisar de informações mais úteis você pode ativar/verificar a MIME typecoluna nas Nautiluspreferências (ou com dconf/ gsettings: add mime_typeto org.gnome.nautilus.list-view default-visible-columns).

1: execute gio info -a standard::symbolic-icon filepara ver os nomes dos ícones simbólicos correspondentes (em configurações mais antigas, substitua gio infopor gvfs-info)

Responder2

Acredito que o Nautilus obtém a descrição do arquivo do local /usr/share/applications. Você pode encontrar informações mais úteis na minha outra respostaaqui. Particularmente,esseA resposta em Ask Ubuntu discute detalhadamente como as associações de arquivos são armazenadas.

O gerenciador de arquivos (Nautilus, por padrão) usa o tipo MIME de um arquivo para determinar com qual programa abri-lo. Quando um aplicativo é instalado, ele pode especificar quais tipos MIME ele pode abrir e o comando a ser usado para abrir os arquivos no arquivo .desktop colocado em /usr/share/applications. Este é o arquivo usado para menus, atalhos da área de trabalho, etc.

informação relacionada