システム・メニューを編集する

手動でメニューの設定ファイルとデータ・ファイルを編集して、いろいろなメニューをカスタマイズできるようになっています。

2.5.1. メニューを追加する

すべてのユーザ向けにメニューを1つ追加する手順は次のとおりです:

  1. 追加するメニューに対応したディレクトリ・エントリのファイルを作成し、$XDG_DATA_DIRS/desktop-directories というフォルダに格納する (ディレクトリ・エントリのファイルについて詳細は「セクション 2.4 - ディレクトリ・エントリのファイル」を参照のこと)
  2. $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
  3. この .menu ファイルで、新しいメニュー用に <Menu> 要素を追加する (.menu ファイルについて詳細は「セクション 2.2 - いろいろなメニュー定義ファイル」を参照のこと)
  4. 先ほど作成した <Menu> 要素の配下に <Name> という要素とそのデータを追加する (このデータをメニューの名前にすること)
  5. 一番最初に作成した <Menu> 要素の配下に <Directory> という要素とそのデータを新たに追加する (このデータをディレクトリ・エントリのファイル名にすること)
  6. ここで新たに作成したメニューにメニュー項目を追加する際は「セクション 2.5.2 - メニュー項目をメニューに追加する」を参照のこと

ユーザが次回ログインすると、ここで作成したメニューがメニュー・バーの中に表示されるはずです。

作成したメニューが見つからない場合

<Include> 要素で指定したフィルタリングのルールにマッチするメニューが一つも存在しない場合や、マッチするデスクトップ・エントリが一つも存在しないような場合、そのメニューはメニュー・バーに表示されません。

2.5.2. メニュー項目をメニューに追加する

すべてのユーザ向けにメニュー項目を1つ追加する手順は次のとおりです:

  1. 追加するメニュー項目に対応したデスクトップ・エントリのファイルを作成する (デスクトップ・エントリのファイルについて詳細は「セクション 2.3 - デスクトップ・エントリのファイル」を参照のこと)
  2. 作成したデスクトップ・エントリのファイルを $XDG_DATA_DIRS/applications というフォルダに格納する
  3. $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
  4. <Menu> という要素の中に <Include> という要素が格納され、かつ手順1で作成したデスクトップ・エントリのファイルを選択するようなフィルタリングのルールになっているか確認する

ユーザが次回ログインすると、ここで作成したメニュー項目が表示されるはずです。

2.5.3. メニューのプロパティを編集する

すべてのユーザ向けにメニューのプロパティを編集する手順は次のとおりです:

  1. $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
  2. このファイルの中から、編集したいプロパティを持つメニューに対応した <Menu> 要素を見つけ、さらに <Directory> という要素が持つデータを取得する (これがディレクトリ・エントリのファイル名)
  3. このディレクトリ・エントリのファイルを開き、メニューのプロパティを変更する (.directory について詳細については「セクション 2.4 - ディレクトリ・エントリのファイル」を参照のこと)

2.5.4. メニュー項目を編集する

メニュー項目を編集する手順は次のとおりです:

  1. メニュー項目に対応したデスクトップ・エントリのファイルを $XDG_DATA_DIRS/applications というフォルダの中から見つけて開く
  2. デスクトップ・エントリのファイルでメニュー項目のプロパティを編集する (デスクトップ・エントリのファイルについて詳細は「セクション 2.3 - デスクトップ・エントリのファイル」を参照のこと)

2.5.5. メニューからメニュー項目を削除する

すべてのユーザ向けにメニューからメニュー項目を削除する手順は次のとおりです:

  1. $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
  2. このファイルの中から、削除したいデスクトップ・エントリ名を含む <Menu> 要素を見つける
  3. <Include> 要素が閉じている箇所の後に <Exclude> 要素を挿入する (この要素が、手順2に示したように、<Menu> 要素の中に内包されているか確認すること)
  4. <Exclude> 配下の要素としてフィルタリングのルールである <Filename> を挿入し、対象外にするデスクトップ・エントリを明示的に指定する

ユーザが次回ログインすると、ここで指定したメニュー項目が表示されないはずです。例 2-2applications.menu を使った例を示します。この例では dasher.desktop というデスクトップ・エントリのファイルを明示的にアクセシビリティのメニューで表示しないようにしています。

例 2-2メニューからメニュー項目を削除する
<!-- ... -->

  <Menu>
    <Name>Accessibility</Name>
    <Directory>Accessibility.directory</Directory>
    <Include>
      <And>
        <Category>Accessibility</Category>
        <Not><Category>Settings</Category></Not>
      </And>
    </Include>
    <Exclude>
      <Filename>dasher.desktop</Filename>
    </Exclude>
  </Menu>

<!-- ... -->