1 local wibox = require("wibox")
2 local vicious = require("vicious")
3 local naughty = require("naughty")
4 local beautiful = require("beautiful")
7 module("battery_widget")
9 -- Battery (based on https://bitbucket.org/skrattaren/awesome/src/)
11 local limits = { {25, 5},
16 local function getnextlim (num)
17 for ind, pair in pairs(limits) do
18 lim = pair[1]; step = pair[2]; nextlim = limits[ind+1][1] or 0
31 local function batclosure ()
32 local nextlim = limits[1][1]
33 return function (_, args)
34 local state, charge = args[1], args[2]
35 if not charge then return end
38 if charge <= nextlim then
39 naughty.notify({title = "⚡ Warning! ⚡",
40 text = "Battery has leaked most of its power ( ⚡ "..charge.."%)!",
42 position = "top_right",
43 fg = beautiful.fg_focus,
44 bg = beautiful.bg_focus
46 nextlim = getnextlim(charge)
48 elseif state ~= "+" then
50 nextlim = limits[1][1]
54 if dir ~= 0 then charge = charge.."%" end
55 return " "..dirsign..charge..dirsign.." "
59 batterywidget = wibox.widget.textbox()
60 vicious.register(batterywidget, vicious.widgets.bat, batclosure(), 31, "BAT0")