X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/5ebdab637085b1fbf20e47aba6c04f04191bf0ce..dd9d9b8076428c4d869043e54b1cd67424020a11:/widgets/contrib/tpbat/init.lua diff --git a/widgets/contrib/tpbat/init.lua b/widgets/contrib/tpbat/init.lua index dbf90aa..d96c2d8 100644 --- a/widgets/contrib/tpbat/init.lua +++ b/widgets/contrib/tpbat/init.lua @@ -17,7 +17,6 @@ local debug = { getinfo = debug.getinfo } local newtimer = require("lain.helpers").newtimer local first_line = require("lain.helpers").first_line -local beautiful = require("beautiful") local naughty = require("naughty") local wibox = require("wibox") @@ -34,22 +33,20 @@ local smapi = require("smapi") local tpbat = { } local tpbat_notification = nil -function tpbat:hide() - if tpbat_notification ~= nil - then - naughty.destroy(tpbat_notification) - tpbat_notification = nil - end +function tpbat.hide() + if not tpbat.notification then return end + naughty.destroy(tpbat.notification) + tpbat.notification = nil end -function tpbat:show(t_out) - tpbat:hide() +function tpbat.show(t_out) + tpbat.hide() - local bat = self.bat - local t_out = t_out or 0 + local bat = tpbat.bat if bat == nil or not bat:installed() then return end + local t_out = t_out or 0 local mfgr = bat:get('manufacturer') or "no_mfgr" local model = bat:get('model') or "no_model" local chem = bat:get('chemistry') or "no_chem" @@ -73,9 +70,10 @@ function tpbat:show(t_out) .. string.format("\n%s \t\t\t %s", status:upper(), msg) tpbat_notification = naughty.notify({ - preset = { fg = beautiful.fg_normal }, + preset = naughty.config.defaults, text = str, - timeout = t_out + timeout = t_out, + screen = client.focus and client.focus.screen or 1 }) end @@ -90,16 +88,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 @@ -124,26 +135,16 @@ function tpbat.register(args) 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 + 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({ - text = "plug the cable", - title = "battery low", - position = "top_right", - timeout = 15, - fg="#202020", - bg="#cdcdcd", - ontop = true, - replaces_id = tpbat.id + preset = bat_notification_low_preset, + replaces_id = tpbat.id, + screen = client.focus and client.focus.screen or 1 }).id end end @@ -155,10 +156,10 @@ 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) + widget:connect_signal('mouse::enter', function () tpbat.show() end) + widget:connect_signal('mouse::leave', function () tpbat.hide() end) return tpbat.widget end