X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/d3e9bd968c62d75b149f9eb4720454282eb3a18f..98c69dc64d151fa737e9466f6c545045f102589f:/widgets/base.lua?ds=inline

diff --git a/widgets/base.lua b/widgets/base.lua
index 0431d03..3d4ce9e 100644
--- a/widgets/base.lua
+++ b/widgets/base.lua
@@ -12,7 +12,7 @@ local wibox        = require("wibox")
 local io           = io
 local setmetatable = setmetatable
 
--- Basic template for simple widgets 
+-- Basic template for custom widgets 
 -- lain.widgets.base
 local base = {}
 
@@ -24,14 +24,17 @@ local function worker(args)
 
     base.widget = wibox.widget.textbox('')
 
-    function update()
-        output = io.popen(cmd):read("*all")
+    function base.update()
+        local f = assert(io.popen(cmd))
+        output = f:read("*all")
+        f:close()
         widget = base.widget
         settings()
     end
 
-    newtimer(cmd, timeout, update)
-    return base.widget
+    newtimer(cmd, timeout, base.update)
+
+    return setmetatable(base, { __index = base.widget })
 end
 
 return setmetatable(base, { __call = function(_, ...) return worker(...) end })