From a45d345b60cd0268def1dde24d7618b6ab1b8070 Mon Sep 17 00:00:00 2001 From: Jan Xie Date: Wed, 25 Sep 2013 11:20:13 +0800 Subject: [PATCH] add prompt function for task widget --- widgets/task.lua | 66 +++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 9 deletions(-) diff --git a/widgets/task.lua b/widgets/task.lua index fdf439a..f2b49f4 100644 --- a/widgets/task.lua +++ b/widgets/task.lua @@ -29,20 +29,15 @@ function task:hide() end end -function task:show(t_out) +function task:show() task:hide() - local tims = t_out or 0 local f, c_text - -- let's take font only, font size is set in task table - local font = beautiful.font:sub(beautiful.font:find(""), - beautiful.font:find(" ")) - f = io.popen('task') - c_text = "Tasks next\n" - .. "" .. f:read("*all") .. "\n" .. "" @@ -53,15 +48,68 @@ function task:show(t_out) position = task.position, fg = task.fg, bg = task.bg, - timeout = tims }) + timeout = task.timeout }) +end + +function task:add(...) + local f = io.popen("task add " .. ...) + c_text = "" + .. f:read("*all") .. "\n" + .. "" + + naughty.notify({ text = c_text, + icon = task.notify_icon, + position = task.position, + fg = task.fg, + bg = task.bg, + timeout = task.timeout}) +end + +function task:prompt_add() + awful.prompt.run( { prompt = "Add task: " }, + mypromptbox[mouse.screen].widget, + function (...) + task:add(...) + end, + nil, + awful.util.getdir("cache") .. "/history_task_add") +end + +function task:execute(...) + local f = io.popen("task " .. ...) + c_text = "" + .. f:read("*all") .. "\n" + .. "" + + naughty.notify({ text = c_text, + icon = task.notify_icon, + position = task.position, + fg = task.fg, + bg = task.bg, + timeout = task.timeout}) +end + +function task:prompt() + awful.prompt.run( { prompt = "Task: " }, + mypromptbox[mouse.screen].widget, + function (...) + task:execute(...) + end, + nil, + awful.util.getdir("cache") .. "/history_task") end function task:attach(widget, args) local args = args or {} task.font_size = tonumber(args.font_size) or 12 + task.font = beautiful.font:sub(beautiful.font:find(""), + beautiful.font:find(" ")) task.fg = args.fg or beautiful.fg_normal or "#FFFFFF" task.bg = args.bg or beautiful.bg_normal or "#FFFFFF" task.position = args.position or "top_right" + task.timeout = args.timeout or 7 task.notify_icon = icons_dir .. "taskwarrior.png"