dots/.config/awesome/ui/statusbar/widgets/volume.lua

37 lines
1 KiB
Lua

local gcolor = require "gears.color"
local phosphor = require "assets.phosphor"
local qmath = require "quarrel.math"
local qvars = require "quarrel.vars"
local wibox = require "wibox"
local volume_widget = wibox.widget {
widget = wibox.container.place,
valign = "center",
halign = "center",
{
widget = wibox.widget.imagebox,
image = gcolor.recolor_image(phosphor.speaker_simple_slash_fill, qvars.colors.red),
forced_width = qvars.char_height,
forced_height = qvars.char_height
}
}
awesome.connect_signal("services::audio", function(volume, muted)
if muted then
volume_widget.widget.image = gcolor.recolor_image(phosphor["speaker_simple_x_fill"], qvars.colors.red)
return
end
local icon_data = qmath.step_value(volume, {
{ 0, "slash" },
{ 25, "none" },
{ 50, "low" },
{ 75, "high" },
{ 100 }
})
volume_widget.widget.image = gcolor.recolor_image(phosphor["speaker_simple_" .. icon_data .. "_fill"], qvars.colors.fg)
end)
return volume_widget