Conkyは、システム情報をデスクトップ上に表示してくれる便利なツールです。が、ディスクの使用量とか何のプロセスが走ってるとかを四六時中見ていても面白くありません(もちろんシステム管理には大事な項目ですけど)。僕みたいな普通のデスクトップユーザとしては、「明日の天気」や「ニュース」や「今日のTV番組」とかの方が気になるわけで…。

ということで、いろいろとカスタマイズしてみました。ConkyにはRSSフィードの情報を取り込む機能があるので、非常に便利です。いっそのこと、デスクトップ全体をRSSリーダーにしてしまうというのもありかと思います。

conky-customCPUの使用率・メモリの使用量、ブログ記事のタイトル、ニュースサイトのタイトル、一週間の天気、TV番組表を表示させているところ。

あれ?なんでこんなにメモリ食ってるんだろう?Conkyが重いわけではありません...orz


Conkyのインストール

Ubuntuでは、ソフトウェア・センターかSynapticパッケージマネージャを使い、「conky」というパッケージを検索してインストールします。
コマンドを使うなら、
$ sudo apt-get install conky
を実行することでインストールできます。

Conkyの実行

Conkyをインストールしたら、端末で「conky」を実行して表示させてみましょう。デフォルトでは、デスクトップ上にシステム情報が下の画像のように表示されます。

conky-origこれは/etc/conky/conky.confという設定ファイルのデフォルトの指定に基づいたものです。

画面がちらつくようであれば、「conky -b」でダブルバッファを利用するといいでしょう。

Conkyの全体設定

設定ファイルは/etc/conky/conky.confですが、カスタマイズの際は、ホームディレクトリに/etc/conky/conky.confをコピーして「.conkyrc」というファイルを作っておきます。具体的な設定項目の詳細はconkyのhelpやmanページを参照していただくとして、全体設定(TEXT行の前の部分)についてはいくつか基本的な項目だけ説明しておきます。

alignment top_left
Conkyの表示位置を指定します(この場合、デスクトップの左上)。

background yes
一度起動したらバックグラウンドでプロセスを維持します。

use_xft yes
xftfont TakaoExGothic:style=Regular:size=9

表示させるフォントを指定します。日本語フォントを指定しないと、日本語が文字化けします。なお、使えるフォントは、「$ fc-list」というコマンドで表示できますので、その表示に即した形で指定します。ここではTakaoExゴシックを選択しました。

own_window yes
own_window_class Conky
own_window_type desktop
own_window_transparent yes

Conkyを半透明なウィンドウ内に表示します。ただし、通常のウィンドウのように移動させることはできず、ウィンドウの外側でクリックすると表示が消えてしまいます。「own_window no」とすれば、表示は消えなくなりますが、アイコンが不可視になってしまったりしますので、Conkyを使うなら「デスクトップにファイルは置かない」と割り切ってしまった方が…。

update_interval 1.0
再描画の間隔を秒数で指定します。テキストをloopコマンドで自動スクロールする際のスピードはここで決まります。

Conkyのレイアウト設定

表示内容の設定は、「TEXT」と書かれた行の後の部分にConky独自のコマンドで記述します。各項目は$hrで下線で区切ることができます。基本的にコマンドは${コマンド オプション}の形で記述します。

設定ファイル内で直接指定してテキストを表示させる場合、Ubuntu 11.04(開発版)では日本語も使えるようになっていました。

CPU使用率の表示
1CPUの場合は次の2行を記述するだけで、使用率(%表示)と高さ5ピクセル、幅300ピクセルのグラフを表示します。colorは文字とグラフの色を指定します。
${color 33ff33}CPU ${cpu} %
${cpubar 5,300}


CPUが複数ある場合は、引数にcpuN(NはCPUの番号)を加えれば、それぞれのデータが表示されます。
${color 33ff33}CPU1 ${cpu cpu1} %
${cpubar cpu1 5,300}
${color 33ff33}CPU2 ${cpu cpu2} %
${cpubar cpu2 5,300}


メモリ使用量の表示
CPUと同様に、memでMiB単位の使用量が表示され、membarで棒グラフが表示されます。
${color ff7777}mem ${mem}
${membar 5,300}


RSSフィードの表示
デフォルトのrssコマンドを利用するには、次のような書式で記述します。
${rss RSSフィードのURL リフレッシュの間隔 オプション}
feed_titleオプションでRSSフィードのタイトルを、また、item_titlesオプションで表示する記事タイトルの行数を指定します。

(例1) asahi.comのニュースヘッドライン
${rss http://rss.asahi.com/f/asahi_newsheadlines 60 feed_title}
${rss http://rss.asahi.com/f/asahi_newsheadlines 60 item_titles 5}

(例2) TV番組表
${rss http://tv.goo.ne.jp/rss/all_008.xml 60 item_titles 10}

ただ、フィードアイテムのインデントができない、広告行を削除するなどの処理が行えないなど不便な点があるので、下記のサイトの「RSSフィードの表示(XSLT)」の項目を参考にカスタマイズした方が便利です。
http://epian-wiki.appspot.com/wiki/Linux/conky

天気予報の表示
最近のバージョンでは、天気予報を表示するweatherという標準の機能もありますが、この設定は難しいので、よりシンプルな前出のサイトの「天気予報の表示(RSS)」の方法を使いました。

.conkyrcのサンプル

以上の設定を反映させたサンプルを貼っておきます。2CPUの設定にしてあります。また、バックグラウンドで起動するようにしてあるので、このサンプルをホームディレクトリに置き、自動起動するアプリで「conky -b」というコマンドを登録しておけば、ログイン時に表示されるはずです。

alignment top_left
background yes
border_width 1
cpu_avg_samples 2
default_color white
default_outline_color white
default_shade_color white
draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no
use_xft yes
xftfont TakaoExGothic:style=Regular:size=9
gap_x 5
gap_y 60
net_avg_samples 2
out_to_console no
out_to_stderr no
extra_newline no
own_window no
own_window_class Conky
own_window_type desktop
own_window_transparent yes
stippled_borders 0
update_interval 0.3
uppercase no
use_spacer none
show_graph_scale no
show_graph_range no

TEXT
${scroll 50 $nodename - $sysname $kernel on $machine }
$hr
${color 33ff33}CPU1 ${cpu cpu1} %
${cpubar cpu1 5,300}
${color 33ff33}CPU2 ${cpu cpu2} %
${cpubar cpu2 5,300}
${color ff7777}mem ${mem}
${membar 5,300}
$hr
${color 9999ff}${rss http://rss.asahi.com/f/asahi_newsheadlines 60 feed_title}
${color 88ff22}${rss http://rss.asahi.com/f/asahi_newsheadlines 60 item_titles 5}
$hr
${color ff7777}TV List:
${color yellow}${rss http://tv.goo.ne.jp/rss/all_008.xml 60 item_titles 10}
$hr

あとは、RSSのURLを好みのものに変えてカスタマイズしてみて下さい。一度試してみれば、今後手放せないツールの1つになるでしょう。