X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/4148ccdfcd5ed620163f9d78e6224c684a358ac7..83b96b3c3ada021e47d6ef1ad48c03710f0dc24a:/widgets/maildir.lua?ds=sidebyside diff --git a/widgets/maildir.lua b/widgets/maildir.lua index 2f435b3..f7dfd28 100644 --- a/widgets/maildir.lua +++ b/widgets/maildir.lua @@ -10,12 +10,10 @@ local awful = require("awful") local wibox = require("wibox") local helpers = require("lain.helpers") - local io = { popen = io.popen } local os = { getenv = os.getenv } local string = { format = string.format, match = string.match } - local setmetatable = setmetatable -- Maildir check (synchronous) @@ -28,12 +26,12 @@ local function worker(args) local mailpath = args.mailpath or os.getenv("HOME") .. "/Mail" local ignore_boxes = args.ignore_boxes or {} local settings = args.settings or function() end - local ext_mail_cmd = args.external_mail_cmd + local cmd = args.cmd maildir.widget = wibox.widget.textbox() - function update() - if ext_mail_cmd then awful.spawn(ext_mail_cmd) end + function maildir.update() + if cmd then helpers.async({ awful.util.shell, "-c", cmd }, function() end) end -- Find pathes to mailboxes. local p = io.popen(string.format("find %s -mindepth 1 -maxdepth 2 -type d -not -name .git", mailpath)) @@ -78,9 +76,9 @@ local function worker(args) settings() end - helpers.newtimer(mailpath, timeout, update, true) + maildir.timer = helpers.newtimer(mailpath, timeout, maildir.update, true, true) - return setmetatable(maildir, { __index = maildir.widget }) + return maildir end return setmetatable(maildir, { __call = function(_, ...) return worker(...) end })