X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/02a50839c84bed8920dd4c50971a82b3f4034658..16925f3f26b8e74516de9b6f25c5e207eea0a91e:/widgets/net.lua?ds=sidebyside diff --git a/widgets/net.lua b/widgets/net.lua index ed6a2ef..2b06622 100644 --- a/widgets/net.lua +++ b/widgets/net.lua @@ -16,7 +16,8 @@ local wibox = require("wibox") local io = { popen = io.popen } local tostring = tostring local string = { format = string.format, - gsub = string.gsub } + gsub = string.gsub, + match = string.match } local setmetatable = setmetatable @@ -31,9 +32,9 @@ function net.get_device() f = io.popen("ip link show | cut -d' ' -f2,9") ws = f:read("*a") f:close() - ws = ws:match("%w+: UP") + ws = ws:match("%w+: UP") or ws:match("ppp%w+: UNKNOWN") if ws ~= nil then - return ws:gsub(": UP", "") + return ws:match("(%w+):") else return "network off" end @@ -42,12 +43,13 @@ end local function worker(args) local args = args or {} local timeout = args.timeout or 2 - local iface = args.iface or net.get_device() local units = args.units or 1024 --kb local notify = args.notify or "on" local screen = args.screen or 1 local settings = args.settings or function() end + iface = args.iface or net.get_device() + net.widget = wibox.widget.textbox('') helpers.set_map(iface, true) @@ -55,7 +57,10 @@ local function worker(args) function update() net_now = {} - if iface == "" then iface = net.get_device() end + if iface == "" or string.match(iface, "network off") + then + iface = net.get_device() + end net_now.carrier = helpers.first_line('/sys/class/net/' .. iface .. '/carrier') or "0"