dotfiles/.config/awesome/ui/top-panel/widgets/systray.lua

66 lines
1.2 KiB
Lua
Raw Normal View History

2024-02-19 19:41:33 -08:00
local awful = require("awful")
local wibox = require("wibox")
local gears = require("gears")
local beautiful = require("beautiful")
local rubato = require("lib.rubato")
local dpi = beautiful.xresources.apply_dpi
2024-02-19 19:41:33 -08:00
local arrow = wibox.widget.textbox()
arrow.font = beautiful.font_name .. "13"
arrow.markup = "»"
2024-02-19 19:41:33 -08:00
local mysystray = wibox.widget.systray()
mysystray.visible = true
beautiful.systray_icon_spacing = dpi(4)
2024-02-19 19:41:33 -08:00
local widget = wibox.widget({
widget = wibox.container.constraint,
strategy = "max",
width = dpi(0),
{
widget = wibox.container.margin,
margins = dpi(2),
mysystray,
},
})
widget.visible = true
2024-02-19 19:41:33 -08:00
local slide = rubato.timed({
duration = 0.9,
awestore_compat = true,
subscribed = function(pos)
widget.width = pos
end,
})
local value = true
2024-02-19 19:41:33 -08:00
arrow.toggle = function()
if value == false then
arrow.markup = "»"
value = true
slide:set(2)
else
arrow.markup = "«"
slide:set(500)
value = false
end
end
2024-02-19 19:41:33 -08:00
awesome.connect_signal("arrow::toggle", function()
arrow.toggle()
end)
2024-02-19 19:41:33 -08:00
arrow:buttons(gears.table.join(awful.button({}, 1, function()
awesome.emit_signal("arrow::toggle")
end)))
2024-02-19 19:41:33 -08:00
local sys = wibox.widget({
layout = wibox.layout.fixed.horizontal,
arrow,
widget,
spacing = dpi(2),
})
return sys