-- This function returns a formatted string with the current battery status. It -- can be used to populate a text widget in the awesome window manager. Based -- on the "Gigamo Battery Widget" found in the wiki at awesome.naquadah.org local wibox = require("wibox") local naughty = require("naughty") local beautiful = require("beautiful") local previous_percent = 0 function batteryInfo(adapter) local fcur = io.open("/sys/class/power_supply/"..adapter.."/energy_now") local fcap = io.open("/sys/class/power_supply/"..adapter.."/energy_full") local cur = fcur:read() local cap = fcap:read() fcur:close() fcap:close() local battery = math.floor(cur * 100 / cap) if battery > 100 then battery = 100 end return battery end function isCharging(adapter) local fsta = io.open("/sys/class/power_supply/"..adapter.."/status") local sta = fsta:read() fsta:close() return not sta:match("Discharging") end function update_battery() local percent = batteryInfo('BAT0') local color local symbol if percent < 15 then color="red" elseif percent < 30 then color="orange" elseif percent > 90 then color="green" else color="white" end if isCharging('BAT0') then color = 'green' symbol = '⚡' else symbol = '%' end if previous_percent >= 15 and percent < 15 then naughty.notify({ title = "Low battery...", text = "Battery level is lower than 15% !", fg="#000000", bg="#ff0000", timeout=5 }) end battery_widget:set_markup('' .. percent .. ' ' .. symbol .. '') previous_percent = percent end battery_widget = wibox.widget.textbox() battery_widget.timer = timer({timeout=5}) battery_widget.timer:connect_signal("timeout", update_battery) battery_widget.timer:start() update_battery()