グループとエントリーの拡張
既に紹介したグループやエントリー以外に独自のグループやエントリーを定義し、アプリから使用することができます。ここでは独自のグループやエントリーを、拡張グループ・拡張エントリーと表現します。
拡張グループや拡張エントリーはアプリが解釈を行うため、拡張エントリーを既定のグループで使用することができますし、既定のエントリーを拡張グループで使用することもできます。
拡張グループやエントリーを定義する場合は、他のアプリが混同しないよう、決められたフォーマットに従っている必要があります。
拡張グループヘッダーのフォーマット
拡張グループを定義する際、既定のグループ同様にグループヘッダを記述します。以下のフォーマットに従います。
[X-プロダクト名 グループ名]
プロダクト名
プロダクト名は任意の名称を指定できます。アプリ名や機能を表現する名称を指定するとよいでしょう。
グループ名
既定のグループ同様にグループ名を指定します。拡張エントリーのキーのフォーマット
拡張エントリーを定義する際、以下のフォーマットに従います。X-プロダクト名-キー名
プロダクト名
プロダクト名は任意の名称を指定できます。アプリ名や機能を表現する名称を指定するとよいでしょう。
キー名
既定のエントリー同様にキー名を指定します。例
[Desktop Entry]・・・
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=MyApp
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=3.4.1
X-Ubuntu-Gettext-Domain=MyApp
[X-MyApp MyGroup]
X-MyApp-Version=1.2
X-MyApp-Revision=2
X-MyApp-Locale=ja_JP
X-GNOME-Gettext-Domainエントリー
「X-GNOME-Gettext-Domain」エントリーを利用すると、ローカライズ文字列を設定できるエントリーの文字列を翻訳ドメイン(Translation domain)から取得するようになります。対象 | 全て |
グループ | Desktop Entry |
必須 | 任意 |
値の種類 | 文字列(string) |
値
翻訳ドメイン(Translation domain)名を指定します。各エントリーには、POファイルで定義したmsgidを指定します。
例
デスクトップエントリー
[Desktop Entry]Name=gedit
GenericName=Text Editor
Comment=Edit text files
X-Ubuntu-Gettext-Domain=gedit
・・・
ja.po
#: ../data/gedit.desktop.in.in.h:1msgid "gedit"
msgstr "gedit"
#: ../data/gedit.desktop.in.in.h:2 ../gedit/gedit-print-job.c:791
msgid "Text Editor"
msgstr "テキストエディター"
#: ../data/gedit.desktop.in.in.h:3
msgid "Edit text files"
msgstr "テキスト形式のファイルを編集します"
結果
以下の記述をしたのと同等の意味になります。[Desktop Entry]
Name[ja]=gedit
GenericName[ja]=テキストエディター
Comment[ja]=テキスト形式のファイルを編集します
・・・
X-Ubuntu-Gettext-Domainエントリー
「X-GNOME-Gettext-Domain」エントリーと機能は同じです。Ubuntuの場合、「X-GNOME-Gettext-Domain」エントリーを先に参照し、「X-GNOME-Gettext-Domain」エントリーがなければ「X-Ubuntu-Gettext-Domain」エントリーを参照します。
「X-GNOME-Gettext-Domain」エントリーの利用をおすすめします。
X-GNOME-FullNameエントリー
「X-GNOME-FullName」エントリーは「Name」エントリーと「GenericName」エントリーを整理するために導入されたエントリーです。現状「Name」エントリーと「GenericName」エントリーは、アプリ(デスクトップエントリー)によって記述が重複したり、ルールに従っていないものがあります。
この状況を修正するためGNOMEでは、「X-GNOME-FullName」エントリーを導入しました。
「Name」エントリーと「GenericName」エントリーを修正するにあたり、他のデスクトップ環境への影響や互換性のため、このエントリーを導入しています。
Ubuntuでは「X-GNOME-FullName」エントリーが記述されていると、「Name」エントリーより優先して利用されます。
対象 | アプリケーションのデスクトップエントリー |
グループ | Desktop Entry |
必須 | 任意 |
値の種類 | ローカライズ文字列(localestrings) |
各エントリーのルール
1.重複の削除
「Name」と「GenericName」が同じ内容なら、「GenericName」を削除します。2.部分的な重複
「Name」にアプリ名以外の表現が含まれている場合や、「GenericName」の表現が「Name」に含まれている場合、「X-GNOME-FullName」を記述します。3.重複がない場合
「X-GNOME-FullName」は記述しません。例1
「Name」エントリーに「GenericName」エントリーの一部が重複している例です。[Desktop Entry]
Name=gedit Text Editor
GenericName=Text Editor
以下のように「X-GNOME-FullName」エントリーを追加し、「Name」エントリーをアプリ名に修正します。
[Desktop Entry]
Name=gedit
GenericName=Text Editor
X-GNOME-FullName=gedit Text Editor
例2
「Name」エントリーと「GenericName」エントリーが重複している例です。[Desktop Entry]
Name=Music Player
GenericName=Music Player
以下のように「GenericName」エントリーを削除します。
[Desktop Entry]
Name=Music Player
注意
一部GNOME標準アプリではこのルールに従わないなどの例外もあり、すべてのアプリ(デスクトップエントリー)に対してこのルールが適用されているわけではありません。デスクトップ環境による違い
Ubuntu 13.04とUbuntu GNOME 13.04で表示上の違いを比較してみます。アプリは「GParted」です。
「GParted」のデスクトップエントリーは以下のようになっています。
[Desktop Entry]
Name=GParted
GenericName=Partition Editor
X-GNOME-FullName=GParted Partition Editor
GenericName[ja]=パーティション・エディター
X-GNOME-FullName[ja]=GParted パーティション編集ツール
Ubuntu 13.04
「X-GNOME-FullName」エントリーの記述が表示されます。Ubuntu GNOME 13.04
「Name」エントリーの記述が表示されます。X-GIO-NoFuseエントリー
「X-GIO-NoFuse」エントリーは、「Exec」エントリーの「フィールドコード」である「%u」及び「%U」のパス表現を制御するエントリーです。対象 | アプリケーションのデスクトップエントリー |
グループ | Desktop Entry |
必須 | 任意 |
値の種類 | 論理値(boolean) |
値
値 | 設定例 |
---|---|
true | 常にURL形式でパスを表現します。 |
false | ローカルのファイルは通常のパスで表現されます。 既定値です。 |
例
例として「/home/ubuntu/ドキュメント/HTML ドキュメント.html」を指定しています。X-GIO-NoFuse=true
file:///home/ubuntu/%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88/HTML%20%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88.htmlURLデコードすると、以下のようになります。
file:///home/ubuntu/ドキュメント/HTML ドキュメント.html
X-GIO-NoFuse=false
/home/ubuntu/ドキュメント/HTML ドキュメント.html廃止・廃止予定のグループ及びエントリー
廃止もしくは廃止予定のエントリーです。中にはUbuntu 13.04でも機能するエントリーがありますが、これらのエントリーの使用はなるべく避けてください。
グループ
- Shortcut Group
エントリー
- X-Ayatana-Appmenu-Show-Stub
- X-Ayatana-Desktop-Shortcuts
- X-Ubuntu-Gettext-Domain
- X-GNOME-DocPath