awesomeでバッテリ消費状態をバーに表示させるHAL編
iwamatsuさんのawesome で バッテリ消費状態をバーに表示させる をHAL + awesomeでやるとこんな感じになる。
bat_text = widget({ type = "textbox", align = "right" }) bat_bar = widget({ type = "progressbar", align = "right" }) bat_bar.width = 30 bat_bar.height = 0.75 bat_bar:bar_properties_set('bat', { bg = '#222222', fg = '#287755', fg_center = '#287755', fg_end = '#287755', fg_off = '#222222', reverse = false, min_value = 0, max_value = 100 }) bat_refresh = function() local fd local bat_udi = awful.util.pread("hal-find-by-property --key info.category --string battery") if bat_udi == nil then return nil end local charge_level = string.gsub(awful.util.pread("hal-get-property --key battery.charge_level.percentage --udi " .. bat_udi), "%s*$", "") local ac_udi = string.gsub(awful.util.pread("hal-find-by-property --key info.category --string ac_adapter"), "%s*$", "") local ac_present = string.gsub(awful.util.pread("hal-get-property --key ac_adapter.present --udi " .. ac_udi), "%s*$", "") local fg, fg_center, fg_end if ac_present == "true" then fg = '#287755' fg_center = '#287755' fg_end = '#287755' else fg = '#772855' fg_center = '#772855' fg_end = '#772855' end bat_text.text = charge_level .. "%" bat_bar:bar_properties_set('bat', { fg = fg, fg_center = fg_center, fg_end = fg_end, }) bat_bar:bar_data_add("bat", charge_level) return true end bat_status = bat_refresh()
で、これをwiboxに入れて、
mywibox[s].widgets = { mylauncher, mytaglist[s], mytasklist[s], mypromptbox[s], + bat_status and bat_text, + bat_status and bat_bar, mytextbox, mylayoutbox[s], s == 1 and mysystray or nil }
日時処理と同じようにtimer.registerにbat_refreshを放り込めばOK。
awful.hooks.timer.register(15, bat_refresh)
awesome-gitでしか確認していない。awesome-3.1.1などの古いバージョンで動くかどうかは未確認。
あとはdbus経由でACアダプタが抜かれた瞬時に表示が切り替わると嬉しいですね。