Add network load tmux segment
This commit is contained in:
parent
7eca187d02
commit
0ea7615167
|
@ -18,6 +18,7 @@
|
|||
"user": { "fg": "white", "bg": "mediumblue", "attr": ["bold"] },
|
||||
"date": { "fg": "white", "bg": "mediumblue" },
|
||||
"weather": { "fg": "brightestblue", "bg": "darkblue" },
|
||||
"network_load": { "fg": "brightestblue", "bg": "darkblue" },
|
||||
"external_ip": { "fg": "brightestblue", "bg": "darkblue" },
|
||||
"system_load": { "fg": "brightblue", "bg": "darkestblue" },
|
||||
"system_load_good": { "fg": "green", "bg": "darkestblue" },
|
||||
|
|
|
@ -88,3 +88,26 @@ def weather(unit='c', location_query=None):
|
|||
if condition_code in codes:
|
||||
break
|
||||
return u'{0} {1}°{2}'.format(icon, condition['temp'], unit.upper())
|
||||
|
||||
|
||||
def network_load(interface='eth0', measure_interval=1, suffix='B/s', binary_prefix=False):
|
||||
import time
|
||||
from powerline.lib import humanize_bytes
|
||||
|
||||
def get_bytes():
|
||||
try:
|
||||
with open('/sys/class/net/{interface}/statistics/rx_bytes'.format(interface=interface), 'rb') as file_obj:
|
||||
rx = int(file_obj.read())
|
||||
with open('/sys/class/net/{interface}/statistics/tx_bytes'.format(interface=interface), 'rb') as file_obj:
|
||||
tx = int(file_obj.read())
|
||||
return (rx, tx)
|
||||
except IOError:
|
||||
return (0, 0)
|
||||
|
||||
b1 = get_bytes()
|
||||
time.sleep(measure_interval)
|
||||
b2 = get_bytes()
|
||||
return u'⬇ {rx_diff} ⬆ {tx_diff}'.format(
|
||||
rx_diff=humanize_bytes((b2[0] - b1[0]) / measure_interval, suffix, binary_prefix),
|
||||
tx_diff=humanize_bytes((b2[1] - b1[1]) / measure_interval, suffix, binary_prefix),
|
||||
)
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
"name": "external_ip",
|
||||
"before": "ⓦ "
|
||||
},
|
||||
{
|
||||
"name": "network_load"
|
||||
},
|
||||
{
|
||||
"name": "uptime",
|
||||
"before": "⇑ "
|
||||
|
|
Loading…
Reference in New Issue