-- Battery infos
-- lain.widgets.bat
-local bat = { id = nil }
+local bat = {}
local function worker(args)
local args = args or {}
local battery = args.battery or "BAT0"
local settings = args.settings or function() end
- bat_now = {
- status = "not present",
- perc = "N/A",
- time = "N/A",
- watt = "N/A"
- }
-
- widget = wibox.widget.textbox('')
+ bat.widget = wibox.widget.textbox('')
function update()
- local present = first_line("/sys/class/power_supply/"
- .. battery
- .. "/present")
+ bat_now = {
+ status = "Not present",
+ perc = "N/A",
+ time = "N/A",
+ watt = "N/A"
+ }
+
+ local bstr = "/sys/class/power_supply/" .. battery
+
+ local present = first_line(bstr .. "/present")
if present == "1"
then
- local rate = first_line("/sys/class/power_supply/"
- .. battery ..
- "/power_now")
- local ratev = first_line("/sys/class/power_supply/"
- .. battery ..
- "/voltage_now")
- local rem = first_line("/sys/class/power_supply/"
- .. battery ..
- "/energy_now")
- local tot = first_line("/sys/class/power_supply/"
- .. battery ..
- "/energy_full")
- bat_now.status = first_line("/sys/class/power_supply/"
- .. battery ..
- "/status")
+ local rate = first_line(bstr .. "/power_now") or
+ first_line(bstr .. "/current_now")
+
+ local ratev = first_line(bstr .. "/voltage_now")
+
+ local rem = first_line(bstr .. "/energy_now") or
+ first_line(bstr .. "/charge_now")
+
+ local tot = first_line(bstr .. "/energy_full") or
+ first_line(bstr .. "/charge_full")
+
+ bat_now.status = first_line(bstr .. "/status") or "N/A"
local time_rat = 0
if bat_now.status == "Charging"
ontop = true,
replaces_id = bat.id
}).id
- elseif bat.perc <= 15
+ elseif bat_now.perc <= 15
then
bat.id = naughty.notify({
text = "plug the cable",
bat_now.perc = string.format("%d", bat_now.perc)
end
+ widget = bat.widget
settings()
end
newtimer("bat", timeout, update)
- return widget
+ return bat.widget
end
return setmetatable(bat, { __call = function(_, ...) return worker(...) end })