この章では、アプリケーションがどのように MIME タイプを検出するかを説明します。また、MIME タイプの登録方法、および GNOME デスクトップへのアプリケーションの追加方法についても説明します。
MIME (Multipurpose Internet Mail Extension) タイプは、 ファイルの書式を特定します。 アプリケーションは、MIME タイプによってファイルを読み取ることができます。 インターネットブラウザや電子メールなどのアプリケーションは、MIME タイプを使用して異なるタイプのファイルを扱います。 たとえば、電子メールアプリケーションの場合、MIME タイプを使用して電子メールに添付されているファイルのタイプを検知する
Nautilus
ファイルマネージャは MIME タイプを使用してファイルの種類を識別します。 ファイルマネージャは、以下のタスクを実行するために MIME タイプを知る必要があります。
正しいアプリケーションでファイルを開く
ファイルのタイプを説明する文字列を表示する
ファイルを表す適切なアイコンを表示する
そのファイルを開くことが可能な別のアプリケーションのリストを表示する
新しいアプリケーションを追加する場合は、そのアプリケーションに関連付けられるファイルを、ほかのアプリケーションが認識できる必要があります。 ほかのアプリケーションがそのアプリケーションファイルの MIME タイプを検出するためには、いくつかのタスクを実行する必要があります。
この節では、アプリケーションはどのようにファイルの MIME タイプを検出するのか、またアプリケーションはどのように MIME タイプに関連付けられるのかを説明します。 また、この章では、新しいアプリケーションを追加するための手順についても説明します。
アプリケーションは以下の方法でファイルの MIME タイプを検出します。
アプリケーションは、「ファイルタイプ判別パターン」を使用して、ファイル内の特定のパターンを検索します。 ファイルタイプ判別パターンは、ファイル内の特定のパターンと MIME タイプを関連付けます。 アプリケーションがそのパターンとの一致を見つけると、そのパターンに関連付けられている MIME タイプがファイルの MIME タイプになります。
ファイルタイプ判別パターンによって 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 |
パターンとマスクは、次のような特性でファイルを指定します。
ファイルは BM から始まります。
BM の後に、任意の 4 バイトの値が続きます。
任意の 4 バイトの後に、\000\000 が続きます。
ファイルタイプ判別パターンは、このパターンとマスクに一致するファイルの MIME タイプが、image/bmp であることを示します。
MIME タイプレジストリは、/usr/share/mime-info にあります。 MIME タイプレジストリには、次のファイルが含まれています。
ファイル |
ファイル拡張子 |
---|---|
MIME 情報ファイル |
.mime |
MIME キーファイル |
.keys |
この節では、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.mime と def.mime で、同じファイル拡張子が異なる MIME タイプに割り当てられている場合、abc.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 タイプ
アプリケーション登録ファイルには、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 デスクトップにアプリケーションを追加するには、次の手順を実行します。
アプリケーション用にメニュー項目を追加します。 メニュー項目の追加方法については、第 2 章「メニューのカスタマイズ」を参照してください。
/usr/share/icons/theme-name/icon-size/apps に、アプリケーション用のアイコンを追加します。 アイコンおよびテーマの詳細については、第 3 章「テーマのインストール」を参照してください。
アプリケーションが新しい MIME タイプを使用する場合は、その新しい MIME タイプ用のファイルタイプ検索ツールを追加します。 ファイルタイプ検索ツールの詳細については、ファイルタイプ判別パターンを参照してください。
アプリケーションが新しい MIME タイプを使用する場合は、そのアプリケーション用の MIME 情報ファイルを MIME タイプレジストリに追加します。 MIME 情報ファイルの詳細については、MIME 情報ファイルを参照してください。
アプリケーション用の MIME キーファイルを MIME タイプレジストリに追加します。 MIME キーファイルの詳細については、MIME キーファイルを参照してください。
アプリケーションが新しい MIME タイプを使用する場合は、その MIME タイプ用のアイコンを /usr/share/icons/theme-name/icon-size/mimetypes に追加します。 アイコンおよびテーマの詳細については、第 3 章「テーマのインストール」を参照してください。
アプリケーションと MIME タイプを関連付けるには、アプリケーション登録ファイルをアプリケーションレジストリに追加します。 アプリケーションレジストリの詳細については、MIME タイプのためのアプリケーションの登録を参照してください。