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

49 lines
1.2 KiB
Lua

local awful = require "awful"
local vars = require "misc.vars"
local wibox = require "wibox"
local h = require "misc.helpers"
local wifi_inner = awful.widget.watch("awk 'NR==3 {printf(\"%.0f\", $3*10/7)}' /proc/net/wireless", 1, function(widget, stdout)
widget.font = "DejaVu Sans Mono wifi ramp Normal 8"
local icon = ""
local color = vars.colors.red
if stdout == "" then
widget:set_markup("<span color=\"" .. color .. "\">" .. icon .. "</span>")
return
end
local percent = tonumber(stdout)
if percent <= 20 then
icon = ""
color = vars.colors.red
elseif percent <= 40 then
icon = ""
color = vars.colors.yellow
elseif percent <= 60 then
icon = ""
color = vars.colors.yellow
elseif percent <= 80 then
icon = ""
color = vars.colors.green
elseif percent <= 100 then
icon = ""
color = vars.colors.green
end
widget:set_markup("<span color=\"" .. color .. "\">" .. icon .. "</span>")
end)
local wifi = wibox.widget {
widget = wibox.container.place,
wifi_inner
}
h.tooltip({ wifi }, function()
return io.popen("iwgetid -r"):read("*a"):sub(0, -2)
end)
return wifi