X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/701549145d89db1c1d500ff2ffcda66fe843bd30..8a5a77acdca8bd699c6883eb74d5651e0cd49fcb:/widgets/net.lua?ds=sidebyside diff --git a/widgets/net.lua b/widgets/net.lua index e086c4b..d79e117 100644 --- a/widgets/net.lua +++ b/widgets/net.lua @@ -39,41 +39,44 @@ function net.get_device() end end -function worker(args) +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 settings = args.settings or function() end - widget = wibox.widget.textbox('') + net.widget = wibox.widget.textbox('') helpers.set_map(iface, true) - function update() + function update() + net_now = {} + if iface == "" then iface = net.get_device() end - carrier = helpers.first_line('/sys/class/net/' .. iface .. + net_now.carrier = helpers.first_line('/sys/class/net/' .. iface .. '/carrier') or "0" - state = helpers.first_line('/sys/class/net/' .. iface .. + net_now.state = helpers.first_line('/sys/class/net/' .. iface .. '/operstate') or "down" local now_t = helpers.first_line('/sys/class/net/' .. iface .. '/statistics/tx_bytes') or 0 local now_r = helpers.first_line('/sys/class/net/' .. iface .. '/statistics/rx_bytes') or 0 - sent = tostring((now_t - net.last_t) / timeout / units) - sent = string.gsub(string.format('%.1f', sent), ",", ".") + net_now.sent = tostring((now_t - net.last_t) / timeout / units) + net_now.sent = string.gsub(string.format('%.1f', net_now.sent), ",", ".") - received = tostring((now_r - net.last_r) / timeout / units) - received = string.gsub(string.format('%.1f', received), ",", ".") + net_now.received = tostring((now_r - net.last_r) / timeout / units) + net_now.received = string.gsub(string.format('%.1f', net_now.received), ",", ".") + widget = net.widget settings() net.last_t = now_t net.last_r = now_r - if carrier ~= "1" + if net_now.carrier ~= "1" then if helpers.get_map(iface) then @@ -95,8 +98,7 @@ function worker(args) end helpers.newtimer(iface, timeout, update) - - return widget + return net.widget end return setmetatable(net, { __call = function(_, ...) return worker(...) end })