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

diff --git a/widgets/base.lua b/widgets/base.lua
index 4f28e07..94ee58f 100644
--- a/widgets/base.lua
+++ b/widgets/base.lua
@@ -7,12 +7,11 @@
 --]]
 
 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)
@@ -22,14 +21,15 @@ local function worker(args)
     local cmd      = args.cmd or ""
     local settings = args.settings or function() end
 
-    base.widget = wibox.widget.textbox('')
+    base.widget = wibox.widget.textbox()
 
     function base.update()
-        local f = assert(io.popen(cmd))
-        output = f:read("*all")
-        f:close()
-        widget = base.widget
-        settings()
+        output = read_pipe(cmd)
+        if output ~= base.prev then
+            widget = base.widget
+            settings()
+            base.prev = output
+        end
     end
 
     newtimer(cmd, timeout, base.update)