KDEのPlasmaが熱い

 KDEデスクトップを生まれ変わらせようとしているPlasmaプロジェクトだが、この数週間の間にプロジェクトのウェブサイトを見た人は、情報が更新されていないため、Plasmaチームの活動がこの数ヵ月間、停滞しているかのような印象を受けたかもしれない。しかしKDEのSVNレポジトリやメーリングリストを見てみたり、開発リーダーのAaron Seigo氏のブログを読んだりすれば、エキサイティングなことが起っていることが分かるはずだ。

 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の設定を行なうためのシステムも実装した。

 現時点でもPlasmaでは、KDE 3における同等のものと比較してリソースの消費が少なくなっている。その理由は部分的にはKDE 4の基礎部分の一般的な性能改良と新しいバージョンのQtの効率向上とによるものだが、Plasma開発のリソースフレンドリ主義の効果が現われたものでもある。例えばデータ供給システムでは、機能が重複しているPlasmoidを複数実行する際に(SuperKarambaユーザにはありがちな状況だ)、リソースを共同利用することができる。さらには、画像効果の行なわれるキャンバスは共通のコンポーネントになっているので、ユーザが各ホストマシンごとの処理能力や目的に合うように視覚効果の複雑さのレベルを設定することも可能になる。

 Plasmoidの開発者がPlasmaの機能を利用するのに使うAPIはすでにいくつか存在し、DataEngineやウィジェットを作成するサードパーティの開発者によってすでに使用されている。そのようなAPIは現在も拡充され続けていて、Seigo氏とPlasmaチームによってコンスタントに保守されている。Seigo氏は、7月始め頃までにはすべてのAPIが用意されるだろうと見込んでいる。

 KDEのPlasmaの他にも、デスクトップウィジェットを表示するためのシステムには様々なものがあるが、Plasmaとそれらとの相互運用については、Seigo氏はほどほどにしか興味を示さなかった。Seigo氏によると、HTML/CSSのMac OS X DashboardウィジェットをPlasmaで読み込むことができるようになれば良いと考えてはいるものの、KDE 4のリリースまでに実現されることはないとのことだ。またOperaウィジェットについても同様の扱いになる可能性が高い。GNOMEやMicrosoftやYahoo! などによる各ウィジェットシステムについてはSeigo氏は言及しなかった。なお当然のことながら、現在のSuperKarambaウィジェットは、KDE 4のPlasmaでも利用可能になるだろう。

 他のウィジェットシステムをサポートすることによって、大量の既製のウィジェットが利用可能になるのにも関わらず、Seigo氏が他のウィジェットシステムのサポートに対してそっけない態度であるのには、ちゃんとした理由がある。Plasmoidには、拡大縮小を可能にし、また見掛けの良さにも貢献するSVGベースのテーマや、Plasmoidの開発をより簡単にするはずのDataEngineシステムなど、他の多くのウィジェットシステムよりも優れた点がある。Plasmoid開発者の作業を軽減し、Plasmoidの機能性を高めるのに役立つ、ツールや言語が利用可能になっているため、Seigo氏は「活気溢れるKDEコミュニティがPlasma以外のほとんどのウィジェットと同等のものを作り上げるまで、そう時間はかからない」ことを期待しているとのことだ。

 Plasmaフレームワークを利用すれば、DataEngineもPlasmoidも短時間で開発することができる。Seigo氏によると、辞書用のDataEngineの作成には81行のコード、また、より複雑な天気予報用のDataEngineの作成でも373行のコードしか必要ないという。しかもどちらのDataEngineも、複数のPlasmoidにおいて再使用される可能性が高い。なお現在の辞書のPlasmoidのコードはたったの177行で実現されている。

 Plasmaの作業は、KDE 4の最初のリリースの後も継続される。Seigo氏はすでに2007年後期から2008年内に行なうべき作業をいくつか明らかにしており、その中には大掛かりな機能の追加も複数含まれている。Seigo氏は、Plasmoid内で写実的なオブジェクトの動きを実現する本格的な物理エンジンの実装や、ネットワーク化された協働作業のための、DataEngineシステムに似たフレームワークの実装などを計画している。その他にも、今後急速に増える開発者たちのためのPlasmoid Design Studioについてや、メディアセンターの統合という大きな計画がある。もちろん、より多くのDataEngineやPlasmoidの作成、性能の最適化、KDEアプリケーションとの統合など、通常レベルの目標の達成に向けての作業も進められる予定だ。

 そのような目標によって、最終的に興味深い結果がもたらされる可能性がある。例えばSeigo氏が「ライブオブジェクト」と呼ぶ、アプリケーションに自由に取り付けたり取り外したりすることができるオブジェクトがある。Seigo氏はその例として、Kopeteの通信相手一覧からコンタクトの相手をドラッグするということを挙げた。その場合Plasmaは、SVGのXML内に埋め込まれたDBUSの呼び出し経由でKopeteと通信して、コンタクトの相手のアイコンやIMの状態をデスクトップ上に、あるいはZUI層にSVG画像として表示する。そしてユーザはコンタクト相手のアイコンをクリックして会話を始めるということになるだろうという。

 Plasma開発の最新情報を追い掛けるには、Aaron Seigo氏のブログを読むのが最も良い方法だ。Plasmaの進化についてより詳しく知るためには、YouTubeのデモビデオがSeigo氏のお勧めだ。Plasmaの最新機能を自ら試したいなら、今後リリースされるアルファ版を入手しよう。またPlasma開発に参加したいという場合には、Get Involved with KDE(KDEに参加する)ページやPlasma Techbaseページを見ると良いだろう。

Linux.com 原文