madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged.
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
local math = { floor = math.floor }
local string = { format = string.format }
local math = { floor = math.floor }
local string = { format = string.format }
+local tonumber = tonumber
local setmetatable = setmetatable
local setmetatable = setmetatable
local args = args or {}
local timeout = args.timeout or 30
local battery = args.battery or "BAT0"
local args = args or {}
local timeout = args.timeout or 30
local battery = args.battery or "BAT0"
+ local notify = args.notify or "on"
local settings = args.settings or function() end
bat.widget = wibox.widget.textbox('')
local settings = args.settings or function() end
bat.widget = wibox.widget.textbox('')
bat_now.status = first_line(bstr .. "/status") or "N/A"
bat_now.status = first_line(bstr .. "/status") or "N/A"
+ rate = tonumber(rate)
+ ratev = tonumber(ratev)
+ rem = tonumber(rem)
+ tot = tonumber(tot)
+
local time_rat = 0
if bat_now.status == "Charging"
then
local time_rat = 0
if bat_now.status == "Charging"
then
end
local hrs = math.floor(time_rat)
end
local hrs = math.floor(time_rat)
- local min = (time_rat - hrs) * 60
+ if hrs < 0 then hrs = 0 elseif hrs > 23 then hrs = 23 end
+
+ local min = math.floor((time_rat - hrs) * 60)
+ if min < 0 then min = 0 elseif min > 59 then min = 59 end
bat_now.time = string.format("%02d:%02d", hrs, min)
bat_now.time = string.format("%02d:%02d", hrs, min)
- bat_now.perc = (rem / tot) * 100
- bat_now.watt = string.format("%.2fW", (rate * ratev) / 1e12)
+
+ local perc = (rem / tot) * 100
+ if perc <= 100 then
+ bat_now.perc = string.format("%d", perc)
+ elseif perc > 100 then
+ bat_now.perc = "100"
+ elseif perc < 0 then
+ bat_now.perc = "0"
+ end
+
+ if rate ~= nil and ratev ~= nil then
+ bat_now.watt = string.format("%.2fW", (rate * ratev) / 1e12)
+ else
+ bat_now.watt = "N/A"
+ end
-- notifications for low and critical states
-- notifications for low and critical states
- if bat_new.status == "Discharging"
+ if bat_now.status == "Discharging" and notify == "on"
+ if tonumber(bat_now.perc) <= 5
then
bat.id = naughty.notify({
text = "shutdown imminent",
then
bat.id = naughty.notify({
text = "shutdown imminent",
ontop = true,
replaces_id = bat.id
}).id
ontop = true,
replaces_id = bat.id
}).id
- elseif bat_now.perc <= 15
+ elseif tonumber(bat_now.perc) <= 15
then
bat.id = naughty.notify({
text = "plug the cable",
then
bat.id = naughty.notify({
text = "plug the cable",
-
- bat_now.perc = string.format("%d", bat_now.perc)