Plasmaプロジェクトは2005年に、KDEのインターフェースを新しく生まれ変わらせるためにKDEプロジェクトによって開始された。当時のKDEのインターフェースが1984年に実現されていたインターフェースと「本質的に同じままだ」と考えたためだ。Plasmaプロジェクトでは、KDE 3のインターフェースを改良するとともに、次期KDE 4リリースのコードベースを改良することにも努めてきた。主な目標には、KickerデスクトップパネルとKDesktopルートウィンドウとSuperKarambaウィジェットマネージャを単一のPlasmaインターフェースに融合することや、ウィジェットを作成しやすくするためのフレームワークを提供すること、視覚的な面でも操作性の面でも一貫した共通のコンポーネントを作成すること、また、デスクトップをより有機的なワークフロー環境にすることなどがあった。
そして今月、PlasmaプロジェクトはPlasmaのZUI(Zooming User Interface)の強化に取り組んでいる。PlasmaのZUIの目標は、デスクトップの目的を静的なアイコン群を表示するためのファイルマネージャ的な使い方から、動的でコンテキストを持つプロジェクト管理ツールへとシフトさせることだ。ZUIは、「仮想的なデスクトップ(作業机)」というメタファーについての再検討と考えることができるだろう。
Seigo氏によると「ズームアウトすれば、ユーザは自分が作成したすべての(オブジェクトの)グループを概観することができる。そのようなグループは、ユーザが現在作業中のプロジェクトを反映したものであったり、ファイルをまとめたものであったりする。ズームアウトしているときにそのようなグループのどれかの上でマウスをかざすかクリックすると、ユーザはグループの内容のプレビュー/スナップショットを見ることができる。またグループをズームインすると、物理画面上でフルサイズで表示することができる。つまりユーザに対して視覚的なコンテキストを与えると同時に、デスクトップ層での高い柔軟性を提供することができるということだ。このようなズームインターフェースについては、Jef Raskin氏が数年前に亡くなるまでに行なった、将来性のある研究が数多く残されている」とのことだ。
またPlasmaチームは、「スタートバー」や「タスクバー」としても知られる、柔軟なアプレットコンテナの「パネル」を実装する予定なので、Kickerは使用されなくなるだろう。さらに、「Plasmoid」と呼ばれるPlasmaデスクトップ用のウィジェットを開発者たちがJavaScript、Ruby、Pythonで作成できるようにするためのKrossスクリプト言語用フレームワークも実装される予定だ。なおPlasmaチームも、KMenuの代替物をはじめとして新しいデフォルトのPlasmoidを今後も作成し続ける予定だ。Plasmaを必須コンポーネントとして搭載したKDE 4がリリースされる予定の10月までは、急ピッチで開発が続くと期待できるだろう。
Plasmaについてはかなりの量の作業が完了していて、(少なくともアルファテスター向けとしては)使用可能な状態になっている。しかしまだリリースまでには膨大な量のコーディングを行なう必要がある。Seigo氏によると6月20日の時点で、コマンド実行用ダイアログのKRunnerについての作業をはじめとして12,120行のコードがコミットされているとのことだ。なおSeigo氏は、この数週間の開発速度は日に約240行であると誇らしげに言った。さらに、現在はPlasma内のライブラリになっているSuperKarambaに対しても「大規模な」改良が加えられたとのことだ。
KDE 4での変更点についてより詳しくは、最初のアルファ版のアナウンスを見てみると良いだろう。なおSeigo氏によると、Plasmaコードの中でも新しい部分の一部には、Qt 4.3で導入された機能に依存しているものもあるとのことだ。Qt 4.3はKDEの構築に使用されているツールキットQtの最新版であり、5月30日にリリースされたばかりだ。
Seigo氏は現在、同氏の他に8名のコア開発者がいるチームと、外部の不特定多数のウィジェット/プラグイン開発者たちとともに作業に取り組んでいる。これまでの成果には、大きく分けると以下のような計画や開発がある。
- 表示用キャンバス:キャンバスは、すべてのPlasmoidの基本コンポーネントであり、GUI構築用の標準化されたフレームワークを開発者に提供する。キャンバスには、標準的なウィジェット(と言っても、Plasmoidのことではなく、ボタンやリストボックスなど、古い意味でのウィジェット)がすべて完備され、「任意の変換」(アニメーション/効果クラスのPhaseを使った変換などの画像効果)を行なう機能もある。なおキャンバスは、Seigo氏の表現によると「非常に高機能で感動的」なQt 4のQGraphicsViewクラスから構築されている。
- データ供給システム:Plasmoidには、ユーザのために特定のデータについての視覚化を行なうものが多い。例えばマシンのハードウェア仕様や、ストレージデバイスの空き容量や、特定のウェブサイトから取得した映画のレビューなどがある。データ供給システムは、ある特定のデータにアクセスするすべてのPlasmoidのための、DataEngineと呼ばれる共通のバックエンドの作成を可能にするためのものだ。現在のSuperKarambaのコミュニティでは、非常に異なるスタイルやテーマを持つウィジェットが少しだけ異なるコードを使用して同じデータにアクセスしていることが多々あるが、データ供給システムによって開発者コミュニティの開発効率が向上することが期待される。
- サポートライブラリ:サポートライブラリは、プラグインの読み込み/管理、SVG(Scalable Vector Graphics)要素の取り扱い、Plasmaのテーマなどを実装する、つまらないが、なくてはならないライブラリだ。より魅力的な見掛けとズーム可能なインターフェースのためにSVGを広範に使用していることは、Plasma、ひいてはKDE 4デスクトップ全体の際立った特徴だ。
その他にも、ユーザがクリック一つでPlasmoidをダウンロード/アップロード/管理できるようにするためのPlasmagikパッケージ管理システムがlibplasmaにマージされた。また、Facebook/画像閲覧/オンライン辞書/ハードウェア通知/天気予報のためのDataEngineとサンプルのPlasmoidがすでに作成されている。さらにPlasmaチームは最近、PlasmoidごとのDataEngineの設定を行なうためのシステムも実装した。
