X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/4148ccdfcd5ed620163f9d78e6224c684a358ac7..bf3a9ba5efb874ad6370a3083afd409361e2912a:/widgets/maildir.lua diff --git a/widgets/maildir.lua b/widgets/maildir.lua index 2f435b3..7e7b246 100644 --- a/widgets/maildir.lua +++ b/widgets/maildir.lua @@ -10,17 +10,15 @@ 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) -- lain.widgets.maildir -local maildir = {} +local maildir = helpers.make_widget_textbox() local function worker(args) local args = args or {} @@ -28,12 +26,10 @@ 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 - - maildir.widget = wibox.widget.textbox() + local cmd = args.cmd - 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 +74,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 })