dzen:コマンドラインから現れるポップアップウィンドウ

 最近、dzenという便利で興味深いツールに出会った。開発者のRob Manea氏はこれを「汎用のメッセージング/通知プログラム」と説明している。基本的に、dzenは即時オンオフが可能なポップアップ式のターミナルウィンドウであり、コマンドを問わず多数のオプションが用意されている。

 主要ディストリビューションのほとんどのリポジトリには、まだdzenの姿はない。今のところArch、Gentoo、Sourcemage、CRUX Linux用のパッケージが存在し、Debian不安定版については承認待ちの状態にある。その他のディストリビューションを使っている場合は、自力でインストールすればよい。プロジェクトのホームページから最新リリースのtarballを取得して展開したら、サブディレクトリ内のREADMEファイルを参照してインストールの要件とすべての構築手順を確認してほしい。

 Ubuntu Feisty Fawnでのインストールは、簡単かつ手短に済んだ。READMEの手順に従って、dzen2-0.5.0というサブディレクトリ内から「sudo make clean install」を実行すると、ツールがコンパイルされて実行形式のプログラムが/usr/local/binに置かれる。このディレクトリからであれば、すぐに利用できる。別のディレクトリからプログラムを実行しようとするディストリビューションの場合は、READMEを参照してconfig.mkの編集方法を確認してもらいたい。

 dzenのオプションをいろいろ試しているうちに、ターミナルウィンドウの配置、サイズや色の設定の方法はすぐにわかった。-xおよび-yオプションは、ご想像のとおり、デスクトップ上でのターミナルウィンドウ左上隅の位置をそれぞれx、y座標(ピクセル単位)で指定するものだ。たとえば、「dzen2 -x 200 -y 200」を実行すると、鮮やかなオレンジ色(デフォルト)のわずか1行分の高さしかないウィンドウが1つ現れる。ただし、ウィンドウ幅は、指定したx座標からデスクトップ画面右端まである。

 -wオプションを追加してその後ろにピクセル数を指定すれば、ウィンドウの幅を制限できる。また、行数の指定には、-lオプションを用いる。これらをまとめると、次のようなコマンドになる。

dzen2 -x 200 -y 200 -w 600 -l 10

 -lオプションを追加しても最初は何の変化もないように見えたが、dzen2ウィンドウ上にカーソルを動かすとすぐに10行分の高さになった。ただし、ウィンドウの外にカーソルを動かすと、ちょうど最初に何も表示されていない状態でウィンドウが現れたときのように、再び1行分の高さに戻る。また、ウィンドウにフォーカスがあるときに右クリックを行うと、ウィンドウが閉じられdzenは終了する。

 次に、dzenの小ウィンドウに月ごとのカレンダーを20秒だけ表示してから消滅するという、READMEファイルに記されているサンプルコマンドの1つをいじってみた。サンプルのコマンドは次のようなものだ。

(echo Header; cal; sleep 20) | dzen2 -l 8

 これを少し編集してウィンドウの位置と色を変えたものをエイリアスとして追加するために、以下の行を~/.bashrcファイルに追記した。

alias day='(echo Today; cal; sleep 20) | dzen2 -x 200 -y 200 -w 200 -bg blue -l 8'

dzen-1.png

 これで、dayというコマンドを実行すると、所望のウィンドウがデスクトップ上に20秒間だけ表示される。実行時の画面を次に示しておく。

 もっと気の利いたものにするためにREADMEのサンプルを見直したところ、今度は、remindプログラムのメモ情報を表示する月表示のカレンダが見つかった。remindはUbuntuのデフォルトインストール環境には入っていないが、apt-getで簡単にインストールできる。もっと便利なものにするために、これをシェルスクリプトとして設定し、Metaキーとpキーを同時に押せばいつでも実行されるようにしてみよう。

 元のサンプルコマンドは、次のようになっている。

(echo Monthly Schedule; remind -c1 -m) | dzen2 -l 52 -w 410 -p -fn lime -bg '#e0e8ea' -fg black -x 635

 ここから、行数を26、ウィンドウ幅を610に変えてフォント指定の引数を削除した。また、スクリプト名をschedule.shとし、「chmod +x schedule.sh」を実行して実行可能なファイルにした。きわめて簡単な作業だが、念のためにスクリプトの中身を示しておく。

#!/bin/sh
(echo Monthly Schedule; remind -c1 -m) | dzen2 -l 26 -w 610 -p -bg '#e0e8ea' -fg black -x 635

 新しいショートカットキーの設定は、GNOMEで簡単に行える。gconf-editorを起動したら、「Apps」→「Metacity」→「keybinding_commands」→「global_keybindings」→「run_command_1」を順に選択し、バインディング対象には「p」を使用する。こうしておくと、Metaキー(Superキーともいう)と指定キーを押せば、いつでもcommand_1が実行される。続いて、global_keybindingsのところをkeybinding_commandsにして、実行対象のコマンドとして“schedule.sh”を追加する。必要な作業は以上だ。

dzen-2.png

 これで、Meta-pキーを押すと、今月の自分のスケジュールがポップアップ表示されるようになる。26行にはカレンダー全体が収まりきらないため、ウィンドウは、上矢印と下矢印の各キーを使ったスクロール表示になる。また、マウスの右クリックで閉じるまで、このカレンダーはデスクトップ上に表示され続ける。

 少なくとも私のなかではその実用性よりも面白さが勝っているdzenだが、非常に興味深いツールなので開発状況を見守りながら、その機能の新しい利用法がないか今後もチェックしていきたい。

Linux.com 原文