aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/statusbar/widgets/volume.lua
blob: 72723a0def619dc66c0d6af80b786ae9f1e602d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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