X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/22fa9400bc8a1e65c644c692294ba6e5f253b147..5efaca89d0c0f44464bd7dbd5b9278b5cf492d86:/widgets/contrib/tpbat/init.lua

diff --git a/widgets/contrib/tpbat/init.lua b/widgets/contrib/tpbat/init.lua
index 206fd38..0a22526 100644
--- a/widgets/contrib/tpbat/init.lua
+++ b/widgets/contrib/tpbat/init.lua
@@ -75,7 +75,8 @@ function tpbat:show(t_out)
     tpbat_notification = naughty.notify({
         preset = { fg = beautiful.fg_normal },
         text = str,
-        timeout = t_out
+        timeout = t_out,
+        screen = client.focus and client.focus.screen or 1
     })
 end
 
@@ -90,16 +91,29 @@ function tpbat.register(args)
 
     tpbat.widget = wibox.widget.textbox('')
 
+    bat_notification_low_preset = {
+        title = "Battery low",
+        text = "Plug the cable!",
+        timeout = 15,
+        fg = "#202020",
+        bg = "#CDCDCD"
+    }
+
+    bat_notification_critical_preset = {
+        title = "Battery exhausted",
+        text = "Shutdown imminent",
+        timeout = 15,
+        fg = "#000000",
+        bg = "#FFFFFF"
+    }
+
     if bat:get('state') == nil
     then
         local n = naughty.notify({
+            preset = bat_notification_low_preset,
             title = "SMAPI Battery Warning: Unable to read battery state!",
             text = "This widget is intended for ThinkPads. Is tp_smapi installed? Check your configs & paths.",
-            position = "top_right",
-            timeout = 15,
-            fg="#202020",
-            bg="#cdcdcd",
-            ontop = true
+            screen = client.focus and client.focus.screen or 1
         })
     end
 
@@ -113,36 +127,29 @@ function tpbat.register(args)
 
         if bat:installed()
         then
-            bat_now.status = bat:status()
+            bat_now.status = bat:status() or "N/A"
             bat_now.perc   = bat:percent()
             bat_now.time   = bat:remaining_time()
             -- bat_now.watt = string.format("%.2fW", (VOLTS * AMPS) / 1e12)
 
-            -- notifications for low and critical states
-            if bat_now.perc <= 5
-            then
-                tpbat.id = naughty.notify({
-                    text = "shutdown imminent",
-                    title = "battery nearly exhausted",
-                    position = "top_right",
-                    timeout = 15,
-                    fg="#000000",
-                    bg="#ffffff",
-                    ontop = true,
-                    replaces_id = tpbat.id
-                }).id
-            elseif bat_now.perc <= 15
+            -- notifications for low and critical states (when discharging)
+            if bat_now.status == "discharging"
             then
-                tpbat.id = naughty.notify({
-                    text = "plug the cable",
-                    title = "battery low",
-                    position = "top_right",
-                    timeout = 15,
-                    fg="#202020",
-                    bg="#cdcdcd",
-                    ontop = true,
-                    replaces_id = tpbat.id
-                }).id
+                if bat_now.perc <= 5
+                then
+                    tpbat.id = naughty.notify({
+                        preset = bat_notification_critical_preset,
+                        replaces_id = tpbat.id,
+                        screen = client.focus and client.focus.screen or 1
+                    }).id
+                elseif bat_now.perc <= 15
+                then
+                    tpbat.id = naughty.notify({
+                        preset = bat_notification_low_preset,
+                        replaces_id = tpbat.id,
+                        screen = client.focus and client.focus.screen or 1
+                    }).id
+                end
             end
 
             bat_now.perc = tostring(bat_now.perc)
@@ -152,7 +159,7 @@ function tpbat.register(args)
         settings()
     end
 
-    newtimer("tpbat", timeout, update)
+    newtimer("tpbat-" .. bat.name, timeout, update)
 
     widget:connect_signal('mouse::enter', function () tpbat:show() end)
     widget:connect_signal('mouse::leave', function () tpbat:hide() end)