From: copycat-killer Date: Fri, 20 Jan 2017 23:20:17 +0000 (+0100) Subject: fs: asynchronous: fs.show too X-Git-Url: https://git.madduck.net/etc/awesome.git/commitdiff_plain/6f988d8eb76326d5f93ed110b4f42c6e8946ddd8?ds=inline;hp=-c fs: asynchronous: fs.show too --- 6f988d8eb76326d5f93ed110b4f42c6e8946ddd8 diff --git a/widgets/base.lua b/widgets/base.lua index 642a858..af3d2c0 100644 --- a/widgets/base.lua +++ b/widgets/base.lua @@ -22,7 +22,7 @@ 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() output = read_pipe(cmd) diff --git a/widgets/fs.lua b/widgets/fs.lua index 374d6eb..d5dd49a 100644 --- a/widgets/fs.lua +++ b/widgets/fs.lua @@ -26,25 +26,29 @@ local fs = {} -- Unit definitions fs.unit = { ["mb"] = 1024, ["gb"] = 1024^2 } -function fs.hide() naughty.destroy(fs.notification) end +function fs.hide() + naughty.destroy(fs.notification) + fs.notification = nil +end function fs.show(seconds, scr) fs.hide() - local cmd = (fs.options and string.format("dfs %s", fs.options)) or "dfs" - local ws = helpers.read_pipe(helpers.scripts_dir .. cmd):gsub("\n*$", "") - if fs.followtag then fs.notification_preset.screen = focused() elseif scr then fs.notification_preset.screen = scr end - fs.notification = naughty.notify({ - preset = fs.notification_preset, - text = ws, - timeout = seconds or 5, - }) + local cmd = (fs.options and string.format("dfs %s", fs.options)) or "dfs" + + helpers.async(helpers.scripts_dir .. cmd, function(ws) + fs.notification = naughty.notify({ + preset = fs.notification_preset, + text = ws:gsub("\n*$", ""), + timeout = seconds or 5, + }) + end) end local function worker(args)