1
0
awesomewm-config/external/wifi.lua
2023-06-04 15:59:49 +03:00

35 lines
760 B
Lua

local wifi = {}
local DEFAULT_SIGNAL = "wifi::value"
local net = [[ printf "$(cat /sys/class/net/w*/operstate)~|~$(nmcli radio wifi)" ]]
--- callback: function(operstate, "up"|"down")
function wifi.get(callback)
awful.spawn.easy_async_with_shell(net, function(out)
local val = gears.string.split(out, "~|~")
local w = "down"
if val[2]:match("enabled") then
w = "up"
end
callback(val[1], w)
end)
end
function wifi.emit(name)
wifi.get(function(...)
awesome.emit_signal(name or DEFAULT_SIGNAL, ...)
end)
end
function wifi.register_signal(signal_name, update_interval)
gears.timer {
timeout = update_interval or 5,
call_now = true,
autostart = true,
callback = function() wifi.emit(signal_name) end
}
end
return wifi