--]]
-local helpers = require("lain.helpers")
local first_line = require("lain.helpers").first_line
-
+local make_widget = require("lain.helpers").make_widget_textbox
+local newtimer = require("lain.helpers").newtimer
local naughty = require("naughty")
local wibox = require("wibox")
-
local math = { abs = math.abs,
floor = math.floor,
log10 = math.log10,
min = math.min }
local string = { format = string.format }
-
+local ipairs = ipairs
local type = type
local tonumber = tonumber
local setmetatable = setmetatable
-- lain.widgets.bat
local function worker(args)
- local bat = helpers.make_widget_textbox()
+ local bat = make_widget()
local args = args or {}
local timeout = args.timeout or 30
local batteries = args.batteries or (args.battery and {args.battery}) or {"BAT0"}
end
end
+ -- When one of the battery is charging, others' status are either
+ -- "Full", "Unknown" or "Charging". When the laptop is not plugged in,
+ -- one or more of the batteries may be full, but only one battery
+ -- discharging suffices to set global status to "Discharging".
bat_now.status = bat_now.n_status[1]
+ for _,status in ipairs(bat_now.n_status) do
+ if status == "Discharging" or status == "Charging" then
+ bat_now.status = status
+ end
+ end
bat_now.ac_status = tonumber(first_line(string.format("%s%s/online", pspath, ac))) or "N/A"
if bat_now.status ~= "N/A" then
end
end
- helpers.newtimer(battery, timeout, bat.update)
+ newtimer(battery, timeout, bat.update)
return bat
end