GNOME 2.2 システム管理 (Linux 版)

第 4 章 MIME タイプ

この章では、アプリケーションがどのように MIME タイプを検出するかを説明します。また、MIME タイプの登録方法、および GNOME デスクトップへのアプリケーションの追加方法についても説明します。

MIME タイプの概要

MIME (Multipurpose Internet Mail Extension) タイプは、 ファイルの書式を特定します。 アプリケーションは、MIME タイプによってファイルを読み取ることができます。 インターネットブラウザや電子メールなどのアプリケーションは、MIME タイプを使用して異なるタイプのファイルを扱います。 たとえば、電子メールアプリケーションの場合、MIME タイプを使用して電子メールに添付されているファイルのタイプを検知する

Nautilus ファイルマネージャは MIME タイプを使用してファイルの種類を識別します。 ファイルマネージャは、以下のタスクを実行するために MIME タイプを知る必要があります。

新しいアプリケーションを追加する場合は、そのアプリケーションに関連付けられるファイルを、ほかのアプリケーションが認識できる必要があります。 ほかのアプリケーションがそのアプリケーションファイルの MIME タイプを検出するためには、いくつかのタスクを実行する必要があります。

この節では、アプリケーションはどのようにファイルの MIME タイプを検出するのか、またアプリケーションはどのように MIME タイプに関連付けられるのかを説明します。 また、この章では、新しいアプリケーションを追加するための手順についても説明します。

ファイルの MIME タイプの検出

アプリケーションは以下の方法でファイルの MIME タイプを検出します。

  1. アプリケーションは、「ファイルタイプ判別パターン」を使用して、ファイル内の特定のパターンを検索します。 ファイルタイプ判別パターンは、ファイル内の特定のパターンと MIME タイプを関連付けます。 アプリケーションがそのパターンとの一致を見つけると、そのパターンに関連付けられている MIME タイプがファイルの MIME タイプになります。

  2. ファイルタイプ判別パターンによって MIME タイプが識別されない場合、アプリケーションはファイル名を調べます。 アプリケーションは、ファイル名を「MIME タイプレジストリ」と照合します。 MIME タイプレジストリは、特定のファイル拡張子とファイル名パターンを特定の MIME タイプに関連付けます。 ファイル名との一致が見つかると、その拡張子またはパターンに関連付けられている MIME タイプが、ファイルの MIME タイプになります。

この節では、ファイルタイプ判別パターンと MIME タイプレジストリについて詳しく説明します。

ファイルタイプ判別パターン

ファイルタイプ判別パターンは、/etc/gnome-vfs-mime-magic ファイルに指定されています。 以下にファイルタイプ判別パターンの例を示します。

0	string		\x89PNG					image/png

ファイルタイプ判別パターンの構文は、以下のとおりです。

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

表 4–1 は、ファイルタイプ判別パターンの各フィールドを説明しています。

表 4–1 ファイルタイプ判別パターンのフィールド

フィールド 

説明 

offset_start

テキストパターンを判別する前に、ファイル内で無視する文字数を指定します。 

pattern_type

判別するパターンのタイプを指定します。 このマニュアルの発行時点では、string パターンタイプのみがサポートされています。

pattern

判別するパターンを指定します。 

pattern_mask

パターンマスクは、16 進数形式で指定します。 パターンマスクについては、次の節を参照してください。

このフィールドは省略可能です。 このフィールドは例には示されていません。 

type

このエントリと一致するファイルに関連付ける MIME タイプを指定します。 

パターンマスク

パターンマスクは、ファイル内でパターンを判別するときに、パターン中で無視するビットを識別します。 以下は、ファイルタイプ判別パターンとパターンマスクの例を示しています。

0     string          BMxxxx\000\000 &0xffff00000000ffff      image/bmp

この例のパターンとマスクは、以下のとおりです。

パターン 

B

M

x

x

x

x

\000

\000

マスク 

ff

ff

00

00

00

00

ff

ff

パターンとマスクは、次のような特性でファイルを指定します。

  1. ファイルは BM から始まります。

  2. BM の後に、任意の 4 バイトの値が続きます。

  3. 任意の 4 バイトの後に、\000\000 が続きます。

ファイルタイプ判別パターンは、このパターンとマスクに一致するファイルの MIME タイプが、image/bmp であることを示します。

MIME タイプレジストリ

MIME タイプレジストリは、/usr/share/mime-info にあります。 MIME タイプレジストリには、次のファイルが含まれています。

ファイル 

ファイル拡張子 

MIME 情報ファイル 

.mime

MIME キーファイル 

.keys

この節では、MIME 情報ファイルと MIME キーファイルについて説明します。

MIME 情報ファイル

MIME 情報ファイルは、MIME タイプを以下の 1 つまたは両方と関連付けます。

アプリケーションがファイルの MIME タイプを検索する場合、アプリケーションはファイル名を MIME 情報ファイルと照合します。 ファイル名との一致が見つかると、その拡張子またはパターンに関連付けられている MIME タイプが、ファイルの MIME タイプになります。

MIME 情報ファイルでは、検索するファイル名のパターンは、正規表現で書かれています。

MIME 情報ファイル内の MIME タイプエントリの形式は、以下のとおりです。

MIME-type
		ext[,priority]: list-of-extensions
		regex[,priority]: list-of-regular-expressions

ファイル拡張子および正規表現に、優先順位値を指定できます。 優先順位値を使用して、複合されたファイル名を区別できます。 たとえば、.gz 拡張子に優先順位値 1 を割り当て、それより高い優先順位値の 2.tar.gz 拡張子に割り当てたとします。 この場合、ファイル abc.tar.gz の MIME タイプは、.tar.gz になります。


注 –

ext フィールドと regex フィールドは、タブ文字 (\t) を使用してインデントする必要があります。


以下の MIME タイプエントリは、gnome-vfs.mime MIME 情報ファイルからのサンプルです。

application/x-compressed-tar
		regex,2: tar\.gz$
		ext: tgz
audio/x-real-audio
		ext: rm ra ram
image/jpeg
		ext: jpe jpeg jpg
image/png
		ext: png
text/html
		ext: html htm HTML
text/plain
		ext: asc txt TXT
text/x-readme
		regex: README.*

注 –

ファイルマネージャは、MIME 情報ファイルをアルファベット順に読み取ります。 MIME タイプがファイル拡張子または正規表現と関連付けられる順序は、アルファベット順で決定します。 たとえば、ファイル abc.mimedef.mime で、同じファイル拡張子が異なる MIME タイプに割り当てられている場合、abc.mime にある MIME タイプが使用されます。


MIME キーファイル

MIME キーファイルは、ユーザーインタフェースで使用される MIME タイプに関する情報を提供します。 たとえば、MIME キーファイルは、MIME タイプの説明を提供し、その MIME タイプのファイルを表すアイコンを指定します。

以下の例は、MIME キーファイルのサンプルを示しています。

text/html
		description=HTML page
		icon_filename=gnome-text-html
		default_action_type=application
		short_list_application_ids_for_novice_user_level=mozilla,netscape,galeon
		category=Documents/World Wide Web

注 –

MIME キーファイル内のキーは、タブ文字 (\t) を使用してインデントする必要があります。


表 4–2 は、MIME キーファイルで最も重要なキーについて説明しています。 通常、description キーと category キーは使用しているシステム環境に対応します。

表 4–2 MIME キーファイル内のキー

キー 

説明 

can_be_executable

この MIME タイプのファイルが実行可能かどうかを指定します 

description

MIME タイプの説明。 この説明は、ファイルマネージャおよびほかのアプリケーションで表示できます 

icon_filename

MIME タイプを表すアイコンのファイル名を指定します。 ファイル名へのパス、あるいはファイル拡張子は指定しない 

このアイコンは、ファイルマネージャおよびほかのアプリケーションで表示できます 

default_action_type

この MIME タイプのファイルを開いたときに行われる動作のカテゴリを指定します。 ほとんどのアプリケーションのこの MIME タイプに、application を指定します

short_list_application_ids
_for_novice_user_level

この MIME タイプのファイルを開くときに使用するアプリケーションを指定します。 優先順に 1 つ以上のアプリケーションを指定します。 アプリケーションは、アプリケーションレジストリに登録する必要があります 

category

MIME タイプのカテゴリを指定します。 このキーの値によって、「ファイル関連付け」設定ツール内の MIME タイプの場所が決定されます

MIME タイプのためのアプリケーションの登録

アプリケーションレジストリには、アプリケーションを登録するテキストファイルが含まれています。 このアプリケーション登録ファイルには、アプリケーションの詳細を指定する一連のキーと値の組み合わせが含まれています。 アプリケーション登録ファイルには、以下の情報が含まれています。

アプリケーション登録ファイルには、1 つ以上のアプリケーションを登録することができます。 アプリケーション登録ファイルには、.applications 拡張子が付きます。

アプリケーションレジストリの場所は、/usr/share/application-registry です。 このディレクトリには、デフォルトのアプリケーション登録ファイル (gnome-vfs.applications) があります。

アプリケーションを登録するには、アプリケーションレジストリにそのアプリケーションの登録ファイルを追加します。

以下は、アプリケーション登録の例です。

eog
		command=eog
		name=Eye of Gnome
		can_open_multiple_files=true
		expects_uris=false
		requires_terminal=false
		mime_types=image/bmp,image/gif,image/jpeg,image/png,image/tiff,
image/x-xpixmap,image/x-bmp,image/x-png,image/x-portable-anymap,
image/x-portable-bitmap,image/x-portable-graymap,
image/x-portable-pixmap

表 4–3 は、アプリケーション登録ファイル内のキーを説明しています。

表 4–3 アプリケーション登録のためのキー

キー 

説明 

アプリケーション識別子 

アプリケーションの一意の識別子を指定します。 この識別子は、このアプリケーション用の MIME キーファイル内の short_list_application_ids_for_novice_user_level キー内の識別子と同じにする必要があります 

command

アプリケーションの起動に使用するコマンド、およびコマンドと共に使用するオプションを指定します 

name

アプリケーションの名前を指定します。 この名前は、ユーザーインタフェースに表示されます。 たとえば、この名前は、ファイルマネージャの「アプリケーションから開く」サブメニューに表示されます

can_open_multiple_files

アプリケーションが複数のファイルを同時に開くことができるかどうかを指定します 

expects_uris

アプリケーションが URI を処理できるかどうかを指定します。 このキーの値が true の場合、アプリケーション登録エントリ内に supported_uri_schemes キーが必要です

supported_uri_schemes

アプリケーションが処理できる URI スキーマを指定します 

requires_terminal

アプリケーションを端末で実行するかどうかを指定します。 アプリケーションが実行に使用するウィンドウを作成しない場合は、このフィールドに true を入力します

mime_types

アプリケーションが使用できる MIME タイプを指定します 

GNOME デスクトップへのアプリケーションの追加

GNOME デスクトップにアプリケーションを追加するには、次の手順を実行します。

  1. アプリケーション用にメニュー項目を追加します。 メニュー項目の追加方法については、第 2 章「メニューのカスタマイズ」を参照してください。

  2. /usr/share/icons/theme-name/icon-size/apps に、アプリケーション用のアイコンを追加します。 アイコンおよびテーマの詳細については、第 3 章「テーマのインストール」を参照してください。

  3. アプリケーションが新しい MIME タイプを使用する場合は、その新しい MIME タイプ用のファイルタイプ検索ツールを追加します。 ファイルタイプ検索ツールの詳細については、ファイルタイプ判別パターンを参照してください。

  4. アプリケーションが新しい MIME タイプを使用する場合は、そのアプリケーション用の MIME 情報ファイルを MIME タイプレジストリに追加します。 MIME 情報ファイルの詳細については、MIME 情報ファイルを参照してください。

  5. アプリケーション用の MIME キーファイルを MIME タイプレジストリに追加します。 MIME キーファイルの詳細については、MIME キーファイルを参照してください。

  6. アプリケーションが新しい MIME タイプを使用する場合は、その MIME タイプ用のアイコンを /usr/share/icons/theme-name/icon-size/mimetypes に追加します。 アイコンおよびテーマの詳細については、第 3 章「テーマのインストール」を参照してください。

  7. アプリケーションと MIME タイプを関連付けるには、アプリケーション登録ファイルをアプリケーションレジストリに追加します。 アプリケーションレジストリの詳細については、MIME タイプのためのアプリケーションの登録を参照してください。