Oracle® Solaris 11.2 デスクトップ管理者ガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

ユーザーメニューとシステムメニューのマージ

ユーザーが、標準のシステムメニューのほかに、メニュー項目を追加または削除したいだけのことがよくあります。これらの変更をサポートするには、ユーザーの applications.menu ファイル内で <MergeFile> 要素と属性 type="parent" を使用してください。

<MergeFile> 要素は、メニューをユーザーのメニューファイルの内容とマージできるようにします。要素の type 属性を “parent” と指定すると、<MergeFile> 要素の内容は無視されます。マージには、$XDG_CONFIG_DIRS/menus ディレクトリ内の次の applications.menu ファイルが使用されます。


注 - 以前の仕様には type 属性が含まれていなかったため、<MergeFile> 要素の内容としてはマージされるメニューファイルの場所のみが必要です。その結果、type="parent" の場合でも、<MergeFile> の内容で場所が指定されることがあります。

    メニューのマージは次のように実行されます。

  1. マージされるメニューファイルのルートの <Menu> 要素の子は、ベースメニューファイルの <MergeFile> 要素に置き換えられます。


    注 - 「マージされるメニューファイル」とは、$XDG_CONFIG_DIRS/menus ディレクトリ内の次の applications.menu を指します。
  2. 名前が同じすべての子 <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>