local naughty = require("naughty")
local io = io
-local os = { date = os.date }
+local os = { date = os.date }
local tonumber = tonumber
local setmetatable = setmetatable
-- Calendar notification
-- lain.widgets.calendar
local calendar = {}
-local notification = nil
-
-local function create(foreground, background)
- calendar.offset = 0
- calendar.icons_dir = icons_dir .. "cal/white/" -- default
- calendar.notify_icon = nil
- calendar.font_size = 12
- calendar.bg = background or beautiful.bg_normal or "#FFFFFF"
- calendar.fg = foreground or beautiful.fg_focus or "#FFFFFF"
-end
+local cal_notification = nil
function calendar:hide()
- if notification ~= nil then
- naughty.destroy(notification)
- notification = nil
+ if cal_notification ~= nil then
+ naughty.destroy(cal_notification)
+ cal_notification = nil
end
end
end
calendar.offset = 0
- calendar.notify_icon = calendar.icons_dir .. today .. ".png"
+ calendar.notify_icon = calendar.icons .. today .. ".png"
-- bg and fg inverted to highlight today
f = io.popen( init_t .. today ..
.. "</span></tt>"
f:close()
- notification = naughty.notify({ text = c_text,
- icon = calendar.notify_icon,
- fg = calendar.fg,
- bg = calendar.bg,
- timeout = tims })
+ cal_notification = naughty.notify({ text = c_text,
+ icon = calendar.notify_icon,
+ position = calendar.position,
+ fg = calendar.fg,
+ bg = calendar.bg,
+ timeout = tims })
end
-function calendar:attach(widget, foreground, background)
- create(foreground, background)
+function calendar:attach(widget, args)
+ local args = args or {}
+ calendar.icons = args.icons or icons_dir .. "cal/white/"
+ calendar.font_size = tonumber(args.font_size) or 12
+ calendar.fg = args.fg or beautiful.fg_normal or "#FFFFFF"
+ calendar.bg = args.bg or beautiful.bg_normal or "#FFFFFF"
+ calendar.position = args.position or "top_right"
+
+ calendar.offset = 0
+ calendar.notify_icon = nil
+
widget:connect_signal("mouse::enter", function () calendar:show() end)
widget:connect_signal("mouse::leave", function () calendar:hide() end)
widget:buttons(awful.util.table.join( awful.button({ }, 1, function ()