------------------------------ -- This is the clock widget -- ------------------------------ -- Awesome Libs local awful = require("awful") local color = require("theme.crylia.colors") local dpi = require("beautiful").xresources.apply_dpi local gears = require("gears") local wibox = require("wibox") require("main.signals") -- Icon directory path local icondir = awful.util.getdir("config") .. "theme/crylia/assets/icons/clock/" -- Returns the clock widget return function () local clock_widget = wibox.widget{ { { { { { id = "icon", image = gears.color.recolor_image(icondir .. "clock.svg", color.color["Grey900"]), widget = wibox.widget.imagebox, resize = false }, id = "icon_layout", widget = wibox.container.place }, id = "icon_margin", top = dpi(2), widget = wibox.container.margin }, spacing = dpi(10), { id = "label", align = "center", valign = "center", widget = wibox.widget.textbox }, id = "clock_layout", layout = wibox.layout.fixed.horizontal }, id = "container", left = dpi(10), right = dpi(10), widget = wibox.container.margin }, bg = color.color["Orange200"], fg = color.color["Grey900"], shape = function (cr, width, height) gears.shape.rounded_rect(cr, width, height, 5) end, widget = wibox.container.background } local set_clock = function () clock_widget.container.clock_layout.label:set_text(os.date("%H:%M")) end -- Updates the clock every 5 seconds, worst case you are 5 seconds behind -- ¯\_(ツ)_/¯ local clock_update = gears.timer { timeout = 5, autostart = true, call_now = true, callback = function () set_clock() end } hover_signal(clock_widget, color.color["Orange200"]) return clock_widget end