MAN Solaris - gnome-vfs-mime-magic.4 (4)



gnome-vfs-mime-magic, gnome-vfs.mime, gnome-vfs.keys - GNOME VFS MIME detection





On any modern desktop system, each document type or file type must be given a unique identification name and icon. In GNOME, this information is used extensively by the file manager, nautilus(1). The primary underlying mechanism for providing such definitions is achieved via gnome-vfs-mime-magic. gnome-vfs-mime-magic contains the default file content sniffers for identifying MIME types. The concept of MIME magic is similar to that of Solaris magic(4).



Each line in the /etc/gnome/gnome-vfs-mime-magic file describes a MIME type. The format of each line is as follows:

offset_start[:offset_end] pattern_type pattern  [&pattern_mask] mime-type

Each line contains the following fields:

offset_start Decimal number that, with offset_end, specifies the bytes offset within the file.

offset_end Decimal number that, with offset_start, specifies the bytes offset within the file.

pattern_type Can be one of the following types:

byte | short | long | string | date | beshort | belong | bedate | leshort | lelong | ledate

where be stands for Big Endian and le stands for Little Endian.

pattern An ASCII string with non-printable characters escaped as hex or octal escape sequences, and spaces and other important whitespace escaped with a backslash (\).

pattern_mask A string of hex digits. The mask must be the same specification as the non-ambigous patterns.

mime-type A valid MIME type.

The magic patterns are matched sequentially from the first entry to the last entry of the list. Therefore, you should put the non-ambigous patterns at the start of the list. Any pattern that requires a deep seek into the file should be placed at the end of the list to reduce performance overhead. When designing new document formats, include an easily recognizable unique magic pattern near the start of the file. A good pattern is is at least four bytes long and contains one or two non-printable characters so that text files are not misidentified.


and gnome-vfs.keys"

Apart from file sniffing, GNOME also provide a secondary mechanism to determine MIME types. If a file has been sniffed and its type does not match any of the magic patterns, GNOME looks for files called /usr/share/gnome/mime-info/*.mime and processes these. The format of these files is different to that of pattern magic. Instead of determining the MIME type by reading the content of the file, the MIME type of the file is determined by its extension. The mime info file has the following format:

    ext[,prio]: list of extensions for this mime-type   
    regex[,prio]: regular expression that matches the filename

More than one ext: and regex: field can be present for a given MIME type. You can also associate a priority for each field. The default priority (prio) is 1, a higher numerical value indicates a higher priority. The indentation before ext: and regex: must be a tab character (\t).

The searching sequence implies that the magic pattern file has a higher precedence over the mime info files. As the mime info files are read    alphabetically, this also determines matching orders for the file extension.

For example, the file FirstFile.mime contains the following definition:

    ext: foo

and the file SecondFile.mime contains the following definition:

    ext: foo

The definition in FirstFile.mime will be found first and used.

For each MIME info file there must be an associated keys file in the same directory. The key file provides human readable text which can be localized into various languages. The data in these keys files is used by the GNOME file manager, nautilus(1).


Example 1: Magic pattern definition for PDF file

The following entry in the /etc/gnome/gnome-vfs-mime-magic file describes the MIME type of application/pdf:

        0       string  %PDF-                           application/pdf         

The first 5 characters of a PDF file are %PDF-. The symbols % and - differentiate the PDF file from a text file.

Example 2: Magic pattern definition for BMP file

The following entry in the /etc/gnome/gnome-vfs-mime-magic file describes the MIME type of application/bmp:

0       string          BMxxxx 00 00 &0xffff00000000ffff        image/bmp       

The interpretation of this line is as follows:

o The first two characters are BM and the seventh and eighth characters are NULL.

o The mask 0xffff00000000ffff allows the selction of the first, second, seventh, and eighth characters to be selected for comparison.

Example 3: MIME info file definition for application/x-compress

The following entry in the /etc/gnome/gnome-vfs-mime-magic file describes the MIME type of application/x-compress:

                ext: Z  

This line indicates that the x-compress application searches for files with a .Z extension.

The associated keys file entry in the /usr/share/gnome/mime-info/gnome-vfs.mime         file is as follows (excluding all localized text):     

                description=compress-compressed file

Example 4: MIME info file definition for application/x-compressed-tar

The following entry in the /etc/gnome/gnome-vfs-mime-magic file describes the MIME type of application/x-compressed-tar:

                        regex,2: tar.gz$
                        ext: tgz        

This example uses the priority flag to give regex a higher priority than ext, which means that a file with an extension of tar.gz should be matched first (to have a MIME type of application/x-compressed-tar) before tgz.


The following files are used by this application:







See attributes(5) for descriptions of the following attributes:

Interface stabilityVolatile


nautilus(1), gnome-vfs.applications(4), libgnomevfs-2(3)

Latest version of the GNOME Desktop User Guide for your platform.

Written by Ghee Teo, Sun Microsystems Inc., 2003.

Jump to page    or go to Top of page |  Section 4 |  Main Solaris Index.

SunOS 5.11 gnome-vfs-mime-magic.4 (4) 13 Jan 2003
Generated by Open Solaris Forum from /usr/share/man/man4/gnome-vfs-mime-magic.4 using man macros with tbl support.