Ubuntu Linux 7.04 Feisty Fawnのカスタマイズ方法を解説する「おまけ編」(
目次はこちら)。第三話は現在最もホットな分野とも言われる3Dデスクトップの導入方法です。
追記(2007/12/17):このエントリにアクセスしてくる人が多いようなので追記しておきます。3Dデスクトップを利用できる環境で、最新のUbuntu 7.10を利用する場合はこのような手間をかけずとも最初からインストールされています。詳しいことは
こちらのエントリを参照してください。内容的にはほとんど変わりません。
例のごとくうんちくから
3Dデスクトップとは、従来の平面表示だったOSの操作画面を最新のビデオカードの機能を積極的に使うことでより立体風に表示するよう改良したもので、将来的にはより使い易いデスクトップにしていくことを目指しています。Windows Vistaでも、一部のエディションではWindows Aeroという形で導入されていて、CMなどで見た方も多いはずです。Linuxでは
OpenCompositingというサイトで開発されている、Compiz Fusionが今のところ最有力候補となっています。
いかんせん、現在発展中の分野なため、状況が二転三転しています。Compiz Fusionという名前だってつい先日あらわれたばかりです。それでも、Ubuntuでは2007年10月にリリース予定の時期バージョン(Gutsy Gibbon)でCompiz Fusion(もしくはCompiz?)を標準でサポートする予定となっていますし、フォーラムやWiki、ブログではインストール方法がいろいろと紹介されています。ただ、サイトによっては用語や手法が古いものだったりするので注意が必要です。3Dデスクトップはいまだ実験的な機能であり、利用する場合はそれなりの覚悟をもって、最新の情報を検索するよう心がけてください。
とりあえずよく出てくる単語の整理をしておきます。
- X
- X.Orgが開発している、デスクトップ上にウィンドウを表示するためのソフトウェア「X Window System」の略称です。バージョン番号を付加してX11と呼ばれることもあります。
- AIGLX
- OpenGLを活用してウィンドウの描画をより高速にし自由度を高くする、既存のX Window System(X11R7.1)の拡張機能で、X.OrgとFedora Projectが開発しています。Compiz Fusionを使う場合、基本的にX Window System+AIGLX上で動かすことになります。
- Xgl
- OpenGLを活用してウィンドウの描画をより高速にし自由度を高くする、新しいX Window Systemで、Novell社のDavid Ravemanが開発しています。X.Orgが提供するX Window Systemが従来通りのX Window SystemにAIGLX機能を取り込んで行くか、SUSE LinuxのようにXglに置き換わるかは今後のX/AIGLX/Xglの発展次第です。
- ウィンドウマネージャ
- Xはデスクトップ上でウィンドウを管理するソフトウェアと言いましたが、実際にどのような外観をもったウィンドウを表示するかと言ったことはウィンドウマネージャが管理します。X用のウィンドウマネージャは数多くの種類が存在していて、GNOMEの場合Metacity、KDEの場合KWinと呼ばれるものが採用されています(変更することも可能です)。3Dデスクトップを利用するためには、ウィンドウを3D化するウィンドウマネージャであるCompiz Fusionを使うことになります。
- Compiz
- 3Dデスクトップを実現するウィンドウマネージャの一つで、Xglと同じくNovell社のDavid Ravemanが開発しています。もともとXgl用のウィンドウマネージャとして開発されましたが、後にAIGLX上でも使えるようになりました。Ubuntuでも比較的簡単にインストールできます。現在はBerylと統合してCompiz Fusionとなり、Compizの名前はCompiz Fusionの基本プログラムだったり、Compiz Fusionの名前だったりを意味します。
- Beryl
- 3Dデスクトップを実現するウィンドウマネージャの一つです。Compizの私家版としてQuinn Stormによって開発されていたCompiz-quinnstormが、もろもろの理由でCompizから離脱しBerylという名前に変更されました。現在はその理由も解決し、Compizと統合してCompiz Fusionという名前になっています。Ubuntu用の3Dデスクトップとしてよく紹介されるのは、もっぱらBeryl+AIGLXという環境です。
- Compiz Fusion
- 3Dデスクトップを実現するウィンドウマネージャの一つで、今後Linux上の3Dデスクトップにおける標準のウィンドウマネージャになると考えられている存在です。現在は、OpenCompositingというサイトで開発が進められていますが、今後ドメインなどが変わるかもしれません。
ここでは、Compiz Fusion+AIGLXという環境をインストールします。
要求環境
3Dデスクトップはグラフィックカードの性能を最大限活用しますので、それなりに新しいグラフィックカードと、
Ubuntuでその性能が十分発揮できるドライバが必要になります。たとえ最新の高性能なグラフィックカードを用意できても、適当なドライバがない場合は3Dデスクトップを利用できません。
具体的にどのグラフィックカード(グラフィックチップ)で利用できるかというのは、
Ubuntuの日本語Wikiのページが参考になると思います。
- Intel:i810からi965まで
- NVIDIA:NVIDIAのバイナリドライバでサポートされるビデオカード
- ATI:Radeon7000からX850までのカード(xserver-xorg-video-atiパッケージに収録されているオープンソースのドライバで動作するもの)
Intelのドライバパッケージの名前は
xserver-xorg-video-i810になります。ATIのドライバはUbuntuの公式ヘルプの
RadeonDriverのページの中で、3D描画がサポートされているもの("Experimental 3D acceleration"と"Full 3D support")が対象になります。ATIの場合、
バイナリドライバ(パッケージ名は
xorg-driver-fglrx)で動いている場合もあるので注意が必要です。その場合は
AIGLXじゃなくてXglを使わなければいけないかもしれません。NVIDIAのものは持ってないのでよくわかりませんが
この辺が参考になるかもしれません。
現在のドライバの確認方法は簡単です。メニューから
[アプリケーション] - [アクセサリ] - [端末]を開き、以下のコマンドを入力します。
grep -i Driver /etc/X11/xorg.conf
"Driver"と書いてある行が複数表示されると思いますが、Intelなら"i810"、ATIでオープンソースドライバなら"radeon"もしくは"ati"、バイナリドライバなら"fglrx"、NVIDIAなら(たぶん)"nv"か"nvidia"が表示されるでしょう。もし"vesa"と表示されたのなら、3Dデスクトップは諦めてください。"vesa"は汎用のドライバですので、グラフィックカードの独自機能をばりばり使わなくちゃいけない3Dグラフィックスの描画には向いていないんです。
実際にどんなグラフィックカードとして認識されているかは、同じ端末の中で
lspci | grep -i intel
と実行してください(intelの部分はドライバの結果次第でatiとかnvidiaとかに置き換えて)。わけのわからん文字列がいろいろ表示されると思いますが、"
VGA compatible controller"、"
Display controller"と書いてあるあたりにグラフィックデバイスの名前が載っています。例えば自分のノートパソコン(Compaq nx6310/CT)の場合は
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS/940GML (後略)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/940GML (後略)
と表示されました(メーカのスペック一覧を見ると実際のチップセットは"Intel 940GML Express"だそうです)。デスクトップ(Dell Optiplex GX620)の場合は
01:00.0 VGA compatible controller: ATI Technologies Inc RV380 [Radeon X600 (PCIE)]
01:00.1 Display controller: ATI Technologies Inc RV380 [Radeon X600]
でした(メーカのスペック一覧を見ると実際のチップセットは"Radeon X600 Pro"です、たぶんPCI-Express版)。
そのドライバが3D描画に敵しているかは、端末内で次のコマンド
glxinfo | grep direct
を入力し
direct rendering: Yes
と表示されれば大丈夫です。ちなみに、ノートパソコン、デスクトップ共にCompiz Fusionは快適に動作しています。
こちらに簡単な構成を掲載しているので、必要スペックの目安にどうぞ(さすがに自宅のデスクトップでは動きませんでした)。
Compiz Fusionのインストール
インストールは比較的簡単です。ただし、簡単にするためには外部レポジトリの追加が必要で、これはUbuntuを不安定にする要因にもなり得るので本当に導入すべきかどうかは慎重に考えてください。そもそも、Compiz Fusion自体まだまだ発展途上で非常に不安定なので、
場合によってはUbuntuの再インストールも辞さないぐらいの覚悟を持って望みましょう。
最新版をインストールするための方法は、
CompizのWikiや
Ubuntuの英語フォーラムに載っています(ほぼ同じ内容ですが、Wikiの方がまとまっていますし、フォーラムの方が最新の情報が載っているでしょうから両方掲載しておきます)。また、
独学Linuxさんのこのエントリでは同様の内容が日本語で丁寧に解説載されています。これらのリンク先の内容を理解できるなら、この先の話は読む必要ありません。
GITというのはSubversion、CVSのようなバージョン管理システムの一つで、最新版のソースコードはGITを使って取得することができます。そのソースコードをビルドすればインストールできるのですが、少し面倒です。Wikiやフォーラムでの説明に出てくるTreviñoさんはUbuntuでaptコマンドやSynapticを使って簡単にインストールできるようにバイナリ形式で配布してくれている人です。
まずは、以前にインストールしたCompizやBerylを削除します(Feistyの場合は「デスクトップ効果」という名前でCompizが標準でインストールされています)。
[アプリケーション] - [アクセサリ] - [端末]を開いて
sudo apt-get remove compiz-core desktop-effects
と入力します。
ubuntu-desktopも削除されますが、これはデスクトップ環境一式をインストールするために必要なメタパッケージと呼ばれるもので、
削除されること自体は問題ありません。ただし、Ubuntuの新しいバージョン(例えば7.04から7.10)にアップグレードする場合は、事前に
ubuntu-desktopを入れ直すことが強く推奨されています。
次にバイナリダウンロードサイトであるレポジトリを追加します。レポジトリの追加は、伝統的には/etc/apt/source.listというファイルをテキストエディタで編集しますが(CompizのWikiにはそのやり方が載っています)、 Ubuntuの場合は初心者にも簡単に追加できるような方法が提供されています。まず「鍵」をインストールします。「鍵」は、レポジトリからインストール可能なパッケージ一覧を取得する際に、正しいレポジトリかどうかを確認するために必要です。
[アプリケーション] - [アクセサリ] - [端末]を起動し、
wget -q http://download.tuxfamily.org/3v1deb/DD800CD9.gpg -O- | sudo apt-key add -
と入力します(サイトによっては"81836EBF.gpg"も追加するみたいなことが書いてありますが、たぶんしなくて大丈夫)。
OKと表示されればOKです。次に
[システム] - [システム管理] - [ソフトウェア・ソース](パスワードの入力が必要です)から、「サードパーティのソフトウェア」タブを開いてください。左下の「Add」ボタンを押し、
deb http://download.tuxfamily.org/3v1deb feisty eyecandy
と入力し、「ソースを追加」ボタンを押します(サイトによってはdeb-srcの行も追加するよう書いてありますが、ソースファイルを取得したい場合のみ追加してください)。ここで「閉じる」ボタンを押すと「情報の更新が必要」というウィンドウが出ますので、「再読込」ボタンを押してください。これでレポジトリの追加は完了です。上記レポジトリアドレスは2007/07/06の情報ですが、場合によっては変更されているかもしれません。また、右上にオレンジ色のアイコンで、アップデート・マネージャが起動すると思いますので、アップデートしておいてください。もし、起動しない場合は
[システム] - [システム管理] - [アップデート・マネージャ]から、「再読込」ボタンを押してアップデートしてください(特に
libdecoration0のアップデートは重要なようです)。
これでようやく、Compiz Fusionのインストールを開始できます。
[アプリケーション] - [アクセサリ] - [端末]を開いて、以下のコマンドを入力してください(これはGNOME用で、KDE用にはパッケージ名を若干変える必要があるようです)。
sudo apt-get install compiz compiz-gnome compiz-fusion-* \
compizconfig-settings-manager libcompizconfig-backend-gconf
CompizのWikiとUbuntuの英語版フォーラムと独学Linuxさんとで、インストールしているパッケージの内容が若干違いますが、どのインストール方法でも最終的に必要最低限のものはインストールされます。例えば
python-compizconfigは
compizconfig-settings-managerと同時にインストールされます。
独学Linuxさんの方であげられている
emerald(と
emerald-themes)だけは、必要かどうかわかりませんでした(基本的になくても動きます)。この
Emeraldというのは、"window decorator"と呼ばれるもので、簡単に言っちゃうとテーマだと思ってもらえばいいと思います。EmeraldはBerylの標準window decoratorで、Compizのwindow decoratorはgtk-window-decoratorだとかなんとか。で、Compiz Fusionになってからがよくわかんないんですよね。試しにいれちゃってもいいかもしれません。
Compiz Fusionを使ってみる
長い旅路も終え、ようやく実際に体験できるところまでこぎ着けました。実行は簡単。
Alt+F2を押し、「アプリケーションの実行」ウィンドウの中で
compiz --replace
と入力するだけです(端末内で実行する場合は、最後に"&"を追加してください)。問題がなければ、現在開いているウィンドウが全てワークスペース1に集められて、ちょっと時間がたったあと、メニューバーなどが表示されるはずです。試しに
Ctrl+Alt+→を押せば、デスクトップがくるんっと回転するはず。
例えばウィンドウのタイトルバーや枠が表示されないという問題があるようなら、「アプリケーションの実行」ウィンドウの中に入力する単語を
compiz --replace -c emerald &
にすれば解決する場合もあるようです。トラブルシューティングは上で記した、Ubuntuの英語フォーラムで活発にとりおこなわれているので、一通り読んでおくといいかもしれません。
Compiz Fusionを終了させたい場合は
Alt+F2を押し、「アプリケーションの実行」ウィンドウの中で
metacity --replace
と入力します。metacityはGNOMEの標準ウィンドウマネージャです(KDEならkwinかな?)。
この状態だと、ログインするたびに「アプリケーションの実行」ウィンドウを開いて実行する必要があります。自動的に起動したい場合は、
[システム] - [設定] - [セッション]の、「自動起動するプログラム」タブから「新規」ボタンをクリックします。出てきたウィンドウの「名前」に「Compiz Fusion」を「コマンド」に「
compiz --replace」を入力し「OK」ボタンと「閉じる」ボタンを押せば設定完了です。
Ctrl+Alt+BackSpaceでXを再起動しCompiz Fusionが自動で起動することを確認してください。コマンド欄は場合によって
compiz --replace -c emerald &
や
compiz --replace & sleep 2; emerald --replace &
とした方がいいこともあるそうです(&が必要かどうかは未確認)。後者のコマンドを実行するなら、emeraldをインストールしておく必要があるかも。
簡単な使いかただけ。CompizやBerylの紹介でよく出てくる
Superというキーは
Windowsキーのことです。大抵の場合、
Ctrlと
Altの間に挟まれている、四つの波打った四角からなるWindowsマークのついたキーです。
どういうキー操作でどういう効果があらわれるかは、どのプラグインが起動しているかに依存します。プラグインの起動・停止は「CompizConfig Settings Manager」で管理します(
[システム] - [設定] - [CompizConfig Settings Manager])。2007/07/06時点の初期状態では
- General
- Accessibility
- Desktop
- Effects
- ウィンドウのフェード
- ウィンドウ装飾
- 効果を最小限にする
- 揺れるウィンドウ
- Extras
- Image Loading
- Utility
- Dbus
- Regex Matching
- Video Playback
- Window Management
- アプリケーションスイッチゃ
- ウィンドウのサイズ変更
- ウィンドウを移動
- ウィンドウを配置する
- スケール
- Uncategorized
の16個が有効になっているようです(General〜Uncategorizedはカテゴリです)。
初期状態で機能する主だった操作をあげていきます(括弧の中身は担当するプラグイン名)
- Alt+F7もしくはタイトルバーを掴んでウィンドウを移動
- うにょ〜ん(ウィンドウを移動?)
- タイトルバーをダブルクリック他で最大化
- ぽよんっ(揺れるウィンドウ?)
- Ctrl+Alt+マウス左ボタン
- ワークスペースを自由に回転させる(キューブの回転)
- Ctrl+Alt+→
- 現在のワークスペースを右に移動するよう回転(キューブの回転)
- Ctrl+Alt+←
- 現在のワークスペースを左に移動するよう回転(キューブの回転)
- Ctrl+Alt+↓
- ワークスペースの一覧を表示(デスクトップキューブ)
- Super+マウスホイール回転
- 画面の拡大・縮小(デスクトップのズーム)
- Alt+マウスのホイール回転
- ウィンドウの透明度変更(General Options)
- Alt+Tab
- 現在のワークスペースにあるウィンドウをリスト表示しながら切替(アプリケーションスイッチャ)
- 画面右上にカーソルを移動
- ウィンドウ一覧を表示、クリックしたらそのウィンドウに移動。再び画面右上にカーソルを移動することでキャンセル(どのプラグインが担当しているか不明)
最後のアプリケーションスイッチャに関してはバグなのかなんなのか、一つ飛ばしでウィンドウが切り替わってしまいます(つまり2つのウィンドウがある場合いつまでたっても片方しか選べない)。「CompizConfig Settings Manager」ウィンドウで「アプリケーションスイッチャ」を選び、Actionsタブに移動、"General"の「次のウィンドウ」のどちらかを無効化しちゃえばいいのですが……無効化のしかたがわかりません。なんか前の設定をひきずったりなんだりで、今ひとつうまくいかないので、適当に別のキーを割り当てておきました(選択したい項目をダブルクリック→設定ウィンドウでいいはずなんですが)。ということで、
「CompizConfig Settings Manager」で操作方法を変更するのは「今のところ難しい」と思っておいた方がいいでしょう。
プラグインはたくさんありすぎて、どれを使えばいいのかわからないのが正直な感想です。
独学Linuxさんのサイトにはさまざまなプラグインの紹介が載っているので大変参考になります。Berylのプラグインとして紹介されているものも、大半はCompiz Fusionにも同じものが存在しますし、設定項目はほぼそのままです。
自分はとりあえずウィンドウの切替がかっこよくなる"Ring Switcher"を有効にしてみました。
Super+Tabで全ワークスペースのウィンドウを対象にした切替、
Alt+Super+Tabで現在のワークスペースのウィンドウを対象にした切替になります。
気になる人は、百聞は一見にしかず。独学Linuxのvine_userさんが、さまざまなプラグインの動画を
YouTubeにアップロードしてくださっています。
自分が遭遇した問題点
- Totemで動画を再生できない。再生中はずっと黒画面で、ウィンドウを移動させると表示される場合もあるみたい。MPlayerを使えば問題なし。
- ATI Radeonの方は稀にフリーズする。キーボードの入力をまったくうけつけず、Ctrl+Alt+BackSpaceやCtrl+Alt+Delも入力できないので電源ボタンで強制再起動しか復帰手段がない。マウスカーソルの移動のみ可能な場合もあり。