madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged.
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
local naughty = require("naughty")
local wibox = require("wibox")
local naughty = require("naughty")
local wibox = require("wibox")
-local io = io
-local tostring = tostring
local string = { format = string.format,
local string = { format = string.format,
+ gsub = string.gsub,
+ match = string.match }
local setmetatable = setmetatable
local setmetatable = setmetatable
}
function net.get_device()
}
function net.get_device()
- f = io.popen("ip link show | cut -d' ' -f2,9")
- ws = f:read("*all")
- f:close()
- ws = ws:match("%w+: UP")
+ local ws = helpers.read_pipe("ip link show | cut -d' ' -f2,9")
+ ws = ws:match("%w+: UP") or ws:match("ppp%w+: UNKNOWN")
- return ws:gsub(": UP", "")
+ return ws:match("(%w+):")
end
end
local function worker(args)
local args = args or {}
local timeout = args.timeout or 2
end
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 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
local settings = args.settings or function() end
+ iface = args.iface or net.get_device()
+
net.widget = wibox.widget.textbox('')
helpers.set_map(iface, true)
net.widget = wibox.widget.textbox('')
helpers.set_map(iface, true)
- function net.update()
- if iface == "" then iface = net.get_device() end
+ function update()
+ net_now = {}
- carrier = helpers.first_line('/sys/class/net/' .. iface ..
+ if iface == "" or string.match(iface, "network off")
+ then
+ iface = net.get_device()
+ end
+
+ net_now.carrier = helpers.first_line('/sys/class/net/' .. iface ..
- 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
'/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 = (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 = (now_r - net.last_r) / timeout / units
+ net_now.received = string.gsub(string.format('%.1f', net_now.received), ",", ".")
widget = net.widget
settings()
widget = net.widget
settings()
net.last_t = now_t
net.last_r = now_r
net.last_t = now_t
net.last_r = now_r
+ if net_now.carrier ~= "1" and notify == "on"
then
if helpers.get_map(iface)
then
then
if helpers.get_map(iface)
then
- n_title = iface
- if n_title == "" then n_title = "network" end
text = "no carrier",
timeout = 7,
position = "top_left",
icon = helpers.icons_dir .. "no_net.png",
text = "no carrier",
timeout = 7,
position = "top_left",
icon = helpers.icons_dir .. "no_net.png",
- fg = notify_fg or "#FFFFFF"
+ fg = notify_fg or "#FFFFFF",
+ screen = screen
})
helpers.set_map(iface, false)
end
})
helpers.set_map(iface, false)
end
- helpers.newtimer(iface, timeout, net.update)
-
+ helpers.newtimer(iface, timeout, update)