X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/cf1bb42a83dcb9687db47a9a1eacf1ce087f76ff..af9714ebd2edff02b4d5f89238dac5dffe1df6d1:/widgets/bat.lua

diff --git a/widgets/bat.lua b/widgets/bat.lua
index 2ace758..d55be17 100644
--- a/widgets/bat.lua
+++ b/widgets/bat.lua
@@ -21,9 +21,9 @@ local setmetatable = setmetatable
 
 -- Battery infos
 -- lain.widgets.bat
-local bat = {}
 
 local function worker(args)
+    local bat = {}
     local args = args or {}
     local timeout = args.timeout or 30
     local battery = args.battery or "BAT0"
@@ -97,17 +97,14 @@ local function worker(args)
 
             bat_now.time = string.format("%02d:%02d", hrs, min)
 
-            bat_now.perc = first_line(bstr .. "/capacity")
-
-            if not bat_now.perc then
-                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
+            local perc = tonumber(first_line(bstr .. "/capacity")) or math.floor((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
@@ -130,22 +127,20 @@ local function worker(args)
                 bat.id = naughty.notify({
                     preset = bat_notification_critical_preset,
                     replaces_id = bat.id,
-                    screen = client.focus and client.focus.screen or 1
                 }).id
             elseif nperc <= 15
             then
                 bat.id = naughty.notify({
                     preset = bat_notification_low_preset,
                     replaces_id = bat.id,
-                    screen = client.focus and client.focus.screen or 1
                 }).id
             end
         end
     end
 
-    newtimer("bat", timeout, update)
+    newtimer(battery, timeout, update)
 
-    return bat.widget
+    return setmetatable(bat, { __index = bat.widget })
 end
 
-return setmetatable(bat, { __call = function(_, ...) return worker(...) end })
+return setmetatable({}, { __call = function(_, ...) return worker(...) end })