Skip to content
Luca CPZ edited this page Sep 14, 2018 · 16 revisions

Usage

Read here.

Description

Creates a calendar notification that can be attached to widgets.

This is a simpler but faster alternative to awful.widget.calendar_popup, which emulates UNIX's cal.

local mycal = lain.widget.cal()

Input table

Variable Meaning Type Default
attach_to List of widgets table empty table
week_start First day of the week integer 2 (Monday)
three Display three months spanning the date boolean false
followtag Display the notification on currently focused screen boolean false
icons Path to calendar icons string lain/icons/cal/white
notification_preset Notification preset table See default notification_preset

Set attach_to as the list of widgets to which you want to attach the calendar, like this:

local mycal = lain.widget.cal {
    attach_to = { mywidget1, mywidget2, ...  },
    -- [...]
}

For every widget in attach_to:

  • Left click / scroll down: switch to previous month.
  • Middle click show current month.
  • Right click / scroll up: switch to next month.

With multiple screens, the default behaviour is to show a visual notification pop-up window on the first screen. By setting followtag to true it will be shown on the currently focused tag screen.

Default notification_preset

notification_preset = {
    font = "Monospace 10",
    fg   = "#FFFFFF",
    bg   = "#000000"
}

Output table

Variable Meaning Type
attach Attach the calendar to an input widget function
show Show calendar function
hide Hide calendar function

attach takes as argument any widget you want to attach the calendar to: lain.widget.calendar.attach(widget).

Keybindings

You can call the notification with a key binding like this:

awful.key({ altkey }, "c", function ()
    mycal.show(7)
end)

where altkey = "Mod1" and show argument is an optional integer, indicating the seconds to timeout.

Notes

  • Naughty notifications require notification_preset.font to be monospaced, in order to correctly display the output.
  • If you want to disable notification icon, set icons = "" in the input table.
  • If you want to get notifications only with mouse clicks on yourwidget, use this code:
    yourwidget:disconnect_signal("mouse::enter", lain.widget.calendar.hover_on)
Clone this wiki locally