35 lines
760 B
Lua
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
|