ユーザーが、標準のシステムメニューのほかに、メニュー項目を追加または削除したいだけのことがよくあります。これらの変更をサポートするには、ユーザーの applications.menu ファイル内で <MergeFile> 要素と属性 type="parent" を使用してください。
<MergeFile> 要素は、メニューをユーザーのメニューファイルの内容とマージできるようにします。要素の type 属性を “parent” と指定すると、<MergeFile> 要素の内容は無視されます。マージには、$XDG_CONFIG_DIRS/menus ディレクトリ内の次の applications.menu ファイルが使用されます。
メニューのマージは次のように実行されます。
マージされるメニューファイルのルートの <Menu> 要素の子は、ベースメニューファイルの <MergeFile> 要素に置き換えられます。
名前が同じすべての子 <Menu> 要素は、同じ名前を持つ各 <Menu> 要素のすべての子要素をメニュー要素の最後のオカレンスに追加することで、単一の <Menu> 要素に統合されます。
次の例は、システムメニューファイルを明示的にマージするユーザーメニューファイルを示します。
<!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" "http://www.freedesktop.org/standards/menu-spec/menu-1.0.dtd"> <Menu> <Name>Applications</Name> <MergeFile type="parent">/etc/xdg/menus/applications.menu</MergeFile> <Menu> <Name>Accessibility</Name> <Exclude> <Filename>dasher.desktop</Filename> </Exclude> </Menu> </Menu>