Modifica dei tipi MIME

Non si dovrebbe per alcun motivo modificare direttamente i file sorgente XML che sono installati nella directory <MIME>/packages dalle applicazioni. Piuttosto è possibile modificare il file Overrides.xml. Questo file ha la precedenza su tutti gli altri file sorgente XML installati nella stessa directory packages. Questa regola non si applica agli autori delle applicazioni: gli autori dovrebbero creare un nuovo file sorgente XML e posizionarlo nella opportuna directory <MIME>/packages (per mezzo del proprio Makefile).

È possibile modificare il database MIME per tutti gli utenti del sistema o per un particolare utente in base alla posizione del file che si cambia. Per modificare il database per tutti gli utenti, apportare i cambiamenti al file Overrides.xml nella directory $XDG_DATA_DIRS/mime/packages. Per modificare il database per un singolo utente, apportare i cambiamenti al file Overrides.xml nella directory $XDG_DATA_HOME/mime/packages.

Dopo aver apportato i cambiamenti, è sempre necessario eseguire l'applicazione update-mime-database, con la directory in cui è posizionato il database MIME come primo parametro.

5.4.1. Aggiunta e modifica dei tipi MIME

Per aggiungere uno o più tipi MIME per tutti gli utenti:

  1. Creare o modificare un file sorgente XML Overrides.xml, contenente le definizioni per i tipi MIME. Per maggiori informazioni, consultare Sezione 5.3 - I file sorgente XML.
  2. Posizionare il file Overrides.xml nella directory /usr/share/mime/packages.
  3. Aggiornare il database MIME eseguendo update-mime-database usando l'account di sistema.
    update-mime-database /usr/share/mime

Per aggiungere uno o più tipi MIME per un singolo utente, seguire la stessa procedura, provvedendo però a posizionare il file Overrides.xml nella directory ~/.local/share/mime/packages. In aggiunta, eseguire update-mime-database con ~/.local/share/mime/packages come primo parametro.

5.4.2. Verifica dei cambiamenti

Dopo aver apportato un cambiamento al database MIME e aver aggiornato il suo contenuto, è possibile verificare se il cambiamento abbia avuto effetto usando l'applicazione gnomevfs-info. Questa applicazione stampa il tipo MIME ed altre informazioni utili su un file.

Eseguendo gnomevfs-info su un file SVG viene fornito l'output mostrato qui sotto. Si può notare che l'applicazione predefinita per questo tipo MIME è eog.desktop; le applicazioni predefinite sono discusse in Sezione 5.5 - Registrazione di applicazioni per tipi 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
$

In Sezione 5.4.3 - Esempio application/x-newtype è spiegata passo passo la creazione di un nuovo tipo MIME e la verifica dei cambiamenti usando gnomevfs-info.

5.4.3. Esempio application/x-newtype

Per creare (o sovrapporsi a) un tipo MIME e verificare i cambiamenti:

  1. Creare nella propria directory home un nuovo file vuoto dal nome testing.xyz.

  2. Usare gnomevfs-info sul file per individuare il tipo MIME. Il tipo MIME per questo file dovrebbe essere individuato come text/plain poiché non vi è alcun modello di glob o regola magic che ha corrispondenza col file1.

  3. Creare (o modificare) il file Overrides.xml come descritto in Sezione 5.4.1 - Aggiunta e modifica dei tipi MIME con il contenuto fornito in Esempio 5-3.

  4. Aggiornare il database usando update-mime-database.

  5. Usare gnomevfs-info per verificare che i cambiamenti apportati abbiano avuto effetto. Si dovrebbe leggere che il tipo MIME per il file testing.xyz è application/x-newtype.

    $ gnomevfs-info testing.xyz | grep MIME
    MIME type         : application/x-newtype
    $
5-3 File 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-newtype">
    <comment>nuovo tipo mime</comment>
    <glob pattern="*.xyz"/>
  </mime-type>
</mime-info>
1

Quando nessun modello di glog o regola magic ha corrispondeza con un file, tale file viene risolto nel tipo MIME text/plain se contiene dati di testo o application/octet-stream per dati binari. Se il file è vuoto, allora il valore predefinito è text/plain.