# デスクトップテクノロジ

## アプリケーションとファイルタイプのレジストリ

アプリケーションを使いやすくするために、ユーザがアプリケーションを検索し、それらを実行できるようにする必要があります。GNOMEデスクトップのユーザはアプリケーションメニューからアプリケーションを探してアプリケーションを実行するか、ファイルマネージャからファイルを探してアプリケーションを実行します。GNOMEデスクトップではアプリケーションをインストールするときにアプリケーションをメニューに追加したりファイルタイプを追加することができます。これらのメカニズムは freedesktop.org で策定されているので、同じデータにより他のデスクトップ環境でもアプリケーションは機能します。

アプリケーションをメニューに追加するには単にデスクトップのエントリファイルに必要な情報を提供するだけです。デスクトップのエントリファイルはシンプルなkey-value構文を使用し、値それぞれに翻訳されたテキストをオプションで提供することもできます。デスクトップのエントリファイルには以下の情報が含まれます：

- 名前とコメント。アプリケーションがサポートしている場合は多くの言語に翻訳されたテキストが設定されます

- 固定リストから選ばれたカテゴリのリスト。アプリケーションをアプリケーションメニューのに配置するために使用します

- アイコン。アイコンファイルのフルパスか、単にシステムのアイコンテーマのアイコン名を指定します

- アプリケーションがサポートするファイルタイプのリスト

- アプリケーションを実行するコマンド

プリケーションがシステムでまだ知られていない独自のファイルタイプを処理する場合は、ファイルタイプのレジストリにこれらの型を追加する必要があります。すべてのファイルタイプはMIMEタイプによりアクセスされます。たとえば、Ogg Vorbisオーディオ・ファイルは `application/ogg` というMIMEタイプを持っています。 MIMEタイプを追加するには、ファイルタイプの説明をMIME情報についてのXMLファイルを使用して提供する必要があります。これらのファイルにはファイルタイプ名の翻訳や、どのようなファイル名が一致するか、ファイルの内容を検査して決定するのか等、どのような方法でファイルタイプを決定するかについての情報を提供します。

アプリケーションについての詳細は The Desktop Entry Specification と The Desktop Menu Specification を参照してください。ファイルタイプについての詳細は The Shared MIME Info Specification を参照してください。

## パネルアプレット

GNOMEデスクトップは柔軟で強力なパネルを提供しています。パネルにはアプレットと呼ばれる小さなアプリケーションをユーザが追加することができます。パネルアプレットは迅速なアクセスと有用な情報と機能を提供します。たとえばGNOMEデスクトップに付属しているパネルアプレットでは、ウィンドウやワークスペースを移動できたり、現在の気象情報を表示したり、ネットワークの状況を表示したり、さまざまな機能を提供しています。

アプリケーションの機能を強化するためにパネルアプレットを提供したり、単純なスタンドアロンのパネルアプレットを提供することもできます。単に迅速に通知を表示する必要がある場合は代わりに、これもユーザーのパネルに表示される通知スペースの使用を検討すべきです。パネルアプレットはアイコンによる通知以上の機能を提供する必要がある場合に使用すべきです。

パネル・アプレットはパネルと通信するためにBonoboを使用する独立したプロセスです。Bonoboによりアプレットはパネルと統合され、一貫したユーザ経験を提供することができます。たとえばすべてのパネル・アプレットのコンテキストメニューにはアプレットを削除・移動。ロックするための項目が標準で含まれています。それぞれのパネル・アプレットはコンテキストメニューにそれ以外のアクションのための他の項目を追加することができます。たとえば お天気 GNOME パネル・アプレットはコンテキストメニューに詳細の表示や表示を更新するための項目をもっています。

Bonoboは時代遅れでありD-Busおよび他の技術に置き換えられていることに注意してください。

パネル・アプレットについての詳細は Panel Applet Library を参照してください。

## 通知スペース(Notification Area)

ランチャやパネルアプレットに加えてGNOMEパネルは、アプリケーションがイベントをユーザに通知するために使用できる通知スペースを備えています。通知スペースは、新しい電子メールをユーザに知らせたり、使用可能なアップデートや会議、その他のさまざまなイベントを通知するのに使用できます。

通知は、アプリケーションがユーザのパネルの通知スペースに配置できるシンプルなアイコンです。ユーザがアイコンをクリックすることによりアプリケーションは、それ以上の処理を行うこともできます。現在のところ、通知システムは、実験的なエッグライブラリによって実装されていますが、GTK +の次のバージョンでは通知アイコンをサポートする予定です。

通知スペースは freedesktop.org で仕様が決められているので、あなたの通知アイコンは他のデスクトップ環境でも表示されます。通知スペースの詳細は The System Tray Protocol Specification を参照してください。

## ファイルマネージャ

GNOMEには直感的で強力なファイルマネージャである Nautilus が同梱されています。GVFSテクノロジを使用することにより Nautilus はリモートシステムのフォルダをローカルのファイルシステムのフォルダと同様に表示できます。それによりユーザは単一の統一されたインタフェースでファイルにアクセスすることができます。

Nautilus は、ユーザのファイルについてより多くの情報を提供するために機能拡張が可能なプラグイン・インタフェースを提供します。これによりそれぞれのアプリケーションがさまざまなタイプを別々に管理することを排除して、豊かで首尾一貫したユーザ経験を提供することができます。

Nautilusプラグインはいくつかの方法でファイルマネージャの機能を拡張することができます。プラグインはファイルのプロパティ・ダイアログで追加の情報を追加できるので、ユーザにユーザがファイルについて知るべきすべてのことを提供することができます。たとえばGNOMEに同梱されているオーディオやビデオの追加情報を表示するプラグインでは、使用されているCODECやビデオのサイズ、CDから取得したアーティストやアルバム名などが表示されます。

プラグインはリストビューに列を追加でき、自動的にファイルのエンブレムを表示します。これにより適切な情報をユーザが一目で判別できるようになります。たとえば Nautilus のプラグインはバージョン管理システムからのチェックアウトに関する情報を表示することができます。ユーザはファイルマネージャからファイルが最新なのか、チェックアウトしたファイルに変更が加えられているかを直接見ることができます。

Nautilus では開発者がファイルやフォルダのコンテキストメニューに項目の追加もできます。コンテキストメニューの項目は表示するべきファイルがどのファイルタイプに属するのかにより決定されるので、コンテキストメニューには選択されたファイルに関連するアクションだけが表示されます。たとえばGNOMEの 書庫マネージャ はコンテキストメニューに"ここに展開する"という項目を追加します。コンテキストメニューの拡張により異なるタイプ別に一般的な操作を簡単に行うことが可能になります。

柔軟なプラグインアーキテクチャに加えて、 Nautilus はサムネイル表示が提供されているファイルにたいして任意の種類のサムネイルを表示することもできます。サムネイルにはファイルのプレビューが表示され、ユーザーが必要なファイルを見つける手助けとなります。 GNOMEは多くののイメージやムービーファイルのサムネイルを自動的に作成します。またアプリケーションはアプリケーション固有のファイルにたいするサムネイルを作成するために追加でサムネイル作成プログラムをインストールすることができます。サムネイルの管理は freedesktop.org により完全な仕様が決定されているため、任意のサムネイル作成プログラムをすべてのアプリケーションで使用することができます。

## ウィンドウマネージャ

ウィンドウマネージャはウィンドウの周囲の境界線やタイトルバーの描画受け持つ特別なプログラムです。ウィンドウにたいする移動やサイズ変更、最小化、ワークスペース勘の移動などのすべての操作にたいしてウィンドウマネージャが処理を受け持ちます。ウィンドウはアプリケーション開発者がほとんど処理することなくウィンドウマネージャにより一貫して管理されます。アプリケーションがウィンドウにたいして影響を与える必要がある場合は、GTK+の関数を使用してウィンドウに対するヒントを提供します。

しかし外部プログラムが直接ウィンドウマネージャと相互作用したり、動作をコントロールすることもできます。GNOMEのlibwnckライブラリを使用すれば、アプリケーションはすべてのウィンドウにたいして位置や情報を取得したり、ウィンドウマネージャに指示を出すことによりそれらのウィンドウにたいしてさまざまなアクションを実行することができます。

libwnckライブラリは、GNOMEのウィンドウマネージャに固有のものではありません。ライブラリのすべての機能は外部のウィンドウマネージャへのヒントかEWMHを通じて行われます。EWMHは複数のデスクトップで統一されたウィンドウマネージャとの対話を提供するために freedesktop.org と共同で開発されました。

libwnckを通じてウィンドウマネージャと相互作用することにより、ワークスペースを表示したりユーザパネルのウィンドウをアプレットで一覧したりする簡単な処理や、同様に複雑なアプリケーション、たとえば新しいウィンドウにたいしてウィンドウの特定のプロパティに基づき自動的にアクションを実行することにウィンドウマネージャを使用することができます。

## コントロールセンター

GNOMEデスクトップはすべてのデスクトップ全体の設定とシステム管理のために単一のメニューを提供します。設定やシステム管理のダイアログはこのメニューに配置されることにより簡単にアクセスすることができます。アプリケーションを追加するときにカテゴリを `Setting` としておけば設定メニューにダイアログを登録することができます。

もしあなたが管理者がデスクトップシステムを設定できるダイアログを提供する場合は、そのダイアログをシステム管理メニューに追加するべきです。複数のアプリケーションに影響を及ぼす設定をユーザに許すようなダイアログを提供する場合は、そのダイアログを設定メニューに追加するべきです。アプリケーションに固有の設定については、これらのグローバルなメニューに追加するべきではありません。

## パスワードの保存

GNOMEはユーザのパスワードやその他の機密データを格納するために、モダンで安全なキーリング・マネージャを提供します。アプリケーションはパスワードの取得と保存にキーリング・マネージャのライブラリを使用できます。また、ユーザはパスワードを管理するのにGNOMEのアプリケーションである パスワードと暗号鍵(Seahorse) を使用することができます。

キーリング・マネージャはアイテムをいくつか含むことができる任意の個数のキーリングを提供します。キーリングのアイテムにはデータやパスワードが保存されます。それぞれのキーリングは個別にロックされ、ユーザはロックを解除するためのスワードを提供しなければなりません。キーリングのロックを解除すると、ユーザはキーリングに含まれるすべてのアイテムにアクセスできます。

キーリング・マネージャは、キーリングのアイテムにたいするアクセス制御リストを提供し、そのアイテムによりアクセスが許可されるアプリケーションを制御します。もし未知のアプリケーションがキーリングのアイテムにアクセスしようとした場合、キーリング・マネージャはユーザにプロンプトを表示してそのアプリケーションのアクセスを許可するか、拒否するかを尋ねます。これにより悪意のあるプログラムや質の悪いプログラムがユーザの機密データにアクセスすることを防ぐことができます。

ファイルシステムに保存されたキーリングのデータはAESブロック暗号化方式で暗号化されアイテムの属性にはハッシュ関数にはSHA1が使用されます。属性のハッシュを使用することにより、キーリング・マネージャはキーリングのロックを解除することなくアプリケーションに要求されたアイテムを見つけることができます。キーリングはアイテムが見つかったときにロックが解除され、アイテムにアクセスすることができるようになります。

キーリング・マネージャはセッションのためのキーリングも提供します。セッション・キーリングのアイテムはディスクには決して保存されず、ユーザがセッションを終了すると失われます。セッション・キーリングは現在のセッションだけで使用するパスワードに使用されます。

もしリモートサーバにアクセスする場合にGIOを使用している場合は、キーリング・マネージャによる恩恵を自動的に享受することができます。GVFSがユーザの認証を必要とする場合、認証に使用するパスワードを既定のキーリングかセッションのキーリングに保存するかのオプションを選択することができます。

アプリケーションがユーザのパスワードや機密データを保存する必要がある場合はキーリング・マネージャを使用するべきです。キーリング・マネージャを使用することによりユーザのデータを安全かつ確実に保つことができ、よりよいユーザ経験を提供することができます。

詳細については、 gnome-keyring Reference Manual と libseahorse Reference Manual のAPIリファレンスを参照してください。

## セッションマネージメント

GNOMEはセッション間でアプリケーションを円滑に実行するためのツールを提供します。ユーザがログアウトしたときに実行されていたアプリケーションは、ユーザが再びログインしたときに復元されます。この機能を提供するためにはアプリケーションがセッションマネージャと接続して、ユーザがログアウトしたときに状態を保存しなければなりません。

このセクションは GnomeClient と Libgnomeui が時代遅れになるのに伴い陳腐化していることに注意してください。新しく記述するコードでは EggSMClient を代わりに使用するべきです。EggSMClientを直接GTK+に統合することは作業は現在進行中です。APIとABIによる安定性はGnomeClientの機能がGNOME2の提供期間を通じてサポートされることを保証します。

GNOMEはGNOMEユーザインタフェース・ライブラリによりシンプルなセッションマネージメントのAPIを提供します。GNOMEセッションマネージャについての詳細は GNOME UI Library Reference Manual の GnomeClient を参照してください。

## アドレス帳とカレンダー

Evolutionデータサーバにより、GNOMEはすべてのアプリケーションが情報を保存・取得することができる単一のアドレス帳とカレンダーを提供します。Evolutionデータサーバを使うということはユーザがそれぞれのアプリケーションの連絡先を分割管理する必要がなくなり、それらのカレンダーに手動でイベントをコピーする必要がなくなることを意味します。

人々が友人や同僚と対話するのにコンピュータを使用する機会はますます増加しています。電子メール、インスタント・メッセンジャー、テレフォニー、そしてビデオ会議はいずれも他の人と対話するのに使用されるアプリケーションです。これらのアプリケーションはユーザのためにしばしば連絡先一覧を提供します。Evolutionデータサーバを使用すればアプリケーションは連絡先の情報を１ヶ所に保存することができ、すべてのアプリケーションがユーザの連絡先と関連するデータを参照することができます。

Evolutionデータサーバを使用すればアプリケーションがユーザのカレンダーに予定を保存・取得することもできます。たとえば、パネルに表示されている時計をクリックするとシンプルなカレンダーが表示されます。もしユーザが予定をスケジュールしていた場合は、そのカレンダーに予定が表示されます。これによりユーザはカレンダーのためのアプリケーションを開くことなく簡単に予約を確認することができます。

アドレス帳についての詳細は Evolution API Reference: libebook を参照してください。カレンダーについての詳細は Evolution API Reference: libecal を参照してください。

## ユーザビリティ

GNOMEデスクトップは使いやすさを基にデザインされ、シンプルで一貫したユーザ経験を提供します。人々はコンピュータを使用して仕事(遊び?)をするのに複雑なユーザインタフェースのパズルを解読する必要はありません。アプリケーションをデザインする場合、どのようにしてユーザが一般的なユーザインタフェースの使い方を認識するか、アプリケーションに固有の要素についてどれだけ早く習熟することができるか、そしてユーザがそれらを習熟した後にどれだけ効果的に作業を行うことができるか、について考慮すべきです。

GNOMEはあなたが魅力的で使いやすいアプリケーションを作成するための包括的なヒューマンインターフェースのガイドラインを提供しますユーザビリティの問題について単一の解を提供できるガイドラインはありませんが、GNOMEヒューマンインタフェース・ガイドラインは簡単で使いやすいアプリケーションを作成するのを簡単にしてくれます。詳細については GNOME Human Interface Guidelines を参照してください。

## ドキュメンテーション

すべてのアプリケーションは、ユーザがアプリケーションを理解し、問題解決を手助けするためのドキュメントを提供するべきです。うまくデザインされたアプリケーションでは使用する前にドキュメントを読む必要がないとしても、ドキュメントはユーザにとって、とくに複雑なアプリケーションの場合は重要なツールなのです。

GNOMEはユーザにドキュメントを提供するための統一されたフレームワークを提供します。それにより業界標準であるDocBook形式のドキュメントをユーザに提供することができます。DocBook形式を使用することは、あなたが書式の詳細に悩む必要がないことを意味します。その代わりに、あなたのドキュメントは他のシステムドキュメントと一貫性のある規則で自動的にフォーマットされます。

GNOMEのヘルプ・ビューアである Yelp により、ドキュメントの表示・印刷、システムのすべてのドキュメントの一覧とすべてのドキュメントにたいするテキストの検索が可能になります。GNOMEのヘルプシステムにより、あなたはこれらの機能を無料で手にすることができます。

アプリケーションのドキュメントの記述についての詳細は GNOME Handbook of Writing Software Documentation、DocBook: The Definitive Guide、 GNOME Documentation Style Guide を参照してください。