現在のデスクトップ環境では、「 ウィジェット」( ウインドウ・ガジェット, デスクトップ・ガジェットなどとも呼ばれます)と呼ばれるユーティリティウインドウを常駐させて利用することがしばしば行われます。また、ワイドディスプレイが広く使われるようになったため、画面の端にこれらを表示させ(いわゆるサイドバー) 、幅広の画面を有効に使う、といったこともあります。今回はUbuntu上でウィジェットやサイドバーを実現するレシピを紹介します。
GNOMEパネルを画面横に配置する
標準的な環境であっても、GNOMEのパネルの設定を行い、「 向き」を「右」「 左」などにすることで、画面の端に表示させることができます。既存のパネルで[新しいパネル]をクリックして新規にパネルを追加し、そのパネルの[プロパティ]で「向き」を設定することでパネルを画面の端に配置することができます。
図1 パネルの設定
以下は、サイズを60ピクセルにし、いくつかのパネルアイテムを追加した例です。
図2 画面端にパネルを表示させる例
ランチャなどを配置するのであれば、このパネルに「自動的に隠す」設定を行っておくと便利でしょう。
screenletsのインストール
GNOMEパネルによる設定は非常に簡単に行えますが、最近のOS、たとえばWindows Vistaのサイドバーガジェットや、Mac OS XのDashboardウィジェットと比較すると見劣りします。
Ubuntuにおいて、これらに相当する機能を実現したい場合、gDesklets やscreenlets といったソフトウェアを利用することになります。既存のソフトウェア資産が相当数存在しますが、gDeskletsはこの一年間ほど開発が活発ではない状態ですので、今回はscreenletsを紹介します。
screenletsはPythonベースで実装されたアプリケーション群で、デスクトップ上にウインドウを常駐させるタイプのユーティリティです。
インストールは次のように行います。screenletsは、8.04ではUniverseリポジトリに含まれていますが、8.04以前の環境ではリポジトリの設定が必要になります。以下のリポジトリ指定を/etc/apt/sources.listに追加してください。
6.10用のリポジトリ
deb http://ppa.launchpad.net/gilir/ubuntu edgy main universe
7.04用のリポジトリ
deb http://ppa.launchpad.net/gilir/ubuntu feisty main universe
7.10用のリポジトリ
deb http://ppa.launchpad.net/gilir/ubuntu gutsy main universe
さらに次の操作を行い、リポジトリの公開鍵を取り込みます。この作業も8.04では必要ありません。
$ wget http://hendrik.kaju.pri.ee/ubuntu/hendrikkaju.gpg -O- | sudo apt-key add - && sudo apt-get update
リポジトリの準備ができたら(繰り返しになりますが、Universeリポジトリが有効になっていれば8.04では必要ありません) 、以下のコマンド(もしくはSynaptic)でインストールします。
$ sudo apt-get update
$ sudo apt-get install screenlets
インストールが完了すると、[ システム] →[ 設定] →[ Screenlets]という項目が追加され、Screenlets Managerが起動できるようになります。
図3 Screenlets Manager
デスクトップに常駐するscreenlets
screenletsの使い方は2通りあります。一つは、デスクトップに常駐するガジェットとして利用する方法です。Windows Vistaのサイドバーのように、ワイドモニタの場合は時計などを画面の右側に常駐させることで、デスクトップ環境を便利に利用することができるでしょう。
図4 デスクトップに常駐するscreenletsの例
常駐のための設定は次のように行います。
まず、Screenlets Managerの各種screenletsアイテムの中から、常駐させたいアイテムを選択します。選択した状態でウインドウの右側にある、“ Start/Stop” チェックボックス(もしくは[Launch/Add]ボタン)をクリックすると、ウィジェットが画面に表示されるようになります。また、再起動時に自動的に起動されるように、“ Auto start on login” チェックボックスにチェックを入れてください。
このままでは他のウインドウよりも「高い」位置に表示されてしまいますので、ウィジェットの上で右クリックし、[ Window] →[ Keep below]を選択します(デフォルトではKeeb adoveになっているため、他のウインドウよりも高い位置に表示されるようになっています) 。
また、このままでは複数のワークスペースでは表示されませんので、[ Window]の[Sticky]にチェックをいれておいた方がよいでしょう。
図5 ウインドウの設定
以上の設定を行うことで、デスクトップの壁紙と同じ「高さ」でウィジェットが表示されるようになります。
screenletsの追加
前出の図4 の設定では、上から、Clock・Calender・Karamba(zourgue/zourguecpu.theme)・Karamba(zourge/wifi.theme)・Notesが常駐しています。このうち、Karambaは標準ではありません。screenletsはscreenlets.org や、gnome-look.org などからプラグイン形式でダウンロードし、追加インストールすることができます。
インストールは次のように行います。まず、インストールしたいscreenletsをダウンロードします。Karambaの場合はhttp://www.screenlets.org/index.php/Super_Karamba から入手してください。
ダウンロードしたファイルは ~/.screenlets-files などといったディレクトリを作って保存しておくとよいでしょう。
$ mkdir ~/.screenlets-files
$ mv ~/Desktop/75472-Karamba.tar.bz2 ~/.screenlets-files
Screenlets Managerで[Install Screenlets]をクリックして新しいscreenletsを追加します。
上述のように ~/.screenlets-files に保存した場合、ファイル選択ダイアログでは隠しファイル(先頭が.で始まるファイルと、末尾に~がつけられたファイル)は表示されませんので、[ Ctrl]+[h]を押下し、隠しファイルを表示させる必要があるでしょう。
ファイル選択ダイアログを閉じればscreenletsの一つとして登録されているはずです。なお、インストール後もscreenletsファイル(上述の例であれば75472-Karamba.tar.bz2)は消してはいけません。
screenletsをウィジェット・レイヤで使う
デスクトップに常駐させて利用する他に、screenletsはMac OS XのDashboardのように、ホットキーを押下することで表示/非表示を切り替えて利用することができるようになっています(ウィジェット・レイヤと呼ばれます) 。
この機能は3D Desktop(Compiz)を利用して行います。設定のために、下記のコマンド(もしくはSynaptic)でCompizConfig設定マネージャをインストールしてください。
$ sudo apt-get update
$ sudo apt-get install compizconfig-settings-manager
CompizConfig設定マネージャは、[ システム] →[ 設定] →[ Advanced Desktop Effects Settings]に登録されます。これを開き、「 ウィジェット・レイヤ」プラグインを有効にしてください。ウィジェット・レイヤは通常のデスクトップにオーバーレイ表示されるもので、デフォルトでは[F9]キーで呼び出すようになっています(おそらく[F12]に割り当て直すのがよいでしょう) 。
図6 ウィジェット・レイヤの設定
さらにScreenlets Managerで、ウィジェット・レイヤに登録したいscreenletsを起動し、ウィジェットの設定で[Window] →[ Widget]にチェックを入れます(Widgetにした瞬間に画面から消えますが、[ F9]でウィジェット・レイヤを呼び出すことで画面に復帰させることができます) 。
また、Keep Belowにしてしまうと既存のウインドウの陰に隠れてしまいますので、ウィジェット・レイヤで利用する場合、[ Window]設定は、[ Widget][ Stiky][ Keep Adove]としておくことが必要です。
既存のアプリケーションをウィジェットとして扱う
ウィジェット・レイヤに配置するアプリケーションは、screenletsに限りません。通常のアプリケーションであっても配置することが可能です。
例として、端末(gnome-terminal)をウィジェット・レイヤに配置する手順を紹介します(なお、既存のウィジェットの中にはターミナル機能をもったものもありますので、場合によってはそちらを利用した方が便利かもしれません) 。
設定は手順を追って行う必要があります。まず最初に、gnome-terminalの新しいプロファイルを作成しましょう。端末を起動したら、[ 編集] →[ プロファイル]とたどり、[ 新規]ボタンをクリックして新しいプロファイルを作成します。プロファイル名はembeded-terminalとしてください。
このプロファイルで、次の設定を行います。まず「全般」タブで[新しい端末の中にメニューバーをデフォルトで表示する]という設定項目がありますので、これをオフにします。さらに、「 初期タイトル」に「embeded-terminal」 、「 動的にセットするタイトル」には「初期のタイトルと入れ替える」を選択しておきます。また、「 スクロール」タブで、「 スクロールバーの位置」を「無効にする」にし、スクロールバーが表示されないようにしておきましょう。
このときあわせて、端末が画面の縦サイズに合うように、サイズを調整しておいてください。
次に、Compiz側の設定を行います。CompizConfig設定マネージャを開き、「 Windows Decoration」設定を開きます。この設定の「Decoration Windows」項目に、「 !title=embeded-terminal」と入力します。これにより、先ほど設定したプロファイルの端末には、タイトルバーが表示されなくなります。
図7 Decoration Windowsの設定
ここまでの設定を行ったら、あらためて、このウインドウをウィジェットとして登録しましょう。CompizConfig設定マネージャの、ウィジェット・レイヤ設定画面を開きます。この「動作」タブにある[ウィジェット・ウインドウ]設定に、「 title=embeded-terminal」と入力します。入力すると先ほど設定したターミナル画面が消える(ウィジェット・レイヤに収納される)るはずです。[ F9]キーでウィジェットレイヤを呼び出すと、先ほどのターミナルが表示されるでしょう。これで端末がウィジェットとして扱えるようにになりました。
こうして作成した端末を自動起動するためには、「 セッション」を用いて、さきほど指定したembeded-terminalプロファイルを呼び出すようにします。まず、適切なサイズを確認するため、通常の端末で以下のように入力し、サイズや表示位置を指定した状態で端末を起動します。--geometry以降の引数は、順に幅x行+画面上の位置、となっています。筆者の環境では、幅80・42行・181ピクセル左、というのがちょうど良かったため、次のように指定しました。
$ gnome-terminal --window-with-profile=embeded-terminal --geometry=80x42+181
こうして指定した端末は、ウィジェット・レイヤ上で、次のスクリーンショットのように表示されるようになります。
図8 ウィジェット・レイヤで表示される端末
このままではログインしなおすと設定が失われてしまいますので、[ システム] →[ 設定] →[ セッション]で「新規」ボタンを押し、「 gnome-terminal --window-with-profile=embeded-terminal --geometry=80x42+181」などとして登録しておき、ログインごとに自動起動するようにします。