Add network load tmux segment

This commit is contained in:
Kim Silkebækken 2013-01-17 20:05:42 +01:00
parent 7eca187d02
commit 0ea7615167
3 changed files with 27 additions and 0 deletions

View File

@ -18,6 +18,7 @@
"user": { "fg": "white", "bg": "mediumblue", "attr": ["bold"] }, "user": { "fg": "white", "bg": "mediumblue", "attr": ["bold"] },
"date": { "fg": "white", "bg": "mediumblue" }, "date": { "fg": "white", "bg": "mediumblue" },
"weather": { "fg": "brightestblue", "bg": "darkblue" }, "weather": { "fg": "brightestblue", "bg": "darkblue" },
"network_load": { "fg": "brightestblue", "bg": "darkblue" },
"external_ip": { "fg": "brightestblue", "bg": "darkblue" }, "external_ip": { "fg": "brightestblue", "bg": "darkblue" },
"system_load": { "fg": "brightblue", "bg": "darkestblue" }, "system_load": { "fg": "brightblue", "bg": "darkestblue" },
"system_load_good": { "fg": "green", "bg": "darkestblue" }, "system_load_good": { "fg": "green", "bg": "darkestblue" },

View File

@ -88,3 +88,26 @@ def weather(unit='c', location_query=None):
if condition_code in codes: if condition_code in codes:
break break
return u'{0} {1}°{2}'.format(icon, condition['temp'], unit.upper()) 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),
)

View File

@ -9,6 +9,9 @@
"name": "external_ip", "name": "external_ip",
"before": "ⓦ " "before": "ⓦ "
}, },
{
"name": "network_load"
},
{ {
"name": "uptime", "name": "uptime",
"before": "⇑ " "before": "⇑ "