dotfiles/.config/awesome/ui/info-panel/calendar.lua
2024-02-22 20:33:20 -08:00

80 lines
1.6 KiB
Lua

local wibox = require("wibox")
local beautiful = require("beautiful").get()
local dpi = require("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)
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 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,
})