ページ

2009年3月15日日曜日

Desktop Entry Specification

PXMLとlibpndを使用したcpasjuste氏のPandora menu(最小メニュー)ですが、どういう仕組みなのか考えてみました。いつも通り素人の戯れ言なので確証はありません。あしからず。

PXMLとlibpndを担当しているskeezix氏のブログを読むと以下のような記述がありました。
Insert your SD into the pandora, a daemon wakes up and detects the .pnd files in its searchpath, and it generates the .desktop files for the launcher in a configured location. (It could also be made as a module for matchbox or other window managers, but our current thoughts are to spit out .desktop files since they're pretty standard and should work simply.) you pop out the SD, the daemon wakes up and rescans, and removes the .desktop files in question. (It should also handle if you just rm the pnd file from within the pandora usage, etc.)
ここで気になったのが「the .desktop files」。freedesktop.orgで定義した汎用性のあるファイル形式らしいです。GNOMEやザウルスにも採用されている方式らしいです。実はザウルスは使ったことがなかったり……。少し古い記事ですがSourceForge.JP Magazineに解説がありました。こちらも引用。多分これの事だと思うのですが、間違っているかも。
Desktop Entry Specification

Desktop Entry Specificationでは、アプリケーションと、その起動方法、アプリケーションの説明、アイコンデータといった情報をまとめたファイルである「Desktop Entries」とよばれるファイルの形式を定めている。GNOMEやKDEのランチャは、この Desktop Entriesを読みこんでメニューにアイコンや説明を表示し、ユーザが選択すると、そこに記載された手順によってアプリケーションを起動する。ファイルの拡張子は .desktop とすることになっている。また「ディレクトリ」を表現するファイルの名前としては「.directory」が使われる。

GNOMEの標準的なファイルマネージャであるNautilusは、このデスクトップファイルを見つけると、それを元にアプリケーションを起動したり、他のフォルダを開いたりするアイコンを表示する。また、デスクトップに置かれるホームへのリンクや「ここからスタート」なども、このDesktop Entriesの形式のファイルとして~/.gnome-desktop(あるいは~/Desktop)に置かれている。

Desktop Entriesは単純なテキストファイルであり、表示に使用する名前、その各国語での表現、アイコンの画像データのファイル名、アプリケーションの起動コマンドライン、などが key=value の形式で列挙される。文字コードは、以前は各国語ごとのエンコーディングがまざった状態になっていたが、最近ではUTF-8に統一されている。
試しにUbuntuのデスクトップ設定ファイルをテキストエディタで開いてみました。ちなみにFirefoxです。
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Name[ca]=Navegador web Firefox
Name[cs]=Firefox Webový prohlížeč
Name[es]=Navegador web Firefox
Name[fa]=مرورگر اینترنتی Firefox
Name[fi]=Firefox-selain
Name[fr]=Navigateur Web Firefox
Name[hu]=Firefox webböngésző
Name[it]=Firefox Browser Web
Name[ja]=Firefox ウェブ・ブラウザ
Name[ko]=Firefox 웹 브라우저
Name[nb]=Firefox Nettleser
Name[nl]=Firefox webbrowser
Name[nn]=Firefox Nettlesar
Name[no]=Firefox Nettleser
Name[pl]=Przeglądarka WWW Firefox
Name[pt]=Firefox Navegador Web
Name[pt_BR]=Navegador Web Firefox
Name[sk]=Internetový prehliadač Firefox
Name[sv]=Webbläsaren Firefox
Comment=Browse the World Wide Web
Comment[ca]=Navegueu per el web
Comment[cs]=Prohlížení stránek World Wide Webu
Comment[de]=Im Internet surfen
Comment[es]=Navegue por la web
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
Comment[fi]=Selaa Internetin WWW-sivuja
Comment[fr]=Navigue sur Internet
Comment[hu]=A világháló böngészése
Comment[it]=Esplora il web
Comment[ja]=ウェブを閲覧します
Comment[ko]=웹을 돌아 다닙니다
Comment[nb]=Surf på nettet
Comment[nl]=Verken het internet
Comment[nn]=Surf på nettet
Comment[no]=Surf på nettet
Comment[pl]=Przeglądanie stron WWW
Comment[pt]=Navegue na Internet
Comment[pt_BR]=Navegue na Internet
Comment[sk]=Prehliadanie internetu
Comment[sv]=Surfa på webben
GenericName=Web Browser
GenericName[ca]=Navegador web
GenericName[cs]=Webový prohlížeč
GenericName[es]=Navegador web
GenericName[fa]=مرورگر اینترنتی
GenericName[fi]=WWW-selain
GenericName[fr]=Navigateur Web
GenericName[hu]=Webböngésző
GenericName[it]=Browser Web
GenericName[ja]=ウェブ・ブラウザ
GenericName[ko]=웹 브라우저
GenericName[nb]=Nettleser
GenericName[nl]=Webbrowser
GenericName[nn]=Nettlesar
GenericName[no]=Nettleser
GenericName[pl]=Przeglądarka WWW
GenericName[pt]=Navegador Web
GenericName[pt_BR]=Navegador Web
GenericName[sk]=Internetový prehliadač
GenericName[sv]=Webbläsare
Exec=firefox %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox-3.0
Categories=Application;Network;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/vnd.mozilla.xul+xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;
StartupWMClass=Firefox
StartupNotify=true
PXMLに書かれた内容をlibpndが読み込んで汎用性のある「the .desktop files」を生成してくれるって事ですかね。汎用性のある形式だから仮にcpasjuste氏のPandora Menuが気に入らない、あるいは頓挫した場合でも「the .desktop files」を読み込めるランチャー、あるいはメニューアプリを用意できれば、何の問題もなく代替出来るって感じでしょうか。勿論、単純なランチャーだけじゃなくて、Matchboxの代替としてGnome環境等でも、「the .desktop files」をサポートしていれば無問題で使用出来るって事なのかな。

そうだとしたら、なかなか良く出来てますね。PXMLとlibpnd。「the .desktop files」及び、PXMLは多言語環境も考慮されてますし、ランチャー側の実装にもよりますが、メニュー周りは簡単に日本語化出来そうです。あくまでメニューまでですが。アプリ本体(エミュやゲーム等)は、製作者側の対応次第ですね。

#外部リンク
GNOMEだけじゃない標準 - SourceForge.JP Magazine : オープンソースの話題満載
http://sourceforge.jp/magazine/03/07/31/147209

desktop ファイルについて - あさあさの公開メモ
http://asaasa.tk/wiki/?Zaurus%2FDevelop%2F.desktop

PXML specification - Pandora Wiki
http://www.pandorawiki.org/PXML_specification

0 件のコメント:

コメントを投稿