conkyを複数同時起動してみる


追記
良い方法を教えていただいたので、この方法はお勧めしません。
詳しくはコメント欄で。


conkyをいくつも使って設定ファイル(~/.conkyrc)を書いてみた。
上の画像では4つに分けていて、一番上の幅いっぱいのCPUグラフ、その下の左右二つにわかれた各種表示、そして大きなデジタル時計を表示させてみた。
設定ファイルを分けるとレイアウトが自由になって、さらにupdate_interval(データの更新間隔)を変えられるのがいい。


update_intervalについては、以前は文字による情報がコロコロと変わらないように1秒くらいに設定していたが、それだとCPUのグラフが遅すぎてリアルタイム性に欠けていた。
これがずっと気になっていたが、CPUグラフの設定ファイルだけupdate_intervalを短くするといい感じになった。


方法はかなりエレガンスに欠けるものだが、一応晒してみる。
もっといい方法があるなら教えていただきたい。



まず、異なる設定ファイルを .conkyrc 以外の名前で用意。
例えば2つのファイルに分けるなら、~/ に .conkyrc-1 .conkyrc-2 といった具合。
これに独立して設定を書いてみる。
次に、~/.conky というファイルを用意して、以下のように書いてみる。

#!/bin/sh

sleep 60
mv .conkyrc-1 .conkyrc
/usr/bin/conky &
sleep 1
mv .conkyrc .conkyrc-1
mv .conkyrc-2 .conkyrc
/usr/bin/conky &
sleep 1
mv .conkyrc .conkyrc-2

これに実行権を与えて、
$ ./.conky
で起動できる。


「sleep 60」は60秒間待つコマンドで、compizの環境で自動起動するときに必要。compizを使っていなければ書かなくていい。
詳しくは↓
Ubuntu 8.04+Compiz Fusion環境でConkyを設定する - 旧ID:itiriのブログ


それとは別に、conkyを起動した直後に「sleep 1」としているが、これが無いとなぜかうまく設定ファイルを読まないようだ。
原因は、起動直後にすぐファイル名を変更してしまうとconkyが読み込む前にファイルが無くなってしまうからだと思う。
ちなみに「mv」を2回使うのではなく「cp」コマンドを使って .conky-1 などを .conkyrc に上書きして読むようにしてみたが、なぜかうまくいかないようだった。


一応、4つに分けた設定ファイルも以下に晒しておく。


.conkyrc-1 (画面上の幅いっぱいのCPUグラフ)

use_xft yes
xftfont M+2VM+IPAG circle:size=12
default_color 000000
update_interval 0.1
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
minimum_size 1720
alignment top_right
gap_x -10
gap_y 10

TEXT
${cpugraph ff4000 d4d010}


.conkyrc-2 (Swapなど、右の表示)

use_xft yes
xftfont M+2VM+IPAG circle:size=12
default_color ffffff
default_shade_color 031111
update_interval 1
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
minimum_size 300
alignment top_right
gap_x 15
gap_y 60

TEXT
Swap ${alignr}$swap / $swapmax ($swapperc%)
${swapbar}

Highest MEM $alignr CPU% MEM%
${top_mem name 1}$alignr${top_mem cpu 1} ${top_mem mem 1}
${top_mem name 2}$alignr${top_mem cpu 2} ${top_mem mem 2}
${top_mem name 3}$alignr${top_mem cpu 3} ${top_mem mem 3}

${font Bitstream Vera Sans:style=Bold:pixelsize=18}Fan${font} ${hr 1}
CPU ${alignr}${hwmon fan 1}rpm
Chip ${alignr}${hwmon fan 2}rpm
Case ${alignr}${hwmon fan 3}rpm


.conkyrc-3 (RAMなど、左の表示)

use_xft yes
xftfont M+2VM+IPAG circle:size=12
default_color ffffff
default_shade_color 031111
update_interval 1
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
minimum_size 300
alignment top_right
gap_x 340
gap_y 60

TEXT
RAM ${alignr}$mem / $memmax ($memperc%)
${membar 4}

Highest CPU $alignr CPU% MEM%
${top name 1}$alignr${top cpu 1} ${top mem 1}
${top name 2}$alignr${top cpu 2} ${top mem 2}
${top name 3}$alignr${top cpu 3} ${top mem 3}

${font Bitstream Vera Sans:style=Bold:pixelsize=18}Temperature${font} ${hr 1}
CPU ${alignr}${hwmon temp 1}℃
M/B ${alignr}${hwmon temp 2}℃
HDD ${alignr}${execpi 60 nc localhost 7634 | cut -d'|' -f4}.0℃

追記(2009.11.20)
よく見るとRAMのバーだけ細くなっているので、もしこのコードを使うなら修正したほうがいい。
${membar 4} を ${membar} にする。
コピペをベースにしてるからこうなるんだなぁ。


.conkyrc-4 (大きなワイドのデジタル時計)

use_xft yes
xftfont M+2VM+IPAG circle:size=12
default_color ffffff
default_shade_color 031111
update_interval 1
own_window yes
own_window_type override
own_window_transparent yes
double_buffer yes
alignment bottom_right
gap_x 0
gap_y 0

TEXT
${font Andale Mono:size=300}${time %H:%M}${font}


conky自体の説明は以前少し書いたので参考までに。
[id:tettou77-2:20090427]