Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

12.3. ファイルの関連付けの設定

12.3.1. MIME タイプとは

GNOME において、MIME (Multipurpose Internet Mail Extension) タイプは、ファイルの形式を特定するために使用されます。GNOME デスクトップは以下を実行するために MIME タイプを使用します。
  • デフォルトで特定のファイル形式を開くアプリケーションを決定します。
  • 特定のファイル形式を開くことができる他のアプリケーションの登録。
  • ファイル アプリケーションのファイルプロパティーダイアログなどで、ファイルのタイプを記述する文字列を指定します。
  • ファイル アプリケーションのファイルプロパティーダイアログなどで、特定のファイル形式を表すアイコンを指定します。
MIME タイプ名は指定された形式に従います。
media-type/subtype-identifier

例12.7 MIME タイプの形式

image/jpeg は MIME タイプの例です。ここで、image はメディアタイプで、jpeg はサブタイプの識別子です。
GNOME は、以下を判別するために freedesktop.org 共有 MIME 情報仕様に従います。
  • すべての MIME タイプ仕様ファイルを保存するためのマシン全体およびユーザー固有の場所。
  • 特定のファイル形式を開くために使用できるアプリケーションをデスクトップ環境で認識できるように MIME タイプを登録する方法。
  • どのアプリケーションがどのファイル形式を開くかをユーザーが変更する方法。

12.3.1.1. MIME データベースとは

MIME データベースは、GNOME が既知の MIME タイプについての情報を保存するために使用するすべての MIME タイプ仕様ファイルの集合です。
システム管理者の観点からの MIME データベースの最も重要な部分は、/usr/share/mime/packages/ ディレクトリーです。ここには、既知の MIME タイプの情報を指定する MIME タイプ関連のファイルが保存されます。このようなファイルの例は /usr/share/mime/packages/freedesktop.org.xml で、デフォルトでシステムで利用可能な標準の MIME タイプに関する情報を指定します。このファイルは、shared-mime-info パッケージによって提供されます。
詳細情報の入手
MIME タイプシステムについての説明の詳細は、freedesktop.org の Web サイトより 『freedesktop.org Shared MIME Info の仕様』 を参照してください。

12.3.2. 全ユーザー用のカスタム MIME タイプの追加

システム上のすべてのユーザーにカスタム MIME タイプを追加し、その MIME タイプのデフォルトアプリケーションを登録するには、/usr/share/mime/packages/ ディレクトリーに新規の MIME タイプ仕様ファイルと、/usr/share/applications/ ディレクトリーに .desktop ファイルを作成する必要があります。

手順12.3 全ユーザー用のカスタム application/x-newtype MIME タイプの追加

  1. /usr/share/mime/packages/application-x-newtype.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>
    上記のサンプル application-x-newtype.xml ファイルは新規の MIME タイプ application/x-newtype を定義し、.xyz 拡張子の付いたファイル名をその MIME タイプに割り当てます。
  2. たとえば、myapplication1 .desktop という名前の新しい .desktop ファイルを作成し、/usr/share/applications/ ディレクトリーに配置します。
    [Desktop Entry]
    Type=Application
    MimeType=application/x-newtype
    Name=My Application 1
    Exec=myapplication1 field_code
    上記のサンプル myapplication1.desktop ファイルは、MIME タイプ application/x-newtypeMy Application 1 という名前のアプリケーションに関連付けます。これは、コマンド myapplication1 によって実行されます。
    myapplication1 の起動方法に基づいて、デスクトップエントリー仕様 からそれぞれのフィールドコードを選択します。たとえば、複数のファイルを開くことができるアプリケーションの場合は、次のように使用します。
    Exec=myapplication1 %F
  3. 変更を有効にするには、root として MIME データベースを更新します。
    # update-mime-database /usr/share/mime
  4. root としてアプリケーションデータベースを更新します。
    # update-desktop-database /usr/share/applications
  5. *.xyz ファイルを MIME タイプ application/x-newtype に正常に関連付けたことを確認するには、まず test.xyz などの空のファイルを作成します。
    $ touch test.xyz
    次に、gvfs-info コマンドを実行します。
    $ gvfs-info test.xyz | grep "standard::content-type"
      standard::content-type: application/x-newtype
    
  6. myapplication1.desktop が MIME タイプ application/x-newtype のデフォルトの登録アプリケーションとして正しく設定されていることを確認するには、gvfs-mime --query コマンドを実行します。
    $ gvfs-mime --query application/x-newtype
    Default application for 'application/x-newtype': myapplication1.desktop
    Registered applications:
    	myapplication1.desktop
    Recommended applications:
    	myapplication1.desktop

12.3.3. 個別ユーザー用のカスタム MIME タイプの追加

個別ユーザーのカスタム MIME タイプを追加し、その MIME タイプのデフォルトアプリケーションを登録するには、~/.local/share/ mime/packages/ ディレクトリーに新規の MIME タイプ仕様ファイルと ~/.local/share/applications/ ディレクトリーに .desktop ファイルを作成する必要があります。

手順12.4 個別ユーザー用のカスタム application/x-newtype MIME タイプの追加

  1. ~/.local/share/mime/packages/application-x-newtype.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>
    上記のサンプル application-x-newtype.xml ファイルは新規の MIME タイプ application/x-newtype を定義し、.xyz 拡張子の付いたファイル名をその MIME タイプに割り当てます。
  2. たとえば、myapplication1 .desktop という名前の新しい .desktop ファイルを作成し、~/.local/share/applications/ ディレクトリーに配置します。
    [Desktop Entry]
    Type=Application
    MimeType=application/x-newtype
    Name=My Application 1
    Exec=myapplication1 field_code
    上記のサンプル myapplication1.desktop ファイルは、application/x-newtype MIME タイプを My Application 1 という名前のアプリケーションに関連付けます。これは、コマンド myapplication1 によって実行されます。
    myapplication1 の起動方法に基づいて、デスクトップエントリー仕様 からそれぞれのフィールドコードを選択します。たとえば、複数のファイルを開くことができるアプリケーションの場合は、次のように使用します。
    Exec=myapplication1 %F
  3. 変更を有効にするために MIME データベースを更新します。
    $ update-mime-database ~/.local/share/mime
  4. アプリケーションデータベースを更新します。
    $ update-desktop-database ~/.local/share/applications
  5. *.xyz ファイルを MIME タイプ application/x-newtype に正常に関連付けたことを確認するには、まず test.xyz などの空のファイルを作成します。
    $ touch test.xyz
    次に、gvfs-info コマンドを実行します。
    $ gvfs-info test.xyz | grep "standard::content-type"
      standard::content-type: application/x-newtype
    
  6. myapplication1.desktop が MIME タイプ application/x-newtype のデフォルトの登録アプリケーションとして正しく設定されていることを確認するには、gvfs-mime --query コマンドを実行します。
    $ gvfs-mime --query application/x-newtype
    Default application for 'application/x-newtype': myapplication1.desktop
    Registered applications:
    	myapplication1.desktop
    Recommended applications:
    	myapplication1.desktop

12.3.4. 全ユーザー用のデフォルトの登録済みアプリケーションの上書き

/usr/share/applications/mimeapps.list および /usr/share/applications/[desktop environment name]-mimeapps.list ファイルは、パッケージによってインストールされたデフォルトです。これは、デフォルトで特定の MIME タイプを開くために登録されるアプリケーションを指定します。
システム上のすべてのユーザーのシステムデフォルトを上書きするには、システム管理者は、デフォルトの登録アプリケーションを上書きする MIME タイプの一覧で /etc/xdg/mimeapps.list ファイルまたは /etc/xdg/desktop environment name]-mimeapps. list ファイルを作成する必要があります。
設定が適用される順序は次のとおりです。
  1. /usr/share/applications/
  2. /etc/xdg/
特定の位置内に、設定がこの順で適用されます。
  1. mimeapps.list
  2. [desktop environment name]-mimeapps.list
このように、システム管理者の設定は、パッケージ設定よりも優先されます。そして、その中でも、デスクトップ固有の設定は、デスクトップ環境を指定していない設定よりも優先されます。
7.5 より前の Red Hat Enterprise Linux バージョンは、mimeapps.list ファイルの代わりに defaults.list ファイルを使用していました。

手順12.5 全ユーザー用のデフォルトの登録済みアプリケーションの上書き

  1. /usr/share/applications/mimeapps.list ファイルを参照して、デフォルトの登録アプリケーションを変更する MIME タイプを判別します。たとえば、mimeapps.list ファイルの以下のサンプルは、text/html および application/xhtml+xml MIME タイプのデフォルトの登録アプリケーションを指定します。
    [Default Applications]
    text/html=firefox.desktop
    application/xhtml+xml=firefox.desktop
    
    デフォルトのアプリケーション(Firefox)は、対応する .desktop ファイル(firefox .desktop )を指定して定義されます。他のアプリケーションの .desktop ファイルのデフォルトの場所は /usr/share/applications/ です。
  2. /etc/xdg/mimeapps.list ファイルを作成します。このファイルで、MIME タイプとそれらの対応するデフォルトの登録アプリケーションを指定します。
    [Default Applications]
    text/html=myapplication1.desktop
    application/xhtml+xml=myapplication2.desktop
    これにより、text/html MIME タイプのデフォルト登録アプリケーションが myapplication1.desktop に設定され、application/xhtml+xml MIME タイプのデフォルトの登録アプリケーションが myapplication2.desktop に設定されます。
    これらの設定が適切に機能するには、myapplication1.desktop および myapplication 2.desktop ファイルの両方が /usr/share/applications/ ディレクトリーに置かれていることを確認します。
  3. gvfs-mime query コマンドを使用して、デフォルトの登録アプリケーションが正しく設定されていることを確認できます。
    $gvfs-mime query text/html
    Default application for 'text/html': myapplication1.desktop
    Registered applications:
    	myapplication1.desktop
    	firefox.desktop
    Recommended applications:
    	myapplication1.desktop
    	firefox.desktop

12.3.5. 個別ユーザー用のデフォルトの登録済みアプリケーションの上書き

/usr/share/applications/mimeapps.list および /usr/share/applications/[desktop environment name]-mimeapps.list ファイルは、パッケージによってインストールされたデフォルトです。これは、デフォルトで特定の MIME タイプを開くために登録されるアプリケーションを指定します。
個々のユーザーのシステムデフォルトを上書きするには、~/.local/share/applications/mimeapps.list または ~/.local/share/applications/[desktop environment id]-mimeapps.list ファイルを、デフォルトの登録アプリケーションを上書きする MIME タイプの一覧で作成する必要があります。
設定が適用される順序は次のとおりです。
  1. /usr/share/applications/
  2. /etc/xdg/
  3. ~/.local/share/application/
特定の位置内に、設定がこの順で適用されます。
  1. mimeapps.list
  2. [desktop environment name]-mimeapps.list
このように、ユーザーの設定は、システム管理者の設定よりも優先され、システム管理者の設定は、パッケージの設定よりも優先されます。そして、その中でも、デスクトップ固有の設定は、デスクトップ環境を指定していない設定よりも優先されます。
7.5 より前の Red Hat Enterprise Linux バージョンは、mimeapps.list ファイルの代わりに defaults.list ファイルを使用していました。

手順12.6 個別ユーザー用のデフォルトの登録済みアプリケーションの上書き

  1. /usr/share/applications/mimeapps.list ファイルを参照して、デフォルトの登録アプリケーションを変更する MIME タイプを判別します。たとえば、mimeapps.list ファイルの以下のサンプルは、text/html および application/xhtml+xml MIME タイプのデフォルトの登録アプリケーションを指定します。
    [Default Applications]
    text/html=firefox.desktop
    application/xhtml+xml=firefox.desktop
    
    デフォルトのアプリケーション(Firefox)は、対応する .desktop ファイル(firefox .desktop )を指定して定義されます。他のアプリケーションの .desktop ファイルのシステムのデフォルト場所は /usr/share/applications/ です。個々のユーザーの .desktop ファイルは ~/.local/share/applications/ に保存できます。
  2. ~/.local/share/applications/mimeapps.list ファイルを作成します。このファイルで、MIME タイプとそれらの対応するデフォルトの登録アプリケーションを指定します。
    [Default Applications]
    text/html=myapplication1.desktop
    application/xhtml+xml=myapplication2.desktop
    これにより、text/html MIME タイプのデフォルト登録アプリケーションが myapplication1.desktop に設定され、application/xhtml+xml MIME タイプのデフォルトの登録アプリケーションが myapplication2.desktop に設定されます。
    これらの設定が適切に機能するには、myapplication1.desktop および myapplication 2.desktop ファイルの両方が /usr/share/applications/ ディレクトリーに置かれていることを確認します。
  3. gvfs-mime --query コマンドを使用して、デフォルトの登録アプリケーションが正しく設定されていることを確認できます。
    $gvfs-mime --query text/html
    Default application for 'text/html': myapplication1.desktop
    Registered applications:
    	myapplication1.desktop
    	firefox.desktop
    Recommended applications:
    	myapplication1.desktop
    	firefox.desktop