X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/b7c3cb77a1ca72ab8fb91c8618f8703e3c1e446c..912bd26ede8901c98fd8d7a35f8493ee448109ad:/widgets/sysload.lua diff --git a/widgets/sysload.lua b/widgets/sysload.lua index b15b1bf..9472235 100644 --- a/widgets/sysload.lua +++ b/widgets/sysload.lua @@ -7,13 +7,11 @@ --]] -local newtimer = require("lain.helpers").newtimer - +local helpers = require("lain.helpers") local wibox = require("wibox") local io = { open = io.open } -local string = { format = string.format, - match = string.match } +local string = { match = string.match } local setmetatable = setmetatable @@ -23,23 +21,36 @@ local sysload = {} local function worker(args) local args = args or {} - local timeout = args.timeout or 5 + local timeout = args.timeout or 1 local settings = args.settings or function() end sysload.widget = wibox.widget.textbox('') + helpers.set_map("load_1", 0) + helpers.set_map("load_5", 0) + helpers.set_map("load_15", 0) function update() local f = io.open("/proc/loadavg") - local ret = f:read("*a") + local ret = f:read("*all") f:close() load_1, load_5, load_15 = string.match(ret, "([^%s]+) ([^%s]+) ([^%s]+)") - widget = sysload.widget - settings() + if load_1 ~= helpers.get_map("load_1") + or load_5 ~= helpers.get_map("load_5") + or load_15 ~= helpers.get_map("load_15") + then + widget = sysload.widget + settings() + + helpers.set_map("load_1", load_1) + helpers.set_map("load_5", load_5) + helpers.set_map("load_15", load_15) + end end - newtimer("sysload", timeout, update) + helpers.newtimer("sysload", timeout, update) + return sysload.widget end