aboutsummaryrefslogtreecommitdiffstats
path: root/examples/plugin-test
blob: d9ead29e9dea5c316b8238ca0c90474320bd5381 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# -*- python -*-

# A simple xpybar configuration example that tests the plugins

import os

from plugins.uptime import Uptime
from plugins.loadavg import AverageLoad
from plugins.users import Users
from plugins.uname import Uname


OUTPUT, HEIGHT, YPOS, TOP = 0, 24, 24, True


def redraw():
    bar.clear()
    
    time = spawn_read('date', '+%Y-(%m)%b-%d %T, %a w%V, %Z')
    
    uptime_ = Uptime()
    uptime = '%id %02i:%02i:%0.2f' % uptime_.uptime
    tot_idle = '%id %02i:%02i:%0.2f' % uptime_.total_idle
    avg_idle = '%id %02i:%02i:%0.2f' % uptime_.average_idle
    uptime = 'Uptime: %s' % (uptime)
    idle = 'Idle time: %s %s' % (tot_idle, avg_idle)
    
    loadavg_ = AverageLoad()
    avg_5 = int(loadavg_.avg_5_min * 100)
    avg_10 = int(loadavg_.avg_10_min * 100)
    avg_15 = int(loadavg_.avg_15_min * 100)
    act_tasks = loadavg_.active_tasks
    tot_tasks = loadavg_.total_tasks
    last_pid = loadavg_.last_pid
    loadavg = 'Average load: %2i%% %2i%% %2i%% %i/%i %i'
    loadavg %= (avg_5, avg_10, avg_15, act_tasks, tot_tasks, last_pid)
    
    users_ = Users().users
    you = os.environ['USER']
    def colour_user(user):
        if user == 'root':     return '\033[31m%s\033[39m'
        elif not user == you:  return '\033[33m%s\033[39m'
        else:                  return '%s'
    users = ['%s{%i}' % (colour_user(u) % u, len(users_[u])) for u in users_.keys()]
    users = 'Users: %s' % (' '.join(users))
    
    uname_ = Uname()
    nodename = uname_.nodename
    kernel_release = uname_.kernel_release
    operating_system = uname_.operating_system
    uname = '%s %s %s'
    uname %= (nodename, kernel_release, operating_system)
    
    text = '%s │ %s │ %s │ %s │ %s │ %s'
    text %= (time, uptime, idle, loadavg, users, uname)
    bar.draw_coloured_text(0, 10, 0, 2, text)