第12章 アプリケーションの統合

アプリケーションを GNOME デスクトップに統合する際、システム管理者は通常、以下のように アプリケーション のメニュー構造および MIME タイプをカスタマイズすることに関連したタスクを実行します。
  • サブメニューを作成または変更して、アプリケーションのメニュー項目を追加または変更するか、または アプリケーション メニュー構造をカスタマイズします。メニューのカスタマイズについての詳細は、「メニューのカスタマイズ」 を参照してください。
  • アクティビティ画面 の GNOME Shell ダッシュボード に表示されるデフォルトのお気に入りのアプリケーションをカスタマイズします。これを実行する方法の詳細は、「デフォルトのお気に入りアプリケーションのカスタマイズ」 を参照してください。
  • アプリケーションの MIME タイプを追加または変更し、アプリケーションを特定の MIME タイプに関連付けます。MIME タイプの設定方法の詳細は、「ファイルの関連付けの設定」 を参照してください。

12.1. メニューのカスタマイズ

GNOME メニューシステムは freedesktop.org デスクトップメニュー仕様 に基づいており、設定およびデータファイルの 3 つの主なセットから構成されています。
デスクトップエントリーファイル (.desktop)
.desktop ファイルは、各メニュー項目の名前、実行するコマンド、およびそのアイコンなどの各メニュー項目についてのデータを提供します。.desktop エントリーファイルは、メニュー階層内のメニュー項目の場所、および アクティビティ画面 のアプリケーション検索で使用されるキーワードも指定します。
システム .desktop ファイルは /usr/share/applications/ ディレクトリーにあります。ユーザー固有の .desktop ファイルは ~/.local/share/applications/ ディレクトリーにあります。
以下は ~/.local/share/applications/myapplication1.desktop という名前のサンプルの .desktop ファイルです。
[Desktop Entry]
Type=Application
Name=My Application 1
Icon=myapplication1
Exec=myapplication1
Categories=Network;WebBrowser;
MimeType=application/x-newtype
上記のファイルは、アプリケーションの名前 (My Application 1)、アプリケーションのアイコン (myapplication1)、およびアプリケーションを実行するコマンド (myapplication1) を指定します。さらに、アプリケーションを指定のカテゴリー (Network;WebBrowser;) に配置し、アプリケーションを application/x-newtype MIME タイプに関連付けます。
メニュー定義ファイル (.menu)
.menu ファイルは、メニューおよびメニュー項目の両方の順序、階層、およびマージを指定する XML 設定ファイルです。
マシン全体の .menu ファイルは /etc/xdg/menus/ ディレクトリーにあります。ユーザー固有の .menu ファイルは ~/.config/menus/ ディレクトリーにあり、マシン全体の .menu ファイルで指定される値を上書きするために使用できます。
とくに /etc/xdg/menus/applications.menu ファイルには、アプリケーション メニューレイアウトの定義が含まれます。
ディレクトリーエントリーファイル (.directory)
.directory ファイルは、メニューの名前などの各メニューについてのデータを提供するもので、/usr/share/desktop-directories/ にあります。

詳細情報の入手

デスクトップエントリーファイルについての詳細は、freedesktop.org の Web サイトより 『Desktop Entry Specification』 を参照してください。
GNOME メニューシステムの実装方法の詳細は、freedesktop.org の Web サイトより 『Desktop Menu Specification』 を参照してください。

12.1.1. 個別ユーザーのメニュー項目の削除

所定ユーザーの アプリケーション メニューのカスタマイズは、デフォルトで ~/.config/menus/gnome-applications.menu 定義ファイルに保存されます。そのファイルの場所は、$XDG_DATA_HOME 環境変数を設定することにより上書きできます。
アプリケーション メニューのデフォルトを上書きするには、まず gnome-applications.menu ファイルを作成する必要があります。アプリケーション メニューおよびそのサブメニューから項目を削除すると、アクティビティ画面 の「アプリケーション」ビューからもこの項目が削除されます。そのため、ユーザーが アクティビティ画面 から項目を検索できなくなります。

手順12.1 例: 「アクセサリ」サブメニューから電卓メニュー項目を削除

  1. /usr/share/applications/ ディレクトリーの内容を参照し、削除するメニュー項目に対応する .desktop ファイルを判別します。
    $ grep -r "Name=Calculator" /usr/share/applications/
    /usr/share/applications/gcalctool.desktop:Name=Calculator
    上記に示されるように、電卓 メニュー項目は /usr/share/applications/gcalctool.desktop ファイルに対応しています。
  2. ~/.config/menus/gnome-applications.menu ファイルを作成します。
    <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
    "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">
    
    <Menu>
      <Name>Applications</Name>
      <MergeFile type="parent">/etc/xdg/menus/gnome-applications.menu</MergeFile>
    
    <!-- Removes the Calculator from the Accessories submenu -->
      <Menu>
        <Name>Accessories</Name>
        <Exclude>
          <Filename>gcalctool.desktop</Filename>
        </Exclude>
      </Menu>
    <!-- END of Calculator removal content -->
    
    </Menu>
    上記に示されるように、ファイルにはサブメニューの名前 (Accessories)、.desktop ファイルの名前 (gcalctool.desktop) を指定する <Menu> が含まれ、さらに <Exclude> 要素が含まれます。

12.1.2. すべてのユーザーのメニュー項目の削除

すべてのユーザーの アプリケーション メニューのカスタマイズは、デフォルトで /etc/xdg/menus/applications.menu 定義ファイルに保存されます。そのファイルの場所は、 $XDG_CONFIG_DIRS 環境変数を設定することにより上書きできます。
アプリケーション メニューのデフォルトを上書きするには、.menu ファイルを編集する必要があります。アプリケーション メニューおよびそのサブメニューから項目を削除すると、アクティビティ画面 の「アプリケーション」ビューからこの項目が削除されます。そのため、ユーザーが アクティビティ画面 から項目を検索できなくなります。

手順12.2 例: 「アクセサリ」サブメニューから電卓メニュー項目を削除

  1. /usr/share/applications/ ディレクトリーの内容を参照し、削除するメニュー項目に対応する .desktop ファイルを判別します。
    $ grep -r "Name=Calculator" /usr/share/applications/
    /usr/share/applications/gcalctool.desktop:Name=Calculator
    上記に示されるように、電卓 メニュー項目は /usr/share/applications/gcalctool.desktop ファイルに対応しています。
  2. /etc/xdg/menus/applications.menu ファイルを編集し、以下のように <Exclude> 要素を使用して .menu の末尾にある最後の </Menu> タグの前に新規の <Menu> セクションを追加します。
    <!-- Removes the Calculator from the Accessories submenu -->
    
      <Menu>
        <Name>Accessories</Name>
        <Exclude>
          <Filename>gcalctool.desktop</Filename>
        </Exclude>
      </Menu>
    
    <!-- END of Calculator removal content -->
    
    </Menu> <!-- End Applications -->

12.1.3. 個別ユーザーのサブメニューの削除

所定ユーザーの アプリケーション メニューのカスタマイズは、デフォルトで ~/.config/menus/gnome-applications.menu 定義ファイルに保存されます。そのファイルの場所は、$XDG_DATA_HOME 環境変数を設定することにより上書きできます。
アプリケーション メニューのデフォルトを上書きするには、まず gnome-applications.menu ファイルを作成する必要があります。アプリケーション メニューからサブメニューを削除することにより、アクティビティ画面 の「アプリケーション」ビューからサブメニュー内に含まれるすべてのメニュー項目も削除されるため、ユーザーが アクティビティ画面 からそれらの項目を検索できなくなります。

例12.1 アプリケーションメニューから「システムツール」サブメニューを削除

~/.config/menus/gnome-applications.menu ファイルを作成します。
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN"
"http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd">

<Menu>
  <Name>Applications</Name>
  <MergeFile type="parent">/etc/xdg/menus/gnome-applications.menu</MergeFile>

<!-- Removes the System Tools submenu from the Applications menu-->

  <Menu>
    <Name>System Tools</Name>
    <Deleted/>
  </Menu>

<!-- END of System Tools removal content -->

</Menu>
上記のように、ファイルには、サブメニュー (System Tools) の名前を指定する <Menu> セクションが含まれ、<Deleted/> タグが組み込まれます。

12.1.4. すべてのユーザーのサブメニューの削除

すべてのユーザーの アプリケーション メニューのカスタマイズは、デフォルトで /etc/xdg/menus/applications.menu 定義ファイルに保存されます。そのファイルの場所は、 $XDG_CONFIG_DIRS 環境変数を設定することにより上書きできます。
アプリケーション メニューのデフォルトを上書きするには、.menu ファイルを編集する必要があります。アプリケーション メニューからサブメニューを削除することにより、アクティビティ画面 の「アプリケーション」ビューからサブメニュー内に含まれるすべてのメニュー項目も削除されるため、ユーザーが アクティビティ画面 からそれらの項目を検索できなくなります。

例12.2 アプリケーションメニューから「システムツール」サブメニューを削除

/etc/xdg/menus/applications.menu ファイルを編集し、以下のように <Deleted/> 要素を使用して .menu ファイルの末尾にある最後の </Menu> タグの前に新規の <Menu> セクションを追加します。
<!-- Removes the System Tools submenu from the Applications menu-->

  <Menu>
    <Name>System Tools</Name>
    <Deleted/>
  </Menu>

<!-- END of System Tools removal content -->

</Menu>