mirror of https://github.com/lcpz/lain.git
calendar: fix #289
This commit is contained in:
parent
398edb9bf9
commit
e46fa5a6df
|
@ -28,9 +28,7 @@ function calendar.hide()
|
||||||
end
|
end
|
||||||
|
|
||||||
function calendar.show(t_out, inc_offset, scr)
|
function calendar.show(t_out, inc_offset, scr)
|
||||||
local today = os.date("%e")
|
local f, offs = nil, inc_offset or 0
|
||||||
local offs = inc_offset or 0
|
|
||||||
local f
|
|
||||||
|
|
||||||
calendar.offset = calendar.offset + offs
|
calendar.offset = calendar.offset + offs
|
||||||
|
|
||||||
|
@ -38,7 +36,7 @@ function calendar.show(t_out, inc_offset, scr)
|
||||||
|
|
||||||
if current_month then -- today highlighted
|
if current_month then -- today highlighted
|
||||||
calendar.offset = 0
|
calendar.offset = 0
|
||||||
calendar.notify_icon = string.format("%s%s.png", calendar.icons, tonumber(today))
|
calendar.icon = string.format("%s%s.png", calendar.icons, tonumber(os.date("%d")))
|
||||||
f = calendar.cal
|
f = calendar.cal
|
||||||
else -- no current month showing, no day to highlight
|
else -- no current month showing, no day to highlight
|
||||||
local month = tonumber(os.date("%m"))
|
local month = tonumber(os.date("%m"))
|
||||||
|
@ -56,7 +54,7 @@ function calendar.show(t_out, inc_offset, scr)
|
||||||
year = year - 1
|
year = year - 1
|
||||||
end
|
end
|
||||||
|
|
||||||
calendar.notify_icon = nil
|
calendar.icon = nil
|
||||||
f = string.format("%s %s %s", calendar.cal, month, year)
|
f = string.format("%s %s %s", calendar.cal, month, year)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -66,16 +64,39 @@ function calendar.show(t_out, inc_offset, scr)
|
||||||
calendar.notification_preset.screen = src or 1
|
calendar.notification_preset.screen = src or 1
|
||||||
end
|
end
|
||||||
|
|
||||||
helpers.async(f, function(ws)
|
if f == calendar then
|
||||||
fg, bg = calendar.notification_preset.fg, calendar.notification_preset.bg
|
calendar.update(f, false)
|
||||||
ws = ws:gsub("%c%[%d+[m]?%s?%d+%c%[%d+[m]?", markup.bold(markup.color(bg, fg, today)))
|
|
||||||
calendar.hide()
|
calendar.hide()
|
||||||
calendar.notification = naughty.notify({
|
calendar.notification = naughty.notify({
|
||||||
preset = calendar.notification_preset,
|
preset = calendar.notification_preset,
|
||||||
text = ws:gsub("\n*$", ""),
|
icon = calendar.icon,
|
||||||
icon = calendar.notify_icon,
|
|
||||||
timeout = t_out or calendar.notification_preset.timeout or 5
|
timeout = t_out or calendar.notification_preset.timeout or 5
|
||||||
})
|
})
|
||||||
|
else
|
||||||
|
calendar.update(f, true, t_out)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function calendar.update(f, show, t_out)
|
||||||
|
local fg, bg = calendar.notification_preset.fg, calendar.notification_preset.bg
|
||||||
|
|
||||||
|
helpers.async(f, function(ws)
|
||||||
|
ws = ws:gsub("%c%[%d+[m]?%s?%d+%c%[%d+[m]?",
|
||||||
|
markup.bold(markup.color(bg, fg, os.date("%e")))):gsub("\n*$", "")
|
||||||
|
|
||||||
|
if f == calendar.cal then
|
||||||
|
calendar.notification_preset.text = ws
|
||||||
|
end
|
||||||
|
|
||||||
|
if show then
|
||||||
|
calendar.hide()
|
||||||
|
calendar.notification = naughty.notify({
|
||||||
|
preset = calendar.notification_preset,
|
||||||
|
text = ws,
|
||||||
|
icon = calendar.icon,
|
||||||
|
timeout = t_out or calendar.notification_preset.timeout or 5
|
||||||
|
})
|
||||||
|
end
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -109,6 +130,8 @@ local function worker(args)
|
||||||
end
|
end
|
||||||
|
|
||||||
for i, widget in ipairs(calendar.attach_to) do calendar.attach(widget) end
|
for i, widget in ipairs(calendar.attach_to) do calendar.attach(widget) end
|
||||||
|
|
||||||
|
calendar.update(calendar.cal, false)
|
||||||
end
|
end
|
||||||
|
|
||||||
return setmetatable(calendar, { __call = function(_, ...) return worker(...) end })
|
return setmetatable(calendar, { __call = function(_, ...) return worker(...) end })
|
||||||
|
|
Loading…
Reference in New Issue