X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/293091d2674bb5b37d461b7989a39b7048800794..84313cc876bce8b346ca83934de57b50488ab8cd:/widgets/base.lua?ds=sidebyside

diff --git a/widgets/base.lua b/widgets/base.lua
index 2a7bf10..e1ce297 100644
--- a/widgets/base.lua
+++ b/widgets/base.lua
@@ -7,9 +7,10 @@
 --]]
 
 local newtimer     = require("lain.helpers").newtimer
+local read_pipe    = require("lain.helpers").read_pipe
+
 local wibox        = require("wibox")
 
-local io           = { popen = io.popen }
 local setmetatable = setmetatable
 
 -- Basic template for custom widgets
@@ -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)