dotfiles/awesome/battery.lua

67 lines
1.6 KiB
Lua

-- 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('<span color="' .. color .. '">' .. percent .. ' ' .. symbol .. '</span>')
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()