MIME 型を変更する

アプリケーションが <MIME>/packages フォルダにインストールしたソース XML ファイルを直接変更しないでください。代わりに、Overrides.xml という編集専用のファイルを変更してください。このファイルは同じ <MIME>/packages というフォルダにインストールしたどのソース XML ファイルよりも優先されます。但し、あなたがアプリケーション開発者ならば、このルールは無用です。新しいソース XML ファイルを作成し <MIME>/packages フォルダにインストールするようにしてください (当然ながら Makefile 側でこのような配慮をすべきです)。

システム規模ですべてのユーザに対する MIME 型データベースを変更することも、特定のユーザのためだけに変更することもできるようになっています。すべてのユーザに対してデータベースを変更する際は、$XDG_DATA_DIRS/mime/packages フォルダにある Overrides.xml というファイルを修正してください。特定のユーザだけに変更する際は、$XDG_DATA_HOME/mime/packages フォルダにある Overrides.xml というファイルを修正してください。

変更が済んだら、必ず update-mime-database コマンドに MIME データベースの場所を指定して実行してください。

5.4.1. MIME 型を追加したり変更する

すべてのユーザに対して一つ以上の MIME 型を追加する手順は次のとおりです:

  1. MIME 型の定義をいろいろ記述したソース XML ファイルの Overrides.xml を作成するか、または変更する (詳細は「セクション 5.3 - ソース XML ファイル」を参照のこと)
  2. この Overrides.xml ファイルを /usr/share/mime/packages というフォルダに格納する
  3. システム管理者の権限で update-mime-database コマンドを実行し MIME 型のデータベースを更新する
    update-mime-database /usr/share/mime

特定のユーザに対してのみ一つ以上の MIME 型を追加する場合の手順は、ここで編集した Overrides.xml ファイルを格納する先が ~/.local/share/mime/packages フォルダである以外はすべて同じです。加えて、update-mime-database コマンドを使って更新する MIME 型データベースの所在は ~/.local/share/mime/packages になります。

5.4.2. 変更点を検証する

MIME 型のデータベースに変更を加えその内容を更新したら、gnomevfs-info (または gvfs-info) というコマンドを使って実際に変更内容を検証することができます。このコマンドは MIME 型の情報とファイルに関する有益な情報をいろいろ提供してくれます。

SVG のファイルに対して gnomevfs-info コマンドを実行した結果を下に示します。その結果から、この MIME 型に対するデフォルトのアプリケーションが eog.desktop であることがわかります。デフォルトのアプリケーションについては「セクション 5.5 - 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
$

セクション 5.4.3 - application/x-newtype の例」では新しい MIME 型を作成し gnomevfs-info を使って変更内容を検証する手順を順を追って説明しています。

5.4.3. application/x-newtype の例

MIME 型を作成 (または上書き) して検証する際の手順は次のとおりです:

  1. ホーム・フォルダに testing.xyz という新しい空のファイルを作成する

  2. gnomevfs-info コマンドを使ってこのファイルの MIME 型を解析してみる (このファイルの MIME 型が text/plain として検出されているかどうかを確認すること; なぜなら glob パターンも magic ルールも存在していないので1)

  3. セクション 5.4.1 - MIME 型を追加したり変更する」で説明したように、例 5-3 の内容で Overrides.xml というファイルを作成するかまたは変更する

  4. update-mime-database コマンドでデータベースを更新する

  5. gnomevfs-info コマンドを使い、変更点の内容を検証する (この testing.xyz ファイルの MIME 型が application/x-newtype になっているか確認する)

    $ gnomevfs-info testing.xyz | grep MIME
    MIME type         : application/x-newtype
    $
例 5-3Overrides.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>
1

特定のファイルにマッチさせる glob パターンや magic ルールが必要ない時に、ファイルの中に文字列からなるデータが格納されているならば text/plain という MIME 型を、あるいはバイナリ・データが格納されていれば application/octet-stream という MIME 型を割り当てます (もしファイルが空ならば、デフォルトでは text/plain を割り当てます)。