Easy Breezy Beautiful GNOME Shell (in Japanese).

The GNOME Journal記事より、残っている課題の多さからリリースが遅れ、さらに G30 のリリース持ち越しにも影響を与えることになった GNOME シェルの紹介。
「ユーザはデスクトップに気を遣いながら使う」といった旧態依然の概念 (呪縛?) から卒業する時がやっと来たかという感じ。ここでスクリーンショットには実際にベータ版を使いたかったけど、開発版のライブラリをインストールしている自分の環境では Ubuntu 版はどうもうまく動いてくれなかった :$


超かんたんで素敵な GNOME シェル
開発メンバの Marina Zhurakhinskaya が紹介する GNOME シェルの概要とそれが目標としていること
GNOME シェルは新しい GNOME の「顔」と言えます。このプロジェクトの目標は、今のデスクトップよりももっとましな設計思想を持つルック&フィールと、その主要な機能をゼロから作り上げることにあります。そのような機能の中には、アプリケーションやドキュメントなどを見つけ出して起動したり (または開いたり)、いろいろな状態を切り替えたり、あるいはチャットのアプリケーションで受け取ったメッセージや株価の変動などを表示できるようなことが含まれています。それらの多くは、既存の GNOME デスクトップを構成するいろいろなモジュールで別個に実現されている機能ではありますが、GNOME シェルではそれら複数のモジュールを1個の大きな設計思想の中に統合したものになっています。
筆者は GNOME UI ハッキング大会 (Hackfest) に参加して、GNOME シェルの概念を設計するフェーズから作業しているハッカーの1人です。この大会は2008年10月の「GNOME ボストン・サミット」が開催される前の週に開かれました。筆者の作業には、コードの作成やスケジュールの検討、GNOME シェルをテストするための情報や本プロジェクトに参加する際の参考情報を wiki にまとめたり更新するといったことが含まれています。また、筆者はソフトウェア開発チームの一人であり、そして RedHat を紹介するプロジェクトのデザイナの一人でもあります。これらのチームは、GNOME シェルがお手本としている (Clutter や Mutter、そして GObject Introspection といった) プロジェクトのメンバら、そして実際にこのプロジェクトに貢献してくれるコミュニティのメンバらと一緒に積極的に作業を推し進めています。ご存じのように、GNOME シェルのお試し版的なパッケージがいろいろな Linux ディストリビューションからリリースされていますし、きたる GNOME のバージョン3.0ではデフォルトで取り込まれる予定になっています (現在のところリリースは2010年9月)。
GNOME シェルの設計を開始したきっかけは、ユーザのデスクトップで日常的に発生する作業 (Task) に基づいて、自動的に学習し進化していくようなユーザ・インタフェースを提供できるようにしたいということでした。時間を追う毎に、ユーザはデスクトップの使い途を広げていけるようにしなければなりません。例えば、高度な機能を順を追って見つけやすくしたり、パタン化した自分たちの作業や個人的な嗜好をデスクトップに反映させることで、よりユーザ個人に特化したデスクトップを組み立てれるようにする必要があるでしょう。ユーザがこれまで使用してきて習得した情報や経験 (いわゆる User Experience) をまるまる面倒みてやるということ以外にも、先進的なグラフィックス技術を活用し見た目にも豪華な視覚効果でユーザに楽しんでもらおうという目的もあります。さらに、ユーザのために他の作業の優先順位を落として、ユーザの好みに応じたイベントの通知をフィルタリングし、現在の作業 (とそのために利用しているアプリケーション) にフォーカスを当てやすくすることができればよいのではと考えています。
256.jpg
GNOME シェルで、まず最初に目をひく部分は、GNOME バージョン2.x で提供されていた2個のパネルが1個のパネルで置き換えられているということです (これは画面の上端におかれている黒いパネルのことです)。このパネルには、お馴染みの時計や通知スペースといったオブジェクトが配置されていますが、アプリケーションや設定などを含んだGNOMEメニューが1個のボタンで置き換えられているのがお分かりでしょうか (画面の左上端にある「Activities」というボタンで、このボタンをクリックすることで「アクティビティ概要モード」(Activities Overview Mode)に入れます)。これがユーザに「アクティビティ」(現在の作業) の概要を知らせてくれるボタンになります。その隣にあるのが、実際のアクティビティに関連づけられているボタンでアプリケーションの名前が付いています。最終的にはアプリケーション専用のメニューや設定オプションの他に一般的な (アプリケーションを終了したり、新しいウィンドウを開いたりする) オプションなど用意される予定です。GNOME バージョン2.x で提供されていたパネルに配置されていた、いろいろなコントロールが無くなったことで画面全体が広くなりましたし、あまり使用する機会のないオプションや現在の作業で利用しているアプリケーションとは関係のないオブジェクトがなくなってすっきりしました。ユーザがアプリケーションを切り替える方法は、従来の [Alt]+[Tab] キーで表示されるダイアログを改良した方法が採用されています (このダイアログには起動中の全てのアプリケーションが表示されるようになっています)。
255.jpg
GNOME シェルで一番重要で革新的な部分は「アクティビティ概要モード」(Activities Overview Mode) です。これは現在の作業から新しい別の作業へデスクトップ画面全体を利用しながら切り替える操作です (複数個用意されています)。このモードでは、ユーザが開いたウィンドウや起動したお気に入りのアプリケーションをプレビュー表示したり、ユーザのホーム・フォルダやコンピュータに接続されているいろいろなデバイス (「場所」(Places) としてまとめられています) や最近開いたドキュメントなどを、現在の状況に応じて表示してくれます。さらに、ユーザが望めば検索機能とウェブ閲覧機能を統合することもできます。
ユーザはパネルにある「Activities」ボタンをクリックするか、あるいは単にマウス・カーソルを画面の左上端 (「ホット・コーナー」と呼びます) に移動するだけでアクティビティ概要モードに切り替えることができます。このホット・コーナーは素早く簡単にアクティビティ概要モードにアクセスする方法を提供してくれます。
253.jpg
GNOME バージョン2同様に、デスクトップにあるいろいろなウィンドウは「ワークスペース」に結びつけて管理することができますが、GNOME シェルのアクティビティ概要モードではそれ以上に直感的なワークスペースを作成してくれます。ユーザは、現在ワークスペース上にある全てのオブジェクトを簡単に参照することができ、新しいアプリケーションやドキュメントを特定のワークスペースにドラッグして、そのワークスペースで起動したりオープンしたり、あるいは複数のウィンドウをドラッグしながらワークスペースとワークスペースの間を移動させることができます。ユーザはデフォルトで1個のワークスペースを所有しており、必要に応じて追加したり削除することができます。直感的なワークスペースを作成できる機能の以外にも、全てのワークスペース上にあるオブジェクトの一覧を表示する機能を使えば、ユーザが以前と同じワークスペースで作業をしていたかどうかに関係なく、目的のアクティビティがあるワークスペースに1回の操作で切り替えることができます。同様に、[Alt]+[Tab] キーで表示されるダイアログの中でも1回の操作でワークスペースを切り替えることができます (このダイアログの中には全てのワークスペースに配置しているアプリケーションの一覧が表示されます)。
GNOME シェルでは、アプリケーションが持つウィンドウを1つ1つ管理するというよりは、アプリケーション本体 (Firefox だとか Evolution だとか端末だとか) に注目するような設計になっています。アクティビティ概要モードの中で表示されているアプリケーションのアイコンにはアプリケーションを起動するランチャの役目と、アプリケーションが実行中かどうかのステータスを通知する役目があります。この機能は、例えば GNOME バージョン2でパネルの中に配置されていたアプリケーション・ランチャや「ウィンドウの一覧」アプレットに相当します。一覧表示されているアプリケーションの中で、現在実行中のものはそのアプリケーション名の背後からスポットライトで当てたような光が付与されて表示され、もしアプリケーションが複数のウィンドウをオープンしているのであれば複数の丸い光が表示されるようになっています。この一覧にあるアプリケーションのアイコンをクリックすると、未だ起動されていないのであれば新しいアプリケーションのウィンドウがオープンされ、もし既に実行中であれば最後に使用したそのアプリケーションのウィンドウに切り替わります。
255.jpg
タブ付きのウェブ・ブラウザの場合をとりあげみると、タブが開かれているかどうかに応じてそのウィンドウのタイトルや外観が変わります。例えば Firefox という名前とアイコンを強調表示させることで、「アプリケーション (Activity) を切り替えて使う」という一貫した GNOME シェルの目的 (機能) を実現しています。さらにアプリケーションのアイコンを右クリックすると、そのアプリケーションがオープンしている全てのウィンドウのプレビューが表示されるようになっています。これは、GNOME バージョン2のウィンドウの一覧アプレットを使って最小化したウィンドウを元の状態に戻す際にどのウィンドウをクリックすればよいのか迷ってしまうくらい「みすぼらしいインタフェース」と比較して、かなり改善されているのが分かります。新しいウィンドウをオープンする際のオプションは、現在のウィンドウのタイトルを右クリックして表示されるメニューから利用できます。同様に、[Alt]+[Tab] キーで表示されるダイアログではアプリケーションがオープンしている複数のウィンドウをグループ化して表示し、アプリケーションのアイコンを選択するとウィンドウを大きくプレビューしてくれます。
XChat IRC や Empathy、Evolution、電卓、チェスとったアプリケーションの場合、それらのインスタンスが1個だけしか起動されないことが保証されているので、アプリケーションが既に実行中であればユーザが想定していたウィンドウに切り替わるようになっています。それに対し GNOME バージョン2の場合だと、ウィンドウを切り替える前に目的のアプリケーションを起動していたかどうかを知っておく必要があります。間違って同じアプリケーションを2個起動してしまう、例えば電卓を2個立ち上げてしまった場合は不要なアプリケーションのために貴重なデスクトップ領域が狭くなってしまうとか、IRC で2回もログインしてしまうといったつまらない問題が発生する可能性がありました。アプリケーションの起動と切り替えをまとめて管理し、デフォルトの操作では実行中のアプリケーションの複製に切り替えるようにすることで、アプリケーションのアイコンをクリックして作業を進めるという流れにおいて、ユーザに対し妥当な (期待した) 振る舞いを保証することができるようになりました。
GNOME シェルは気軽に試してみることができます。現在の開発ステータスとしては、比較的安定した開発バージョンを気軽に利用できる状態でリリースしており、多くのユーザに使って貰っています。また、いろいろな Linux ディストリビューションでもプレビュー版の GNOME シェル・パッケージが利用できます。
Fedora 12 の場合であれば:

# sudo yum install gnome-shell

してから GNOME メニューから [システム]->[設定]->[デスクトップの効果] を選択して表示されるダイアログで GNOME シェルを選択してみて下さい。
Ubuntu 9.10 の場合であれば:

# sudo apt-get install gnome-shell
# gnome-shell --replace

を実行します。さらに:

# gconftool-2 --set /desktop/gnome/session/required_components/windowmanager --type string gnome-shell

しておけばログインする度に GNOME シェルが利用できるようになります。また:

# gconftool-2 --unset /desktop/gnome/session/required_components/windowmanager

するだけで上で変更した設定を元に戻せます。
パッケージを利用する代わりに、jhbuild というシンプルなビルド・ツールを使って、GNOME シェルのソースをビルドして実行し、定期的に最新の開発版にアップデートすることもできます。
そして、できあがった GNOME シェルを起動する前にその「カンニング・ペーパー」(使い方) を確認しておいて下さい。
現在の開発状況ですが、その作業アイテムには新しいメッセージ通知スペース (Message Tray) とその通知システムの開発だとか、アプリケーションやドキュメントの閲覧機能の改善、GNOME シェルを拡張するプラグインを開発するための開発キットの導入などが追加されました。これらの機能に対する設計や開発に対するヘルプは大歓迎です。プロジェクトのメーリング・リストに登録したり、IRC を使って irc.gnome.org の #gnome-shell チャンネルに合わせるなどして本プロジェクトに是非参加して下さい。あるいは、本プロジェクトの開発ページにある設計書を読んで詳細を理解したり、メッセージの翻訳に協力したり、Bugzilla でバグの報告やバグの修正に貢献するといったタスクもあります。ご自身が貢献したいことやヘルプが必要であれば前述の IRC チャンネルで問い合わせてみて下さい。隠れていろいろやって貰っても構いません!
原文の筆者について
Marina Zhurakhinskaya は RedHat のデスクトップ・チームで、次世代の GNOME シェルの開発を行っているシニア・ソフトウェア・エンジニアの1人です。彼女は主に GNOME デスクトップが直感的にユーザの要望に応答できているかどうかを確認したり、プロジェクトに貢献してくれる人達のためにドキュメントをまとめておく作業を行っています。職場の外では、友人や家族とブラブラして時を過ごしたり、旅行へ行ったり、オーディオブックを聴いたり、Yelp や TripAdvisor や Amazon のレビューを読んでいます。