X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/f3096ba021ae4835e5626d3b20abb9bc236701a3..a12d360564932941f65a706aec27b32a24738af5:/widgets/task.lua?ds=sidebyside diff --git a/widgets/task.lua b/widgets/task.lua index 31499f1..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,70 +29,18 @@ function task:hide() end end -function task:show(t_out, inc_offset) +function task:show() task:hide() - local offs = inc_offset or 0 - 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 offs == 0 - then -- current month showing, today highlighted - if today >= 10 - then - init_t = '/usr/bin/cal | sed -r -e "s/(^| )(' - end - - task.offset = 0 - task.notify_icon = task.icons .. today .. ".png" - - -- bg and fg inverted to highlight today - f = io.popen( init_t .. today .. - ')($| )/\\1\\2<\\/span><\\/b>\\3/"' ) - - else -- no current month showing, no day to highlight - local month = tonumber(os.date('%m')) - local year = tonumber(os.date('%Y')) - - task.offset = task.offset + offs - month = month + task.offset - - if month > 12 then - month = month % 12 - year = year + 1 - if month <= 0 then - month = 12 - end - elseif month < 1 then - month = month + 12 - year = year - 1 - if month <= 0 then - month = 1 - end - end - - task.notify_icon = nil - - f = io.popen('/usr/bin/cal ' .. month .. ' ' .. year) - end - - --c_text = "" - --.. f:read() .. "\n\n" - --.. f:read() .. "\n" - --.. f:read("*all"):gsub("\n*$", "") - --.. "" - c_text = "hello tasks!" + f = io.popen('task') + c_text = "Tasks next\n" + .. "" + .. f:read("*all") .. "\n" + .. "" f:close() task_notification = naughty.notify({ text = c_text, @@ -101,19 +48,70 @@ function task:show(t_out, inc_offset) 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.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)