dots/.config/awesome/ui/statusbar/init.lua
delta f42a3a2cc9 major update of awesome config
add new icons, switch over to using stylesheets instead of gears.color.recolor_image, add a music widget to the panel, optimize services in common.lua, fix the application lense filtering and increase the update rate of services in common.lua

Signed-off-by: delta <darkussdelta@gmail.com>
2023-05-21 10:12:46 +02:00

123 lines
4 KiB
Lua

local awful = require "awful"
local beautiful = require "beautiful"
local gcolor = require "gears.color"
local panel = require "ui.statusbar.panel"
local phosphor = require "assets.phosphor"
local qbind = require "quarrel.bind"
local qui = require "quarrel.ui"
local qvars = require "quarrel.vars"
local rubato = require "lib.rubato"
local wibox = require "wibox"
local clock = require "ui.statusbar.widgets.clock"
local displays = require "ui.statusbar.widgets.displays"
local keyboardlayout = require "ui.statusbar.widgets.keyboardlayout"
local taglist = require "ui.statusbar.widgets.taglist"
screen.connect_signal("request::desktop_decoration", function(s)
local expand_button = wibox.widget {
widget = wibox.container.place,
valign = "center",
halign = "center",
{
widget = wibox.widget.imagebox,
image = gcolor.recolor_image(phosphor.caret_right_fill, qvars.colors.fg),
forced_width = qvars.char_height,
forced_height = qvars.char_height
},
_expanded = false
}
local bar = qui.popup {
placement = function(d)
local place = awful.placement.left
return place(d, {
margins = beautiful.useless_gap * 2
})
end,
minimum_height = s.geometry.height - (beautiful.useless_gap * 4 + qvars.border_width * 2),
widget = {
{
{
expand_button,
taglist,
layout = wibox.layout.fixed.vertical,
spacing = qvars.padding * 2,
},
nil,
{
widget = wibox.container.place,
valign = "bottom",
{
displays.brightness,
displays.audio,
displays.battery,
displays.wifi,
{
widget = wibox.container.place,
keyboardlayout
},
clock,
layout = wibox.layout.fixed.vertical,
spacing = qvars.padding * 2
},
},
layout = wibox.layout.align.vertical,
expand = "outside",
},
nil,
nil,
layout = wibox.layout.align.horizontal,
},
}
local bar_width = bar.width + qvars.border_width * 2
bar:struts {
left = bar_width + beautiful.useless_gap * 4
}
local panel_width
local timed = rubato.timed {
duration = qvars.anim_duration,
intro = qvars.anim_intro,
pos = bar_width,
subscribed = function(pos)
if pos ~= bar_width and expand_button._expanded then
bar.widget.widget.third = panel
if panel_width == nil then
panel_width = bar.widget.widget.third.width
end
bar.ontop = true
elseif pos == bar_width and not expand_button._expanded then
bar.widget.widget.third = nil
bar.ontop = false
end
bar.shape = function(cr, _, h)
qvars.shape(cr, pos, h)
end
end
}
expand_button.buttons = {
qbind:new {
triggers = qvars.btns.left,
press = function()
if expand_button._expanded then
timed.target = bar_width
else
timed.target = bar_width + qvars.expanded_bar_size
-- timed.target = bar_width + qvars.big_padding + (qvars.big_padding * 2 + qvars.element_size * 4) * 3 + qvars.padding * 2
end
-- q.debug(tostring(panel_width))
expand_button._expanded = not expand_button._expanded
end,
hidden = true
}
}
end)