-------------------------------------------------------------------------------------------------------------- -- This is the statusbar, every widget, module and so on is combined to all the stuff you see on the screen -- -------------------------------------------------------------------------------------------------------------- -- Awesome Libs local awful = require("awful") local color = require("src.theme.colors") local cat = require("src.theme.catppuccin") local dpi = require("beautiful").xresources.apply_dpi local gears = require("gears") local wibox = require("wibox") return function(s, widgets) local bottom_left = awful.popup { widget = wibox.container.background, ontop = false, bg = color["Grey900"], visible = true, screen = s, maximum_height = dpi(60), placement = function(c) awful.placement.bottom_left(c, { margins = dpi(5) }) end, shape = function(cr, width, height) gears.shape.rounded_rect(cr, width, height, 5) end } bottom_left:struts { bottom = 65 } local function prepare_widgets(widgets) local layout = { layout = wibox.layout.fixed.horizontal } if #widgets == 1 then table.insert(layout, { widgets[1], widget = wibox.container.margin }) return layout; end for i, widget in pairs(widgets) do if i == 1 then table.insert(layout, { widget, left = dpi(6), right = dpi(3), top = dpi(6), bottom = dpi(6), widget = wibox.container.margin }) elseif i == #widgets then table.insert(layout, { widget, left = dpi(3), right = dpi(6), top = dpi(6), bottom = dpi(6), widget = wibox.container.margin }) else table.insert(layout, { widget, left = dpi(3), right = dpi(3), top = dpi(6), bottom = dpi(6), widget = wibox.container.margin }) end end return layout end bottom_left:setup { nil, nil, prepare_widgets(widgets), layout = wibox.layout.align.horizontal } end