システム・メニューを編集する
手動でメニューの設定ファイルとデータ・ファイルを編集して、いろいろなメニューをカスタマイズできるようになっています。
- 2.5.1. メニューを追加する
- 2.5.2. メニュー項目をメニューに追加する
- 2.5.3. メニューのプロパティを編集する
- 2.5.4. メニュー項目を編集する
- 2.5.5. メニューからメニュー項目を削除する
2.5.1. メニューを追加する
すべてのユーザ向けにメニューを1つ追加する手順は次のとおりです:
- 追加するメニューに対応したディレクトリ・エントリのファイルを作成し、$XDG_DATA_DIRS/desktop-directories というフォルダに格納する (ディレクトリ・エントリのファイルについて詳細は「セクション 2.4 - ディレクトリ・エントリのファイル」を参照のこと)
- $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
- この .menu ファイルで、新しいメニュー用に <Menu> 要素を追加する (.menu ファイルについて詳細は「セクション 2.2 - いろいろなメニュー定義ファイル」を参照のこと)
- 先ほど作成した <Menu> 要素の配下に <Name> という要素とそのデータを追加する (このデータをメニューの名前にすること)
- 一番最初に作成した <Menu> 要素の配下に <Directory> という要素とそのデータを新たに追加する (このデータをディレクトリ・エントリのファイル名にすること)
- ここで新たに作成したメニューにメニュー項目を追加する際は「セクション 2.5.2 - メニュー項目をメニューに追加する」を参照のこと
ユーザが次回ログインすると、ここで作成したメニューがメニュー・バーの中に表示されるはずです。
作成したメニューが見つからない場合
<Include> 要素で指定したフィルタリングのルールにマッチするメニューが一つも存在しない場合や、マッチするデスクトップ・エントリが一つも存在しないような場合、そのメニューはメニュー・バーに表示されません。
2.5.2. メニュー項目をメニューに追加する
すべてのユーザ向けにメニュー項目を1つ追加する手順は次のとおりです:
- 追加するメニュー項目に対応したデスクトップ・エントリのファイルを作成する (デスクトップ・エントリのファイルについて詳細は「セクション 2.3 - デスクトップ・エントリのファイル」を参照のこと)
- 作成したデスクトップ・エントリのファイルを $XDG_DATA_DIRS/applications というフォルダに格納する
- $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
- <Menu> という要素の中に <Include> という要素が格納され、かつ手順1で作成したデスクトップ・エントリのファイルを選択するようなフィルタリングのルールになっているか確認する
ユーザが次回ログインすると、ここで作成したメニュー項目が表示されるはずです。
2.5.3. メニューのプロパティを編集する
すべてのユーザ向けにメニューのプロパティを編集する手順は次のとおりです:
- $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
- このファイルの中から、編集したいプロパティを持つメニューに対応した <Menu> 要素を見つけ、さらに <Directory> という要素が持つデータを取得する (これがディレクトリ・エントリのファイル名)
- このディレクトリ・エントリのファイルを開き、メニューのプロパティを変更する (.directory について詳細については「セクション 2.4 - ディレクトリ・エントリのファイル」を参照のこと)
2.5.4. メニュー項目を編集する
メニュー項目を編集する手順は次のとおりです:
- メニュー項目に対応したデスクトップ・エントリのファイルを $XDG_DATA_DIRS/applications というフォルダの中から見つけて開く
- デスクトップ・エントリのファイルでメニュー項目のプロパティを編集する (デスクトップ・エントリのファイルについて詳細は「セクション 2.3 - デスクトップ・エントリのファイル」を参照のこと)
2.5.5. メニューからメニュー項目を削除する
すべてのユーザ向けにメニューからメニュー項目を削除する手順は次のとおりです:
- $XDG_CONFIG_DIRS/menus/applications.menu ファイルを開く
- このファイルの中から、削除したいデスクトップ・エントリ名を含む <Menu> 要素を見つける
- <Include> 要素が閉じている箇所の後に <Exclude> 要素を挿入する (この要素が、手順2に示したように、<Menu> 要素の中に内包されているか確認すること)
- <Exclude> 配下の要素としてフィルタリングのルールである <Filename> を挿入し、対象外にするデスクトップ・エントリを明示的に指定する
ユーザが次回ログインすると、ここで指定したメニュー項目が表示されないはずです。例 2-2 に applications.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> <!-- ... -->