summaryrefslogtreecommitdiff
path: root/net-speed-widget/net-speed.lua
diff options
context:
space:
mode:
authorstreetturtle <streetturtle@users.noreply.github.com>2021-06-12 20:59:08 -0400
committerGitHub <noreply@github.com>2021-06-12 20:59:08 -0400
commit2e2ae410de2a617541a1f710d27c669581389527 (patch)
treed9a98289b19df5f965d31ce63e3d6e7091120c4d /net-speed-widget/net-speed.lua
parent7ecaccf85fd1ec7f3dc4754c124f80acfe7eec2c (diff)
parente97d0df3c9d80a5fe77d0e61e4116d157d97a45c (diff)
Merge pull request #271 from nuno-silva/net-speed-bugfix
net-speed bugfix
Diffstat (limited to 'net-speed-widget/net-speed.lua')
-rw-r--r--net-speed-widget/net-speed.lua18
1 files changed, 10 insertions, 8 deletions
diff --git a/net-speed-widget/net-speed.lua b/net-speed-widget/net-speed.lua
index 2fb1aa1..6dd3b05 100644
--- a/net-speed-widget/net-speed.lua
+++ b/net-speed-widget/net-speed.lua
@@ -17,9 +17,6 @@ local ICONS_DIR = WIDGET_DIR .. 'icons/'
local net_speed_widget = {}
-local prev_rx = 0
-local prev_tx = 0
-
local function convert_to_h(bytes)
local speed
local dim
@@ -92,6 +89,11 @@ local function worker(user_args)
end
}
+ -- make sure these are not shared across different worker/widgets (e.g. two monitors)
+ -- otherwise the speed will be randomly split among the worker in each monitor
+ local prev_rx = 0
+ local prev_tx = 0
+
local update_widget = function(widget, stdout)
local cur_vals = split(stdout, '\r\n')
@@ -99,13 +101,13 @@ local function worker(user_args)
local cur_rx = 0
local cur_tx = 0
- for i, _ in ipairs(cur_vals) do
- if i%2 == 1 then cur_rx = cur_rx + cur_vals[i] end
- if i%2 == 0 then cur_tx = cur_tx + cur_vals[i] end
+ for i, v in ipairs(cur_vals) do
+ if i%2 == 1 then cur_rx = cur_rx + v end
+ if i%2 == 0 then cur_tx = cur_tx + v end
end
- local speed_rx = cur_rx - prev_rx
- local speed_tx = cur_tx - prev_tx
+ local speed_rx = (cur_rx - prev_rx) / timeout
+ local speed_tx = (cur_tx - prev_tx) / timeout
widget:set_rx_text(convert_to_h(speed_rx))
widget:set_tx_text(convert_to_h(speed_tx))