Úprava typů MIME

Nikdy byste neměli přímo měnit zdrojové soubory nainstalované aplikací ve složce <MIME>/packages. Místo toho upravte soubor Overrides.xml.Tento soubor je nadřazený všem ostatním zdrojovým souborům XML nainstalovaným ve stejné složce packages. V případě, že jste přímo autorem aplikace, nemusíte se tohoto pravidla držet. Měli byste vytvořit nový zdrojový soubor XML a umístit jej ve správné složce <MIME>/packages (o to se samozřejmě bude starat váš soubor Makefile).

Databázi MIME můžete změnit pro všechny uživatele systému nebo jen pro vybraného uživatele, záleží na umístění souboru, který měníte. Pokud chcete změnit databázi pro všechny uživatele, proveďte změny v souboru Overrides.xml ve složce $XDG_DATA_DIRS/mime/packages. Pokud chcete změnit databázi pro jednoho uživatele, proveďte změny v souboru Overrides.xml ve složce $XDG_DATA_HOME/mime/packages.

Po provedení změn musíte vždy spustit aplikaci update-mime-database, které jako první parametr zadáte umístění databáze MIME.

5.4.1. Přidávání nebo změna typů MIME

Jestliže chcete přidat jeden nebo více typů MIME pro všechny uživatele:

  1. Vytvořte nový nebo upravte stávající zdrojový soubor XML Overrides.xml, který obsahuje definice typů MIME. Viz Oddíl 5.3 ― Zdrojové soubory XML.
  2. Uložte soubor Overrides.xml do složky /usr/share/mime/packages.
  3. Aktualizujte databázi MIME spuštěním update-mime-database pod systémovým účtem.
    update-mime-database /usr/share/mime

V případě, že chcete přidat jeden nebo více typů MIME jen pro jednoho uživatele, postupujte stejně s tím rozdílem, že svůj soubor Overrides.xml uložíte do složky ~/.local/share/mime/packages. A update-mime-database spustíte s prvním parametrem ~/.local/share/mime/packages.

5.4.2. Kontrola změn

Po provedení změn v databázi MIME a občerstvení jejího obsahu, si můžete ověřit, zda mají změny zamýšlený efekt, pomocí aplikace gnomevfs-info. Tato aplikace vypíše typ MIME a další užitečné informace o souboru.

Spuštěním aplikace gnomevfs-info na soubor SVG obdržíte níže uvedený výstup. Poznamenejme, že výchozí aplikací pro teto typ MIME je eog.desktop. Výchozí aplikace probírá Oddíl 5.5 ― Registrace aplikací k typům 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
$

Oddíl 5.4.3 ― Příklad application/x-newtype vás provede postupem vytváření nového typu MIME a kontrolou změn pomocí gnomevfs-info.

5.4.3. Příklad application/x-newtype

Pro vytvoření (nebo změnu) typu MIME a kontrolu změn:

  1. Vytvořte ve své domovské složce nový prázdný soubor nazvaný testing.xyz.

  2. Použijte gnomevfs-info k určení typ MIME tohoto souboru. Měl by se jako typ MIME detekovat text/plain, protože zatím není žádná hromadná maska nebo magické pravidlo, které by mu odpovídaly.

  3. Vytvořte (nebo upravte) soubor Overrides.xml jak popisuje Oddíl 5.4.1 ― Přidávání nebo změna typů MIME, přičemž pro obsah použijte Příklad 5-3.

  4. Občerstvěte databázi pomocí update-mime-database.

  5. Použijte gnomevfs-info k ověření, že vaše změny měli požadovaný efekt. Měli byste pro soubor testing.xyz uvidět uvedený typ MIME jako application/x-newtype.

    $ gnomevfs-info testing.xyz | grep MIME
    MIME type         : application/x-newtype
    $
Příklad 5-3Soubor 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>new mime type</comment><glob pattern="*.xyz"/></mime-type>
</mime-info>