X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/a071d3989ac6712a75ca3eebf3d45f840773c309..8d893392caf98f5e03f34dcb47d37f66fa0f72dd:/widgets/bat.lua

diff --git a/widgets/bat.lua b/widgets/bat.lua
index c5279bd..48a14fb 100644
--- a/widgets/bat.lua
+++ b/widgets/bat.lua
@@ -27,6 +27,7 @@ local function worker(args)
     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('')
@@ -73,14 +74,30 @@ local function worker(args)
             end
 
             local hrs = math.floor(time_rat)
+            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.perc = string.format("%d", (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
-            if bat_now.status == "Discharging"
+            if bat_now.status == "Discharging" and notify == "on"
             then
                 if tonumber(bat_now.perc) <= 5
                 then