Modification des types MIME

Il ne faudrait jamais modifier directement les fichiers XML source installés par les applications dans le répertoire <MIME>/packages. Modifiez plutôt le fichier Overrides.xml. Ce fichier a priorité sur tout autre fichier XML source installé dans le même répertoire packages. Si vous êtes auteur d'application, cette règle ne s'applique pas. Dans ce cas, vous devez créer un nouveau fichier XML source et le placer dans le répertoire <MIME>/packages adéquat (par le moyen du Makefile, naturellement).

Vous pouvez modifier la base de données MIME pour tous les utilisateurs ou pour un seul selon l'emplacement du fichier que vous modifiez. Pour affecter tous les utilisateurs, éditez le fichier Overrides.xml du répertoire $XDG_DATA_DIRS/mime/packages. Si vous ne voulez modifier la base de données que pour un seul utilisateur, éditez le fichier Overrides.xml du répertoire $XDG_DATA_HOME/mime/packages.

Après tout changement de ces fichiers, il est indispensable d'exécuter l'application update-mime-database avec en premier paramètre l'emplacement du répertoire de la base de données MIME.

V.IV.I. Ajout ou modification de types MIME

Pour ajouter un ou plusieurs types MIME pour tous les utilisateurs :

  1. Créez ou modifiez un fichier XML source Overrides.xml contenant les définitions des types MIME. Pour plus d'informations, consultez Section V.III ― Fichiers XML source.
  2. Placez le fichier Overrides.xml dans le répertoire /usr/share/mime/packages.
  3. Mettez à jour la base de données MIME en exécutant update-mime-database avec un compte administrateur.
    update-mime-database /usr/share/mime

Pour ajouter un ou plusieurs types MIME pour un seul utilisateur, effectuez les mêmes opérations à l'exception de l'emplacement du fichier Overrides.xml qui doit se trouver dans le répertoire ~/.local/share/mime/packages. De plus, exécutez update-mime-database avec ~/.local/share/mime/packages comme premier paramètre.

V.IV.II. Vérification des modifications

Après avoir modifié la base de données MIME et réactualisé son contenu, vous pouvez vérifier la prise en compte des modifications en utilisant l'application gnomevfs-info. Celle-ci affiche le type MIME et d'autres informations utiles à propos d'un fichier.

En lançant gnomevfs-info pour un fichier SVG, vous obtiendrez le résultat affiché ci-dessous. Vous pouvez remarquer que l'application par défaut de ce type MIME est eog.desktop. Les applications par défaut seront abordées dans Section V.V ― Enregistrement d'applications pour les types MIME.

$ gnomevfs-info mime-diagram.svg
Name              : mime-diagram.svg
Type              : Regular
MIME type         : image/svg+xml
Default app       : eog.desktop
Size              : 14869
Blocks            : 32
I/O block size    : 4096
Local             : YES
SUID              : NO
SGID              : NO
Sticky            : NO
Permissions       : 600644
Link count        : 1
UID               : 1000
GID               : 100
Access time       : Wed Feb 22 18:24:47 2006
Modification time : Wed Feb 22 18:24:42 2006
Change time       : Wed Feb 22 18:24:42 2006
Device #          : 775
Inode #           : 297252
Readable          : YES
Writable          : YES
Executable        : NO
$

Section V.IV.III ― Exemple application/x-nouveautype décrit les opérations nécessaires à la création d'un nouveau type MIME et à la vérification des modifications à l'aide de gnomevfs-info.

V.IV.III. Exemple application/x-nouveautype

Pour créer (ou redéfinir) un type MIME et vérifier les changements :

  1. Créez un nouveau fichier vide appelé test.xyz dans votre dossier personnel.

  2. Pour connaître le type MIME du fichier, lancez gnomevfs-info avec le fichier en paramètre. Dans ce cas, ce devrait être text/plain puisqu'aucun modèle ni règle « magic » ne correspondra1.

  3. Créez (ou modifiez) le fichier Overrides.xml, selon les explications de la Section V.IV.I ― Ajout ou modification de types MIME, avec le contenu de l'Exemple V.3 ci-dessous.

  4. Réactualisez la base de données avec update-mime-database.

  5. Utilisez gnomevfs-info pour vérifier que les modifications ont été prises en compte. Vous devriez voir apparaître application/x-nouveautype comme type MIME du fichier test.xyz.

    $ gnomevfs-info test.xyz | grep MIME
    MIME type         : application/x-nouveautype
    $
Exemple V.3 Fichier Overrides.xml
<?xml version='1.0' encoding='utf-8'?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-nouveautype"><comment>nouveau type MIME</comment><glob pattern="*.xyz"/></mime-type>
</mime-info>
1

Lorsqu'un fichier ne correspond à aucun modèle ou aucune règle « magic », son type MIME est défini comme text/plain s'il contient des données textuelles ou application/octet-stream s'il contient des données binaires. Si le fichier est vide, son type MIME par défaut est text/plain.