-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 11
- 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 ()
- calendar:show(0, -1) end),
- awful.button({ }, 3, function ()
- calendar:show(0, 1) end) ))
+function calendar.attach(widget)
+ widget:connect_signal("mouse::enter", function () calendar.show(0) end)
+ widget:connect_signal("mouse::leave", function () calendar.hide() end)
+ widget:buttons(awful.util.table.join(awful.button({ }, 1, function ()
+ calendar.show(0, -1, calendar.scr_pos) end),
+ awful.button({ }, 3, function ()
+ calendar.show(0, 1, calendar.scr_pos) end),
+ awful.button({ }, 4, function ()
+ calendar.show(0, -1, calendar.scr_pos) end),
+ awful.button({ }, 5, function ()
+ calendar.show(0, 1, calendar.scr_pos) end)))
+end
+
+local function worker(args)
+ local args = args or {}
+ calendar.cal = args.cal or "/usr/bin/cal --color=always"
+ calendar.attach_to = args.attach_to or {}
+ calendar.followtag = args.followtag or false
+ calendar.icons = args.icons or helpers.icons_dir .. "cal/white/"
+ calendar.notification_preset = args.notification_preset
+
+ if not calendar.notification_preset then
+ calendar.notification_preset = {
+ font = "Monospace 10",
+ fg = "#FFFFFF",
+ bg = "#000000"
+ }
+ end
+
+ for i, widget in ipairs(calendar.attach_to) do calendar.attach(widget) end