79 lines
1.9 KiB
Lua
79 lines
1.9 KiB
Lua
local awful = require "awful"
|
|
local gears = require "gears"
|
|
local wibox = require "wibox"
|
|
local beautiful = require "beautiful"
|
|
local dpi = beautiful.xresources.apply_dpi
|
|
|
|
-- Creating Calendar
|
|
----------------------
|
|
|
|
-- copied from awesome doc and adjusted a bit
|
|
local styles = {}
|
|
|
|
styles.month = { bg_color = beautiful.xcolorS0}
|
|
styles.normal = {
|
|
bg_color = beautiful.xcolorS0,
|
|
padding = dpi(6),
|
|
fg_color = beautiful.xcolorT2,
|
|
}
|
|
styles.focus = {
|
|
fg_color = beautiful.xcolor7,
|
|
padding = dpi(6),
|
|
markup = function(t) return '<b>' .. t .. '</b>' end,
|
|
}
|
|
styles.header = {
|
|
fg_color = beautiful.xcolor2,
|
|
markup = function(t) return '<b>' .. t .. '</b>' end,
|
|
}
|
|
styles.weekday = {
|
|
fg_color = beautiful.xcolorT2,
|
|
markup = function(t) return '<span font_desc="FiraCode Nerd Font Medium 16">' .. t .. '</span>' end,
|
|
}
|
|
|
|
-- The Function
|
|
local function decorate_cell(widget, flag, date)
|
|
if flag=="monthheader" and not styles.monthheader then
|
|
flag = "header"
|
|
end
|
|
|
|
local props = styles[flag] or {}
|
|
|
|
if props.markup and widget.get_text and widget.set_markup then
|
|
widget:set_markup(props.markup(widget:get_text()))
|
|
end
|
|
-- Change bg color for weekends
|
|
local d = {year=date.year, month=(date.month or 1), day=(date.day or 1)}
|
|
local weekday = tonumber(os.date("%w", os.time(d)))
|
|
local ret = wibox.widget {
|
|
{
|
|
widget,
|
|
margins = props.padding,
|
|
widget = wibox.container.margin
|
|
},
|
|
fg = props.fg_color,
|
|
bg = props.bg_color,
|
|
widget = wibox.container.background
|
|
}
|
|
|
|
return ret
|
|
end
|
|
|
|
local calendar = wibox.widget {
|
|
date = os.date("*t"),
|
|
font = beautiful.font_name.."14",
|
|
fn_embed = decorate_cell,
|
|
widget = wibox.widget.calendar.month,
|
|
}
|
|
|
|
|
|
return wibox.widget {
|
|
nil,
|
|
{
|
|
nil,
|
|
calendar,
|
|
expand = 'none',
|
|
layout = wibox.layout.align.horizontal,
|
|
},
|
|
expand = 'none',
|
|
layout = wibox.layout.align.vertical,
|
|
}
|