X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/1a31a15405c5f125f526f6d1554ea12b55940018..ea784d4c844449e8184e3f2e62cd829d3a543734:/widgets/task.lua diff --git a/widgets/task.lua b/widgets/task.lua index cf84cbc..f2b49f4 100644 --- a/widgets/task.lua +++ b/widgets/task.lua @@ -13,7 +13,6 @@ local beautiful = require("beautiful") local naughty = require("naughty") local io = io -local os = { date = os.date } local tonumber = tonumber local setmetatable = setmetatable @@ -30,62 +29,89 @@ 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 - local today = tonumber(os.date('%d')) - local init_t = '/usr/bin/cal | sed -r -e "s/(^| )( ' - -- let's take font only, font size is set in task table - local font = beautiful.font:sub(beautiful.font:find(""), - beautiful.font:find(" ")) - - if today >= 10 - then - init_t = '/usr/bin/cal | sed -r -e "s/(^| )(' - end - task.offset = 0 - --task.notify_icon = task.icons .. today .. ".png" + f = io.popen('task') + c_text = "Tasks next\n" + .. "" + .. f:read("*all") .. "\n" + .. "" + f:close() - -- bg and fg inverted to highlight today - --f = io.popen( init_t .. today .. - --')($| )/\\1\\2<\\/span><\\/b>\\3/"' ) + task_notification = naughty.notify({ text = c_text, + icon = task.notify_icon, + position = task.position, + fg = task.fg, + bg = task.bg, + 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 - --c_text = "" - --.. f:read() .. "\n\n" - --.. f:read() .. "\n" - --.. f:read("*all"):gsub("\n*$", "") - --.. "" - c_text = "hello tasks!" - --f:close() +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 - task_notification = naughty.notify({ text = c_text, - --icon = task.notify_icon, - --position = task.position, - --fg = task.fg, - --bg = task.bg, - timeout = tims }) +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.icons = args.icons or icons_dir .. "cal/white/" 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.offset = 0 - task.notify_icon = nil + task.notify_icon = icons_dir .. "taskwarrior.png" widget:connect_signal("mouse::enter", function () task:show() end) widget:connect_signal("mouse::leave", function () task:hide() end)