diff options
author | Mattias Andrée <maandree@operamail.com> | 2014-03-07 13:54:33 +0100 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2014-03-07 13:54:33 +0100 |
commit | b44254922e13049d1afd6fb489858f75c090bd32 (patch) | |
tree | fc503240fc92964f6f524d2a4a47690d9c910571 | |
parent | m (diff) | |
download | xpybar-b44254922e13049d1afd6fb489858f75c090bd32.tar.gz xpybar-b44254922e13049d1afd6fb489858f75c090bd32.tar.bz2 xpybar-b44254922e13049d1afd6fb489858f75c090bd32.tar.xz |
loadavg demo
Signed-off-by: Mattias Andrée <maandree@operamail.com>
-rw-r--r-- | examples/plugins/loadavg | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/examples/plugins/loadavg b/examples/plugins/loadavg new file mode 100644 index 0000000..b97782f --- /dev/null +++ b/examples/plugins/loadavg @@ -0,0 +1,53 @@ +# -*- python -*- + +# A xpybar configuration example testing the features of plugins.chase + +import time +import threading + +from plugins.loadavg import AverageLoad +from plugins.clock import Clock + + +OUTPUT, HEIGHT, YPOS, TOP = 0, 12, 24, True + + +clock = Clock(sync_to = Clock.SECONDS) + +start_ = start +def start(): + start_() + async(lambda : clock.continuous_sync(lambda : bar.invalidate())) + + +def redraw(): + def s_load(mins, load): + load *= 100 + colour = '39' + if load >= 10: colour = '32' + if load >= 50: colour = '33' + if load >= 90: colour = '31' + return '\033[%sm%.0f\033[m%%' % (colour, load) + + def s_tasks(tasks): + pid_max = None + with open('/proc/sys/kernel/pid_max', 'r') as file: + pid_max = int(file.read()[:-1]) + p = 100 * tasks / pid_max + colour = '39' + if p >= 25: colour = '32' + if p >= 50: colour = '33' + if p >= 90: colour = '31' + return '\033[%sm%i\033[m' % (colour, tasks) + + loadavg_ = AverageLoad() + text = 'Load: %s %s %s : %.0f%% %.0f%% %.0f%% │ Task: %i/%s │ Pid: %i' + text %= (s_load(5, loadavg_.average_avg_5_min), + s_load(10, loadavg_.average_avg_10_min), + s_load(15, loadavg_.average_avg_15_min), + loadavg_.total_avg_5_min * 100, loadavg_.total_avg_10_min * 100, loadavg_.total_avg_15_min * 100, + loadavg_.active_tasks, s_tasks(loadavg_.total_tasks), loadavg_.last_pid) + + bar.clear() + bar.draw_coloured_text(0, 10, 0, 2, text) + |