aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/statusbar/widgets/wifi.lua
blob: ec5b72c455a3dfd2e7f37e7f9271510eacf13ea9 (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 wifi = wibox.widget {
    widget = wibox.container.place,
    valign = "center",
    halign = "center",
    {
        widget = wibox.widget.imagebox,
        image = gcolor.recolor_image(phosphor.wifi_x_fill, qvars.colors.red),
        forced_width = qvars.icon_size,
        forced_height = qvars.icon_size
    }
}

awesome.connect_signal("services::wifi", function(strength, connected)
    if not connected then
        wifi.widget.image = gcolor.recolor_image(phosphor.wifi_x_fill, qvars.colors.red)
        return
    end

    local icon_data = qmath.step_value(strength, {
        { 0, { "none", "red" } },
        { 25, { "low", "yellow" } },
        { 50, { "medium", "yellow" } },
        { 75, { "high", "green" } },
        { 100 }
    })

    wifi.widget.image = gcolor.recolor_image(phosphor["wifi_" .. icon_data[1] .. "_fill"], qvars.colors[icon_data[2]])
end)

return wifi