-- 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() local fd = io.popen('acpi | head -n 1 | cut -d ":" -f 2 | cut -d "," -f 2 | tr -d "%"') local percentage = fd:read('*all') fd:close() return tonumber(percentage) end function isCharging() local _,_,error = os.execute('acpi | head -n 1 | grep Discharging') return error ~= 0 end function update_battery() local percent = batteryInfo() 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() 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()