Ubuntu Weekly Recipe

第391回 ConkyでデスクトップPCの情報をモニタリングする

この記事を読むのに必要な時間:およそ 7 分

Conkyのカスタマイズ

Conkyの個人的な設定は~/.conkyrcに記述します。Conkyは,起動している状態で設定ファイルが変更されると自動的に設定を読み直してくれます注4ので,お気に入りの設定を作るためにも,Conkyを起動させた状態で試行錯誤してみるとよいでしょう。

注4)
ただしウィンドウのサイズだけは自動的には変更されません。minimum_sizeなどを変更した場合はkillallなどでConkyのプロセスを再起動してみてください。

基本的な情報を表示する

まずはConkyの基本的な設定と,PCの情報を表示してみましょう。~/.conkyrcに図の内容を記述し,Conkyを起動してみてください。画像のように,デスクトップの右上にPC名やカーネルバージョン,CPUやメモリの使用率が表示されたことだと思います。設定の意味を簡単に説明しましょう。

alignment top_right
gap_x 0
gap_y 0

double_buffer yes
background yes

default_color white
default_outline_color white
default_shade_color gray

draw_borders no
draw_graph_borders yes
draw_outline no
draw_shades no

use_xft yes
xftfont TakaoGothic:style=Regular:size=12

override_utf8_locale yes
out_to_console no
out_to_stderr no
extra_newline no

update_interval 1.0
uppercase no

show_graph_scale yes
show_graph_range no

own_window yes
own_window_class Conky
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager,sticky

cpu_avg_samples 4

TEXT
$nodename
$sysname $kernel $machine
$hr
Uptime: $uptime
Load average: $loadavg
Processes: $processes Running: $running_processes
CPU Frequency: ${freq_g}GHz
CPU Usage: ${cpu cpu0}%
            ${cpugraph cpu0 -l}
RAM Usage: $mem/$memmax
            $membar
Swap Usage: $swap/$swapmax
            $swapbar

図4 基本的な設定をした状態のConky

図4 基本的な設定をした状態のConky

「alignment」はConkyのウィンドウを表示する位置です。Unityのデスクトップではインジケーターが画面右上に集まっていますので,Conkyも右上(top_right)に表示するように設定しました。

「gap_x」⁠gap_y」は,alignmentで指定した場所から実際にウィンドウを表示する位置まで,何ピクセルの間隔を空けるかを指定します。筆者はデスクトップ右端にConkyを表示したいので,ギャップは0を指定しています。

「double_buffer」はダブルバッファを使うか否かを設定します。ダブルバッファを使うことでウィンドウのちらつきを抑えられますので,yesにしておきましょう。

「background」は,Conkyをバックグラウンドで起動することを意味します。当然yesにしておきましょう。

「default_color」⁠default_outline_color」⁠default_shade_color」は読んで字の如く,文字,アウトライン,シェードのデフォルトの色を設定します。お好みでred,green,yellow,blue,magenta,cyan,black,whiteの中から選択するか,16進数でRGB値を指定してください。

「draw_borders」⁠draw_graph_borders」⁠draw_outline」⁠draw_shades」もそのまんまで,ボーダー,グラフのボーダー,アウトライン,シェードを描画するかどうかを設定します。これも色と合わせてお好みで設定してみてください。

「use_xft」はXftを使用するという設定です。これによってフォントにアンチエイリアスがかかるようになります。

「xftfont」は使用するフォントを指定します。筆者はTakaoGothicの12ポイントを指定してみました。こちらもインストールされているフォントからお好みで設定してください。フォントの一覧はfc-listコマンドで得られます。

「override_utf8_locale」は,UTF-8の使用を強制します。なおこの設定を行うにはXftが必要になります。

「out_to_console」⁠out_to_stderr」は,標準出力,標準エラー出力への出力を行うかどうかの設定です。GUIで利用しているぶんにはnoに設定しておけばよいでしょう。今回はConkyを単独で利用していますが,Conkyはその出力をパイプで別のプログラムに渡すといった使い方もできます注5⁠。⁠extra_newline」は標準出力への出力時に,追加の改行文字を出力するか否かです。パイプで他のプログラムと連携する際に役立ちますが,とりあえずnoにしておいて構いません。

注5)
例えばウィンドウマネージャーにxmonadを利用し,Dzenの中にConkyの出力を表示する,といった用途が定番です。

「update_interval」はConkyが情報をアップデートするインターバルを秒で指定します。

「uppercase」は,Conky内に表示されるアルファベットを,強制的に大文字にするかどうかを指定します。通常はnoでよいでしょう。

「show_graph_scale」はグラフに記録された最大値を,⁠show_graph_range」はそのグラフが表示しているレンジ(期間)を,それぞれ表示するかどうかの設定です。

「own_window」ではじまる一連の設定は,Conkyのウィンドウに関するものです。詳しくは後述しますが,ここでは通常のタイプの自前のウィンドウを持ち,タイトルバーなどのウィンドウの装飾を表示せず,常に最背面に表示し,タスクバー(UnityではLauncher)にアイコンを表示せず,ウィンドウをすべてのワークスペースに表示する,といった設定をしています。この設定によってConkyは,いわゆるデスクトップウィジェットのように見えるようになります。

「cpu_avg_samples」はCPUの利用率を表示する際の計算に使用されます。CPUのコア数を指定しておきましょう。。筆者は4コアのノートPCでこの原稿を書いているため,4を指定しています。

ここまでがConkyの基本的な設定です。次の「TEXT」以降には,実際にConkyのウィンドウ内に表示する項目を記述していきます。Conkyには様々なオブジェクトが用意されており,⁠$オブジェクト名」と記述すると,その値が表示されます。中にはパラメータやオプションによって表示する内容が変化するオブジェクトも存在します。オブジェクトにパラメータを与える場合は,全体を${}でくくります。シェルスクリプトの変数の書き方とよく似ていますので,特に違和感なく記述できるでしょう。文字やスペース,改行などは入力したものがそのまま表示されます注6⁠。

注6)
ただしインデントを入れたい場合はスペースを記入するより,$offsetを使用したほうがよいでしょう。

「$nodename」は現在のホスト名に置き換えられます。⁠$sysname」⁠$kernel」⁠$machine」は,それぞれシステム名(例:Linux⁠⁠,カーネルのバージョン,アーキテクチャ(例:x86_64)を表します。⁠$hr」は水平の区切り線を表示します。つまりこれで,ウィンドウの上部にPCの基本的な情報を表示しているわけです。

「$uptime」はシステムが起動してからの経過時間を表します。⁠$loadavg」はロードアベレージです。つまりこれでuptimeコマンドを実行したのとほぼ同じ情報が得られます。

「$running_processes」は,現在の実行中のプロセス数です。⁠$processes」「$running_processes」の値に,sleep中のプロセス数を足したものになります。

「$freq_g」はCPUの周波数をGHzで表します注7⁠。⁠$cpu」はCPUの利用率を,⁠$cpugraph」はCPU利用率の変化をグラフで表示します。これらはそれぞれパラメータを取ることができ,⁠cpu0」を指定した場合は全CPUのトータルを,⁠cpu1」⁠cpu2」などを指定すると,個別のCPUの情報を表示できます。さらにパラメータによってグラフに色をつけ,グラデーション表示させることもできます。また「-l」はグラフの縦軸を対数スケールで表すオプションです。詳しくはリファレンス注8を参照してください。

注7)
MHzで表す$freqという変数も存在します。
注8)
http://conky.sourceforge.net/variables.html

「$mem」⁠$memmax」は現在のメモリ使用量と,搭載メモリ量を表します。⁠$membar」はメモリ利用率を棒グラフで表示します。⁠$swap」⁠$swapmax」⁠$swapbar」はこれらのスワップメモリ版です。

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。