
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 Nautilus
acordo com a decisão dos desenvolvedores demostrar apenas informações básicas do tipona Type
coluna 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 Unknown
na Type
coluna enquanto um arquivo com tipo MIME text/x-myokit
(com um nome de ícone simbólico correspondente text-x-generic
) será listado como Text
na Type
coluna (veja também vários sistemas arquivos como *.so
arquivos em /usr/lib
ou *.mo
arquivos em /usr/share/locale
- eles estão todos listados como, Unknown
mas 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 name
em seu xml
arquivo. Embora suas opções sejam limitadas às categorias mencionadas acima. Então, por exemplo, se você quisesse que cada um dos seus *.mmt
arquivos fosse listado como Program
na Type
coluna, você editaria x-myokit.xml
assim:
<?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 type
coluna nas Nautilus
preferências (ou com dconf
/ gsettings
: add mime_type
to org.gnome.nautilus.list-view default-visible-columns
).
1: execute gio info -a standard::symbolic-icon file
para ver os nomes dos ícones simbólicos correspondentes (em configurações mais antigas, substitua gio info
por 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.