バッテリー状態表示
MacBookのバッテリーの残量をGrowlに通知する - みずぴー日記からですが、Linux でも同様にバッテリー表示ができればいいなと思っている方もいると思います。 Gnome の機能でも通知させることができますが、任意のものを任意のタイミングで表示するには AWK Users JP :: Gnome で CPU の負荷をお知らせで記述した Python スクリプトを少し変更した物を用います。
#!/usr/bin/python
from pynotify import *
import sys
init("cli notify")
n = Notification(sys.argv[1], sys.argv[2], sys.argv[3])
n.show()
上記の Python スクリプトを ~/bin に格納してあると仮定して進めます。 前回のAWK Users JP :: Gnome で CPU の負荷をお知らせでは Notification() の引数が 2 つでしたが、今回は 3 つの引数を取ります。 3 つ目は画像を指定することができます。
Linux でのバッテリーの残量の取得ですが、Fedora10 を搭載した Lenovo T61 であれば /proc/acpi/battery/BAT0/state から状態を取得できます。 また、/proc/acpi/battery/BAT0/info から搭載バッテリーの情報を取得できますので、この 2 つのファイルから残量をパーセント表示して、それを上記 Python スクリプトに渡します。
#! /usr/bin/gawk -f
# battery.awk
BEGIN {
acpi_batt_stat = "/proc/acpi/battery/BAT0/state";
acpi_batt_info = "/proc/acpi/battery/BAT0/info";
notification_cmd = ENVIRON["HOME"] "/bin/notify_3.py";
batt_icon = "/usr/share/icons/gnome/32x32/devices/battery.png";
# 搭載バッテリーの容量を知る
while (getline < acpi_batt_info > 0) {
if ($0 ~ /^design capacity:/) {
design_cap = $4; # 設計上の容量
}
if ($0 ~ /^last full capacity:/) {
last_cap = $4; # 最後に充電仕切った時の容量
}
}
close(acpi_batt_info);
while (getline < acpi_batt_stat > 0) {
if ($0 ~ /remaining capacity:/) {
remain_cap = $3; # バッテリー残量
}
}
close(acpi_batt_stat);
remain_percent = int(remain_cap / last_cap * 100);
print "Battery Remain: " remain_percent " %";
# notify.py で知らせる
system(notification_cmd " 'Battery Status' 'Battery Remain: "\
remain_percent " %' " batt_icon);
}
実行してみましょう。
$ nawk -f battery.awk Battery Remain: 77 %
以上のように表示されると同時に Gnome だと以下のようなポップアップが表示されます。

ここでは表示するだけの基本的な部分だけを作っていますが、もちろん MacBookのバッテリーの残量をGrowlに通知する - みずぴー日記のように何分かおきにチェックしたり、ある残量を切った時に表示させることもできます。
画像は以下のようにして探せばいろいろ見つかるでしょう。
$ locate battery | grep png$
Gkrellm の表示とは一致するのですが、Gnome の Notification エリアに表示される容量とは一致しません。 多分、別の方法で取得しているものだと思われます。




