
Creé y registré algunos archivos de información mime compartida para tipos de archivos personalizados. Por ejemplo, en
~/.local/share/mime/packages
He agregado archivos como
x-myokit.xml
que contenga una descripción de tipo mime, por ejemplo
<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>
Nautilus ahora reconoce mis archivos, pero aún muestra el tipo de archivo como "Desconocido". ¿Cómo hago para que muestre algo más útil en esta columna?
Respuesta1
Esto fue codificado Nautilus
según la decisión de los desarrolladores desolo muestra información de tipo básicoen la Type
columna de forma predeterminada, de modo que la clasificación por tipo agruparía familias de tipos.
Los tipos básicos se definen enarchivo-nautilus.cbasado en nombres de iconos 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") },
};
Los tipos que no se incluyen en las categorías anteriores se muestran como Unknown
:
if (basic_type == NULL) {
basic_type = g_strdup (_("Unknown"));
Como resultado, un archivo con tipo mime application/x-myokit
(con un nombre de icono simbólico correspondiente application-x-generic
) aparecerá como Unknown
en la Type
columna, mientras que un archivo con tipo mime text/x-myokit
(con un nombre de icono simbólico correspondiente text-x-generic
) aparecerá como Text
en la Type
columna (consulte también varios sistemas archivos como *.so
archivos debajo /usr/lib
o *.mo
archivos en /usr/share/locale
: todos aparecen en la lista, Unknown
pero si selecciona uno de ellos y presiona Alt+ Enterobtendrá información detallada y precisa).
Puede hacer que Nautilus enumere algo más si lo usa generic-icon name
en su xml
archivo. Aunque sus opciones se limitan a las categorías mencionadas anteriormente. Entonces, por ejemplo, si desea que cada uno de sus *.mmt
archivos aparezca Program
en la Type
columna, deberá editarlo x-myokit.xml
de esta manera:
<?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>
No olvides actualizar la base de datos mime con:
update-mime-database ~/.local/share/mime
Si necesita más información útil, puede habilitar/marcar la MIME type
columna en Nautilus
preferencias (o con dconf
/ gsettings
: agregar mime_type
a org.gnome.nautilus.list-view default-visible-columns
).
1: ejecute gio info -a standard::symbolic-icon file
para ver los nombres de los iconos simbólicos correspondientes (en configuraciones anteriores, reemplácelo gio info
con gvfs-info
)
Respuesta2
Creo que Nautilus obtiene la descripción del archivo de la ubicación /usr/share/applications
. Podrías encontrar más información útil en mi otra respuesta.aquí. Particularmente,esteLa respuesta en Ask Ubuntu analiza en detalle cómo se almacenan las asociaciones de archivos.
El administrador de archivos (Nautilus, por defecto) utiliza el tipo MIME de un archivo para determinar con qué programa abrirlo. Cuando se instala una aplicación, puede especificar qué tipos MIME puede abrir y el comando que se utilizará para abrir los archivos en el archivo .desktop que se encuentra en
/usr/share/applications
. Este es el archivo utilizado para menús, accesos directos del escritorio, etc.