デスクトップメニューで使用する要素
メニューファイルで使用する要素の紹介です。要素はたくさんあるため、カテゴリごとに紹介します。
<Menu>
階層を定義する要素です。ルート要素として、必ずルートにこの要素が必要になります。
階層を定義するため、入れ子にすることができます。
他の要素を包括する箱です。
例
<!-- ルートメニュー --><Menu>
...
<!-- サブメニュー -->
<Menu>
...
<!-- さらにサブメニュー -->
<Menu>
...
</Menu>
</Menu>
<!-- サブメニュー その2 -->
<Menu>
...
</Menu>
</Menu>
<AppDir>
デスクトップエントリーファイルがあるフォルダーを指定する要素です。複数指定することができます。
<Menu>要素内で使用します。
パス指定について
絶対パスと相対パスどちらでも指定できます。相対パスを指定した場合は、メニューファイルがあるパスが基準になります。
要素の適用範囲
この要素で指定したフォルダーは、<Menu>内の<Menu>(孫も含める)にも適用されます。Desktop-File Idについて
この要素で指定されたフォルダー内のデスクトップエントリーファイルには、「Desktop-File Id」という識別子が割り当てられます。この「Desktop-File Id」で各デスクトップエントリーファイルを識別します。
識別子にはフォルダー名とファイル名が利用されます。
Desktop-File Idの例
「/myapp」フォルダー内の構造が以下であるとします。<AppDir>要素を以下のように記述します。
<AppDir>/myapp</AppDir>
この場合各デスクトップエントリーファイルは、以下のような「Desktop-File Id」が割り当てられます。
デスクトップエントリーファイル | Desktop-File Id |
---|---|
app1.desktop | app1.desktop |
myapp2/app2.desktop | myapp2-app2.desktop |
myapp2/myapp3/app3.desktop | myapp2-myapp3-app3.desktop |
識別子は重複できません。
従って、同じ識別子を持つデスクトップエントリーファイルが存在する場合、優先順位の高いデスクトップエントリーファイルが採用されます。
優先順位について
複数の<AppDir>を記述した場合、重複した内容は後から記述された<AppDir>の内容が優先されます。例
<Menu><!-- 絶対パスで指定 -->
<AppDir>/usr/share/myapp</AppDir>
<!-- 相対パスで指定 -->
<AppDir>myapp</AppDir>
...
</Menu>
<DefaultAppDirs>
デフォルトのデスクトップエントリーのパスを指定します。<AppDir>のデフォルト版です。
特徴は<AppDir>と同じです。
デフォルトのデスクトップエントリーのパスは複数あるため、複数の<AppDir>に展開されます。
例
<Menu><DefaultAppDirs />
...
</Menu>
<DirectoryDir>
ディレクトリーエントリーファイルがあるフォルダーを指定する要素です。複数指定することができます。
<Menu>要素内で使用します。
パス指定について
絶対パスと相対パスどちらでも指定できます。相対パスを指定した場合は、メニューファイルがあるパスが基準になります。
要素の適用範囲
この要素で指定したフォルダーは、<Menu>内の<Menu>(孫も含める)にも適用されます。識別子について
この要素で指定されたフォルダー内の各ディレクトリーエントリーファイルには、識別子が割り当てられます。この識別子で各ディレクトリーエントリーファイルを識別します。
識別子には相対パスとファイル名が利用されます。
識別子の例
「/mydir」フォルダー内の構造が以下であるとします。<DirectoryDir>要素を以下のように記述します。
<DirectoryDir>/mydir</DirectoryDir>
この場合各デスクトップエントリーファイルは、以下のような識別子が割り当てられます。
ディレクトリーエントリーファイル | 識別子 |
---|---|
dir1.directory | dir1.directory |
mydir2/dir2.directory | mydir2/dir2.directory |
mydir2/mydir3/dir3.directory | mydir2/mydir3/dir3.directory |
優先順位について
複数の<DirectoryDir>を記述した場合、重複した内容は後から記述された<DirectoryDir>の内容が優先されます。例
<Menu><!-- 絶対パスで指定 -->
<DirectoryDir>/usr/share/mydir</DirectoryDir>
<!-- 相対パスで指定 -->
<DirectoryDir>mydir</DirectoryDir>
...
</Menu>
<DefaultDirectoryDirs>
デフォルトのディレクトリーエントリーのパスを指定します。<DirectoryDir>のデフォルト版です。
特徴は<DirectoryDir>と同じです。
デフォルトのディレクトリーエントリーのパスは複数あるため、複数の<DirectoryDir>に展開されます。
例
<Menu><DefaultDirectoryDirs />
...
</Menu>
<LegacyDir>
旧メニュー階層があるフォルダーを指定する要素です。複数指定することができます。
<Menu>要素内で使用します。
以前は、フォルダーの階層構造がそのままメニューの階層構造に使われていました。
現在はメニューファイルで階層構造を指定する仕様になっています。
<LegacyDir>は以前の仕様で作成されたフォルダー構造を、デスクトップメニューに変換・制御するための要素です。
現状使われていないので、省略します。
似たような要素に<KDELegacyDirs>がありますが、こちらも省略します。