X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/0f5ce4dd76e96524ce7a534d228a212f51eb5c93..c251f2844bbbe95f2c0cc2bf97008aa981fcfc85:/widgets/base.lua?ds=sidebyside

diff --git a/widgets/base.lua b/widgets/base.lua
index 4f28e07..e1ce297 100644
--- a/widgets/base.lua
+++ b/widgets/base.lua
@@ -7,12 +7,13 @@
 --]]
 
 local newtimer     = require("lain.helpers").newtimer
+local read_pipe    = require("lain.helpers").read_pipe
+
 local wibox        = require("wibox")
 
-local io           = io
 local setmetatable = setmetatable
 
--- Basic template for custom widgets 
+-- Basic template for custom widgets
 -- lain.widgets.base
 
 local function worker(args)
@@ -25,11 +26,12 @@ local function worker(args)
     base.widget = wibox.widget.textbox('')
 
     function base.update()
-        local f = assert(io.popen(cmd))
-        output = f:read("*all")
-        f:close()
-        widget = base.widget
-        settings()
+        if output ~= base.prev then
+            output = read_pipe(cmd)
+            widget = base.widget
+            settings()
+            base.prev = output
+        end
     end
 
     newtimer(cmd, timeout, base.update)