Red Hat Training

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

第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
    上記のように 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
    上記のように Calculator メニュー項目は /usr/share/applications/gcalctool.desktop ファイルに対応します。
  2. /etc/xdg/menus/applications.menu ファイルを編集し、以下のように <Menu> 要素を使用して、.menu ファイルの最後にある最後の </Menu> タグの前に新しい <Exclude> セクションを追加します。
    <!-- 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>
上記のように、ファイルには、サブメニュー (<Menu>) の名前を指定する System Tools セクションが含まれ、<Deleted/> タグが組み込まれます。

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

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

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

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

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

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

</Menu>